Cellframe Node 5.3. Основные обновления

Cellframe Node 5.3. Основные обновления

Category: О проекте

Title image, read title

Весь функционал нашей сети содержится в коде Cellframe Node. Он включает в себя два основных модуля:

DAP SDK — низкоуровневый модуль, который отвечает за взаимодействия ноды с памятью, сетями и базой данных. Он включает в себя криптографию, различные служебные структуры данных и алгоритмы.

Cellframe SDK, в котором прописаны механизмы работы блокчейна: алгоритмы консенсуса, валидации транзакций и создания новых блоков.

А также — набор диагностических инструментов и плагинов, которые необходимы для установки ноды на устройстве пользователя и подключения к блокчейн-сети.

В новой версии мы усовершенствовали функционал и глобально переработали инфраструктуру сети. Давайте подробнее рассмотрим обновления Cellframe Node 5.3.

Новые механизмы синхронизации

Мы внедрили два новых механизма: эпидемическую рассылку обновлений и периодическую синхронизацию. Вместе они обеспечивают оперативное получение актуальных данных всеми нодами сети. Теперь давайте рассмотрим подробнее каждый из этих механизмов.

Первый элемент — эпидемическая рассылка. Она активируется при появлении новых данных в сети, будь то блоки, записи в мемпуле, новые ордера и другие события. Действует по принципу распространения обновлений от одной ноды к другой: как только нода получает новые данные, она передает их соседним нодам, которые, в свою очередь, делают то же самое. Этот процесс продолжается до тех пор, пока обновления не достигнут всех активных нод сети. Такой подход обеспечивает оперативное распространение новых данных, минимизируя задержки.

Второй элемент, периодическая синхронизация, реализована с использованием так называемой «машины состояний», которая контролирует переход между заданными состояниями. В случае синхронизации их выделяют несколько:

● Сбор информации о данных, которые нужно переслать

● Пересылка данных

● Подтверждение приема

● Состояние покоя

Периодическая синхронизация запускается по таймеру раз в несколько минут. Этот процесс не зависит от того, происходят изменения в сети или нет. Основная задача периодической синхронизации — гарантировать наличие актуальной информации у нод. Например, если какая-то нода была временно оффлайн и пропустила эпидемическую рассылку, она сможет получить пропущенные данные при следующей синхронизации.

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

Кластерная архитектура

Мы завершили масштабный рефакторинг основной сети и внедрили кластерную архитектуру, которая преобразовала сеть Cellframe в систему взаимосвязанных кластеров.

Кластер — это взаимосвязанное множество нод, которое использует группы GDB (распределенного хранилища данных) для обмена данными между нодами и менеджер линков для поддержания их соединения. В рамках кластерной архитектуры нашей сети мы выделяем три типа кластеров:

● Кластеры групп GDB — объединения нод, ответственных за хранение данных и управление списками нод. Например, кластер нод KelVPN включает группы KelVPN.nodes и KelVPN.nodes.aliases

● Кластеры ролей — группы нод с особыми правами, такими как валидаторы мейнчейна сети

● Кластеры стримов — ноды, сгруппированные по определенным признакам, например, принадлежности к одной сети, с возможностью быстрого подключения через открытый потоковый протокол

Таким образом, в один кластер стримов может входить множество кластеров групп GDB, и в каждом из них, в свою очередь, могут быть свои кластеры ролей.

Кластерная архитектура закладывает основу для будущей реализации шардинга, технологии, которая значительно повысит масштабируемость и производительность сети.

Шардинг (шардирование) — это важный механизм, который разделяет сеть на сегменты, шарды. Шардинг помогает более эффективно распределять нагрузку по сети и увеличивает ее пропускную способность.

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

Первый уровень — гетерогенный. Шарды первого уровня, в нашем случае это «сети» выполняют свои уникальные функции, аналогично парачейнам в PolkaDot. Своя сеть есть у каждого сервиса в нашей экосистеме, будь то децентрализованный VPN-сервис KelVPN или IoT-платформа Node.sys. Основная сеть Cellframe — Backbone Network служит хабом для всех сетей и в ней реализован децентрализованный обменник Cellframe DEX для торговли токенами CF-20.

Второй уровень — гомогенный. Будет включать в себя шарды или «ячейки» с одинаковыми функциями (отсюда и название платформы — Cellframe). Этот уровень пока находится в разработке.

Менеджер линков

С переходом на кластерную архитектуру в версии 5.3 мы внедрили функционал менеджера линков. Ранее соединения между нодами были «безымянными», что затрудняло их управление. Теперь же адреса нод стали верифицированными. При установке соединения нода подписывает служебные данные с помощью сертификата с приватным ключом, публичная пара которого путем хэширования превращается в адрес ноды. Таким образом, адрес ноды становится криптографически выверенным и подделать его, не обладая приватным ключом, практически невозможно.

Линк — это совокупность каналов связи с заданным адресом ноды. Он, задается в специальной группе GDB, доступ на запись в которую имеют только ноды-администраторы сети.

Линки могут быть статическими, динамическими или смешанными, в зависимости от настроек. Статические, или «перманентные» имеют приоритет перед динамическими. Их адреса прописаны в файле конфигурации, либо заданы каким-то другим внешним образом. Если количество статических линков не покрывает нужды сети, недостающие динамические линки запрашиваются у балансировщика, который выбирает наиболее подходящие варианты в текущий момент.

Менеджер линков выполняет несколько ключевых функций:

● Управление линками. Предотвращает повторные коннекты с нодами, с которыми уже есть соединение. Если оно инициировано удаленной нодой, локальная нода использует уже существующий линк

● Очистка неактивных линков. Менеджер удаляет неиспользуемые линки и разрывает ненужные соединения, освобождая ресурсы сети

● Обновление информации. Поддерживает актуальность данных о линках в каждом кластере и сети. В зависимости от состояния нод (онлайн/оффлайн), менеджер принимает решения о старте или приеме новых линков.

Обновление повысило эффективность управления линками и работу кластеров в сети.

Механизм автоматического разрешения форков

Форки, разветвления чейна, возникают, когда несколько валидаторов одновременно предлагают разные версии одного блока. Из за особенностей нашего консенсуса вероятность возникновения форков в нашей сети увеличивается.

Так, в блокчейне Cellframe каждый блок подписывают только 10 валидаторов. Это связано с использованием тяжелых постквантовых подписей, которые куда сложнее и объемнее традиционных. Чтобы не замедлять работу сети, количество необходимых алгоритмов для подтверждения блока снижено.

Для поддержания стабильности сети мы внедрили механизм автоматического разрешения форков. Раньше для устранения проблемы нам приходилось останавливать работу сети и «вручную» переносить чейны с самой длинной ветки форка на остальные рутовые и мастерноды, и работать с валидаторами, чтобы устранить последствия. Теперь, в случае возникновения форков, сеть самостоятельно выбирает наиболее длинную цепочку и продолжает работу с ней без нашего вмешательства.

Что дальше?

Обновление функционала Cellframre Node имеет ключевое значение для запуска двустороннего режима моста. Сейчас наша команда активно работает над ним, чтобы блокчейн Cellframe мог полноценно взаимодействовать с другими блокчейнами, в первую очередь, с Эфириумом и BSC. Сейчас мы проводим независимый внешний аудит безопасности функционала ноды и внутренний аудит эмиссионного центра, после чего будут небольшие доработки, которые сделают сеть еще более надежной.

Мы ценим вашу поддержку! Следите за нашими новостями, чтобы первыми узнавать о последних обновлениях.