Пользователи клиента Open Ethereum столкнулись с ошибкой консенсуса после активации хардфорка Berlin и проблемами с синхронизацией блокчейна Эфириума. Ошибка была устранена через несколько часов.

Вчера на блоке 12 244 000 в сети Эфириума был развернут запланированный хардфорк Berlin. Обновление включало четыре предложения по улучшению действующей сети Эфириума и сокращению комиссий. Через 294 блока после активации хардфорка произошла ошибка консенсуса с одним из программных клиентов - Open Ethereum, и использующие клиент узлы перестали синхронизироваться с блокчейном.

Все, кто запускал этот клиент – около 12% всех узлов Эфириума – не могли использовать блокчейн, пока ошибка не была исправлена. Проблема привела к отключению проводника по блокам Etherscan. Ошибка была связана с транзакцией, относящейся к смарт-контракту, который еще не существует, но запланирован для включения в будущее обновление. Генеральный директор Gnosis Мартин Кеппельманн (Martin Köppelmann) написал в Твиттере:

«Таким образом, @OpenEthereumOrg обработал цены на газ для этой транзакции несколько некорректно, что вызвало все последующие проблемы (блок был отклонен как недействительный)».

Другими словами, Open Ethereum оценил одну транзакцию иначе, чем другие программные клиенты. Это имело побочные эффекты, из-за которых клиент Open Ethereum (но не другие) отклонил целый блок, полный транзакций, и в этот синхронизация с блокчейном была нарушена. В результате биржи, например, BitStamp и Coinbase, временно приостановили вывод ETH и токенов ERC-20.

По словам разработчика Go Ethereum Мариуса Ван Дер Вейдена (Marius Van Der Wijden), который помог решить проблему, ошибка не была очевидной, поэтому не была замечена на стадии тестирования обновления. Команда Open Ethereum исправила ошибку через несколько часов после ее появления. Кеппельманн написал:

«После установки обновлений узлы Open Ethereum должны иметь возможность повторно синхронизироваться без каких-либо проблем - повторная синхронизация с блока генезиса или ручное удаление блока не требуется».