mirror of
https://github.com/tendermint/tendermint.git
synced 2026-04-15 21:27:06 +00:00
ResponseInitChain should be able to return an initial validator set that is determined by some logic within the genesis.json file.
263 lines
5.9 KiB
Protocol Buffer
263 lines
5.9 KiB
Protocol Buffer
syntax = "proto3";
|
|
package types;
|
|
|
|
// For more information on gogo.proto, see:
|
|
// https://github.com/gogo/protobuf/blob/master/extensions.md
|
|
import "github.com/gogo/protobuf/gogoproto/gogo.proto";
|
|
import "github.com/tendermint/tmlibs/common/types.proto";
|
|
|
|
// This file is copied from http://github.com/tendermint/abci
|
|
// NOTE: When using custom types, mind the warnings.
|
|
// https://github.com/gogo/protobuf/blob/master/custom_types.md#warnings-and-issues
|
|
|
|
//----------------------------------------
|
|
// 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;
|
|
RequestBeginBlock begin_block = 8;
|
|
RequestCheckTx check_tx = 9;
|
|
RequestDeliverTx deliver_tx = 19;
|
|
RequestEndBlock end_block = 11;
|
|
RequestCommit commit = 12;
|
|
}
|
|
}
|
|
|
|
message RequestEcho {
|
|
string message = 1;
|
|
}
|
|
|
|
message RequestFlush {
|
|
}
|
|
|
|
message RequestInfo {
|
|
string version = 1;
|
|
}
|
|
|
|
// nondeterministic
|
|
message RequestSetOption {
|
|
string key = 1;
|
|
string value = 2;
|
|
}
|
|
|
|
message RequestInitChain {
|
|
repeated Validator validators = 1 [(gogoproto.nullable)=false];
|
|
bytes app_state_bytes = 2;
|
|
}
|
|
|
|
message RequestQuery {
|
|
bytes data = 1;
|
|
string path = 2;
|
|
int64 height = 3;
|
|
bool prove = 4;
|
|
}
|
|
|
|
message RequestBeginBlock {
|
|
bytes hash = 1;
|
|
Header header = 2 [(gogoproto.nullable)=false];
|
|
repeated int32 absent_validators = 3;
|
|
repeated Evidence byzantine_validators = 4 [(gogoproto.nullable)=false];
|
|
}
|
|
|
|
message RequestCheckTx {
|
|
bytes tx = 1;
|
|
}
|
|
|
|
message RequestDeliverTx {
|
|
bytes tx = 1;
|
|
}
|
|
|
|
message RequestEndBlock {
|
|
int64 height = 1;
|
|
}
|
|
|
|
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;
|
|
ResponseBeginBlock begin_block = 8;
|
|
ResponseCheckTx check_tx = 9;
|
|
ResponseDeliverTx deliver_tx = 10;
|
|
ResponseEndBlock end_block = 11;
|
|
ResponseCommit commit = 12;
|
|
}
|
|
}
|
|
|
|
// nondeterministic
|
|
message ResponseException {
|
|
string error = 1;
|
|
}
|
|
|
|
message ResponseEcho {
|
|
string message = 1;
|
|
}
|
|
|
|
message ResponseFlush {
|
|
}
|
|
|
|
message ResponseInfo {
|
|
string data = 1;
|
|
string version = 2;
|
|
int64 last_block_height = 3;
|
|
bytes last_block_app_hash = 4;
|
|
}
|
|
|
|
// nondeterministic
|
|
message ResponseSetOption {
|
|
uint32 code = 1;
|
|
// bytes data = 2;
|
|
string log = 3;
|
|
string info = 4;
|
|
}
|
|
|
|
message ResponseInitChain {
|
|
repeated Validator validators = 1 [(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;
|
|
bytes proof = 8;
|
|
int64 height = 9;
|
|
}
|
|
|
|
message ResponseBeginBlock {
|
|
}
|
|
|
|
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 common.KVPair tags = 7 [(gogoproto.nullable)=false, (gogoproto.jsontag)="tags,omitempty"];
|
|
common.KI64Pair fee = 8 [(gogoproto.nullable)=false];
|
|
}
|
|
|
|
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 common.KVPair tags = 7 [(gogoproto.nullable)=false, (gogoproto.jsontag)="tags,omitempty"];
|
|
common.KI64Pair fee = 8 [(gogoproto.nullable)=false];
|
|
}
|
|
|
|
message ResponseEndBlock {
|
|
repeated Validator validator_updates = 1 [(gogoproto.nullable)=false];
|
|
ConsensusParams consensus_param_updates = 2;
|
|
}
|
|
|
|
message ResponseCommit {
|
|
// reserve 1
|
|
bytes data = 2;
|
|
}
|
|
|
|
//----------------------------------------
|
|
// Misc.
|
|
|
|
// ConsensusParams contains all consensus-relevant parameters
|
|
// that can be adjusted by the abci app
|
|
message ConsensusParams {
|
|
BlockSize block_size = 1;
|
|
TxSize tx_size = 2;
|
|
BlockGossip block_gossip = 3;
|
|
}
|
|
|
|
// BlockSize contain limits on the block size.
|
|
message BlockSize {
|
|
int32 max_bytes = 1;
|
|
int32 max_txs = 2;
|
|
int64 max_gas = 3;
|
|
}
|
|
|
|
// TxSize contain limits on the tx size.
|
|
message TxSize {
|
|
int32 max_bytes = 1;
|
|
int64 max_gas = 2;
|
|
}
|
|
|
|
// BlockGossip determine consensus critical
|
|
// elements of how blocks are gossiped
|
|
message BlockGossip {
|
|
// Note: must not be 0
|
|
int32 block_part_size_bytes = 1;
|
|
}
|
|
|
|
//----------------------------------------
|
|
// Blockchain Types
|
|
|
|
message Header {
|
|
string chain_id = 1 [(gogoproto.customname)="ChainID"];
|
|
int64 height = 2;
|
|
int64 time = 3;
|
|
int32 num_txs = 4;
|
|
BlockID last_block_id = 5 [(gogoproto.customname)="LastBlockID", (gogoproto.nullable)=false];
|
|
bytes last_commit_hash = 6;
|
|
bytes data_hash = 7;
|
|
bytes validators_hash = 8;
|
|
bytes app_hash = 9;
|
|
}
|
|
|
|
message BlockID {
|
|
bytes hash = 1;
|
|
PartSetHeader parts = 2 [(gogoproto.nullable)=false];
|
|
}
|
|
|
|
message PartSetHeader {
|
|
int32 total = 1;
|
|
bytes hash = 2;
|
|
}
|
|
|
|
message Validator {
|
|
bytes pub_key = 1;
|
|
int64 power = 2;
|
|
}
|
|
|
|
message Evidence {
|
|
bytes pub_key = 1;
|
|
int64 height = 2;
|
|
}
|
|
|
|
//----------------------------------------
|
|
// Service Definition
|
|
|
|
service ABCIApplication {
|
|
rpc Echo(RequestEcho) returns (ResponseEcho) ;
|
|
rpc Flush(RequestFlush) returns (ResponseFlush);
|
|
rpc Info(RequestInfo) returns (ResponseInfo);
|
|
rpc SetOption(RequestSetOption) returns (ResponseSetOption);
|
|
rpc DeliverTx(RequestDeliverTx) returns (ResponseDeliverTx);
|
|
rpc CheckTx(RequestCheckTx) returns (ResponseCheckTx);
|
|
rpc Query(RequestQuery) returns (ResponseQuery);
|
|
rpc Commit(RequestCommit) returns (ResponseCommit);
|
|
rpc InitChain(RequestInitChain) returns (ResponseInitChain);
|
|
rpc BeginBlock(RequestBeginBlock) returns (ResponseBeginBlock);
|
|
rpc EndBlock(RequestEndBlock) returns (ResponseEndBlock);
|
|
}
|