Glossary
INV (Inventory): A message sent to nodes in the network to indicate the availability of data that each node requires.
GETDATA: Message sent to a node requesting the data specified in the INV message.
Spanning Tree: A spanning tree of a graph is a subset of the graph that connects all its vertices with the minimum number of edges without forming cycles.
Introduction
Blockchain technology is gaining significant relevance as a support for cryptocurrencies due to the growth of memecoins and the launch of new digital currencies. However, a key challenge in blockchain networks is the efficient propagation of messages between nodes, which entails communication resource consumption. In the traditional broadcast protocol, latency is a major issue, as the node must wait for the next cycle to transmit a message.
The Plumtree algorithm was designed to reduce latency and redundancy in message transmission, especially in peer-to-peer networks and distributed systems where fast and reliable message dissemination is crucial. It achieves this by identifying the shortest path to send the message to the next node in the spanning tree. This allows each node to participate in message retransmission without relying on a centralized source.
In this article, we explore the implementation of the Plumtree algorithm in the Solana network and its role in increasing message propagation speed. Additionally, we compare Plumtree with GossipSub, an epidemic broadcast algorithm based on gossip messages used in Ethereum.
Broadcast in Solana
In Solana, block propagation is carried out using a gossip-based broadcast method. When a node receives a new block, it sends a BROADCAST message to other nodes in the network, including information such as the block header, transaction data, state changes, and additional metadata. Upon receiving the BROADCAST message, the receiving node checks if it already has that block in its history. If it does not, it sends a QUERY request to the sending node to request the block data.
When the node receives the requested block data, it verifies it and adds it to the network, avoiding redundant retransmission of data to other nodes.
How Plumtree Works
Plumtree is a broadcast method that combines tree-based and gossip-based approaches to reduce redundancy and maintain high reliability in message transmission. In a tree-based broadcast, a tree is built connecting all participating nodes, and messages are transmitted only through this tree, reducing redundancy.
If the number of nodes increases or decreases, or if a network failure occurs, the tree may become incomplete and some nodes may not receive the message. However, Plumtree combines this system with gossip-based links to manage failures and improve broadcast efficiency.
In a gossip-based system, when a node attempts to disseminate a message, it randomly selects other nodes to send it to. The receiving nodes repeat this process, increasing scalability and fault tolerance in the network.
There are three main approaches in gossip-based broadcast:
- Eager Push Broadcast: Once a message is received, it is immediately sent to neighboring nodes.
- Lazy Push Broadcast: A node receives a message and only sends its identifier to neighboring nodes. If a node has not yet received the message, it sends a request to obtain it.
- Pull: A node that has not received a message queries its neighboring nodes to obtain it.
Plumtree uses a combination of Eager Push to send a small set of messages and Lazy Push to optimize transmission.
Plumtree in the Solana Network
Solana employs a peer-to-peer communication approach along with a tree-based algorithm inspired by Plumtree, enabling efficient data dissemination across the network without relying on a centralized source. This method allows messages to propagate in a hierarchical structure, with nodes interacting directly and transmitting information efficiently.
Using a spanning tree built with the Plumtree algorithm, Solana optimizes the way data is transmitted across the network. In basic terms, each node shares messages with its direct neighbors, who in turn propagate the information through the tree.
Differences Between Plumtree and GossipSub in Ethereum
The Plumtree algorithm in Solana and GossipSub in Ethereum have key differences in how they handle data propagation:
- Solana uses a tree-based broadcast approach, where nodes are organized hierarchically and the parent node connects to the child node. GossipSub, on the other hand, uses topic-based P2P overlays, where nodes subscribe to specific topics related to validation and communication functions within the Ethereum network.
- Solana employs epidemic broadcast that manages redundancy by degrading nodes with suboptimal message paths, while GossipSub uses epidemic broadcast based on random connections.
Conclusion
In this article, we examined the Plumtree algorithm in Solana's Gossip protocol, highlighting its hybrid tree-based and gossip approach for efficient message dissemination. Additionally, we compared this method with Ethereum's GossipSub, emphasizing their differences in information propagation.
At Q2BSTUDIO, a company specialized in development and technology services, we remain at the forefront of exploring innovative blockchain solutions. Our team has experience implementing efficient algorithms like Plumtree, thereby optimizing distributed network infrastructure to improve the performance and scalability of decentralized applications.





