@ -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 ) ;