Messages between validator nodes to do the polka
I have a question concerning the number of messages sent between the validators of a Tendermint system: See: https://tendermint.com/docs/introduction/what-is-tendermint.html#consensus-overview As far as I am aware, the phases of a block creation cycle are: Propose, Prevote, Precommit and Commit See: https://tendermint.com/docs/spec/p2p/connection.html#mconnection The P2P messaging is organised in unique channels between the peers and incoming messages are processed by the respective reactor. This means that for a block creation cycle the following messages are passed between N nodes: Proposal: Proposer: N - 1 messages containing the proposed block hash Prevote: Per validator: N - 1 messages containing the prevote Total: N \cdot (N - 1) messages containing prevotes Precommit: Per validator: N - 1 messages containing precommit Total: N \cdot (N - 1) messages containing precommits Commit: No messages are necessary to confirm commit as the requirements for a valid commit are defined by the protocol. In total this would yield (2 N + 1) \cdot (N - 1) --> 2 \cdot N^2 - N - 1 So in a 10 validator system we require 2 \cdot 10^2 - 10 - 1 = 189 messages.…
Excerpt (1194 of 1598 characters). Read the whole post on the forum ↗
Is N the number of peers you are connected to or the number of validators?
Also we don’t necessarily send every message to every peer. Peers might tell us, “hey I have this vote so don’t send it to me”.
There’s more detail here: https://tendermint.com/docs/spec/reactors/consensus/consensus-reactor.html
And there’s an even better description / formalization in progress