Tendermint Roadmap
This is an estimate of what we will be working on in Tendermint over the coming months.
It is in the same style as our CHANGELOG
How these changes will be rolled out in terms of versions and releases can be better tracked on Github
Please note that Tendermint is not yet production ready;
it is pre-v1.0.0 and we make backwards incompatible changes with each minor version release.
If you require more stability in the near term, please get in touch.
BREAKING CHANGES:
- Add more fields to the Header: NextValidatorSet, ResultsHash, EvidenceHash
- Pass evidence/voteInfo through ABCI
- Upgrade the consensus to make more real-time use of evidence during voting;
instead of +2/3 precommits for a block, a Commit becomes the entire
JSet
.
While the commit size may grow unbounded in size, it makes a fork immediately slash a +1/3 Byzantine subset of validators.
- Avoid exposing empty blocks as a first-class citizen of the blockchain
- Use a more advanced logging system
FEATURES:
- Use the chain as its own CA for nodes and validators
- Tooling to run multiple blockchains/apps, possibly in a single process
- State syncing (without transaction replay)
- Transaction indexing and improved support for querying history and state
- Add authentication and rate-limitting to the RPC
IMPROVEMENTS:
- Better Tendermint CLI
- Improve subtleties around mempool caching and logic
- Consensus optimizations:
- cache block parts for faster agreement after round changes
- Better testing of the consensus state machine (ie. use a DSL)
- Auto compiled serialization/deserialization code instead of go-wire reflection
BUG FIXES:
- Graceful handling/recovery for apps that have non-determinism or fail to halt
- Graceful handling/recovery for violations of safety, or liveness