O cliente Prysm da Ethereum sofreu um incidente na mainnet, com esgotamento de recursos causando grande ausência de blocos e testemunhos.
De acordo com a ChainCatcher, a equipa Prysm publicou um relatório de análise sobre o incidente na mainnet, afirmando que, durante o período Fusaka da mainnet Ethereum em 4 de dezembro, quase todos os nós beacon Prysm sofreram esgotamento de recursos ao processar determinadas attestations, o que resultou na incapacidade de responder atempadamente aos pedidos dos validadores, causando uma grande quantidade de blocos e attestations em falta.
O impacto do incidente abrangeu os epochs 411439 a 411480, num total de 42 epochs, com 248 blocos em falta em 1344 slots, correspondendo a uma taxa de ausência de cerca de 18,5%. A taxa de participação da rede caiu temporariamente para 75%, e os validadores perderam aproximadamente 382 ETH em recompensas de attestations. A causa raiz foi que o Prysm recebeu attestations provenientes de nós possivelmente não sincronizados com a mainnet, sendo que estas attestations referenciavam o bloco root do epoch anterior.
Para verificar a sua legitimidade, o Prysm repetidamente reproduziu o estado do epoch antigo e executou transições de epoch de elevado custo, levando os nós a esgotarem recursos sob alta concorrência. O defeito está relacionado ao PR 15965 do Prysm, que já tinha sido implementado na testnet há um mês, mas não desencadeou o mesmo cenário.
A solução temporária oficial é ativar o parâmetro --disable-last-epoch-target na versão v7.0; as versões subsequentes v7.1 e v7.1.0 já incluem uma solução de longo prazo, utilizando o head state para validar as attestations e evitando a repetição da reprodução de estados históricos.
O Prysm afirmou que o problema começou a ser mitigado gradualmente após as 4:45 UTC de 4 de dezembro, e que a taxa de participação da rede recuperou para mais de 95% no epoch 411480.
A equipa Prysm destacou que este incidente evidencia a importância da diversidade de clientes; se um único cliente ultrapassar um terço da participação, pode haver períodos temporários sem finalização, e se ultrapassar dois terços, existe o risco de uma cadeia inválida ser finalizada. A equipa também refletiu sobre a comunicação inadequada das opções de funcionalidade e sobre o facto de o ambiente de testes não ter conseguido simular um grande número de nós não sincronizados, comprometendo-se a melhorar as estratégias de teste e a gestão de configurações no futuro.
Disclaimer: The content of this article solely reflects the author's opinion and does not represent the platform in any capacity. This article is not intended to serve as a reference for making investment decisions.
