Разработчики Ethereum по итогам очередной онлайн-конференции приняли решение о переносе хардфорка Berlin как минимум на месяц из-за опасений чрезмерной концентрации нод в клиенте Geth.
В сети второй по капитализации криптовалюты работают 11 различных клиентских спецификаций, однако 79% нод используют Geth. Такое доминирование подвергает угрозе функционирование всей сети в случае обнаружения серьезной ошибки. Это приобретает еще большую актуальность в свете предстоящего перехода на ETH 2.0.
Разработчики согласились дождаться момента, когда множество клиентов смогут запустить обновление совместно, чтобы предотвратить любые сбои, если один или несколько из них выйдут из строя.
«Geth – это большая часть сети. Очень важно, чтобы мы были корректны, потому что ошибка непозволительна», — подчеркнул глава команды Geth Петер Силадьи.
Структура Ethereum с различными клиентами на пяти языках программирования Go, Solidity, Java, JavaScript и Python позволяет поддерживать широкое сообщество разработчиков. В то же время процесс обновления становится серьезным вызовом, поскольку недостаточное внимание к нюансам и различиям языков может привести к серьезным сбоям.
«Главная причина задержки Berlin — снизить зависимость от Geth и избежать ситуации, когда его выход из строя приведёт к выводу из строя всей сети», — отметил независимый разработчик Алексей Ахунов.
Ситуация усугубилась из-за прекращения официальной поддержки клиента Parity в декабре 2019 года и перевода его на модель децентрализованной автономной организации (ДАО) с переименованием в Open Ethereum. С декабря от него отказалось около 60% нод.
«В идеальном мире существовало бы множество клиентов, ни один из них не имел бы долю выше 33%», — пояснил Мартин Кеппельманн, основатель стартапа Gnosis, финансирующего разработку Open Ethereum.
Главной проблемой остается привлечение нод к альтернативным клиентам.
«Ноды станут выбирать другие клиенты только в том случае, если они будут удовлетворять какие-либо дополнительные потребности, что в настоящее время не происходит», — считает разработчик Грег Колвин.
По его мнению, этот вопрос находится вне компетенции специалистов Ethereum. Увеличение Geth штата сотрудников — единственное решение, которое представляется Колвину возможным на текущий момент.
Обновление Berlin предполагает следующие изменения:
ProgPoW (EIP-1057), призванное повысить эффективность GPU-майнинга Ethereum для противодействия ASIC-майнерам и, соответственно, повышения степени децентрализации сети;
EIP-1380, EIP-2045, EIP-2046 — обновления, связанные с изменением стоимости газа для различных операций.
EIP-1985 — оптимизация работы виртуальной машины Ethereum.
Напомним, по итогам предыдущей онлайн-конференции разработчики приняли решение о переносе запуска первой тестовой сети на основе обновленных спецификаций 0.12 Altona на 29 июня.