Desenvolvedores do Ethereum corrigem software após atualização dar errado

Alguns nodes do Ethereum pararam de sincronizar com o blockchain logo após o hard fork
Imagem da matéria: Desenvolvedores do Ethereum corrigem software após atualização dar errado

Foto: Shutterstock

Nas primeiras horas da manhã de quinta-feira, o blockchain do Ethereum passou por uma atualização. Muito rapidamente, ficou claro que algo estava errado.

Apenas 294 blocos após o hard fork de Berlim, houve um erro de consenso com um dos clientes de software, Open Ethereum, e os nodes não estavam sincronizando com o blockchain. O que isso significa é que qualquer pessoa executando aquele cliente – 12% de todos os nós do Ethereum – essencialmente foi incapaz de usar o blockchain até que o erro fosse corrigido. O problema até levou a uma falha no explorador de blocos Etherscan.

Publicidade

Esse problema agora foi corrigido, de acordo com os desenvolvedores do Open Ethereum, o segundo maior cliente de software depois do Geth. Os usuários do Ethereum podem utilizar qualquer número de clientes, entre eles Geth e Parity Ethereum, para realmente entrar no blockchain. É vagamente análogo a escolher entre diferentes navegadores da web para ficar online – todos eles basicamente fazem a mesma coisa de maneiras diferentes. No entanto, neste caso, quando os clientes Ethereum não concordam com alguns princípios básicos, todo o blockchain está em maior risco de ataque.

O problema estava relacionado a uma transação referente a um contrato inteligente que ainda não existe, mas está planejado para uma atualização futura. O CEO da Gnosis e contribuidor de rede Martin Köppelmann tweetou hoje, “@OpenEthereumOrg, portanto, tratou o preço do gas daquela transação ligeiramente incorreto, o que causou todos os problemas subsequentes (o bloco foi rejeitado como inválido).”

Em outras palavras, o software Open Ethereum definiu o preço de uma única transação de maneira diferente de outros clientes de software. Isso teve efeitos indiretos que fizeram com que um bloco inteiro cheio de transações fosse rejeitado pelo cliente Open Ethereum (mas não os outros), momento em que o blockchain caiu fora de sincronia.

Como resultado, as exchanges como BitStamp e aCoinbase desativaram os saques de tokens ETH e ERC20, que são executados pela rede Ethereum.

Publicidade

De acordo com Marius Van Der Wijden, um desenvolvedor do Go Ethereum (que ajudou a resolver o problema), o bug era obscuro o suficiente para que o problema nunca ocorresse enquanto a última atualização ainda estava sendo testada.

Köppelmann escreveu: “Depois de instalar as atualizações [Open Ethereum], os nodes devem ser capazes de ressincronizar sem problemas (por exemplo, não é necessário ressincronizar a partir do genesis ou excluir manualmente um bloco).”

Está tudo bem agora. Crise evitada.

*Traduzido e editado com autorização da Decrypt.co