Сбой в работе Infura объяснили «неанонсированным хардфорком» Ethereum
Перебои в работе Infura, ведущего поставщика инфраструктурных решений для сети Ethereum, связаны с ошибками консенсуса в более старых версиях клиента Geth. Из-за того, что часть сети не обновилась до последней версии, на блоке 11234873 состоялось разделение Ethereum на две цепи.
«В определенный момент разработчики Ethereum внедрили в код изменения, которые привели к сегодняшнему разделению на блоке 11234873 (07:08 UTC). Те, кто не обновился (Blockchair, Infura, некоторые майнеры и многие другие), застряли на два часа в меньшей цепи (~30 блоков), — написал разработчик Blockchair Никита Жаворонков.
По его словам, «технически это было неанонсированным хардфорком».
(1/2) Ok, so what happened today on #Ethereum🦄:
1. At some point Ethereum developers introduced a change in the code that led today to a chain split starting from block 11234873 (07:08 UTC)
2. Those who haven’t upgraded (@Blockchair, @infura_io, some miners, and many others)… pic.twitter.com/mbRYFU5tgn
— Nikita Zhavoronkov (@nikzh) November 11, 2020
Никита Жаворонков считает, что нечто подобное произошло в сети биткоина семь лет назад, когда состоялось обновление базы данных.
«Решение: обновите Geth и запустите debug.setHead(11234872)», — добавил он.
Несмотря на имеющееся решение, Жаворонков подчеркивает, что случившееся нельзя недооценивать и следует рассматривать как одну из наиболее серьезных проблем, с которыми Ethereum сталкивался с момента инцидента с The DAO четыре года назад.
In my opinion, today’s consensus failure in #Ethereum🦄 shouldn’t be underestimated and should be considered as the most serious issue Ethereum has faced since the DAO debacle 4 years ago. An investigation is in order.
— Nikita Zhavoronkov (@nikzh) November 11, 2020
Разработчик Ethereum Петер Силадьи согласился с версией Жаворонкова и объяснил, почему было решено не сообщать о проблемах Geth:
«Технически ты прав, это было «неанонсированным хардфорком» (из плохой цепи в хорошую). Но нужно понимать, что скрытое исправление бага, который «спал» более двух лет, снижает вероятность возникновения перебоев, нежели при повышении осведомленности о нем. Мы стремимся минимизировать потенциальный ущерб», — написал Силадьи.
Technically you are correct that it was an «unannounced hard fork» (from a bad chain to the good one). That said, silently fixing a bug dormant for 2+ years has a much lower chance of causing a disruption than raising awareness to it. We strive to minimize potential damage.
— Péter Szilágyi (@peter_szilagyi) November 11, 2020
Обоснованность таких действий подтвердил бывший сопроводитель Monero Рикардо Спаньи.
«Мы несколько раз секретно фиксили баги в Monero, опасаясь, что их смогут эксплуатировать в случае огласки. Например, именно так мы поступили в 2017 году», — прокомментировал Спаньи, напомнив об успешном исправлении бага, который в потенциале позволял создавать неограниченное число монет XMR.
Разработчик Geth Мартин Холст Свенде объяснил, что старые версии клиента содержали ошибки в консенсусе.
«Внедренное изменение фактически было направлено на исправление этих проблем. Это напоминание о том, что ПО нод необходимо поддерживать в актуальном состоянии», – написал он.
Older geth-versions contained consensus-flaw(s) which were hit today on mainnet. The «change introduced» was actually fixing those issue(s). This is a reminder to keep your node(s) up to date! https://t.co/oZatRUgENS
— M H (((Swende))) (@mhswende) November 11, 2020
Аналитик The Block Ларри Чермак, однако, не понимает, как такая ситуация стала возможной.
«Если это так, то все гораздо плачевнее, чем я думал. Как может быть, что крупнейший поставщик инфраструктуры не знал об изменении в коде, которое могло привести к разделению цепи? В это почти невозможно поверить».
Напомним, ранее в среду, 11 ноября, стало известно, что Infura и другие сервисы столкнулись с перебоями в обслуживании. Это вызвало задержку в потоках котировок ETH и токенов ERC-20, некоторые биржи остановили вывод средств.
На момент публикации разработчики продолжали восстановление функциональности сервиса. К 15:00 UTC работы были завершены.
Подписывайтесь на новости ForkLog в Telegram: ForkLog FEED — вся лента новостей, ForkLog — самые важные новости и опросы.
Рассылки ForkLog: держите руку на пульсе биткоин-индустрии!