- 15 апреля в сети Ethereum прошло плановое обновление Berlin.
- Через некоторое время все ноды, использующие ПО OpenEthereum, перестали работать.
- Позже разработчики выпустили обновленную версию 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.
Другими словами, это плановое техническое обновление сети. Стоит отметить, что стоимость газа после хардфорка заметно снизилась:

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

Пользователи сразу подумали, что остановилась вся сеть. Позже стало понятно, что она продолжает работать, однако все ноды, использующие программное обеспечение OpenEthereum, вышли из консенсуса. На них приходится около 12% активных нод сети.
В результате Coinbase отключила вывод ETH и ERC-20. Ledger сообщила, что балансы в приложении Ledger Live могут не обновляться. Также пострадали сервисы BitGo и Coin Metrics.
Основной клиент Geth работал без особых проблем. Переводы ETH и токенов ERC-20 также не пострадали. Курс ETH практически не отреагировал на проблемы в сети, а ночью с 15 на 16 апреля и вовсе обновил исторический максимум, поднявшись выше $2 500.

Что стало причиной проблемы?
Хардфорк Berlin изменил позиции оценки стоимости некоторых операций. Клиенты OpenEthereum рассчитывали цену транзакции иначе, чем остальные ноды сети. В результате ноды, использующие ПО OpenEthereum, признали целый блок транзакций недействительным.
Этот баг был неочевидным, поэтому его пропустили в ходе предварительного тестирования.
Спустя несколько часов разработчики выпустили обновленное программное обеспечение OpenEthereum 3.2.3, в котором проблема уже была устранена.
«После установки обновления синхронизация должна быть восстановлена без особых проблем», — написал генеральный директор Gnosis Мартин Кеппельманн.