mirror of
https://github.com/tendermint/tendermint.git
synced 2026-01-10 06:57:24 +00:00
0dc5d4df07a5adf071770c8e3c09d3f7b86509ed
* ABCI++ RFC This commit adds an RFC for ABCI++, which is a collection of three new phases of communication between the consensus engine and the application. Co-authored-by: Sunny Aggarwal <sunnya97@protonmail.ch> * Fix bugs pointed out by @liamsi * Update rfc/004-abci++.md Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Fix markdown lints * Update rfc/004-abci++.md Co-authored-by: Ismail Khoffi <Ismail.Khoffi@gmail.com> * Update rfc/004-abci++.md Co-authored-by: Tess Rinearson <tess.rinearson@gmail.com> * Update rfc/004-abci++.md Co-authored-by: Tess Rinearson <tess.rinearson@gmail.com> * Add information about the rename in the context section * Bold RFC * Add example for self-authenticating vote data * More exposition of the term IPC * Update pros / negatives * Fix sentence fragment * Add desc for no-ops Co-authored-by: Sunny Aggarwal <sunnya97@protonmail.ch> Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com> Co-authored-by: Ismail Khoffi <Ismail.Khoffi@gmail.com> Co-authored-by: Tess Rinearson <tess.rinearson@gmail.com>
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
RFC
- RFC: RFCs describe proposals to change the spec.
ProtoBuf
- Proto: The data structures of the Tendermint protocol are located in the
protodirectory. These specify P2P messages that each implementation should follow to be compatible.
Description
Languages
Go
85.9%
TeX
7.2%
TLA
4.9%
Shell
0.6%
Python
0.5%
Other
0.8%