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 названия сегментов и детерминистические префиксы ключей.
Путешествие маршрута:
- Конфигурация создает проверенный
DataSpaceCatalog,LaneCatalogиLaneRoutingPolicy. Некоторые полосы, многочисленные пространства данных или нестандартное маршрутизация требуютnexus.enabled = true. - Транзакционная очередь просит маршрутизатора активной полосы поискать
RoutingDecision, содержащий полосу ID и пространство данных ID. - Рассмотренные правила маршрутизации могут совпадать по авторитету/счету или на ярлыке инструкции. Без соответствующего правила маршрутизатор может выводить пространство данных из домена IDs, прогнозов определения активов, разрешений с использованием пространства данных, ног расчетов или объема связанного счета органа.
- Решенный маршрут проверяется по обоим каталогам. Неизвестные полосы, неизвестные пространства данных и несоответствие полосы / пространства данных являются детерминистскими ошибками маршрутизации. Если транзакция направляется к двум различным целям пространства данных, она отклоняется как противоречивый маршрут; расчеты между пространством данных DVP/PVP направляются через универсальный координаторный путь.
- Sumeragi и телеметрия сохраняют заданность видимой в виде активности ленты и пространства данных, отставок и снимков обязательств.
Вот почему идентификаторы объектов важны. Домены включают псевдоним пространства данных в свой ID, например payments.universal, так что записи с доменным масштабом могут быть направлены. Счета остаются каноническими и без домена, поэтому один и тот же счет может быть связан в различные сферы применения без изменения его AccountId. Определения активов могут иметь проекцию домена / пространства данных, которая позволяет операциям с активами унаследовать правильный маршрут пространства данных.
Без превышения Nexus узел использует одну полосу и пространство данных universal. Объединенный профиль SORA заменяет его каталогом из трех полос: core для универсальной общественной полосы, governance для движения по управлению и zk для движения с нулевым знанием и развертыванием договоров.
Эти три дефолта существуют для отдельных классов рабочей нагрузки:
| Пространство данных | Лейн | Почему она существует ? |
|---|---|---|
universal | core | Резервированное пространство данных по умолчанию (DataSpaceId::UNIVERSAL == 0) для обычного трафика публичных регистров и обратного маршрутизации. |
governance | governance | Ограниченная полоса для управления и трафика парламента, поэтому деятельность контрольного плана не смешивается с общим применением пишет. |
zk | zk | Ограниченная полоса для доказательств нулевого знания, приложения и маршрутизации контрактного развертывания, удерживая рабочие процессы с высоким уровнем проверки отдельно от обычных записей. |
Только universal является зарезервированной базовой линией. governance и zk являются профильными выборами SORA, кодируемыми в объединенном каталоге и политике маршрутизации; операторы могут определить другой каталог, когда им нужны разные границы пространства данных.
Sumeragi всегда использует доступность данных и надежную трансляцию. Эти пути являются частью протокола консенсуса Iroha 3 и не могут быть отключены профилем развертывания.
Поведение в режиме запуска исходит из файлов конфигурации и параметров на цепочке. Переменные окружающей среды не являются портами функций производства.