Lançamento do Shardeum: uma conquista inovadora

Imagem gerada por IA

Na segunda-feira, 27 de janeiro de 2024, ocorreu um evento inovador no mundo da web3 que pode ser comparado ao feito histórico de uma espaçonave retornar perfeitamente à sua plataforma de lançamento após sua primeira missão de teste de voo. Neste cenário extraordinário, a Shardeum não só enfrentou desafios difíceis, mas também saiu vitoriosa, com a sua resiliência de rede marcando a primeira vez que uma rede de fragmentos pôde se auto-curar no domínio da tecnologia de contabilidade distribuída.

Assim como uma viagem de nave espacial envolve planejamento meticuloso, engenharia de precisão e execução perfeita de manobras complexas, a restauração da betanet Sphinx de Shardeum, que sofreu um acidente crítico, exigiu um nível igual de domínio tecnológico e inovação. A capacidade de persistir todos os dados em uma rede, especialmente aquela que opera usando fragmentação dinâmica de estado, é inovadora.

Ao embarcarmos nesta exploração, não apenas celebramos o marco histórico do Shardeum, mas também o reconhecemos como um divisor de águas na evolução da tecnologia web3 — um salto que poderia redefinir os limites da resiliência da rede de TI e da integridade dos dados.

A primeira rede Shard a recuperar e reter dados de forma independente 

Manter e restaurar dinamicamente uma rede de fragmentos, como o Shardeum, inclui um espectro de desafios técnicos complexos que a diferenciam das redes blockchain tradicionais, como Bitcoin ou Ethereum. Em um ambiente de shard expresso dinamicamente com escalonamento automático, a realocação e o balanceamento contínuos de nós e recursos em diferentes shards são essenciais para otimizar o desempenho e a escalabilidade. Essas mudanças constantes na arquitetura de rede acrescentam complexidade significativa na manutenção da consistência dos dados, garantindo a estabilidade da rede e facilitando a recuperação eficaz de falhas.

A importância deste desafio é enfatizada ao comparar a resposta do Shardeum às flutuações dos nós com o Bitcoin. A rede Bitcoin mantém funcionalidade mesmo com um pequeno número de nós, pois cada nó ativo possui um estado completo e um histórico de transações. Em contraste, cada nó ativo no Shardeum não possui um estado completo e um histórico de transações, devido à rede de fragmentos do Shardeum, e cada validador possui apenas uma parte do estado geral. A consequência dessa fragmentação é que todos os nós validadores se tornam muito leves. Portanto, isso cria uma infinidade de oportunidades e desafios de engenharia. Se um nó ficar inativo, como podemos garantir que todos os dados sejam mantidos? Shardeum tem duas formas principais.

Primeiro, o Shardeum usa fragmentação de estado dinâmico, onde todo o espaço de endereço é particionado (ou dividido) de acordo com o número de nós ativos. Cada nó é responsável por sua partição atribuída, juntamente com um determinado raio (R) ao seu redor e partições adicionais (E) adjacentes a ele, garantindo adaptabilidade dinâmica e forte redundância de dados dentro da estrutura da rede. Assim, mesmo que um nó fique inativo, ainda há continuidade na rede e nenhum dado é perdido.

Em segundo lugar, o Shardeum usa nós de arquivo para armazenar o estado completo de toda a rede. Isto é conseguido através de nós ativos que transmitem o estado parcialmente armazenado para o arquivador para coleta. Devido a esses dois fatores e à otimização do projeto, a recuperação de tais redes deve ser projetada de novas maneiras para ainda facilitar recursos benéficos, como escalonamento automático e escalonamento linear.

Compreendendo o acidente

Agora que entendemos os fundamentos da fragmentação dinâmica de estado e que os nós do arquivador estão de alguma forma envolvidos, vamos detalhar alguns dos componentes adicionais com mais detalhes e explicá-los. Para entender o travamento e a recuperação do Shardeum betanet, devemos primeiro entender um pouco sobre o seguinte:

  • Nó do arquivador

  • Detectar arquivadores ausentes

  • Modo de rede

  • Modo de recuperação

Compreender o básico de cada um deles é importante antes de nos aprofundarmos nos bugs envolvidos, então vamos dar uma olhada!

Nó de arquivo: armazenamento interestelar

