Основное обновление протокола вносит много новых улучшений в протокол уровня 1 Nervos Network. Одним из них является Extensible Block Header. Основная цель этой функции — включить такие решения, как Flyclient. В этой статье мы углубимся в то, как эта функция позволяет Nervos использовать преимущества Flyclient.
Обзор Flyclient
Flyclient — это разновидность light-клиента. Light клиент уровня 1 CKB на практике означает, что вы можете запустить нод CKB на своем телефоне или другом оборудовании, которое имеет меньшую вычислительную мощность, чем машины, обычно используемые для запуска узлов уровня 1. Все это работает без ущерба для безопасности.
Концепция Flyclient уже была более подробно представлена сообществу CKB Matt Quinn в его статье «Введение в superlight clients: FlyClient».
Причина, по которой реализация Flyclient в сети Nervos требует дополнительного поля хранения блоков на уровне 1 и, следовательно, «Extensible Block Header», заключается в следующем:
«На каждой высоте блока i средство проверки добавляет хэш предыдущего блока, Bi-1, к самой последней MMR [Merkle Mountain Range] и записывает новый корень MMR, Mi, в заголовке Bi. В результате каждый корень MMR, хранящийся на каждой высоте блока, можно рассматривать как обязательство перед всей цепочкой блоков».
Затем верификатор (Flyclient) может запросить относительно небольшое число блоков у доказывающего (полный узел уровня 1) и проверить их заголовки блоков (корневые хэши MMR) в сочетании с путями доказательства Меркла, чтобы убедиться, что все синхронизированные блоки из полного узла принадлежат узлу. такой же действующий блокчейн.
MMR (Merkle Mountain Range), необходимый для FlyClient, был реализован в заголовке блока Beam, Grin и предложен для Zcash и Ethereum Classic.
Более подробное техническое объяснение можно найти в статье Мэтта Куинна «Введение в superlight clients: FlyClient».
Вклад в это улучшение через RFC
Улучшение Extensible Block Header было предложено Ian Yang из Nervos Foundation в рамках RFC31 в июле 2021 года. Здесь есть отзывы. Он был реализован в основной сети CKB в мае 2022 года.
Документ RFC и реализация закладывают основу для будущего софтфорка с добавлением Flyclient. Это также позволяет проводить другие эксперименты, такие как Proof of Authority в тестовой сети.
При увеличении масштаба RFC31 разрешает добавлять произвольное поле в блок. В тело блока будет добавлено свойство с названием «extension», а в заголовке блока будет хэш значения поля расширения. Дополнительный хеш в заголовке блока («extra_hash») заменит «uncles_hash».
Поле «extension» может быть разного размера, что означает, что оно может использоваться несколькими будущими решениями. На данный момент единственным ограничением в поле «extension» является то, что оно может содержать до 96 байт. Правила Flyclient для проверки поля должны быть добавлены как часть другого RFC и софтфорка для конкретного решения. Следите за предстоящими RFC :eyes:
Если вы хотите узнать больше технических подробностей о реализации RFC31, вам следует прочитать раздел «Спецификация» самого документа.
Итог
Эта подготовка к обновлению Flyclient заложит основу для более быстрых, но безопасных нодов уровня 1 и мостов с другими сетями. Синхронизация Flyclient должна быть быстрее текущей синхронизации. Наконец, данные блокчейна, используемые для синхронизации, также будут занимать меньше места на диске, что позволит большему количеству устройств запускать ноды! Все эти преимущества объединены, чтобы обеспечить еще лучший опыт как для разработчиков, так и для пользователей.