You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Sergio Mena 81be4d0d14 Included extra parameter in `FinalizeBlock` in an attempt to include https://github.com/tendermint/tendermint/issues/1909 in this spec 3 years ago
.github Attempt to fix the markdown link checker. (#387) 3 years ago
ivy-proofs Add C++ code generation and test scenario (#310) 3 years ago
proto Update build image workflow. (#361) 3 years ago
rfc RFC006: Semantic Versioning (#365) 3 years ago
rust-spec Clean up lint failures for Markdown files (#367) 3 years ago
spec Included extra parameter in `FinalizeBlock` in an attempt to include https://github.com/tendermint/tendermint/issues/1909 in this spec 3 years ago
third_party/proto/gogoproto update proto generation and testing pipelines (#358) 3 years ago
.clang-format update proto generation and testing pipelines (#358) 3 years ago
.gitignore update proto generation and testing pipelines (#358) 3 years ago
.markdownlint.yml lint: fix lint errors (#301) 4 years ago
CHANGELOG.md rpc: clarify timestamps (#304) 4 years ago
Makefile build: Update the builder image location. (#364) 3 years ago
README.md ABCI++: Major refactor of spec's structure. Addressed Josef's comments. Merged ABCI's methods and data structs that didn't change. Added introductory paragraphs 3 years ago
buf.gen.yaml update proto generation and testing pipelines (#358) 3 years ago
buf.yaml update proto generation and testing pipelines (#358) 3 years ago

README.md

Tendermint Spec

This repository contains specifications for the Tendermint protocol.

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.

Data Structures

Consensus Protocol

P2P and Network Protocols

  • The Base P2P Layer: multiplex the protocols ("reactors") on authenticated and encrypted TCP connections

P2P Messages

  • Peer Exchange (PEX): gossip known peer addresses so peers can find each other
  • Block Sync: gossip blocks so peers can catch up quickly
  • Consensus: gossip votes and block parts so new blocks can be committed
  • Mempool: gossip transactions so they get included in blocks
  • Evidence: sending invalid evidence will stop the peer

ABCI

  • ABCI: Details about interactions between the application and consensus engine over ABCI

ABCI++

  • ABCI++: Specification of interactions between the application and consensus engine over ABCI++

RFC

  • RFC: RFCs describe proposals to change the spec.

ProtoBuf

  • Proto: The data structures of the Tendermint protocol are located in the proto directory. These specify P2P messages that each implementation should follow to be compatible.