Пользователи Ethereum-клиентов Parity и OpenEthereum установили обновление, которое сделало узлы практически бесполезными. Похоже, что изначально ошибка возникла в версии OpenEthereum 2.7.2.
Хотя версия 2.7 была проверена и отмечена как стабильная, с июня сообщество начало сообщать о периодических зависаниях клиента, которое требовало жесткого перезапуска узла. По словам пользователей, проблема появляется случайно один-три раза в месяц.
Разработчики, похоже, нашли проблему в параллелизации потоков, которая используется для параллельной обработки задач. Из-за ошибки, программное обеспечение входит в тупик — состояние, при котором два потока навсегда остаются в ожидании своей очереди для доступа к некоторым данным.
После обнаружения ошибки, разработчики OpenEthereum решили отказаться от версии 2.7, так как ошибку было бы трудно исправить. Они перешли к работе над версией 3.0, основанной на последней стабильной версии 2.5. Обновление должно быть выпущено в середине сентября перед хард-форком Berlin. Но до этого момента, операторам, загрузившим последнюю версию, придется справиться с чрезвычайно сложной задачей перехода на более раннюю версию.
Лиам Аарон, разработчик инфраструктуры BlockNative, сказал, что для перехода на более раннюю версию требуется полная ресинхронизация блокчейна, и для некоторых конфигураций узлов это займет месяцы. Команда OpenEthereum работает над процессом конверсии, который поможет узлам избежать трудной повторной синхронизации.
Ошибка затрагивает около 50% текущих узлов Parity и все узлы, обозначенные как OpenEthereum, что в сумме составляет до 12% от всей сети.