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.

48 lines
1.9 KiB

  1. # Tendermint Spec
  2. This repository contains specifications for the Tendermint protocol.
  3. There are currently two implementations of the Tendermint protocol,
  4. maintained by two separate-but-collaborative entities:
  5. One in [Go](https://github.com/tendermint/tendermint),
  6. maintained by Interchain GmbH,
  7. and one in [Rust](https://github.com/informalsystems/tendermint-rs),
  8. maintained by Informal Systems.
  9. ### Data Structures
  10. - [Encoding and Digests](./spec/core/encoding.md)
  11. - [Blockchain](./spec/core/data_structures.md)
  12. - [State](./spec/core/state.md)
  13. ### Consensus Protocol
  14. - [Consensus Algorithm](./spec/consensus/consensus.md)
  15. - [Creating a proposal](./spec/consensus/creating-proposal.md)
  16. - [Time](./spec/consensus/bft-time.md)
  17. - [Light-Client](./spec/consensus/light-client/README.md)
  18. ### P2P and Network Protocols
  19. - [The Base P2P Layer](./spec/p2p/node.md): multiplex the protocols ("reactors") on authenticated and encrypted TCP connections
  20. #### P2P Messages
  21. - [Peer Exchange (PEX)](./spec/p2p/messages/pex.md): gossip known peer addresses so peers can find each other
  22. - [Block Sync](./spec/p2p/messages/block-sync.md): gossip blocks so peers can catch up quickly
  23. - [Consensus](./spec/p2p/messages/consensus.md): gossip votes and block parts so new blocks can be committed
  24. - [Mempool](./spec/p2p/messages/mempool.md): gossip transactions so they get included in blocks
  25. - [Evidence](./spec/p2p/messages/evidence.md): sending invalid evidence will stop the peer
  26. ### ABCI
  27. - [ABCI](./spec/abci/README.md): Details about interactions between the
  28. application and consensus engine over ABCI
  29. ### RFC
  30. - [RFC](./rfc/README.md): RFCs describe proposals to change the spec.
  31. ### ProtoBuf
  32. - [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.