1. 15 апреля в сети Ethereum прошло плановое обновление Berlin. 
  2. Через некоторое время все ноды, использующие ПО OpenEthereum, перестали работать. 
  3. Позже разработчики выпустили обновленную версию OpenEthereum 3.2.2, в которой устранили проблему. 

15 апреля в сети Ethereum на блоке 12 244 000 состоялся плановый хардфорк под названием Berlin. Обновление предусматривает 4 не очень серьезных (если сравнивать с обновлением EIP-1559) изменения:

  • EIP-2718 и EIP-2929 изменяют стоимость определенных операций в блокчейне Ethereum. Например, стоимость первого вызова операции «CALL» повышается от 700 до 2 600 единиц газа. Следующие аналогичные операции будут стоить уже 100 единиц газа. Это должно помочь сократить риски DoS-атак.
  • EIP-2718 добавляет новый тип транзакций. 
  • EIP-2930 призван ограничить расходы газа, которые будут увеличены из-за EIP-2929. 

Другими словами, это плановое техническое обновление сети. Стоит отметить, что стоимость газа после хардфорка заметно снизилась:

Стоимость газа в сети Ethereum.
Стоимость газа в сети Ethereum. Источник.

Сейчас значения примерно в 2 раза выше. 

Поначалу казалось, что обновление прошло успешно без серьезных проблем, однако вскоре популярный обозреватель блокчейна Etherscan перестал отображать новые блоки в сети. 

Сообщение в Media SIGEN.pro. Источник

Пользователи сразу подумали, что остановилась вся сеть. Позже стало понятно, что она продолжает работать, однако все ноды, использующие программное обеспечение OpenEthereum, вышли из консенсуса. На них приходится около 12% активных нод сети. 

В результате Coinbase отключила вывод ETH и ERC-20. Ledger сообщила, что балансы в приложении Ledger Live могут не обновляться. Также пострадали сервисы BitGo и Coin Metrics. 

Основной клиент Geth работал без особых проблем. Переводы ETH и токенов ERC-20 также не пострадали. Курс ETH практически не отреагировал на проблемы в сети, а ночью с 15 на 16 апреля и вовсе обновил исторический максимум, поднявшись выше $2 500. 

Сообщение в Media SIGEN.pro. Источник

Что стало причиной проблемы? 

Хардфорк Berlin изменил позиции оценки стоимости некоторых операций. Клиенты OpenEthereum рассчитывали цену транзакции иначе, чем остальные ноды сети. В результате ноды, использующие ПО OpenEthereum, признали целый блок транзакций недействительным. 

Этот баг был неочевидным, поэтому его пропустили в ходе предварительного тестирования. 

Спустя несколько часов разработчики выпустили обновленное программное обеспечение OpenEthereum 3.2.3, в котором проблема уже была устранена. 

Сообщение OpenEthereum в Twitter.

«После установки обновления синхронизация должна быть восстановлена без особых проблем», — написал генеральный директор Gnosis Мартин Кеппельманн.