Ворклог. Итоги марта
Category: Development Report
Всем привет!
Мы подготовили традиционный дайджест новостей Cellframe. Здесь мы рассказываем о прогрессе разработки, развитии экосистемы и маркетинговых активностях. Сегодня рассказываем об итогах марта. Как обычно, собрали для вас все самое интересное — читайте и наслаждайтесь!
Cellframe Wallet
В прошлом выпуске нашего дайджеста мы рассказывали о том, что возобновили активную разработку многофункционального приложения Cellframe Wallet. Фактически это упрощенная версия Cellframe Dashboard, она разрабатывается специально под мобильные платформы, и в ней будет собрано все самое необходимое для пользователей.
В феврале мы адаптировали под Cellframe Wallet все обновления, которые были сделаны в Cellframe Dashboard, и обновили бэкенд, а в марте работали над улучшением UI.
Что было сделано:
- Добавили функционал виртуальной клавиатуры
- Реализовали возможность развернуть приложение на весь экран
- Для кошельков и сертификатов обновили список доступных постквантовых подписей (сейчас это Falcon и CRYSTALS-Dilithium)
- Исправили несколько багов верстки и функционала для работы с кошельком
Cellframe Dashboard
На проекте Cellframe Dashboard много внимания уделили развитию бэкенда приложения. Как вы знаете, Cellframe Dashboard неразрывно связан с другим нашим приложением — Cellframe Node, и обеспечить их совместимость принципиально важно.
Поскольку в ноде обновили ответы на команды по протоколу JSON-RPC, нам также нужно было адаптировать обработчик этих ответов в дашборде. Таким образом мы исправили проблемы с совместимостью команд для работы с сетями, кошельком, транзакциями и Web3 API.
Еще мы поработали с вкладкой TX Explorer. Здесь обновили комбобокс с выбором сети и реализовали отображение нового типа транзакций — транзакций обмена.
И самое главное, в марте мы подготовили предрелизную сборку Cellframe Dashboard, в которую включили обновленную вкладку DEX. Новый функционал передали на бета-тестирование, и получив обратную связь, внедрили необходимые изменения. В начале апреля долгожданный релиз (версия 2.14 - 12) был выпущен в продакшн. О функционале нового обменника мы рассказывали в отдельном посте.
Cellframe Node
Python-обертки
Как вы знаете, основной элемент Cellframe — это ПО CellframeNode, которое обеспечивает взаимодействие пользователя с сетями нашей экосистемы.
ПО Cellframe Node реализовано с использованием двух SDK — DAP SDK и Cellframe SDK. Они предоставляют API сети и блокчейна соответственно и реализованы на языке С.
С-код обеспечивает нам высокую производительность, что особенно важно для блокчейна с тяжелыми постквантовыми подписями, а еще — максимальную портируемость под разные операционные системы.
Однако, язык С очень специфичен — многие вещи на нем делаются сложнее и дольше, чем на высокоуровневых языках. Поэтому мы не только развиваем нашу ноду и SDK, которые так и пишутся на C, но и создаем вспомогательный Python SDK, который упрощает и ускоряет расширение логики работы базового ПО, используя систему подключаемых модулей (плагинов) на языке Python. Это в том числе понижает «порог входа» в технологию для криптоэнтузиастов и разработчиков приложений.
Каждый раз, когда мы обновляем или расширяем функционал Cellframe Node, мы также отражаем это в PythonSDK, налаживая взаимодействие с новыми API из плагинов.
Для удобства разработки и создания документации мы номинально разделили SDK на три уровня:
Уровень 0 (L0 SDK) — Cellframe SDK. Здесь используется язык С, на нем пишется и тестируется весь основной функционал.
Уровень 1 (L1 SDK) —Python-cellframe, низкоуровневое API. На этом уровне делаются пробросы методов между Cellframe SDK и Python SDK.
Уровень 2 (L2 SDK) — Python helpers, высокоуровневое API. На этом уровне формируется python-way объектный интерфейс, удобный для пользователя.
Наша глобальная цель — реализовать Python-обертки уровней L1 и L2 для всего функционала Cellframe Node. Например, последние крупные обновления функционала ноды (уровень L0, Cellframe SDK) — это DEX и механизмы голосования на платформе Cellframe. Они также реализованы на уровне L1, а в L2 сейчас находится в процессе разработки.
Двусторонний режим моста Cellframe
В прошлом выпуске ворклога мы рассказывали о том, что сейчас активно готовимся к выпуску новой версии нашей ноды, в которую войдут важные доработки, которые имеют ключевое значение при запуске двустороннего режима моста Cellframe. В марте мы продолжили эту работу и реализовали несколько важных опций.
Завершили внедрение IPv6 в Cellframe Node. Почему это важно: IPv6 — это 6-я версия протокола IP, ключевого для сети Интернет, который объединяет сегменты сети воедино и обеспечивает передачу пакетов данных между узлами сети.
Протокол предыдущей версии — IPv4 уже практически исчерпал лимит сетевых адресов. В протоколе IPv6 увеличен объем адресного пространства, а также выше показатели производительности и безопасности, поэтому многие интернет-провайдеры уже полностью перешли на него и отказались от поддержки IPv4.
Реализовали систему распределения нагрузки между нодами сети, которая состоит из двух ключевых компонентов:
Менеджер линков управляет всеми линками (каналами связи) нод в сети, исходя из потребностей каждого из кластеров сети, которые он администрирует. Основные задачи менеджера линков — избегать повторных подключений к нодам сети и регулярно обновлять информацию о составе линков сети и кластеров.
Линки делятся на три типа: статические, динамические и смешанные. Статические или перманентные линки имеют приоритет перед динамическими — они прописываются в настройках заранее либо задаются другими внешними способами. Если статических линков недостаточно для стабильного соединения, то недостающие (динамические) линки запрашиваются у балансировщика сети.
Балансировщик сети используется для равномерного распределения связей между нодами. Для этого у него есть доступ к статистике по адресам, которую обновляют все ноды в сети. Цель балансировщика — создать равномерную «паутину», в которой к каждой ноде подключено примерно одинаковое количество нод.
Также, в рамках работы по улучшению синхронизации сети мы реализовали механизм, который адаптирует скорость передача данных между нодами под возможности принимающей стороны. Теперь трафик отправляется порциями и в зависимости от скорости его обработки принимающей стороной корректируется и скорость отправки следующих порций: от блокировки дальнейшей пересылки до развития максимально-возможной скорости передачи данных между нодами.
Такая схема позволяет ноде-передатчику экономить ресурс и ставить отправку на паузу, в том числе и не отсылать то, что уже не может быть принято, а ноде-приёмнику — разгрузить оперативную память. Как известно, ее объем ограничен, поэтому важно предусмотреть этот момент сейчас, чтобы избежать возможных проблем при росте блокчейн-сети.
И. наконец, в марте мы реализовали еще один режим работы моста Cellframe. Теперь он работает на передачу токенов CELL и KEL напрямую между сетями Ethereum и BSC. Для пользователей это означает, что теперь они могут легко перевести свои средства между этими сетями (подробно мы уже рассказывали об этом в отдельном посте)
Для нас же это очень важный шаг на пути к двустороннему режиму моста. Так мы сможем отладить работу распределенного консенсуса на базе смарт-контрактов, который будет использоваться в том числе и в режиме моста из СF-20.
Последние записи
-
АМА-сессия с Дмитрием Герасимовым, 28 марта, 2024
08 Апр 2024
-
Ворклог. Итоги февраля
13 Мар 2024
-
AMA-сессия с Дмитрием Герасимовым, 29 февраля 2023
07 Мар 2024
-
Ворклог. Итоги января
14 Фев 2024