Uma atualização no cliente OpenEthereum, o sucessor da comunidade do cliente Parity para Ethereum, tornou os nodes em execução na nova versão essencialmente inúteis.
O bug parece ter sido introduzido na versão 2.7.2 do OpenEthereum, na qual a atualização 3.0 subsequente também foi baseada.
Embora a versão 2.7 tenha sido marcada como estável, desde junho a comunidade começou a relatar sobre o cliente travar ocasionalmente, o que exigia uma reinicialização manual do node. O problema aparece aleatoriamente “uma ou três vezes por mês”, e o software falha em notificar seu mau funcionamento. Alguns usuários decretaram a liberação como "inútil" e "inválida para operadores de nodes".
Os desenvolvedores parecem ter apontado o problema para um bug sutil na simultaneidade de thread, que é usado para processar tarefas em paralelo. Nesse caso específico, o software parece estar entrando em um impasse - uma condição em que dois threads ficam para sempre esperando sua vez de acessar alguns dados compartilhados.
OpenEthereum decidiu simplesmente descartar a versão 2.7 devido a este e outros “heisenbugs” que são extremamente difíceis de reproduzir e, portanto, consertar.
A nova iteração 3.0, baseada na última versão 2.5 verdadeiramente estável, está programada para ser lançada em meados de setembro antes do hard fork Berlim.
Até que isso aconteça, no entanto, os operadores que baixaram a nova versão ficam com a tarefa extremamente perturbadora de fazer o downgrade.
Liam Aharon, um desenvolvedor de infraestrutura da BlockNative, destacou no Twitter que o downgrade requer uma ressincronização completa da blockchain, “o que para algumas configurações de nodes levará meses”, disse ele.
O bug afeta cerca de 50% dos nodes Parity atuais e todos os nodes com a marca OpenEthereum, o que totaliza 12% de toda a rede, de acordo com dados do Ethernodes.
A equipe OpenEthereum está trabalhando em um processo de conversão que ajudaria os nodes a evitar todo o trabalho do downgrade.
Algumas críticas foram feitas à equipe por marcar uma versão com muitos bugs como "estável", um erro que se propagou em todas as versões subsequentes. Outros questionaram a solidez da abordagem multicliente, citando a visão de Satoshi de que várias implementações do mesmo node de blockchain inevitavelmente levariam a problemas.
Os defensores da abordagem multicliente acreditam que isso evita que bugs em uma implementação derrubem a rede com eles, e o bug OpenEthereum parece ser esse tipo exato de cenário.
Leia mais:
- Ethereum atinge maior alta em 2 anos; interesse aberto em futuros de ETH atinge US$ 1,5 bilhão
- Taxas de gás de US$ 99 na Ethereum estão prejudicando crescimento DeFi
- Traders de criptomoedas são suspeitos de pirâmide de US$ 35 milhões
- O que é mineração de Bitcoin
- Diretora da Berkeley Blockchain Xcelerator fala sobre o que as startups precisam para ter sucesso
- Taxas do Bitcoin Apenas Crescerão Agora: Desenvolvedor Lightning Rusty Russell