Skip to content

Iroha Объяснение

Iroha 3 является платформой Hyperledger Iroha первой версии. Тот же ядро поддерживает сети самохостинга и модель исполнения SORA Nexus для пространств данных и многополосного маршрутизации.

Основные строительные блоки

  • irohad работает сверстниками
  • Torii - клиентский и операторский шлюз
  • Sumeragi справляется с консенсусом
  • Norito - канонический бинарный формат
  • IVM управляет портативными смарт-контрактами и байткодом
  • Kotodama составляет контракты высокого уровня .ko на байт-код IVM .to
  • Kagami готовит ключи, генезис, профили и локальные сети
  • SORA Nexus сервисные самолеты добавляют Soracloud, Инру, SoraNet, SoraFS, и SoraDNS для хостинга приложений, транспортировки конфиденциальности, хранения и присвоения наименований

Модель исполнения

Все изменения в мировом состоянии все еще происходят через транзакцию. IVM байткод, и Torii является основным способом, которым клиенты представляют их или наблюдают за их эффектом.

  • Nexus-сознательные конфигурации могут определять несколько полос.
  • пространства данных изолируют рабочие нагрузки, оставаясь частью одной и той же модели реестра.
  • Политика маршрутизации определяет, какая полоса и пространство данных обрабатывают класс работы.

Архитектура множественного пространства данных

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

При запуске пространство данных представлено числовыми DataSpaceId и каталогическими метаданными. DataSpaceId::UNIVERSAL зарезервировано как 0; по умолчанию каталог содержит пространство данных universal. Каждый конфигурированный пространство данных имеет:

  • уникальная цифра ID
  • уникальные псевдонимы, такие как universal, governance или zk;
  • необязательное описание поверхностей оператора
  • значение не нулевое fault_tolerance, используемое для измерения комитетов эстафеты;

Линейки - это маршруты выполнения и хранения данных, связанные с этими базами данных. LaneId, Сборник DataSpaceId Он служит, псевдонимом, видимостью (public или restricted), профиль хранения (full_replica, commitment_only, или split_replica), схема доказательства, и необязательное управление, расчеты и метаданные планировщика. Время выполнения извлекается из этого каталога геометрией хранения на полосу, включая Kura названия сегментов и детерминистические префиксы ключей.

Путешествие маршрута:

  1. Конфигурация создает проверенный DataSpaceCatalog, LaneCatalog и LaneRoutingPolicy. Некоторые полосы, многочисленные пространства данных или нестандартное маршрутизация требуют nexus.enabled = true.
  2. Транзакционная очередь просит маршрутизатора активной полосы поискать RoutingDecision, содержащий полосу ID и пространство данных ID.
  3. Рассмотренные правила маршрутизации могут совпадать по авторитету/счету или на ярлыке инструкции. Без соответствующего правила маршрутизатор может выводить пространство данных из домена IDs, прогнозов определения активов, разрешений с использованием пространства данных, ног расчетов или объема связанного счета органа.
  4. Решенный маршрут проверяется по обоим каталогам. Неизвестные полосы, неизвестные пространства данных и несоответствие полосы / пространства данных являются детерминистскими ошибками маршрутизации. Если транзакция направляется к двум различным целям пространства данных, она отклоняется как противоречивый маршрут; расчеты между пространством данных DVP/PVP направляются через универсальный координаторный путь.
  5. Sumeragi и телеметрия сохраняют заданность видимой в виде активности ленты и пространства данных, отставок и снимков обязательств.

Вот почему идентификаторы объектов важны. Домены включают псевдоним пространства данных в свой ID, например payments.universal, так что записи с доменным масштабом могут быть направлены. Счета остаются каноническими и без домена, поэтому один и тот же счет может быть связан в различные сферы применения без изменения его AccountId. Определения активов могут иметь проекцию домена / пространства данных, которая позволяет операциям с активами унаследовать правильный маршрут пространства данных.

Без превышения Nexus узел использует одну полосу и пространство данных universal. Объединенный профиль SORA заменяет его каталогом из трех полос: core для универсальной общественной полосы, governance для движения по управлению и zk для движения с нулевым знанием и развертыванием договоров.

Эти три дефолта существуют для отдельных классов рабочей нагрузки:

Пространство данныхЛейнПочему она существует ?
universalcoreРезервированное пространство данных по умолчанию (DataSpaceId::UNIVERSAL == 0) для обычного трафика публичных регистров и обратного маршрутизации.
governancegovernanceОграниченная полоса для управления и трафика парламента, поэтому деятельность контрольного плана не смешивается с общим применением пишет.
zkzkОграниченная полоса для доказательств нулевого знания, приложения и маршрутизации контрактного развертывания, удерживая рабочие процессы с высоким уровнем проверки отдельно от обычных записей.

Только universal является зарезервированной базовой линией. governance и zk являются профильными выборами SORA, кодируемыми в объединенном каталоге и политике маршрутизации; операторы могут определить другой каталог, когда им нужны разные границы пространства данных.

Sumeragi всегда использует доступность данных и надежную трансляцию. Эти пути являются частью протокола консенсуса Iroha 3 и не могут быть отключены профилем развертывания.

Поведение в режиме запуска исходит из файлов конфигурации и параметров на цепочке. Переменные окружающей среды не являются портами функций производства.