-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Closed
Milestone
Description
This summarizes the following issues:
- Include consensus settings in block hash #739
- Add version string to block header #495
- Updates to Blocks and ABCI #338
- Flag DeliverTx invalid txs in block header #922
We want to make the following changes:
Tx Results
- add
LastResultsHash data.Bytesto the header - It should be the merkle root of the
{code, data}of the results from the previous block. - add extra methods to the
BlockStorefor storing all the results for a given block. - Then, to prove a result, we can make one call to the blockstore to load the BlockResults and easily compute the merkle proof
- Expose modifications to RPC to make it easy for users to see which transactions in a block were invalid
Note this means the invalid txs are not accessible directly in the header, they need to be queried from the RPC, but the result of the query is verifiable using the merkle root in the header
Consensus Params
- add
ConsensusParamsHash data.Bytesto the header - allow ConsensusParamsChanges to be returned in ResponseEndBlock (Allow ConsensusParams to be updated by EndBlock #937)
Note this functions similar to the validator set itself: the hash is always in the header, but the contents are only stored in the State, and changes are propagated via ResponseEndBlock
TotalTx
- add
TotalTx int64to the header. This is the total number of txs in the blockchain
It's a useful thing to easily be able to know how many transactions have been sent and also provides every transaction a global integer index
Versioning
- add
TendermintVersion stringto the header - contains the Tendermint version - add
AppVersion stringto the header - contains the App version - when serializing a block, prefix the go-wire encoding with a version byte. This byte can later be used to determine which data structure we should be deserializing into
Evidence
- add
EvidenceHashto header - but see the open PR that does this (track evidence, include in block #592)
Reactions are currently unavailable