# Messages between validator nodes to do the polka

**URL:** <https://forum.cosmos.network/t/messages-between-validator-nodes-to-do-the-polka/2292>\
**Category:** Tendermint\
**Created:** [June 12, 2019, 11:09am UTC](https://forum.cosmos.network/t/messages-between-validator-nodes-to-do-the-polka/2292 "2019-06-12T11:09:18Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![ameeuw](https://avatars.discourse-cdn.com/v4/letter/a/dec6dc/32.png) [@ameeuw](https://forum.cosmos.network/u/ameeuw)\
**Post date:** [June 12, 2019, 11:09am UTC](https://forum.cosmos.network/t/messages-between-validator-nodes-to-do-the-polka/2292/1 "2019-06-12T11:09:18Z")

</div>

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](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](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.

First of all my question is: Is this correct?

And if it is: Could multiple validators “subscribe” to a single channel to enable a broadcast message type, which would reduce the number of messages to 2 \cdot N + 1 as each node just has to broadcast their prevote and precommit messages only once.

Maybe I am totally off with this, but I would appreciate any clarification or points to read up on it 😊

---

<div class="post-metadata">

**Author:** ![ebuchman](https://yyz1.discourse-cdn.com/flex031/user_avatar/forum.cosmos.network/ebuchman/32/6645_2.png) [@ebuchman](https://forum.cosmos.network/u/ebuchman)\
**Post date:** [June 21, 2019, 8:47pm UTC](https://forum.cosmos.network/t/messages-between-validator-nodes-to-do-the-polka/2292/2 "2019-06-21T20:47:18Z")

</div>

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](https://tendermint.com/docs/spec/reactors/consensus/consensus-reactor.html)

And there’s an even better description / formalization in progress
