Glossari
INV (Inventari): Un missatge enviat als nodes de la xarxa per indicar la disponibilitat de dades que cada node requereix.
GETDATA: Missatge enviat a un node que consulta les dades especificades al missatge INV.
Arbre Abastador: Un arbre abastador d'un graf és un subconjunt del graf que connecta tots els seus vèrtexs amb el mínim nombre d'arestes sense formar cicles.
Introducció
La tecnologia blockchain està guanyant gran rellevància com a suport per a criptomonedes a causa del creixement dels memecoins i el llançament de noves criptodivises. No obstant això, un repte clau a les xarxes blockchain és l'eficient propagació de missatges entre nodes, cosa que comporta un consum de recursos de comunicació. Al protocol de difusió tradicional, la latència és un gran problema, ja que el node ha d'esperar al següent cicle per transmetre un missatge.
L'algoritme Plumtree va ser dissenyat per reduir la latència i la redundància en la transmissió de missatges, especialment en xarxes peer-to-peer i sistemes distribuïts on és crucial la difusió ràpida i fiable de missatges. Ho aconsegueix identificant la ruta més curta per enviar el missatge al següent node a l'arbre abastador. Això permet que cada node participi en la retransmissió de missatges sense dependre d'una font centralitzada.
En aquest article explorem la implementació de l'algoritme Plumtree a la xarxa Solana i el seu paper en augmentar la velocitat de propagació de missatges. A més, comparem Plumtree amb GossipSub, un algoritme de difusió epidèmica basat en missatges gossip utilitzat a Ethereum.
Difusió a Solana
A Solana, la propagació de blocs es realitza mitjançant un mètode de difusió basada en gossip. Quan un node rep un bloc nou, envia un missatge BROADCAST a altres nodes de la xarxa, incloent informació com la capçalera del bloc, dades de transaccions, canvis d'estat i metadades addicionals. En rebre el missatge BROADCAST, el node receptor verifica si ja té aquest bloc al seu historial. Si no el té, envia una sol·licitud QUERY al node emissor per demanar les dades del bloc.
Quan el node rep les dades del bloc sol·licitat, les verifica i les afegeix a la xarxa, evitant retransmetre dades de forma redundant a altres nodes.
Com funciona Plumtree
Plumtree és un mètode de difusió que combina enfocaments basats en arbres i en gossip per reduir la redundància i mantenir una alta fiabilitat en la transmissió de missatges. En un broadcast basat en arbres, es construeix un arbre que connecta tots els nodes participants i els missatges es transmeten únicament a través d'aquest arbre, reduint la redundància.
Si el nombre de nodes augmenta o disminueix o si es produeix una fallada a la xarxa, l'arbre pot tornar-se incomplet i alguns nodes poden no rebre el missatge. No obstant això, Plumtree combina aquest sistema amb enllaços basats en gossip per gestionar fallades i millorar l'eficiència en la difusió.
En un sistema basat en gossip, quan un node intenta difondre un missatge, selecciona aleatòriament altres nodes per enviar-lo. Els nodes receptors repeteixen aquest procés, cosa que augmenta l'escalabilitat i la resistència a fallades a la xarxa.
Hi ha tres enfocaments principals en la difusió basada en gossip:
- Difusió Eager Push: Un cop rebut un missatge, aquest s'envia immediatament als nodes veïns.
- Difusió Lazy Push: Un node rep un missatge i només n'envia l'identificador a nodes veïns. Si un node encara no ha rebut el missatge, envia una sol·licitud per obtenir-lo.
- Pull: Un node que no ha rebut un missatge consulta els seus nodes veïns per obtenir-lo.
Plumtree utilitza una combinació d'Eager Push per enviar un petit conjunt de missatges i Lazy Push per optimitzar la transmissió.
Plumtree a la xarxa Solana
Solana empra un enfocament de comunicació peer-to-peer juntament amb un algoritme basat en arbres inspirat en Plumtree, cosa que permet una difusió eficient de dades a la xarxa sense dependre d'una font centralitzada. Aquest mètode permet que els missatges es propaguin en una estructura jeràrquica, amb nodes que interactuen directament i transmeten informació eficientment.
Usant un arbre abastador construït amb l'algoritme Plumtree, Solana optimitza la forma en què es transmeten dades al llarg de la xarxa. En termes bàsics, cada node comparteix missatges amb els seus veïns directes, que al seu torn propaguen la informació a través de l'arbre.
Diferències entre Plumtree i GossipSub a Ethereum
L'algoritme Plumtree a Solana i GossipSub a Ethereum tenen diferències clau en la forma en què gestionen la propagació de dades:
- Solana utilitza un enfocament de difusió basat en arbres, on els nodes estan organitzats jeràrquicament i el node pare es connecta amb el node fill. GossipSub, en canvi, utilitza superposicions P2P basades en temes, en les quals els nodes se subscriuen a temes específics relacionats amb les funcions de validació i comunicació dins la xarxa Ethereum.
- Solana empra una difusió epidèmica que gestiona la redundància en degradar nodes amb rutes subòptimes de missatges, mentre que GossipSub usa una difusió epidèmica basada en connexions aleatòries.
Conclusió
En aquest article examinem l'algoritme Plumtree al protocol Gossip de Solana, ressaltant el seu enfocament híbrid basat en arbres i gossip per a la difusió eficient de missatges. A més, comparem aquest mètode amb GossipSub d'Ethereum, destacant les seves diferències en la propagació de la informació.
A Q2BSTUDIO, empresa especialitzada en desenvolupament i serveis tecnològics, ens mantenim a l'avantguarda en l'exploració de solucions innovadores en blockchain. El nostre equip té experiència en la implementació d'algoritmes eficients com Plumtree, optimitzant així la infraestructura de xarxes distribuïdes per millorar el rendiment i l'escalabilitat d'aplicacions descentralitzades.





