Технології

Сбой в работе Infura объяснили «неанонсированным хардфорком» Ethereum

11 лис•ForkLog

Перебои в работе 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 Ларри Чермак, однако, не понимает, как такая ситуация стала возможной.

«Если это так, то все гораздо плачевнее, чем я думал. Как может быть, что крупнейший поставщик инфраструктуры не знал об изменении в коде, которое могло привести к разделению цепи? В это почти невозможно поверить».

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

Напомним, ранее в среду, 11 ноября, стало известно, что Infura и некоторые другие сервисы испытывают перебои в обслуживании. Это вызвало задержку в потоках котировок ETH и токенов ERC-20, некоторые биржи остановили вывод средств.

На момент публикации разработчики прододжают работы по восстановления функциональности сервиса.

Подписывайтесь на новости ForkLog в Telegram: ForkLog FEED - вся лента новостей, ForkLog - самые важные новости и опросы.

Читайте ще