El algoritmo PlumTree en el protocolo Gossip de Solana
Glosario
INV (Inventario): Un mensaje enviado a los nodos en la red para indicar la disponibilidad de datos que cada nodo requiere.
GETDATA: Mensaje enviado a un nodo que consulta los datos especificados en el mensaje INV.
Árbol Abarcador: Un árbol abarcador de un grafo es un subconjunto del grafo que conecta todos sus vértices con el mínimo número de aristas sin formar ciclos.
Introducción
La tecnología blockchain está ganando gran relevancia como soporte para criptomonedas debido al crecimiento de los memecoins y el lanzamiento de nuevas criptodivisas. Sin embargo, un reto clave en las redes blockchain es la eficiente propagación de mensajes entre nodos, lo que conlleva un consumo de recursos de comunicación. En el protocolo de difusión tradicional, la latencia es un gran problema, ya que el nodo debe esperar al siguiente ciclo para transmitir un mensaje.
El algoritmo Plumtree fue diseñado para reducir la latencia y la redundancia en la transmisión de mensajes, especialmente en redes peer-to-peer y sistemas distribuidos donde es crucial la difusión rápida y confiable de mensajes. Lo logra identificando la ruta más corta para enviar el mensaje al siguiente nodo en el árbol abarcador. Esto permite que cada nodo participe en la retransmisión de mensajes sin depender de una fuente centralizada.
En este artículo exploramos la implementación del algoritmo Plumtree en la red Solana y su papel en aumentar la velocidad de propagación de mensajes. Además, comparamos Plumtree con GossipSub, un algoritmo de difusión epidémica basado en mensajes gossip utilizado en Ethereum.
Difusión en Solana
En Solana, la propagación de bloques se realiza mediante un método de difusión basada en gossip. Cuando un nodo recibe un nuevo bloque, envía un mensaje BROADCAST a otros nodos en la red, incluyendo información como el encabezado del bloque, datos de transacciones, cambios de estado y metadatos adicionales. Al recibir el mensaje BROADCAST, el nodo receptor verifica si ya tiene ese bloque en su historial. Si no lo tiene, envía una solicitud QUERY al nodo emisor para pedir los datos del bloque.
Cuando el nodo recibe los datos del bloque solicitado, los verifica y los añade a la red, evitando retransmitir datos de forma redundante a otros nodos.
Cómo funciona Plumtree
Plumtree es un método de difusión que combina enfoques basados en árboles y en gossip para reducir la redundancia y mantener una alta confiabilidad en la transmisión de mensajes. En un broadcast basado en árboles, se construye un árbol que conecta a todos los nodos participantes y los mensajes se transmiten únicamente a través de este árbol, reduciendo la redundancia.
Si el número de nodos aumenta o disminuye o si se produce una falla en la red, el árbol puede volverse incompleto y algunos nodos pueden no recibir el mensaje. Sin embargo, Plumtree combina este sistema con enlaces basados en gossip para gestionar fallos y mejorar la eficiencia en la difusión.
En un sistema basado en gossip, cuando un nodo intenta difundir un mensaje, selecciona aleatoriamente otros nodos para enviarlo. Los nodos receptores repiten este proceso, lo que aumenta la escalabilidad y la resistencia a fallos en la red.
Existen tres enfoques principales en la difusión basada en gossip:
- Difusión Eager Push: Una vez recibido un mensaje, este se envía inmediatamente a los nodos vecinos.
- Difusión Lazy Push: Un nodo recibe un mensaje y solo envía su identificador a nodos vecinos. Si un nodo aún no ha recibido el mensaje, envía una solicitud para obtenerlo.
- Pull: Un nodo que no ha recibido un mensaje consulta a sus nodos vecinos para obtenerlo.
Plumtree utiliza una combinación de Eager Push para enviar un pequeño conjunto de mensajes y Lazy Push para optimizar la transmisión.
Plumtree en la red Solana
Solana emplea un enfoque de comunicación peer-to-peer junto con un algoritmo basado en árboles inspirado en Plumtree, lo que permite una difusión eficiente de datos en la red sin depender de una fuente centralizada. Este método permite que los mensajes se propaguen en una estructura jerárquica, con nodos que interactúan directamente y transmiten información eficientemente.
Usando un árbol abarcador construido con el algoritmo Plumtree, Solana optimiza la forma en que se transmiten datos a lo largo de la red. En términos básicos, cada nodo comparte mensajes con sus vecinos directos, quienes a su vez propagan la información a través del árbol.
Diferencias entre Plumtree y GossipSub en Ethereum
El algoritmo Plumtree en Solana y GossipSub en Ethereum tienen diferencias clave en la forma en que manejan la propagación de datos:
- Solana utiliza un enfoque de difusión basado en árboles, donde los nodos están organizados jerárquicamente y el nodo padre se conecta con el nodo hijo. GossipSub, en cambio, utiliza superposiciones P2P basadas en temas, en las que los nodos se suscriben a temas específicos relacionados con las funciones de validación y comunicación dentro de la red Ethereum.
- Solana emplea una difusión epidémica que gestiona la redundancia al degradar nodos con rutas subóptimas de mensajes, mientras que GossipSub usa una difusión epidémica basada en conexiones aleatorias.
Conclusión
En este artículo examinamos el algoritmo Plumtree en el protocolo Gossip de Solana, resaltando su enfoque híbrido basado en árboles y gossip para la difusión eficiente de mensajes. Además, comparamos este método con GossipSub de Ethereum, destacando sus diferencias en la propagación de la información.
En Q2BSTUDIO, empresa especializada en desarrollo y servicios tecnológicos, nos mantenemos a la vanguardia en la exploración de soluciones innovadoras en blockchain. Nuestro equipo tiene experiencia en la implementación de algoritmos eficientes como Plumtree, optimizando así la infraestructura de redes distribuidas para mejorar el rendimiento y la escalabilidad de aplicaciones descentralizadas.