tendermint/types
Table of Contents
tendermint/types/block.proto
TopBlock
| Field | Type | Label | Description |
| header | Header |
|
|
| data | Data |
|
|
| evidence | EvidenceList |
|
|
| last_commit | Commit |
|
tendermint/types/evidence.proto
TopDuplicateVoteEvidence
DuplicateVoteEvidence contains evidence of a validator signed two conflicting votes.
| Field | Type | Label | Description |
| vote_a | Vote |
|
|
| vote_b | Vote |
|
|
| total_voting_power | int64 |
|
|
| validator_power | int64 |
|
|
| timestamp | google.protobuf.Timestamp |
|
Evidence
| Field | Type | Label | Description |
| duplicate_vote_evidence | DuplicateVoteEvidence |
|
|
| light_client_attack_evidence | LightClientAttackEvidence |
|
EvidenceList
| Field | Type | Label | Description |
| evidence | Evidence | repeated |
|
LightClientAttackEvidence
LightClientAttackEvidence contains evidence of a set of validators attempting to mislead a light client.
| Field | Type | Label | Description |
| conflicting_block | LightBlock |
|
|
| common_height | int64 |
|
|
| byzantine_validators | Validator | repeated |
|
| total_voting_power | int64 |
|
|
| timestamp | google.protobuf.Timestamp |
|
tendermint/types/params.proto
TopABCIParams
ABCIParams configure functionality specific to the Application Blockchain Interface.
| Field | Type | Label | Description |
| vote_extensions_enable_height | int64 | vote_extensions_enable_height configures the first height during which vote extensions will be enabled. During this specified height, and for all subsequent heights, precommit messages that do not contain valid extension data will be considered invalid. Prior to this height, vote extensions will not be used or accepted by validators on the network. Once enabled, vote extensions will be created by the application in ExtendVote, passed to the application for validation in VerifyVoteExtension and given to the application to use when proposing a block during PrepareProposal. |
BlockParams
BlockParams contains limits on the block size.
| Field | Type | Label | Description |
| max_bytes | int64 | Max block size, in bytes. Note: must be greater than 0 |
|
| max_gas | int64 | Max gas per block. Note: must be greater or equal to -1 |
ConsensusParams
ConsensusParams contains consensus critical parameters that determine the
validity of blocks.
| Field | Type | Label | Description |
| block | BlockParams |
|
|
| evidence | EvidenceParams |
|
|
| validator | ValidatorParams |
|
|
| version | VersionParams |
|
|
| abci | ABCIParams |
|
EvidenceParams
EvidenceParams determine how we handle evidence of malfeasance.
| Field | Type | Label | Description |
| max_age_num_blocks | int64 | Max age of evidence, in blocks. The basic formula for calculating this is: MaxAgeDuration / {average block time}. |
|
| max_age_duration | google.protobuf.Duration | Max age of evidence, in time. It should correspond with an app's "unbonding period" or other similar mechanism for handling [Nothing-At-Stake attacks](https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQ#what-is-the-nothing-at-stake-problem-and-how-can-it-be-fixed). |
|
| max_bytes | int64 | This sets the maximum size of total evidence in bytes that can be committed in a single block. and should fall comfortably under the max block bytes. Default is 1048576 or 1MB |
HashedParams
HashedParams is a subset of ConsensusParams.
It is hashed into the Header.ConsensusHash.
| Field | Type | Label | Description |
| block_max_bytes | int64 |
|
|
| block_max_gas | int64 |
|
ValidatorParams
ValidatorParams restrict the public key types validators can use.
NOTE: uses ABCI pubkey naming, not Amino names.
| Field | Type | Label | Description |
| pub_key_types | string | repeated |
|
VersionParams
VersionParams contains the ABCI application version.
| Field | Type | Label | Description |
| app | uint64 |
|
tendermint/types/types.proto
TopBlockID
BlockID
| Field | Type | Label | Description |
| hash | bytes |
|
|
| part_set_header | PartSetHeader |
|
BlockMeta
| Field | Type | Label | Description |
| block_id | BlockID |
|
|
| block_size | int64 |
|
|
| header | Header |
|
|
| num_txs | int64 |
|
Commit
Commit contains the evidence that a block was committed by a set of validators.
| Field | Type | Label | Description |
| height | int64 |
|
|
| round | int32 |
|
|
| block_id | BlockID |
|
|
| signatures | CommitSig | repeated |
|
CommitSig
CommitSig is a part of the Vote included in a Commit.
| Field | Type | Label | Description |
| block_id_flag | BlockIDFlag |
|
|
| validator_address | bytes |
|
|
| timestamp | google.protobuf.Timestamp |
|
|
| signature | bytes |
|
Data
Data contains the set of transactions included in the block
| Field | Type | Label | Description |
| txs | bytes | repeated | Txs that will be applied by state @ block.Height+1. NOTE: not all txs here are valid. We're just agreeing on the order first. This means that block.AppHash does not include these txs. |
ExtendedCommit
| Field | Type | Label | Description |
| height | int64 |
|
|
| round | int32 |
|
|
| block_id | BlockID |
|
|
| extended_signatures | ExtendedCommitSig | repeated |
|
ExtendedCommitSig
ExtendedCommitSig retains all the same fields as CommitSig but adds vote
extension-related fields. We use two signatures to ensure backwards compatibility.
That is the digest of the original signature is still the same in prior versions
| Field | Type | Label | Description |
| block_id_flag | BlockIDFlag |
|
|
| validator_address | bytes |
|
|
| timestamp | google.protobuf.Timestamp |
|
|
| signature | bytes |
|
|
| extension | bytes | Vote extension data |
|
| extension_signature | bytes | Vote extension signature |
Header
Header defines the structure of a block header.
| Field | Type | Label | Description |
| version | tendermint.version.Consensus | basic block info |
|
| chain_id | string |
|
|
| height | int64 |
|
|
| time | google.protobuf.Timestamp |
|
|
| last_block_id | BlockID | prev block info |
|
| last_commit_hash | bytes | hashes of block data commit from validators from the last block |
|
| data_hash | bytes | transactions |
|
| validators_hash | bytes | hashes from the app output from the prev block validators for the current block |
|
| next_validators_hash | bytes | validators for the next block |
|
| consensus_hash | bytes | consensus params for current block |
|
| app_hash | bytes | state after txs from the previous block |
|
| last_results_hash | bytes | root hash of all results from the txs from the previous block |
|
| evidence_hash | bytes | consensus info evidence included in the block |
|
| proposer_address | bytes | original proposer of the block |
LightBlock
| Field | Type | Label | Description |
| signed_header | SignedHeader |
|
|
| validator_set | ValidatorSet |
|
Part
| Field | Type | Label | Description |
| index | uint32 |
|
|
| bytes | bytes |
|
|
| proof | tendermint.crypto.Proof |
|
PartSetHeader
PartsetHeader
| Field | Type | Label | Description |
| total | uint32 |
|
|
| hash | bytes |
|
Proposal
| Field | Type | Label | Description |
| type | SignedMsgType |
|
|
| height | int64 |
|
|
| round | int32 |
|
|
| pol_round | int32 |
|
|
| block_id | BlockID |
|
|
| timestamp | google.protobuf.Timestamp |
|
|
| signature | bytes |
|
SignedHeader
| Field | Type | Label | Description |
| header | Header |
|
|
| commit | Commit |
|
TxProof
TxProof represents a Merkle proof of the presence of a transaction in the Merkle tree.
| Field | Type | Label | Description |
| root_hash | bytes |
|
|
| data | bytes |
|
|
| proof | tendermint.crypto.Proof |
|
Vote
Vote represents a prevote or precommit vote from validators for
consensus.
| Field | Type | Label | Description |
| type | SignedMsgType |
|
|
| height | int64 |
|
|
| round | int32 |
|
|
| block_id | BlockID | zero if vote is nil. |
|
| timestamp | google.protobuf.Timestamp |
|
|
| validator_address | bytes |
|
|
| validator_index | int32 |
|
|
| signature | bytes | Vote signature by the validator if they participated in consensus for the associated block. |
|
| extension | bytes | Vote extension provided by the application. Only valid for precommit messages. |
|
| extension_signature | bytes | Vote extension signature by the validator if they participated in consensus for the associated block. Only valid for precommit messages. |
SignedMsgType
SignedMsgType is a type of signed message in the consensus.
| Name | Number | Description |
| SIGNED_MSG_TYPE_UNKNOWN | 0 | |
| SIGNED_MSG_TYPE_PREVOTE | 1 | Votes |
| SIGNED_MSG_TYPE_PRECOMMIT | 2 | |
| SIGNED_MSG_TYPE_PROPOSAL | 32 | Proposals |
tendermint/types/validator.proto
TopSimpleValidator
| Field | Type | Label | Description |
| pub_key | tendermint.crypto.PublicKey |
|
|
| voting_power | int64 |
|
Validator
| Field | Type | Label | Description |
| address | bytes |
|
|
| pub_key | tendermint.crypto.PublicKey |
|
|
| voting_power | int64 |
|
|
| proposer_priority | int64 |
|
ValidatorSet
| Field | Type | Label | Description |
| validators | Validator | repeated |
|
| proposer | Validator |
|
|
| total_voting_power | int64 |
|
BlockIDFlag
BlockIdFlag indicates which BlockID the signature is for
| Name | Number | Description |
| BLOCK_ID_FLAG_UNKNOWN | 0 | indicates an error condition |
| BLOCK_ID_FLAG_ABSENT | 1 | the vote was not received |
| BLOCK_ID_FLAG_COMMIT | 2 | voted for the block that received the majority |
| BLOCK_ID_FLAG_NIL | 3 | voted for nil |
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 |