В рамках наших постоянных доработок сети Nervos и в соответствии с дорожной картой проекта, мы начали крупное обновление протокола, которое будет реализовано в три этапа и должно завершиться к октябрю.
Это обновление протокола является плановым, и его главная цель - обновить основную сеть CKB, внедрив новые функции, а также исправив старые ошибки. Обновление улучшит цепочку CKB первого уровня следующими путями:
*Официальное расширение RISC-V B (https://github.com/riscv/riscv-bitmanip) будет представлено для CKB-VM, поэтому может быть обеспечена более эффективная реализация криптоалгоритмов. С включенным расширением "B" стоимость сложных сценариев блокировки будет снижена.
*В CKB-VM будет представлена новая концепция под названием macro-op fusion (https://en.wikichip.org/wiki/macro-operation_fusion). С точки зрения 30 000 футов слияния макросов, когда определенные инструкции RISC-V используются вместе, процессоры смогут выполнять их вместе более эффективно. Таким образом, CKB-VM будет заряжать меньше циклов для шаблонов инструкций, формирующих слияние макроопераций. Обратите внимание, что современные компиляторы уже широко используют слияния макросов, поэтому единственный результат, который вы можете заметить, - это то, что CKB-VM требует меньше циклов для смарт-контракта, чем до обновления. Пожалуйста, перейдите (https://riscv.org/wp-content/uploads/2016/07/Tue1130celio-fusion-finalV2.pdf) для более подробной информации о слияниях макроопераций в RISC-V.
*Обновление даст возможность множественному сопоставление депозита в транзакции. Ячейка CKB использует хэш данных или тип скрипта для косвенного сопоставления двоичного файла скрипта. Ячейки, хранящие двоичные файлы, должны быть добавлены через ячейку dep. В настоящее время CKB не допускает множественных совпадений в ячейках, чтобы избежать двусмысленности. Однако, если одна и та же ячейка появляется несколько раз в ячейках deps, обычно через группу dep, эту ошибку можно безопасно обойти.
*Обновление также упростит правила ввода транзакций и написание смарт-контрактов в зависимости от времени в цепочке.
Одним из основных мотивов изменений в CKB-VM (помимо исправлений ошибок) является сокращение накладных расходов. CKB-VM представляет собой тонкий слой абстракции поверх ваших собственных процессоров. После обновления мы действительно хотим сделать уровень абстракции еще лучше: расширение RISC-V B позволяет нам сопоставлять инструкции RISC-V напрямую с собственными инструкциями, предоставляемыми процессорами x86-64, в то время как слияние макросов идет еще глубже, использовать современные микроархитектуры в наших процессорах. Все эти усилия направлены на то, чтобы криптоалгоритмы могли работать еще более эффективно на CKB-VM, открывая больше потенциальных вариантов использования Nervos CKB.
Помимо добавления функций, это обновление также включает в себя служебные задачи, такие как повторное исправление нескольких ошибок CKB-VM более совершенным способом. Эти ошибки обнаруживаются после запуска основной сети и временно исправляются специальным образом в моменте. Очистка сделает базу кода лучше и упростит поддержку CKB в будущем.
Правила консенсуса для полей версии блока / транзакции также будут изменены, чтобы упростить будущие софт-форки. Это изменение даст нам больше возможностей, когда мы захотим добавить новые функции в CKB.
Одно из основных улучшений, которое стало возможным благодаря предстоящему обновлению, - это эффективная реализация большего количества криптографических алгоритмов. Одним из таких примеров является блокировка проверки подписи BLS. Из-за алгоритмической сложности BLS, хотя это теоретически возможно, сейчас потребляет слишком много циклов на CKB. С помощью расширения "B" вместе с макрооперациями нам удалось снизить количество циклов, потребляемых операцией проверки подписи BLS, до допустимой скорости на CKB. Те же методы, которые используются для реализации BLS, также могут быть перенесены и использованы для оптимизации большего количества алгоритмов, таких как RSA, secp256r1 и т. д.
Ранее мы включили поддержку Flyclient в обновление. За последние месяцы у нас было несколько проектов схемы, но после оценки мы приняли решение отложить ее реализацию из-за ее относительно большого изменения и неясного эффекта на этом этапе из-за отсутствия периферийной поддержки. Об этом будет еще одна публикация, и мы продолжим работу над облегченной версией протокола клиента.
Обновление основной сети разделено на три этапа:
Этап 1: RC-версия 0.100.0 (https://github.com/nervosnetwork/ckb/releases) была выпущена 16 июля, она включает все функции и соответствующие инструменты, за исключением определенного времени обновления, в основном для тестирования и адаптации инструментов. С этого начинается первый раунд аудита.
Разработчики могут использовать Tippy (https://www.nervos.org/blog/develop-deploy-and-test-dapps-on-nervos-with-tippy/), чтобы запустить новую цепочку для тестирования.
Этап 2 (август): обновленная версия RC будет активирована в тестовой сети Aggron. Это второй раунд аудита.
Этап 3 (сентябрь): выпуск окончательной версии и информация о времени активации в основной сети.
Обновление нашей сети PoW требует поддержки майнеров, кошельков и бирж. Мы планируем обновить основную сеть в октябре.