No Shardeum, os nós arquivadores, também chamados de arquivadores, representam uma categoria muito importante de nós, com a tarefa de armazenar todo o estado e registros históricos da rede. Distinguidos dos nós ativos, os arquivadores não participam do processo de consenso; Sua principal função é arquivar de forma abrangente todos os dados da rede, incluindo transações e recebimentos. A contribuição do nó arquivador é fundamental para manter a integridade da rede e garantir que suas operações funcionem sem problemas, confirmando assim o status da Shardeum como uma rede forte, completa e confiável. Como os arquivadores são parte integrante de sua rede, o Shardeum deve ter protocolos implementados para detectar arquivadores (e validadores) que não respondem.

Detecção de arquivo perdido: tecnologia alienígena revelada

Shardeum tem um protocolo chamado protocolo de detecção de nó perdido que detecta quando um nó ativo se torna inoperante – isso se destina apenas a nós ativos. No entanto, o Shardeum também possui um protocolo para arquivadores que faz algo semelhante chamado detecção de arquivadores ausentes. A detecção de arquivadores ausentes é um protocolo especial projetado para lidar com o raro cenário em que um ou mais arquivadores ficam inoperantes e são marcados como ausentes. Como os nós de arquivamento são essenciais para manter a integridade e a acessibilidade dos dados históricos na rede, é fundamental que, caso eles deixem de responder ou apresentem mau funcionamento, esses eventos críticos possam ser capturados para mitigar os efeitos posteriores. Embora um arquivador ausente não cause esse travamento específico, a interação entre o protocolo de detecção do arquivador ausente e o modo de rede específico causa. Agora vamos ver quais modos de rede existem no Shardeum.

Modo de rede no Shardeum: não é necessário NASA

A principal inovação no Shardeum suportada pelo protocolo Shardus subjacente é a estrutura do modo de rede. Esses modos vão além das condições operacionais básicas, realizando uma coordenação complexa de várias atividades de nós, métodos de sincronização de dados e sistemas de gerenciamento de transações. Tal configuração de rede desempenha um papel importante na manutenção da integridade operacional da rede, especialmente em cenários caracterizados pela perda de nós e dados — já que o Shardeum é uma rede de shards.

Em um nível mais simples, a melhor maneira de entender o modo de rede no Shardeum é como um plano de contingência bem codificado que permite a continuidade das operações para toda a rede — mesmo em condições improváveis, como falhas de rede ou degradação de toda a rede. Essa resiliência e resiliência operacional pré-programadas garantem que o Shardeum estará sempre vivo — não importa quais dificuldades a rede enfrente.

Embora a compreensão dos bugs não exija a compreensão de todos os aspectos da estrutura do modo de rede, é útil conhecer o básico. A essência da estrutura do modo de rede é a incorporação de diversas fases de rede diferentes: Estabelecimento, Processamento, Segurança, Recuperação, Reinicialização, Recuperação e Interrupção. Esses modos são cuidadosamente elaborados para atender a diversas situações e emergências de rede. No entanto, o modo com o qual estamos preocupados neste artigo é o modo de recuperação.

Imagem gerada por IA

Modo de recuperação de engenharia reversa: Rosewell revisitado

O modo de recuperação é um dos 7 modos de rede mencionados acima. O modo de recuperação é iniciado quando o número de nós ativos da rede cai abaixo de um limite crítico predeterminado (atualmente configurado em 75% ou menos). Este limite pode ser ajustado de acordo com os requisitos da rede. Nesse modo, a rede pausa o processamento de transações do aplicativo e a sincronização de dados do aplicativo. Essa estratégia foi projetada para facilitar a expansão da rede, alternando perfeitamente os nós ociosos como parte da rotação dos nós, retornando assim o número de nós ativos aos níveis ideais, idealmente acima de 100%.

Durante o modo de recuperação, a arquitetura de rede do Shardeum permite atualizações graduais de nós, limitadas a um crescimento de 20% por ciclo (cada ciclo dura aproximadamente 60 segundos). Esta taxa de crescimento controlada é fundamental para manter a estabilidade da rede e garantir a integração suave de novos nós. Um rápido aumento no número de nós, como um pico de 50%, tem o potencial de desestabilizar a rede e complicar o processo de integração.

