syntax = "proto3"; package abci_vendor; import "google/protobuf/timestamp.proto"; // NOTE: this file is an merge with the following content from vendors folder // ================================================================ // import "github.com/tendermint/tendermint/libs/common/proto"; // ================================================================ message KVPair { bytes key = 1; bytes value = 2; } //---------------------------------------- // Misc. // BlockParams contains limits on the block size and timestamp. message BlockParams { // Note: must be greater than 0 int64 max_bytes = 1; // Note: must be greater or equal to -1 int64 max_gas = 2; } // EvidenceParams contains limits on the evidence. message EvidenceParams { // Note: must be greater than 0 int64 max_age = 1; } // ValidatorParams contains limits on validators. message ValidatorParams { repeated string pub_key_types = 1; } // ConsensusParams contains all consensus-relevant parameters // that can be adjusted by the abci app message ConsensusParams { BlockParams block = 1; EvidenceParams evidence = 2; ValidatorParams validator = 3; } message LastCommitInfo { int32 round = 1; repeated VoteInfo votes = 2; } //---------------------------------------- // Blockchain Types message Version { uint64 Block = 1; uint64 App = 2; } message BlockID { bytes hash = 1; PartSetHeader parts_header = 2; } message PartSetHeader { int32 total = 1; bytes hash = 2; } // Validator message Validator { bytes address = 1; //PubKey pub_key = 2; int64 power = 3; } // ValidatorUpdate message ValidatorUpdate { PubKey pub_key = 1; int64 power = 2; } // VoteInfo message VoteInfo { Validator validator = 1; bool signed_last_block = 2; } message PubKey { string type = 1; bytes data = 2; } message Evidence { string type = 1; Validator validator = 2; int64 height = 3; google.protobuf.Timestamp time = 4; int64 total_voting_power = 5; } message Header { // basic block info Version version = 1; string chain_id = 2; int64 height = 3; google.protobuf.Timestamp time = 4; int64 num_txs = 5; int64 total_txs = 6; // prev block info BlockID last_block_id = 7; // hashes of block data bytes last_commit_hash = 8; // commit from validators from the last block bytes data_hash = 9; // transactions // hashes from the app output from the prev block bytes validators_hash = 10; // validators for the current block bytes next_validators_hash = 11; // validators for the next block bytes consensus_hash = 12; // consensus params for current block bytes app_hash = 13; // state after txs from the previous block bytes last_results_hash = 14;// root hash of all results from the txs from the previous block // consensus info bytes evidence_hash = 15; // evidence included in the block bytes proposer_address = 16; // original proposer of the block } // ================================================================ // import "github.com/tendermint/tendermint/abci/types/proto"; // NOTE: gogoproto related attributes on each field is removed, since we are // using elixir // ================================================================ message RequestBeginBlock { bytes hash = 1; Header header = 2; LastCommitInfo last_commit_info = 3; repeated Evidence byzantine_validators = 4; } message RequestEndBlock { int64 height = 1; } message ResponseBeginBlock { repeated KVPair tags = 1; } message ResponseEndBlock { repeated ValidatorUpdate validator_updates = 1; ConsensusParams consensus_param_updates = 2; repeated KVPair tags = 3; } message ResponseCheckTx { uint32 code = 1; bytes data = 2; string log = 3; // nondeterministic string info = 4; // nondeterministic int64 gas_wanted = 5; int64 gas_used = 6; repeated KVPair tags = 7; string codespace = 8; } message ResponseDeliverTx { uint32 code = 1; bytes data = 2; string log = 3; // nondeterministic string info = 4; // nondeterministic int64 gas_wanted = 5; int64 gas_used = 6; repeated KVPair tags = 7; string codespace = 8; }