Byzantine-Fault Tolerant State Machine Replication. Or Blockchain, for short.
Branch | Tests | Coverage | Linting |
---|---|---|---|
master |
Tenderdash is a Byzantine Fault Tolerant (BFT) middleware that takes a state transition machine - written in any programming language - and securely replicates it on many machines.
Tenderdash started as a fork of the Tendermint Core project and has been used in public environments such as the Cosmos Network. Although based on Tendermint, Tenderdash differs from Tendermint through its use of Dash's long-living masternode quorums (LLMQs) to support threshold signatures, quorum-based voting, and dynamic validator set rotation. These enhancements to support rapid transaction finality and maintain strong security guarantees make Tenderdash ideal for Dash Platform’s needs.
For Tendermint protocol details, refer to the Tendermint Specification. For a detailed analysis of the consensus protocol, including safety and liveness proofs, read the Tendermint paper, "The latest gossip on BFT consensus". Tendermint documentation can be found on docs.tendermint.com.
Please do not depend on master as your production branch. Use the binaries provided on the GitHub releases page instead.
See the install instructions. Make sure to meet the minimum requirements if installing from source.
Requirement | Notes |
---|---|
Go version | Go1.23 or higher |
Tenderdash uses Semantic Versioning to determine when and how the version changes.
The Tenderdash API includes all publicly exposed types, functions, and methods in non-internal Go packages as well as the types and methods accessible via the RPC interface. Breaking changes to these public APIs will be documented in the CHANGELOG.
Because we are a small core team, we only ship patch updates, including security updates, to the most recent minor release and the second-most recent minor release. Consequently, we strongly recommend keeping Tenderdash up-to-date.
- The latest gossip on BFT consensus
- Master's Thesis on Tendermint
- Original Whitepaper: "Tendermint: Consensus Without Mining"
Before contributing to the project, please take a look at the contributing guidelines and the style guide. You may also find it helpful to read the Tendermint specifications, and familiarize yourself with the Architectural Decision Records (ADRs) and Request For Comments (RFCs).
Tenderdash is maintained by Dash Core Group. If you'd like to work full-time on Tenderdash, see our Jobs page.