Cada nó recém-adicionado requer recursos de rede para sincronização e integração. Ao limitar as atualizações a 20% por ciclo, a rede garante que a sua infraestrutura pode suportar adequadamente a adição de novos nós sem esforço. Esta abordagem não apenas mantém a estabilidade da rede, mas também minimiza o risco de inconsistências ou erros de dados durante o processo de sincronização, mantendo assim a integridade dos dados da cadeia de ciclo.

Causas raízes de falhas: horizonte de eventos

É importante observar que existem dois bugs diferentes. Bug da biblioteca Neon — que fazia com que os validadores travassem aleatoriamente e um bug no protocolo de detecção de arquivador ausente — que não aceitava uma lista de validadores vazia. Embora seja o bug do protocolo de detecção do arquivador ausente que causa o travamento da versão atual do Betanet, gostaria de convidá-lo a discutir primeiro o bug da biblioteca neon.

Na versão 1.9.1 do Sphinx, integramos uma atualização à biblioteca que usa o fichário Neon para vincular funções Rust e TypeScript porque o Shardeum é construído principalmente em TypeScript. Neon é conhecido por sua abordagem inovadora, embora experimental, que muitas vezes ultrapassa os limites das práticas convencionais de desenvolvimento de software. Esta integração visa melhorar a interoperabilidade entre estas duas linguagens, permitindo uma comunicação mais eficiente e direta dentro da nossa arquitetura de software. No entanto, isso causa um bug que faz com que os nós saiam aleatoriamente da rede.

Em segundo lugar, no recente incidente que causou uma falha na betanet no Shardeum, a causa raiz foi identificada como uma anomalia crítica originada da interação entre os dois subsistemas diferentes mencionados acima: o mecanismo de detecção do arquivador ausente e o protocolo do modo de recuperação de rede.

Esta breve falha foi desencadeada pela ativação simultânea destes dois mecanismos, um cenário nunca encontrado ou testado antes. O processo de arquivo perdido é acionado em conjunto com o mod de recuperação de rede e devido a um bug no modo de arquivo perdido que não aceita uma lista vazia de nós ativos. Isso leva a uma falha na rede.

Crônicas de recuperação: do choque sistêmico ao despertar estelar

Então, o que realmente aconteceu e quando? Uma linha do tempo de eventos envolvendo a falha da rede e sua resolução é a seguinte:

  1. Vulnerabilidades e atualização inicial: A rede possui uma vulnerabilidade sinalizada pelo processo linting 1.9.1 na biblioteca npm (neon). Uma melhoria foi implementada para resolver esse problema. No entanto, esta melhoria levantou inadvertidamente uma exceção que não foi reproduzida durante os testes locais.

  2. Exceções intermitentes da biblioteca que causam interrupções do validador: A biblioteca neon apresenta exceções esporádicas que causam interrupções periódicas do validador de rede. Embora o design da rede permita resiliência por meio do reabastecimento desses validadores, infelizmente, tempos de falha simultâneos entre vários validadores acionam o modo de recuperação de rede.

  3. Acionando o modo de recuperação de rede: Uma vez no modo de recuperação de rede, o protocolo deve limpar e recriar a lista de nós ativos. Um bug simultâneo no sistema de arquivamento ausente, que não acomodava uma lista de validadores vazia, foi a principal causa da falha na rede.

  4. Resolução e recuperação de rede: A falha foi corrigida e a rede foi restaurada com sucesso usando os dados armazenados no arquivador. Esta é a primeira vez na história que uma rede fragmentada da Camada 1 com falha foi recuperada com sucesso e todos os dados da rede foram preservados intactos. Isso nunca foi feito em nenhuma rede, muito menos em uma rede com fragmentação dinâmica de estado. Esta conquista marca um “pouso de foguete” bem-sucedido em termos de recuperação de rede.

  5. Correções concluídas: Correções iniciais foram implementadas para resolver problemas de biblioteca, mas em um esforço contínuo para melhorar a estabilidade da rede, a versão 1.9.5 foi lançada. Esta atualização introduz uma correção de bug única, mas importante, que aborda outra instância de travamento da ligação neon, identificando e corrigindo a vulnerabilidade específica sem exigir uma atualização em toda a rede. Inicialmente, os usuários que operam na versão 1.9.4 têm a flexibilidade de permanecer na versão atual ou optar por atualizar para a 1.9.5, com base na avaliação do desempenho da rede e nas preferências de estabilidade. No entanto, foi finalmente decidido que, com o propósito de melhorar a estabilidade da rede e resolver problemas persistentes relacionados com a ligação de néon, a versão mínima necessária para o validador deveria ser aumentada para 1.9.5. Esta atualização visa excluir sistematicamente os validadores em execução na versão 1.9.4, que foram identificados como vulneráveis ​​a travamentos devido às complicações de vinculação de néon mencionadas acima. Isso é necessário para garantir que o bug do neon foi completamente removido e corrigido.

