This repository contains specifications for the Tendermint protocol. For the pdf, see the latest release.
There are currently two implementations of the Tendermint protocol, maintained by two separate-but-collaborative entities: One in Go, maintained by Interchain GmbH, and one in Rust, maintained by Informal Systems.
There have been inadvertent divergences in the specs followed by the Go implementation and the Rust implementation respectively. However, we are working toward reconverging these specs into a single unified spec. Consequently, this repository is in a bit of a state of flux.
At the moment, the spec followed by the Go implementation (tendermint/tendermint) is in the spec directory, while the spec followed by the Rust implementation (informalsystems/tendermint-rs) is in the rust-spec directory. TLA+ specifications are also in the rust-spec directory.
Over time, these specs will converge in the spec directory. Once they have fully converged, we will version the spec moving forward.