// Copyright 2016, 2017 Intel Corporation // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // ----------------------------------------------------------------------------- syntax = "proto3"; // A list of messages to be transmitted together. message MessageList { repeated Message messages = 1; } // The message passed between the validator and client, containing the // header fields and content. message Message { enum MessageType { DEFAULT = 0; // Registration request from the transaction processor to the validator TP_REGISTER_REQUEST = 1; // Registration response from the validator to the // transaction processor TP_REGISTER_RESPONSE = 2; // Tell the validator that the transaction processor // won't take any more transactions TP_UNREGISTER_REQUEST = 3; // Response from the validator to the tp that it won't // send any more transactions TP_UNREGISTER_RESPONSE = 4; // Process Request from the validator/executor to the // transaction processor TP_PROCESS_REQUEST = 5; // Process response from the transaction processor to the validator/executor TP_PROCESS_RESPONSE = 6; // State get request from the transaction processor to validator/context_manager TP_STATE_GET_REQUEST = 7; // State get response from the validator/context_manager to the transaction processor TP_STATE_GET_RESPONSE = 8; // State set request from the transaction processor to the validator/context_manager TP_STATE_SET_REQUEST = 9; // State set response from the validator/context_manager to the transaction processor TP_STATE_SET_RESPONSE = 10; // State delete request from the transaction processor to the validator/context_manager TP_STATE_DELETE_REQUEST = 11; // State delete response from the validator/context_manager to the transaction processor TP_STATE_DELETE_RESPONSE = 12; // Message to append data to a transaction receipt TP_RECEIPT_ADD_DATA_REQUEST = 13; // Response from validator to tell transaction processor that data has been appended TP_RECEIPT_ADD_DATA_RESPONSE = 14; // Message to add event TP_EVENT_ADD_REQUEST = 15; // Response from validator to tell transaction processor that event has been created TP_EVENT_ADD_RESPONSE = 16; // Submission of a batchlist from the web api or another client to the validator CLIENT_BATCH_SUBMIT_REQUEST = 100; // Response from the validator to the web api/client that the submission was accepted CLIENT_BATCH_SUBMIT_RESPONSE = 101; // A request to list blocks from the web api/client to the validator CLIENT_BLOCK_LIST_REQUEST = 102; CLIENT_BLOCK_LIST_RESPONSE = 103; CLIENT_BLOCK_GET_BY_ID_REQUEST = 104; CLIENT_BLOCK_GET_RESPONSE = 105; CLIENT_BATCH_LIST_REQUEST = 106; CLIENT_BATCH_LIST_RESPONSE = 107; CLIENT_BATCH_GET_REQUEST = 108; CLIENT_BATCH_GET_RESPONSE = 109; CLIENT_TRANSACTION_LIST_REQUEST = 110; CLIENT_TRANSACTION_LIST_RESPONSE = 111; CLIENT_TRANSACTION_GET_REQUEST = 112; CLIENT_TRANSACTION_GET_RESPONSE = 113; // Client state request of the current state hash to be retrieved from the journal CLIENT_STATE_CURRENT_REQUEST = 114; // Response with the current state hash CLIENT_STATE_CURRENT_RESPONSE = 115; // A request of all the addresses under a particular prefix, for a state hash. CLIENT_STATE_LIST_REQUEST = 116; // The response of the addresses CLIENT_STATE_LIST_RESPONSE = 117; // Get the address:data entry at a particular address CLIENT_STATE_GET_REQUEST = 118; // The response with the entry CLIENT_STATE_GET_RESPONSE = 119; // A request for the status of a batch or batches CLIENT_BATCH_STATUS_REQUEST = 120; // A response with the batch statuses CLIENT_BATCH_STATUS_RESPONSE = 121; // A request for one or more transaction receipts CLIENT_RECEIPT_GET_REQUEST = 122; // A response with the receipts CLIENT_RECEIPT_GET_RESPONSE = 123; CLIENT_BLOCK_GET_BY_NUM_REQUEST = 124; // A request for a validator's peers CLIENT_PEERS_GET_REQUEST = 125; // A response with the validator's peers CLIENT_PEERS_GET_RESPONSE = 126; CLIENT_BLOCK_GET_BY_TRANSACTION_ID_REQUEST = 127; CLIENT_BLOCK_GET_BY_BATCH_ID_REQUEST = 128; // A request for a validator's status CLIENT_STATUS_GET_REQUEST = 129; // A response with the validator's status CLIENT_STATUS_GET_RESPONSE = 130; // Message types for events CLIENT_EVENTS_SUBSCRIBE_REQUEST = 500; CLIENT_EVENTS_SUBSCRIBE_RESPONSE = 501; CLIENT_EVENTS_UNSUBSCRIBE_REQUEST = 502; CLIENT_EVENTS_UNSUBSCRIBE_RESPONSE = 503; CLIENT_EVENTS = 504; CLIENT_EVENTS_GET_REQUEST = 505; CLIENT_EVENTS_GET_RESPONSE = 506; // Temp message types until a discussion can be had about gossip msg GOSSIP_MESSAGE = 200; GOSSIP_REGISTER = 201; GOSSIP_UNREGISTER = 202; GOSSIP_BLOCK_REQUEST = 205; GOSSIP_BLOCK_RESPONSE = 206; GOSSIP_BATCH_BY_BATCH_ID_REQUEST = 207; GOSSIP_BATCH_BY_TRANSACTION_ID_REQUEST = 208; GOSSIP_BATCH_RESPONSE = 209; GOSSIP_GET_PEERS_REQUEST = 210; GOSSIP_GET_PEERS_RESPONSE = 211; GOSSIP_CONSENSUS_MESSAGE = 212; NETWORK_ACK = 300; NETWORK_CONNECT = 301; NETWORK_DISCONNECT = 302; // Message types for Authorization Types AUTHORIZATION_CONNECTION_RESPONSE = 600; AUTHORIZATION_VIOLATION = 601; AUTHORIZATION_TRUST_REQUEST = 602; AUTHORIZATION_TRUST_RESPONSE = 603; AUTHORIZATION_CHALLENGE_REQUEST = 604; AUTHORIZATION_CHALLENGE_RESPONSE = 605; AUTHORIZATION_CHALLENGE_SUBMIT = 606; AUTHORIZATION_CHALLENGE_RESULT = 607; PING_REQUEST = 700; PING_RESPONSE = 701; // Consensus service messages CONSENSUS_REGISTER_REQUEST = 800; CONSENSUS_REGISTER_RESPONSE = 801; CONSENSUS_SEND_TO_REQUEST = 802; CONSENSUS_SEND_TO_RESPONSE = 803; CONSENSUS_BROADCAST_REQUEST = 804; CONSENSUS_BROADCAST_RESPONSE = 805; CONSENSUS_INITIALIZE_BLOCK_REQUEST = 806; CONSENSUS_INITIALIZE_BLOCK_RESPONSE = 807; CONSENSUS_FINALIZE_BLOCK_REQUEST = 808; CONSENSUS_FINALIZE_BLOCK_RESPONSE = 809; CONSENSUS_SUMMARIZE_BLOCK_REQUEST = 828; CONSENSUS_SUMMARIZE_BLOCK_RESPONSE = 829; CONSENSUS_CANCEL_BLOCK_REQUEST = 810; CONSENSUS_CANCEL_BLOCK_RESPONSE = 811; CONSENSUS_CHECK_BLOCKS_REQUEST = 812; CONSENSUS_CHECK_BLOCKS_RESPONSE = 813; CONSENSUS_COMMIT_BLOCK_REQUEST = 814; CONSENSUS_COMMIT_BLOCK_RESPONSE = 815; CONSENSUS_IGNORE_BLOCK_REQUEST = 816; CONSENSUS_IGNORE_BLOCK_RESPONSE = 817; CONSENSUS_FAIL_BLOCK_REQUEST = 818; CONSENSUS_FAIL_BLOCK_RESPONSE = 819; CONSENSUS_SETTINGS_GET_REQUEST = 820; CONSENSUS_SETTINGS_GET_RESPONSE = 821; CONSENSUS_STATE_GET_REQUEST = 822; CONSENSUS_STATE_GET_RESPONSE = 823; CONSENSUS_BLOCKS_GET_REQUEST = 824; CONSENSUS_BLOCKS_GET_RESPONSE = 825; CONSENSUS_CHAIN_HEAD_GET_REQUEST = 826; CONSENSUS_CHAIN_HEAD_GET_RESPONSE = 827; // Consensus notification messages CONSENSUS_NOTIFY_PEER_CONNECTED = 900; CONSENSUS_NOTIFY_PEER_DISCONNECTED = 901; CONSENSUS_NOTIFY_PEER_MESSAGE = 902; CONSENSUS_NOTIFY_BLOCK_NEW = 903; CONSENSUS_NOTIFY_BLOCK_VALID = 904; CONSENSUS_NOTIFY_BLOCK_INVALID = 905; CONSENSUS_NOTIFY_BLOCK_COMMIT = 906; CONSENSUS_NOTIFY_ENGINE_ACTIVATED = 907; CONSENSUS_NOTIFY_ENGINE_DEACTIVATED = 908; CONSENSUS_NOTIFY_ACK = 999; } // The type of message, used to determine how to 'route' the message // to the appropriate handler as well as how to deserialize the // content. MessageType message_type = 1; // The identifier used to correlate response messages to their related // request messages. correlation_id should be set to a random string // for messages which are not responses to previously sent messages. For // response messages, correlation_id should be set to the same string as // contained in the request message. string correlation_id = 2; // The content of the message, defined by message_type. In many // cases, this data has been serialized with Protocol Buffers or // CBOR. bytes content = 3; }