|
|
@ -1,6 +1,6 @@ |
|
|
|
syntax = "proto3"; |
|
|
|
package tendermint.abci.types; |
|
|
|
option go_package = "github.com/tendermint/tendermint/abci/types"; |
|
|
|
option go_package = "github.com/tendermint/tendermint/abci/types"; |
|
|
|
|
|
|
|
// For more information on gogo.proto, see: |
|
|
|
// https://github.com/gogo/protobuf/blob/master/extensions.md |
|
|
@ -14,31 +14,31 @@ import "google/protobuf/duration.proto"; |
|
|
|
// NOTE: When using custom types, mind the warnings. |
|
|
|
// https://github.com/gogo/protobuf/blob/master/custom_types.md#warnings-and-issues |
|
|
|
|
|
|
|
option (gogoproto.marshaler_all) = true; |
|
|
|
option (gogoproto.unmarshaler_all) = true; |
|
|
|
option (gogoproto.sizer_all) = true; |
|
|
|
option (gogoproto.marshaler_all) = true; |
|
|
|
option (gogoproto.unmarshaler_all) = true; |
|
|
|
option (gogoproto.sizer_all) = true; |
|
|
|
option (gogoproto.goproto_registration) = true; |
|
|
|
// Generate tests |
|
|
|
option (gogoproto.populate_all) = true; |
|
|
|
option (gogoproto.equal_all) = true; |
|
|
|
option (gogoproto.testgen_all) = true; |
|
|
|
option (gogoproto.equal_all) = true; |
|
|
|
option (gogoproto.testgen_all) = true; |
|
|
|
|
|
|
|
//---------------------------------------- |
|
|
|
// Request types |
|
|
|
|
|
|
|
message Request { |
|
|
|
oneof value { |
|
|
|
RequestEcho echo = 2; |
|
|
|
RequestFlush flush = 3; |
|
|
|
RequestInfo info = 4; |
|
|
|
RequestSetOption set_option = 5; |
|
|
|
RequestInitChain init_chain = 6; |
|
|
|
RequestQuery query = 7; |
|
|
|
RequestEcho echo = 2; |
|
|
|
RequestFlush flush = 3; |
|
|
|
RequestInfo info = 4; |
|
|
|
RequestSetOption set_option = 5; |
|
|
|
RequestInitChain init_chain = 6; |
|
|
|
RequestQuery query = 7; |
|
|
|
RequestBeginBlock begin_block = 8; |
|
|
|
RequestCheckTx check_tx = 9; |
|
|
|
RequestDeliverTx deliver_tx = 19; |
|
|
|
RequestEndBlock end_block = 11; |
|
|
|
RequestCommit commit = 12; |
|
|
|
RequestCheckTx check_tx = 9; |
|
|
|
RequestDeliverTx deliver_tx = 19; |
|
|
|
RequestEndBlock end_block = 11; |
|
|
|
RequestCommit commit = 12; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -46,50 +46,49 @@ message RequestEcho { |
|
|
|
string message = 1; |
|
|
|
} |
|
|
|
|
|
|
|
message RequestFlush { |
|
|
|
} |
|
|
|
message RequestFlush {} |
|
|
|
|
|
|
|
message RequestInfo { |
|
|
|
string version = 1; |
|
|
|
string version = 1; |
|
|
|
uint64 block_version = 2; |
|
|
|
uint64 p2p_version = 3; |
|
|
|
uint64 p2p_version = 3; |
|
|
|
} |
|
|
|
|
|
|
|
// nondeterministic |
|
|
|
message RequestSetOption { |
|
|
|
string key = 1; |
|
|
|
string key = 1; |
|
|
|
string value = 2; |
|
|
|
} |
|
|
|
|
|
|
|
message RequestInitChain { |
|
|
|
google.protobuf.Timestamp time = 1 [(gogoproto.nullable)=false, (gogoproto.stdtime)=true]; |
|
|
|
string chain_id = 2; |
|
|
|
ConsensusParams consensus_params = 3; |
|
|
|
repeated ValidatorUpdate validators = 4 [(gogoproto.nullable)=false]; |
|
|
|
bytes app_state_bytes = 5; |
|
|
|
google.protobuf.Timestamp time = 1 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; |
|
|
|
string chain_id = 2; |
|
|
|
ConsensusParams consensus_params = 3; |
|
|
|
repeated ValidatorUpdate validators = 4 [(gogoproto.nullable) = false]; |
|
|
|
bytes app_state_bytes = 5; |
|
|
|
} |
|
|
|
|
|
|
|
message RequestQuery { |
|
|
|
bytes data = 1; |
|
|
|
string path = 2; |
|
|
|
int64 height = 3; |
|
|
|
bool prove = 4; |
|
|
|
bytes data = 1; |
|
|
|
string path = 2; |
|
|
|
int64 height = 3; |
|
|
|
bool prove = 4; |
|
|
|
} |
|
|
|
|
|
|
|
message RequestBeginBlock { |
|
|
|
bytes hash = 1; |
|
|
|
Header header = 2 [(gogoproto.nullable)=false]; |
|
|
|
LastCommitInfo last_commit_info = 3 [(gogoproto.nullable)=false]; |
|
|
|
repeated Evidence byzantine_validators = 4 [(gogoproto.nullable)=false]; |
|
|
|
bytes hash = 1; |
|
|
|
Header header = 2 [(gogoproto.nullable) = false]; |
|
|
|
LastCommitInfo last_commit_info = 3 [(gogoproto.nullable) = false]; |
|
|
|
repeated Evidence byzantine_validators = 4 [(gogoproto.nullable) = false]; |
|
|
|
} |
|
|
|
|
|
|
|
enum CheckTxType { |
|
|
|
New = 0; |
|
|
|
New = 0; |
|
|
|
Recheck = 1; |
|
|
|
} |
|
|
|
|
|
|
|
message RequestCheckTx { |
|
|
|
bytes tx = 1; |
|
|
|
bytes tx = 1; |
|
|
|
CheckTxType type = 2; |
|
|
|
} |
|
|
|
|
|
|
@ -101,26 +100,25 @@ message RequestEndBlock { |
|
|
|
int64 height = 1; |
|
|
|
} |
|
|
|
|
|
|
|
message RequestCommit { |
|
|
|
} |
|
|
|
message RequestCommit {} |
|
|
|
|
|
|
|
//---------------------------------------- |
|
|
|
// Response types |
|
|
|
|
|
|
|
message Response { |
|
|
|
oneof value { |
|
|
|
ResponseException exception = 1; |
|
|
|
ResponseEcho echo = 2; |
|
|
|
ResponseFlush flush = 3; |
|
|
|
ResponseInfo info = 4; |
|
|
|
ResponseSetOption set_option = 5; |
|
|
|
ResponseInitChain init_chain = 6; |
|
|
|
ResponseQuery query = 7; |
|
|
|
ResponseException exception = 1; |
|
|
|
ResponseEcho echo = 2; |
|
|
|
ResponseFlush flush = 3; |
|
|
|
ResponseInfo info = 4; |
|
|
|
ResponseSetOption set_option = 5; |
|
|
|
ResponseInitChain init_chain = 6; |
|
|
|
ResponseQuery query = 7; |
|
|
|
ResponseBeginBlock begin_block = 8; |
|
|
|
ResponseCheckTx check_tx = 9; |
|
|
|
ResponseDeliverTx deliver_tx = 10; |
|
|
|
ResponseEndBlock end_block = 11; |
|
|
|
ResponseCommit commit = 12; |
|
|
|
ResponseCheckTx check_tx = 9; |
|
|
|
ResponseDeliverTx deliver_tx = 10; |
|
|
|
ResponseEndBlock end_block = 11; |
|
|
|
ResponseCommit commit = 12; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -133,16 +131,15 @@ message ResponseEcho { |
|
|
|
string message = 1; |
|
|
|
} |
|
|
|
|
|
|
|
message ResponseFlush { |
|
|
|
} |
|
|
|
message ResponseFlush {} |
|
|
|
|
|
|
|
message ResponseInfo { |
|
|
|
string data = 1; |
|
|
|
|
|
|
|
string version = 2; |
|
|
|
string version = 2; |
|
|
|
uint64 app_version = 3; |
|
|
|
|
|
|
|
int64 last_block_height = 4; |
|
|
|
int64 last_block_height = 4; |
|
|
|
bytes last_block_app_hash = 5; |
|
|
|
} |
|
|
|
|
|
|
@ -150,58 +147,62 @@ message ResponseInfo { |
|
|
|
message ResponseSetOption { |
|
|
|
uint32 code = 1; |
|
|
|
// bytes data = 2; |
|
|
|
string log = 3; |
|
|
|
string log = 3; |
|
|
|
string info = 4; |
|
|
|
} |
|
|
|
|
|
|
|
message ResponseInitChain { |
|
|
|
ConsensusParams consensus_params = 1; |
|
|
|
repeated ValidatorUpdate validators = 2 [(gogoproto.nullable)=false]; |
|
|
|
ConsensusParams consensus_params = 1; |
|
|
|
repeated ValidatorUpdate validators = 2 [(gogoproto.nullable) = false]; |
|
|
|
} |
|
|
|
|
|
|
|
message ResponseQuery { |
|
|
|
uint32 code = 1; |
|
|
|
// bytes data = 2; // use "value" instead. |
|
|
|
string log = 3; // nondeterministic |
|
|
|
string info = 4; // nondeterministic |
|
|
|
int64 index = 5; |
|
|
|
bytes key = 6; |
|
|
|
bytes value = 7; |
|
|
|
tendermint.crypto.merkle.Proof proof = 8; |
|
|
|
int64 height = 9; |
|
|
|
string codespace = 10; |
|
|
|
string log = 3; // nondeterministic |
|
|
|
string info = 4; // nondeterministic |
|
|
|
int64 index = 5; |
|
|
|
bytes key = 6; |
|
|
|
bytes value = 7; |
|
|
|
tendermint.crypto.merkle.Proof proof = 8; |
|
|
|
int64 height = 9; |
|
|
|
string codespace = 10; |
|
|
|
} |
|
|
|
|
|
|
|
message ResponseBeginBlock { |
|
|
|
repeated Event events = 1 [(gogoproto.nullable)=false, (gogoproto.jsontag)="events,omitempty"]; |
|
|
|
repeated Event events = 1 |
|
|
|
[(gogoproto.nullable) = false, (gogoproto.jsontag) = "events,omitempty"]; |
|
|
|
} |
|
|
|
|
|
|
|
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 Event events = 7 [(gogoproto.nullable)=false, (gogoproto.jsontag)="events,omitempty"]; |
|
|
|
uint32 code = 1; |
|
|
|
bytes data = 2; |
|
|
|
string log = 3; // nondeterministic |
|
|
|
string info = 4; // nondeterministic |
|
|
|
int64 gas_wanted = 5; |
|
|
|
int64 gas_used = 6; |
|
|
|
repeated Event events = 7 |
|
|
|
[(gogoproto.nullable) = false, (gogoproto.jsontag) = "events,omitempty"]; |
|
|
|
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 Event events = 7 [(gogoproto.nullable)=false, (gogoproto.jsontag)="events,omitempty"]; |
|
|
|
uint32 code = 1; |
|
|
|
bytes data = 2; |
|
|
|
string log = 3; // nondeterministic |
|
|
|
string info = 4; // nondeterministic |
|
|
|
int64 gas_wanted = 5; |
|
|
|
int64 gas_used = 6; |
|
|
|
repeated Event events = 7 |
|
|
|
[(gogoproto.nullable) = false, (gogoproto.jsontag) = "events,omitempty"]; |
|
|
|
string codespace = 8; |
|
|
|
} |
|
|
|
|
|
|
|
message ResponseEndBlock { |
|
|
|
repeated ValidatorUpdate validator_updates = 1 [(gogoproto.nullable)=false]; |
|
|
|
ConsensusParams consensus_param_updates = 2; |
|
|
|
repeated Event events = 3 [(gogoproto.nullable)=false, (gogoproto.jsontag)="events,omitempty"]; |
|
|
|
repeated ValidatorUpdate validator_updates = 1 [(gogoproto.nullable) = false]; |
|
|
|
ConsensusParams consensus_param_updates = 2; |
|
|
|
repeated Event events = 3 |
|
|
|
[(gogoproto.nullable) = false, (gogoproto.jsontag) = "events,omitempty"]; |
|
|
|
} |
|
|
|
|
|
|
|
message ResponseCommit { |
|
|
@ -215,8 +216,8 @@ message ResponseCommit { |
|
|
|
// ConsensusParams contains all consensus-relevant parameters |
|
|
|
// that can be adjusted by the abci app |
|
|
|
message ConsensusParams { |
|
|
|
BlockParams block = 1; |
|
|
|
EvidenceParams evidence = 2; |
|
|
|
BlockParams block = 1; |
|
|
|
EvidenceParams evidence = 2; |
|
|
|
ValidatorParams validator = 3; |
|
|
|
} |
|
|
|
|
|
|
@ -230,8 +231,9 @@ message BlockParams { |
|
|
|
|
|
|
|
message EvidenceParams { |
|
|
|
// Note: must be greater than 0 |
|
|
|
int64 max_age_num_blocks = 1; |
|
|
|
google.protobuf.Duration max_age_duration = 2 [(gogoproto.nullable)=false, (gogoproto.stdduration)=true]; |
|
|
|
int64 max_age_num_blocks = 1; |
|
|
|
google.protobuf.Duration max_age_duration = 2 |
|
|
|
[(gogoproto.nullable) = false, (gogoproto.stdduration) = true]; |
|
|
|
} |
|
|
|
|
|
|
|
// ValidatorParams contains limits on validators. |
|
|
@ -240,13 +242,14 @@ message ValidatorParams { |
|
|
|
} |
|
|
|
|
|
|
|
message LastCommitInfo { |
|
|
|
int32 round = 1; |
|
|
|
repeated VoteInfo votes = 2 [(gogoproto.nullable)=false]; |
|
|
|
int32 round = 1; |
|
|
|
repeated VoteInfo votes = 2 [(gogoproto.nullable) = false]; |
|
|
|
} |
|
|
|
|
|
|
|
message Event { |
|
|
|
string type = 1; |
|
|
|
repeated tendermint.libs.kv.Pair attributes = 2 [(gogoproto.nullable)=false, (gogoproto.jsontag)="attributes,omitempty"]; |
|
|
|
string type = 1; |
|
|
|
repeated tendermint.libs.kv.Pair attributes = 2 |
|
|
|
[(gogoproto.nullable) = false, (gogoproto.jsontag) = "attributes,omitempty"]; |
|
|
|
} |
|
|
|
|
|
|
|
//---------------------------------------- |
|
|
@ -254,63 +257,62 @@ message Event { |
|
|
|
|
|
|
|
message Header { |
|
|
|
// basic block info |
|
|
|
Version version = 1 [(gogoproto.nullable)=false]; |
|
|
|
string chain_id = 2 [(gogoproto.customname)="ChainID"]; |
|
|
|
int64 height = 3; |
|
|
|
google.protobuf.Timestamp time = 4 [(gogoproto.nullable)=false, (gogoproto.stdtime)=true]; |
|
|
|
Version version = 1 [(gogoproto.nullable) = false]; |
|
|
|
string chain_id = 2 [(gogoproto.customname) = "ChainID"]; |
|
|
|
int64 height = 3; |
|
|
|
google.protobuf.Timestamp time = 4 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; |
|
|
|
|
|
|
|
// prev block info |
|
|
|
BlockID last_block_id = 5 [(gogoproto.nullable)=false]; |
|
|
|
BlockID last_block_id = 5 [(gogoproto.nullable) = false]; |
|
|
|
|
|
|
|
// hashes of block data |
|
|
|
bytes last_commit_hash = 6; // commit from validators from the last block |
|
|
|
bytes data_hash = 7; // transactions |
|
|
|
bytes last_commit_hash = 6; // commit from validators from the last block |
|
|
|
bytes data_hash = 7; // transactions |
|
|
|
|
|
|
|
// hashes from the app output from the prev block |
|
|
|
bytes validators_hash = 8; // validators for the current block |
|
|
|
bytes validators_hash = 8; // validators for the current block |
|
|
|
bytes next_validators_hash = 9; // validators for the next block |
|
|
|
bytes consensus_hash = 10; // consensus params for current block |
|
|
|
bytes app_hash = 11; // state after txs from the previous block |
|
|
|
bytes last_results_hash = 12;// root hash of all results from the txs from the previous block |
|
|
|
bytes consensus_hash = 10; // consensus params for current block |
|
|
|
bytes app_hash = 11; // state after txs from the previous block |
|
|
|
bytes last_results_hash = 12; // root hash of all results from the txs from the previous block |
|
|
|
|
|
|
|
// consensus info |
|
|
|
bytes evidence_hash = 13; // evidence included in the block |
|
|
|
bytes proposer_address = 14; // original proposer of the block |
|
|
|
bytes evidence_hash = 13; // evidence included in the block |
|
|
|
bytes proposer_address = 14; // original proposer of the block |
|
|
|
} |
|
|
|
|
|
|
|
message Version { |
|
|
|
uint64 Block = 1; |
|
|
|
uint64 App = 2; |
|
|
|
uint64 App = 2; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
message BlockID { |
|
|
|
bytes hash = 1; |
|
|
|
PartSetHeader parts_header = 2 [(gogoproto.nullable)=false]; |
|
|
|
bytes hash = 1; |
|
|
|
PartSetHeader parts_header = 2 [(gogoproto.nullable) = false]; |
|
|
|
} |
|
|
|
|
|
|
|
message PartSetHeader { |
|
|
|
int32 total = 1; |
|
|
|
bytes hash = 2; |
|
|
|
bytes hash = 2; |
|
|
|
} |
|
|
|
|
|
|
|
// Validator |
|
|
|
message Validator { |
|
|
|
bytes address = 1; |
|
|
|
//PubKey pub_key = 2 [(gogoproto.nullable)=false]; |
|
|
|
// PubKey pub_key = 2 [(gogoproto.nullable)=false]; |
|
|
|
int64 power = 3; |
|
|
|
} |
|
|
|
|
|
|
|
// ValidatorUpdate |
|
|
|
message ValidatorUpdate { |
|
|
|
PubKey pub_key = 1 [(gogoproto.nullable)=false]; |
|
|
|
int64 power = 2; |
|
|
|
PubKey pub_key = 1 [(gogoproto.nullable) = false]; |
|
|
|
int64 power = 2; |
|
|
|
} |
|
|
|
|
|
|
|
// VoteInfo |
|
|
|
message VoteInfo { |
|
|
|
Validator validator = 1 [(gogoproto.nullable)=false]; |
|
|
|
bool signed_last_block = 2; |
|
|
|
Validator validator = 1 [(gogoproto.nullable) = false]; |
|
|
|
bool signed_last_block = 2; |
|
|
|
} |
|
|
|
|
|
|
|
message PubKey { |
|
|
@ -319,18 +321,18 @@ message PubKey { |
|
|
|
} |
|
|
|
|
|
|
|
message Evidence { |
|
|
|
string type = 1; |
|
|
|
Validator validator = 2 [(gogoproto.nullable)=false]; |
|
|
|
int64 height = 3; |
|
|
|
google.protobuf.Timestamp time = 4 [(gogoproto.nullable)=false, (gogoproto.stdtime)=true]; |
|
|
|
int64 total_voting_power = 5; |
|
|
|
string type = 1; |
|
|
|
Validator validator = 2 [(gogoproto.nullable) = false]; |
|
|
|
int64 height = 3; |
|
|
|
google.protobuf.Timestamp time = 4 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; |
|
|
|
int64 total_voting_power = 5; |
|
|
|
} |
|
|
|
|
|
|
|
//---------------------------------------- |
|
|
|
// Service Definition |
|
|
|
|
|
|
|
service ABCIApplication { |
|
|
|
rpc Echo(RequestEcho) returns (ResponseEcho) ; |
|
|
|
rpc Echo(RequestEcho) returns (ResponseEcho); |
|
|
|
rpc Flush(RequestFlush) returns (ResponseFlush); |
|
|
|
rpc Info(RequestInfo) returns (ResponseInfo); |
|
|
|
rpc SetOption(RequestSetOption) returns (ResponseSetOption); |
|
|
|