tendermint/abci
Table of Contents
-
tendermint/abci/types.proto
- MCommitInfo
- MEvent
- MEventAttribute
- MExecTxResult
- MExtendedCommitInfo
- MExtendedVoteInfo
- MMisbehavior
- MRequest
- MRequestApplySnapshotChunk
- MRequestCheckTx
- MRequestCommit
- MRequestEcho
- MRequestExtendVote
- MRequestFinalizeBlock
- MRequestFlush
- MRequestInfo
- MRequestInitChain
- MRequestListSnapshots
- MRequestLoadSnapshotChunk
- MRequestOfferSnapshot
- MRequestPrepareProposal
- MRequestProcessProposal
- MRequestQuery
- MRequestVerifyVoteExtension
- MResponse
- MResponseApplySnapshotChunk
- MResponseCheckTx
- MResponseCommit
- MResponseEcho
- MResponseException
- MResponseExtendVote
- MResponseFinalizeBlock
- MResponseFlush
- MResponseInfo
- MResponseInitChain
- MResponseListSnapshots
- MResponseLoadSnapshotChunk
- MResponseOfferSnapshot
- MResponsePrepareProposal
- MResponseProcessProposal
- MResponseQuery
- MResponseVerifyVoteExtension
- MSnapshot
- MTxResult
- MValidator
- MValidatorUpdate
- MVoteInfo
- ECheckTxType
- EMisbehaviorType
- EResponseApplySnapshotChunk.Result
- EResponseOfferSnapshot.Result
- EResponseProcessProposal.ProposalStatus
- EResponseVerifyVoteExtension.VerifyStatus
- SABCI
- Scalar Value Types
tendermint/abci/types.proto
TopCommitInfo
| Field | Type | Label | Description |
| round | int32 |
|
|
| votes | VoteInfo | repeated |
|
Event
Event allows application developers to attach additional information to
ResponseFinalizeBlock and ResponseCheckTx.
Later, transactions may be queried using these events.
| Field | Type | Label | Description |
| type | string |
|
|
| attributes | EventAttribute | repeated |
|
EventAttribute
EventAttribute is a single key-value pair, associated with an event.
| Field | Type | Label | Description |
| key | string |
|
|
| value | string |
|
|
| index | bool | nondeterministic |
ExecTxResult
ExecTxResult contains results of executing one individual transaction.
* Its structure is equivalent to #ResponseDeliverTx which will be deprecated/deleted
| Field | Type | Label | Description |
| code | uint32 |
|
|
| data | bytes |
|
|
| log | string | nondeterministic |
|
| info | string | nondeterministic |
|
| gas_wanted | int64 |
|
|
| gas_used | int64 |
|
|
| events | Event | repeated | nondeterministic |
| codespace | string |
|
ExtendedCommitInfo
ExtendedCommitInfo is similar to CommitInfo except that it is only used in
the PrepareProposal request such that CometBFT can provide vote extensions
to the application.
| Field | Type | Label | Description |
| round | int32 | The round at which the block proposer decided in the previous height. |
|
| votes | ExtendedVoteInfo | repeated | List of validators' addresses in the last validator set with their voting information, including vote extensions. |
ExtendedVoteInfo
| Field | Type | Label | Description |
| validator | Validator | The validator that sent the vote. |
|
| vote_extension | bytes | Non-deterministic extension provided by the sending validator's application. |
|
| extension_signature | bytes | Vote extension signature created by CometBFT |
|
| block_id_flag | tendermint.types.BlockIDFlag | block_id_flag indicates whether the validator voted for a block, nil, or did not vote at all |
Misbehavior
| Field | Type | Label | Description |
| type | MisbehaviorType |
|
|
| validator | Validator | The offending validator |
|
| height | int64 | The height when the offense occurred |
|
| time | google.protobuf.Timestamp | The corresponding time where the offense occurred |
|
| total_voting_power | int64 | Total voting power of the validator set in case the ABCI application does not store historical validators. https://github.com/tendermint/tendermint/issues/4581 |
Request
| Field | Type | Label | Description |
| echo | RequestEcho |
|
|
| flush | RequestFlush |
|
|
| info | RequestInfo |
|
|
| init_chain | RequestInitChain |
|
|
| query | RequestQuery |
|
|
| check_tx | RequestCheckTx |
|
|
| commit | RequestCommit |
|
|
| list_snapshots | RequestListSnapshots |
|
|
| offer_snapshot | RequestOfferSnapshot |
|
|
| load_snapshot_chunk | RequestLoadSnapshotChunk |
|
|
| apply_snapshot_chunk | RequestApplySnapshotChunk |
|
|
| prepare_proposal | RequestPrepareProposal |
|
|
| process_proposal | RequestProcessProposal |
|
|
| extend_vote | RequestExtendVote |
|
|
| verify_vote_extension | RequestVerifyVoteExtension |
|
|
| finalize_block | RequestFinalizeBlock |
|
RequestApplySnapshotChunk
Applies a snapshot chunk
| Field | Type | Label | Description |
| index | uint32 |
|
|
| chunk | bytes |
|
|
| sender | string |
|
RequestCheckTx
| Field | Type | Label | Description |
| tx | bytes |
|
|
| type | CheckTxType |
|
RequestCommit
RequestEcho
| Field | Type | Label | Description |
| message | string |
|
RequestExtendVote
Extends a vote with application-injected data
| Field | Type | Label | Description |
| hash | bytes | the hash of the block that this vote may be referring to |
|
| height | int64 | the height of the extended vote |
|
| time | google.protobuf.Timestamp | info of the block that this vote may be referring to |
|
| txs | bytes | repeated |
|
| proposed_last_commit | CommitInfo |
|
|
| misbehavior | Misbehavior | repeated |
|
| next_validators_hash | bytes |
|
|
| proposer_address | bytes | address of the public key of the original proposer of the block. |
RequestFinalizeBlock
| Field | Type | Label | Description |
| txs | bytes | repeated |
|
| decided_last_commit | CommitInfo |
|
|
| misbehavior | Misbehavior | repeated |
|
| hash | bytes | hash is the merkle root hash of the fields of the decided block. |
|
| height | int64 |
|
|
| time | google.protobuf.Timestamp |
|
|
| next_validators_hash | bytes |
|
|
| proposer_address | bytes | proposer_address is the address of the public key of the original proposer of the block. |
RequestFlush
RequestInfo
| Field | Type | Label | Description |
| version | string |
|
|
| block_version | uint64 |
|
|
| p2p_version | uint64 |
|
|
| abci_version | string |
|
RequestInitChain
| Field | Type | Label | Description |
| time | google.protobuf.Timestamp |
|
|
| chain_id | string |
|
|
| consensus_params | tendermint.types.ConsensusParams |
|
|
| validators | ValidatorUpdate | repeated |
|
| app_state_bytes | bytes |
|
|
| initial_height | int64 |
|
RequestListSnapshots
lists available snapshots
RequestLoadSnapshotChunk
loads a snapshot chunk
| Field | Type | Label | Description |
| height | uint64 |
|
|
| format | uint32 |
|
|
| chunk | uint32 |
|
RequestOfferSnapshot
offers a snapshot to the application
| Field | Type | Label | Description |
| snapshot | Snapshot | snapshot offered by peers |
|
| app_hash | bytes | light client-verified app hash for snapshot height |
RequestPrepareProposal
| Field | Type | Label | Description |
| max_tx_bytes | int64 | the modified transactions cannot exceed this size. |
|
| txs | bytes | repeated | txs is an array of transactions that will be included in a block, sent to the app for possible modifications. |
| local_last_commit | ExtendedCommitInfo |
|
|
| misbehavior | Misbehavior | repeated |
|
| height | int64 |
|
|
| time | google.protobuf.Timestamp |
|
|
| next_validators_hash | bytes |
|
|
| proposer_address | bytes | address of the public key of the validator proposing the block. |
RequestProcessProposal
| Field | Type | Label | Description |
| txs | bytes | repeated |
|
| proposed_last_commit | CommitInfo |
|
|
| misbehavior | Misbehavior | repeated |
|
| hash | bytes | hash is the merkle root hash of the fields of the proposed block. |
|
| height | int64 |
|
|
| time | google.protobuf.Timestamp |
|
|
| next_validators_hash | bytes |
|
|
| proposer_address | bytes | address of the public key of the original proposer of the block. |
RequestQuery
| Field | Type | Label | Description |
| data | bytes |
|
|
| path | string |
|
|
| height | int64 |
|
|
| prove | bool |
|
RequestVerifyVoteExtension
Verify the vote extension
| Field | Type | Label | Description |
| hash | bytes | the hash of the block that this received vote corresponds to |
|
| validator_address | bytes | the validator that signed the vote extension |
|
| height | int64 |
|
|
| vote_extension | bytes |
|
Response
| Field | Type | Label | Description |
| exception | ResponseException |
|
|
| echo | ResponseEcho |
|
|
| flush | ResponseFlush |
|
|
| info | ResponseInfo |
|
|
| init_chain | ResponseInitChain |
|
|
| query | ResponseQuery |
|
|
| check_tx | ResponseCheckTx |
|
|
| commit | ResponseCommit |
|
|
| list_snapshots | ResponseListSnapshots |
|
|
| offer_snapshot | ResponseOfferSnapshot |
|
|
| load_snapshot_chunk | ResponseLoadSnapshotChunk |
|
|
| apply_snapshot_chunk | ResponseApplySnapshotChunk |
|
|
| prepare_proposal | ResponsePrepareProposal |
|
|
| process_proposal | ResponseProcessProposal |
|
|
| extend_vote | ResponseExtendVote |
|
|
| verify_vote_extension | ResponseVerifyVoteExtension |
|
|
| finalize_block | ResponseFinalizeBlock |
|
ResponseApplySnapshotChunk
| Field | Type | Label | Description |
| result | ResponseApplySnapshotChunk.Result |
|
|
| refetch_chunks | uint32 | repeated | Chunks to refetch and reapply |
| reject_senders | string | repeated | Chunk senders to reject and ban |
ResponseCheckTx
| Field | Type | Label | Description |
| code | uint32 |
|
|
| data | bytes |
|
|
| log | string | nondeterministic |
|
| info | string | nondeterministic |
|
| gas_wanted | int64 |
|
|
| gas_used | int64 |
|
|
| events | Event | repeated |
|
| codespace | string |
|
ResponseCommit
| Field | Type | Label | Description |
| retain_height | int64 |
|
ResponseEcho
| Field | Type | Label | Description |
| message | string |
|
ResponseException
nondeterministic
| Field | Type | Label | Description |
| error | string |
|
ResponseExtendVote
| Field | Type | Label | Description |
| vote_extension | bytes |
|
ResponseFinalizeBlock
| Field | Type | Label | Description |
| events | Event | repeated | set of block events emmitted as part of executing the block |
| tx_results | ExecTxResult | repeated | the result of executing each transaction including the events the particular transction emitted. This should match the order of the transactions delivered in the block itself |
| validator_updates | ValidatorUpdate | repeated | a list of updates to the validator set. These will reflect the validator set at current height + 2. |
| consensus_param_updates | tendermint.types.ConsensusParams | updates to the consensus params, if any. |
|
| app_hash | bytes | app_hash is the hash of the applications' state which is used to confirm that execution of the transactions was deterministic. It is up to the application to decide which algorithm to use. |
ResponseFlush
ResponseInfo
| Field | Type | Label | Description |
| data | string |
|
|
| version | string |
|
|
| app_version | uint64 |
|
|
| last_block_height | int64 |
|
|
| last_block_app_hash | bytes |
|
ResponseInitChain
| Field | Type | Label | Description |
| consensus_params | tendermint.types.ConsensusParams |
|
|
| validators | ValidatorUpdate | repeated |
|
| app_hash | bytes |
|
ResponseListSnapshots
| Field | Type | Label | Description |
| snapshots | Snapshot | repeated |
|
ResponseLoadSnapshotChunk
| Field | Type | Label | Description |
| chunk | bytes |
|
ResponseOfferSnapshot
| Field | Type | Label | Description |
| result | ResponseOfferSnapshot.Result |
|
ResponsePrepareProposal
| Field | Type | Label | Description |
| txs | bytes | repeated |
|
ResponseProcessProposal
| Field | Type | Label | Description |
| status | ResponseProcessProposal.ProposalStatus |
|
ResponseQuery
| Field | Type | Label | Description |
| code | uint32 |
|
|
| log | string | bytes data = 2; // use "value" instead. nondeterministic |
|
| info | string | nondeterministic |
|
| index | int64 |
|
|
| key | bytes |
|
|
| value | bytes |
|
|
| proof_ops | tendermint.crypto.ProofOps |
|
|
| height | int64 |
|
|
| codespace | string |
|
ResponseVerifyVoteExtension
| Field | Type | Label | Description |
| status | ResponseVerifyVoteExtension.VerifyStatus |
|
Snapshot
| Field | Type | Label | Description |
| height | uint64 | The height at which the snapshot was taken |
|
| format | uint32 | The application-specific snapshot format |
|
| chunks | uint32 | Number of chunks in the snapshot |
|
| hash | bytes | Arbitrary snapshot hash, equal only if identical |
|
| metadata | bytes | Arbitrary application metadata |
TxResult
TxResult contains results of executing the transaction.
One usage is indexing transaction results.
| Field | Type | Label | Description |
| height | int64 |
|
|
| index | uint32 |
|
|
| tx | bytes |
|
|
| result | ExecTxResult |
|
Validator
| Field | Type | Label | Description |
| address | bytes | The first 20 bytes of SHA256(public key) |
|
| power | int64 | PubKey pub_key = 2 [(gogoproto.nullable)=false]; The voting power |
ValidatorUpdate
| Field | Type | Label | Description |
| pub_key | tendermint.crypto.PublicKey |
|
|
| power | int64 |
|
VoteInfo
| Field | Type | Label | Description |
| validator | Validator |
|
|
| block_id_flag | tendermint.types.BlockIDFlag |
|
CheckTxType
| Name | Number | Description |
| NEW | 0 | |
| RECHECK | 1 |
MisbehaviorType
| Name | Number | Description |
| UNKNOWN | 0 | |
| DUPLICATE_VOTE | 1 | |
| LIGHT_CLIENT_ATTACK | 2 |
ResponseApplySnapshotChunk.Result
| Name | Number | Description |
| UNKNOWN | 0 | Unknown result, abort all snapshot restoration |
| ACCEPT | 1 | Chunk successfully accepted |
| ABORT | 2 | Abort all snapshot restoration |
| RETRY | 3 | Retry chunk (combine with refetch and reject) |
| RETRY_SNAPSHOT | 4 | Retry snapshot (combine with refetch and reject) |
| REJECT_SNAPSHOT | 5 | Reject this snapshot, try others |
ResponseOfferSnapshot.Result
| Name | Number | Description |
| UNKNOWN | 0 | Unknown result, abort all snapshot restoration |
| ACCEPT | 1 | Snapshot accepted, apply chunks |
| ABORT | 2 | Abort all snapshot restoration |
| REJECT | 3 | Reject this specific snapshot, try others |
| REJECT_FORMAT | 4 | Reject all snapshots of this format, try others |
| REJECT_SENDER | 5 | Reject all snapshots from the sender(s), try others |
ResponseProcessProposal.ProposalStatus
| Name | Number | Description |
| UNKNOWN | 0 | |
| ACCEPT | 1 | |
| REJECT | 2 |
ResponseVerifyVoteExtension.VerifyStatus
| Name | Number | Description |
| UNKNOWN | 0 | |
| ACCEPT | 1 | |
| REJECT | 2 | Rejecting the vote extension will reject the entire precommit by the sender. Incorrectly implementing this thus has liveness implications as it may affect CometBFT's ability to receive 2/3+ valid votes to finalize the block. Honest nodes should never be rejected. |
ABCI
| Method Name | Request Type | Response Type | Description |
| Echo | RequestEcho | ResponseEcho | |
| Flush | RequestFlush | ResponseFlush | |
| Info | RequestInfo | ResponseInfo | |
| CheckTx | RequestCheckTx | ResponseCheckTx | |
| Query | RequestQuery | ResponseQuery | |
| Commit | RequestCommit | ResponseCommit | |
| InitChain | RequestInitChain | ResponseInitChain | |
| ListSnapshots | RequestListSnapshots | ResponseListSnapshots | |
| OfferSnapshot | RequestOfferSnapshot | ResponseOfferSnapshot | |
| LoadSnapshotChunk | RequestLoadSnapshotChunk | ResponseLoadSnapshotChunk | |
| ApplySnapshotChunk | RequestApplySnapshotChunk | ResponseApplySnapshotChunk | |
| PrepareProposal | RequestPrepareProposal | ResponsePrepareProposal | |
| ProcessProposal | RequestProcessProposal | ResponseProcessProposal | |
| ExtendVote | RequestExtendVote | ResponseExtendVote | |
| VerifyVoteExtension | RequestVerifyVoteExtension | ResponseVerifyVoteExtension | |
| FinalizeBlock | RequestFinalizeBlock | ResponseFinalizeBlock |
Scalar Value Types
| .proto Type | Notes | Python Type |
| double | float | |
| float | float | |
| int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int |
| int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int/long |
| uint32 | Uses variable-length encoding. | int/long |
| uint64 | Uses variable-length encoding. | int/long |
| sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int |
| sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int/long |
| fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | int |
| fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | int/long |
| sfixed32 | Always four bytes. | int |
| sfixed64 | Always eight bytes. | int/long |
| bool | boolean | |
| string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | str/unicode |
| bytes | May contain any arbitrary sequence of bytes. | str |