mirror of
https://github.com/tendermint/tendermint.git
synced 2026-02-07 04:20:44 +00:00
49 lines
1.9 KiB
Markdown
49 lines
1.9 KiB
Markdown
# 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](https://github.com/tendermint/tendermint),
|
|
maintained by Interchain GmbH,
|
|
and one in [Rust](https://github.com/informalsystems/tendermint-rs),
|
|
maintained by Informal Systems.
|
|
|
|
### Data Structures
|
|
|
|
- [Encoding and Digests](./spec/core/encoding.md)
|
|
- [Blockchain](./spec/core/data_structures.md)
|
|
- [State](./spec/core/state.md)
|
|
|
|
### Consensus Protocol
|
|
|
|
- [Consensus Algorithm](./spec/consensus/consensus.md)
|
|
- [Creating a proposal](./spec/consensus/creating-proposal.md)
|
|
- [Time](./spec/consensus/bft-time.md)
|
|
- [Light-Client](./spec/consensus/light-client/README.md)
|
|
|
|
### P2P and Network Protocols
|
|
|
|
- [The Base P2P Layer](./spec/p2p/node.md): multiplex the protocols ("reactors") on authenticated and encrypted TCP connections
|
|
|
|
#### P2P Messages
|
|
|
|
- [Peer Exchange (PEX)](./spec/p2p/messages/pex.md): gossip known peer addresses so peers can find each other
|
|
- [Block Sync](./spec/p2p/messages/block-sync.md): gossip blocks so peers can catch up quickly
|
|
- [Consensus](./spec/p2p/messages/consensus.md): gossip votes and block parts so new blocks can be committed
|
|
- [Mempool](./spec/p2p/messages/mempool.md): gossip transactions so they get included in blocks
|
|
- [Evidence](./spec/p2p/messages/evidence.md): sending invalid evidence will stop the peer
|
|
|
|
### ABCI
|
|
|
|
- [ABCI](./spec/abci/README.md): Details about interactions between the
|
|
application and consensus engine over ABCI
|
|
|
|
### RFC
|
|
|
|
- [RFC](./rfc/README.md): RFCs describe proposals to change the spec.
|
|
|
|
### ProtoBuf
|
|
|
|
- [Proto](./proto/README.md): 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.
|