Glossário
Inv (inventário): Uma mensagem enviada aos nós na rede para representar a disponibilidade de dados que cada nó requer.
GetData: Esta é uma mensagem enviada a um nó que consulta os dados especificados no Inv mensagem.
Árvore de abrangência: A Árvore de abrangência de um gráfico é um subconjunto do gráfico que conecta todos os seus vértices com o número mínimo de arestas sem formar ciclos.
Introdução
O Blockchain está ganhando atenção maciça como apoio a criptomoedas devido ao rápido crescimento de memórias e ao célebre lançamento de criptomoedas. No entanto, um desafio -chave nas redes blockchain é a propagação eficiente das mensagens entre nós, o que leva ao consumo de recursos de comunicação. No protocolo de fofocas tradicional, um problema importante que está atormentando é o problema de latência – um nó deve aguardar o próximo ciclo transmitir uma mensagem.
O algoritmo Plumtree foi projetado para reduzir a latência e a redundância na transmissão de mensagens, particularmente em redes ponto a ponto e sistemas distribuídos, onde é importante a disseminação de mensagens confiáveis e rápidas. Pode conseguir isso encontrando o caminho mais curto para enviar a mensagem para o próximo nó no Árvore de abrangência. Ao fazer isso, cada nó participa do encaminhamento de mensagens sem depender de uma fonte central.
Este artigo investiga a implementação do algoritmo Plumtree na rede Solana e seu papel no aumento da velocidade da propagação de mensagens na rede. Além disso, uma comparação entre Plumtree e Gossipsub, um algoritmo de transmissão epidêmica baseada em fofocas usada no Ethereum.
Transmissão de Solana
Em Solana, um método de propagação de bloco baseado em fofocas é o seguinte: Quando um nó recebe um novo bloco, ele envia um TRANSMISSÃO mensagem para outros nós na rede. Esta transmissão inclui informações sobre o novo bloco, como cabeçalho de bloco, dados de transações, alterações de estado e outros metadados como dados compactados, etc. Ao receber o TRANSMISSÃO Mensagem, o nó de recepção verifica se já possui o bloco no histórico do Ledger. Quando os nós verificam seu histórico e não têm registro desse bloco, ele envia um CONSULTA Solicite de volta ao nó de transmissão, consultando os dados do bloco.
Quando o nó recebe os dados do bloco consultado, ele o verifica e o adiciona à rede. Isso garante que o nó não compartilhe os dados do bloco com todos os outros nó da rede repetidamente.
Algoritmo de Plumtree
Origem
A ameixa é um fruto das espécies de Prunus, Prunus domesticaum gênero de árvores que também inclui árvores de pêssego, cereja, nectarina, amêndoa e damasco. As ameixas têm muitos benefícios à saúde. Eles contêm muitos nutrientes, são ricos em antioxidantes, promovem a saúde óssea e ajudam a diminuir o açúcar no sangue. China e Romênia são os dois maiores produtores de ameixas.
As principais fontes de inspiração para o algoritmo Plumtree são as seguintes:
- O floro das ameixas no início da primavera.
- A transformação das flores polinizadas em ameixas.
- As ameixas caem antes da maturidade em 20 a 30% devido a várias razões ou doenças, como doenças causadas por vírus vegetais.
- As ameixas têm uma vida útil de cerca de 2 a 6 semanas, mesmo quando são armazenadas a 0 ° C.
O algoritmo de Plumtree implementa essas fontes de inspiração da seguinte forma: as posições das flores e as posições das ameixas são representadas como matrizes; a queda das ameixas antes da maturidade é representada por um Limiar da frutidade (Ft), e a vida útil das ameixas após serem coletadas é representada por um limiar de maturação (RT). Os dois limiares levam ao desenvolvimento de três tipos de equações para atualizar as posições das flores.
Como Plumtree funciona
A Plumtree é um método de transmissão que combina abordagens baseadas em árvores e de fofocas para reduzir a redundância, mantendo a alta confiabilidade da mensagem. Em uma transmissão baseada em árvores, cada nó transmite e melhora a eficiência, encaminhando mensagens apenas de maneira baseada em árvores. Ele também usa links baseados em fofocas entre nós para lidar adequadamente com falhas entre nós.
Em uma transmissão baseada em árvores, uma árvore composta por todos os nós dos participantes é construída e as mensagens são transmitidas apenas ao longo da árvore, o que reduz a redundância das mensagens. No entanto, se o número de nós aumentar ou diminuir ou se ocorrer uma falha de rede, a árvore ficará incompleta e uma mensagem poderá não atingir todos os nós. Por exemplo, o bloco é transmitido e um Árvore de abrangência é construído usando o algoritmo Plumtree. Nas transmissões subsequentes, a árvore construída é usada. Se a troca de Inv e getData As mensagens são omitidas, os blocos não são enviados diretamente para os nós filhos da árvore e, portanto, falham.
Na transmissão baseada em fofocas, quando um nó tenta transmitir uma mensagem, o nó seleciona aleatoriamente nós para enviar a mensagem. O nó que recebe a mensagem pela primeira vez repete esse processo para enviar a mensagem, que não apenas fornece alta escalabilidade, mas também torna o sistema mais resistente a inadequações de rede e falhas de nó.
Por exemplo, quando um nó transmite uma mensagem, ele escolhe aleatoriamente um nó para enviá -lo. O nó que recebe a mensagem pela primeira vez repete esse processo. Essa propriedade permite que o sistema responda de maneira flexível às falhas de rede e aumenta ou diminui no número de nós.
As abordagens a seguir são utilizadas na transmissão baseada em fofocas para disseminar dados:
- Push ansioso: Nesta abordagem, uma vez recebida uma mensagem, ela é enviada aos nós vizinhos imediatamente.
- Push preguiçoso: Nesta abordagem, quando um nó recebe uma mensagem, ele envia o identificador de mensagem para os nós vizinhos. Se o nó não recebeu a mensagem, ele faz uma solicitação de tração aos nós vizinhos.
- Puxar: Uma vez que um nó não recebe uma mensagem, ele faz uma consulta aos nós vizinhos –puxar nas mensagens recebidas recentemente para atualizar seu estado com essa mensagem específica.
Plumtree usa uma combinação de um mecanismo de empurrão ansioso para enviar um pequeno número de mensagens e um mecanismo de pressão preguiçoso para ajudar a transmissão.
Plumtree na rede Solana
A Solana utiliza uma abordagem de comunicação ponto a ponto combinada com um algoritmo inspirado na árvore de Plumtree, permitindo uma disseminação eficiente de dados em toda a rede de nós sem depender de uma fonte central. Essa estrutura permite que as mensagens dentro da rede sejam disseminadas hierarquicamente, com os nós interagindo diretamente e fazendo com que cada nó na rede opere autonomamente na retransmissão de mensagens para o nó subsequente na árvore.
Uma estrutura de árvore de abrangência é construída usando o algoritmo Plumtree para os nós na rede Solana, permitindo uma abordagem mais escalável para transmitir informações em toda a rede. Em termos básicos, todo nó compartilha mensagens com seus vizinhos diretos, que, por sua vez, propagam as informações em toda a árvore de extensão.
Diferenças entre o algoritmo Plumtree e Gossipsub no Ethereum
As diferenças entre o algoritmo Plumtree e o Gossipsub usadas para transmissão de informações em Solana e Ethereum, respectivamente, incluem:
- O PTA baseado em árvore de Solana usa um transmissão baseada em árvores Abordagem em que os nós são conectados de maneira hierárquica, onde o nó pai está conectado ao nó filho. O foco está em criar um caminho de roteamento ideal ao longo do tempo através do manuseio de duplicação de mensagens, enquanto o Gossipsub utiliza sobreposições de P2P baseadas em tópicosonde os nós assinam tópicos específicos relacionados às tarefas e comunicação do validador na rede Ethereum. Essas sobreposições otimizam para encontrar o caminho mais curto para disseminação de mensagens.
- PTA baseado em árvore de solana usa transmissão epidêmica Mas se concentra em lidar transmissão epidêmica aleatória.
Embrulhando
Neste artigo, examinamos o algoritmo de Plumtree no protocolo de fofocas de Solana, destacando sua abordagem baseada em árvores e fofocas para a disseminação eficiente de mensagens. Também o comparamos com os fofocos do Ethereum, observando suas diferenças.