[p2p] gossip communication assumption

Hello,

The whitepaper says:

Tendermint Core doesn’t make any assumption about point-to-point connectivity, and functions for as long as the P2P network is weakly connected.

This puzzles me because the liveness proof in latest gossip needs the assumption on gossip communication (see page for the definition). I’d be grateful for a confirmation that the p2p level does satisfy the gossip communication assumption.
I would also be grateful for any pointer to the p2p documentation and/or code which would support this claim.

Thank you,
Lacramioara

Tendermint Core doesn’t make any assumption about point-to-point connectivity, and functions for as long as the P2P network is weakly connected.

We don’t make any assumptions about “point-to-point connectivity”, ie. we don’t assume any particular node is connected to any other particular node. The only assumption is that gossip works, so that a message sent by one correct node is “eventually” received by all other correct nodes. As far as we know, the p2p implementation does satisfy the gossip assumption, though we don’t have a strong proof (just lots of empirical results, including the Jepsen tests). You could look at the consensus/reactor.go for details on how the consensus messages are actually gossipped. There’s an english description in https://github.com/tendermint/spec/blob/master/spec/reactors/consensus/consensus-reactor.md but we’re also working on a more formal one.

Thank you, i appreciate it!