Agora que sabemos sobre a linha do tempo e como aconteceram os principais eventos, vamos dar uma olhada no que aconteceu para que a rede possa ser restaurada rapidamente.

Subindo em direção à recuperação

Recuperação Ágil

A recuperação de rede consiste em muitas partes, mas uma das principais é o modo de recuperação Shardeum. Conforme afirmado anteriormente, o modo de recuperação é iniciado quando o número de nós ativos da rede cai abaixo de um limite crítico predeterminado e permite o crescimento rápido, controlado e eficaz da rede de maneira segura para restaurá-la. É importante enfatizar que sem a engenhosidade tecnológica dos projetistas e desenvolvedores do modo de rede — Shardeum não teria sido capaz de se recuperar do acidente tão facilmente e também demonstrar sua capacidade inovadora.

Além disso, esforços significativos foram feitos pela equipe de tecnologia da Shardeum ao lançar ações imediatas. A etapa inicial envolveu uma análise completa para identificar a causa raiz da falha, que foi atribuída a uma anomalia na interação entre a detecção de arquivos perdidos da rede e seu sistema de modo de recuperação. Compreendendo a complexidade do problema, a equipa implementou rapidamente uma abordagem multifacetada para abordar os impactos imediatos e as vulnerabilidades subjacentes.

Resposta mista da equipe de tecnologia Shardeum

Tecnicamente, a resposta foi mista: primeiro, a equipe isolou os componentes afetados para evitar maior degradação dos tecidos. Ao mesmo tempo, eles aplicaram um patch para corrigir um bug no sistema de arquivamento ausente, garantindo que ele pudesse lidar com uma lista de validadores vazia – um erro crítico que desencadeou a falha da rede. Para restaurar a capacidade operacional total da rede, os dados armazenados no arquivo são então ativados e usados ​​para reconstruir a condição da rede antes da falha, garantindo que nenhum dado seja perdido no processo.

Logisticamente, a equipe coordena fusos horários e disciplinas, aproveitando ferramentas baseadas em nuvem para colaboração e monitoramento em tempo real. Este esforço coordenado não só facilita o rápido desenvolvimento e implementação de correções, mas também garante que todos os membros da equipe estejam alinhados no processo de recuperação e nas próximas etapas.

Este incidente serviu como um teste rigoroso aos protocolos de gestão de acidentes da Shardeum e destacou a importância de respostas ágeis e inovadoras a desafios inesperados. Isto sublinha o compromisso da equipa em manter uma rede resiliente e segura, pronta para superar obstáculos técnicos complexos à medida que surgem.

Inovações em pouso seguro e espacial

Concluindo, a recuperação bem-sucedida da rede de fragmentos Shardeum marca uma mudança significativa na tecnologia de rede, marcando um marco com implicações de longo alcance para a indústria. Embora atualmente pouco conhecidas, inovações como o modo de rede acabarão por estabelecer novos padrões da indústria na web3.

Há muito que acredito que as principais inovações da Shardeum têm grande probabilidade de influenciar os desenvolvimentos tecnológicos futuros, inspirando a inovação e uma nova geração de tecnologia de contabilidade. Tendo sido testemunha em primeira mão da primeira recuperação da rede Shardeum, eu sabia que isso seria um catalisador para a reavaliação dos padrões da indústria, levando potencialmente à adoção de protocolos e metodologias mais rigorosos no design e arquitetura de redes.

Este evento não só demonstrou a capacidade técnica e a inovação da equipa Shardeum, mas também sinalizou o início de uma era em que as redes descentralizadas se tornam mais robustas, adaptáveis ​​e capazes de lidar com desafios imprevistos quando se trata de planeamento de recuperação de desastres. Em última análise, a tecnologia Shardeum anunciará uma nova era de descentralização.

#ShardeumIsBorderless #Shardeum #HotTrends