Gossip Simulator

Click the Spread Gossip button below to simulate some number of nodes spreading gossip to a random number of nodes. A blue node is uninformed and has not received the gossip. When a node turns red, the gossip has been received and a link has been established between the sender. Click the Reload button to clear and reshuffle the network.

0

Nodes represent the total number of nodes on the network. The simulator defaults to 100.
Fanout represents the number of nodes a single gossiping node will reach out to.
Init represents the initial number of gossiping nodes when the network starts.
Edges, a read-only value that represents a single link between two gossiping nodes.

Broadcasting Blockchain Data

Within the Bitcoin Network, when a miner solves a block, they broadcast the solution via a gossip protocol. Gossip communication is similar to office workers spreading rumors. An initial group of workers share the latest gossip with a random set of uninformed workers. The uninformed can now spread the gossip themselves. After each gossip iteration, the number of individuals who have heard the rumor roughly doubles (though this doesn't account for gossiping twice to the same person). The simulator represents how this gossip is broadcasted within a network.

Performance

  • With a fanout equaling 1, it takes approximately O(log n) cycles for the gossip to reach all of the nodes in the network.

Additional Resources

For a deeper dive, I highly suggest reading the following: https://www.comp.nus.edu.sg/~ooiwt/papers/fanout-icdcs05-final.pdf