Files
tendermint/p2p
Erik Grinaker 50b8907581 p2p: clean up new Transport infrastructure (#6017)
This revises the new P2P `Transport` interface and does some preliminary code cleanups and simplifications.

The major change here is to add `Connection.Handshake()` for performing node handshakes (once the stream transport API is implemented, this can be done entirely independent of the transport).  This moves most of the handshaking logic into the `Router`, such as prevention of head-of-line blocking, validation of peer's `NodeInfo`, controlling timeouts, and so on. This significantly simplifies transports, completely removes the need for internal goroutines, and shares common logic across all transports. This also allows varying the handshake `NodeInfo` across peers, e.g. to vary `ListenAddr`. Similarly, connection filtering is also moved into the switch/router so that it can be shared between transports.
2021-01-30 10:51:22 +00:00
..
2021-01-28 13:47:24 +00:00
2020-10-13 10:22:53 +02:00
2021-01-08 15:32:11 +00:00
2021-01-04 11:25:20 +01:00
2021-01-06 11:53:18 -05:00
2021-01-06 11:53:18 -05:00
2021-01-04 11:25:20 +01:00
2021-01-04 11:25:20 +01:00
2021-01-08 15:32:11 +00:00
2020-02-07 12:53:28 +01:00
2021-01-06 11:53:18 -05:00
2021-01-21 14:18:27 +00:00

p2p

The p2p package provides an abstraction around peer-to-peer communication.

Docs:

  • Connection for details on how connections and multiplexing work
  • Peer for details on peer ID, handshakes, and peer exchange
  • Node for details about different types of nodes and how they should work
  • Pex for details on peer discovery and exchange
  • Config for details on some config option