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/params.proto
TopBlockParams
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 |
|
| time_iota_ms | int64 | Minimum time increment between consecutive blocks (in milliseconds) If the block header timestamp is ahead of the system clock, decrease this value. Not exposed to the application. |
ConsensusParams
ConsensusParams contains consensus critical parameters that determine the
validity of blocks.
| Field | Type | Label | Description |
| block | BlockParams |
|
|
| evidence | EvidenceParams |
|
|
| validator | ValidatorParams |
|
|
| version | VersionParams |
|
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_version | uint64 |
|
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/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. |
Header
Header defines the structure of a Tendermint 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, precommit, or commit 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 |
|
BlockIDFlag
BlockIdFlag indicates which BlcokID the signature is for
| Name | Number | Description |
| BLOCK_ID_FLAG_UNKNOWN | 0 | |
| BLOCK_ID_FLAG_ABSENT | 1 | |
| BLOCK_ID_FLAG_COMMIT | 2 | |
| BLOCK_ID_FLAG_NIL | 3 |
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 |
|
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 |