Построение на SORA 3: Taira и Minamoto
SORA 3 - это трасса общественного развертывания, ориентированная на приложение, построенная на Iroha 3 и SORA Nexus. Сначала построить и репетировать на Taira, а затем переместить ту же форму клиента в Minamoto только тогда, когда у вас есть отдельные ключи магистральной сети, реальные XOR за сборы и разрешение на производство.
В этом руководстве показано, как настроить клиент Iroha для общественных сетей SORA 3:
- Пробная сетка Taira на
https://taira.sora.org - Minamoto основная сеть на
https://minamoto.sora.org
Использование Taira для тестов интеграции, пишущих канарей, финансируемых из трубки, и репетиций по развертыванию. Minamoto В связи с тем, что в настоящее время существуют новые технологии, они могут быть использованы только для работы в производственной сети. XOR:
- Taira использует испытательную сеть XOR из общего крана.
- Minamoto использует реальный XOR. Нет крана Minamoto.
Путь строителя
| Шаг | Taira Тест-нет | Minamoto Майннет |
|---|---|---|
| Начните с чтения состояния сети | Запрос /status без ключей | Запрос /status без ключей |
| Выберите пространство данных | Используйте общественный universal, если только ваше приложение не нуждается в управляемом полосе | Использовать одно и то же пространство данных только после одобрения mainnet |
| Получить доход . | Используйте общественный Taira трубку | Получить XOR с финансируемого счета Minamoto или утвержденного потока казначейства |
| Тест пишет | Использование испытания, финансируемого из крана XOR | Не используйте тестовые инструменты; пишет расходы на реальные XOR |
| Продвинуть | Постарайтесь перепробовать логику, мониторинг и обработку подписи | Используйте отдельные ключи, управление финансированием и выпусками |
Практический поток:
- Создать клиент против Taira и использовать общественное пространство данных
universal. - Добавьте подпись и финансируйте ее на кране Taira.
- Используйте свою логику приложения против Taira до тех пор, пока ошибки не будут скучными и наблюдаемыми.
- Создайте отдельный Minamoto подписитель, финансируйте его с реальным XOR и переместите только те же проверенные операции в mainnet.
1. Подумайте о том, что вы делаете.
В SORA Nexus пространство данных является частью каталога сетевой полосы и маршрутизации. Клиент не создает новое общественное пространство данных, просто изменив client.toml.
- указывает клиента на правой конечной точке Torii
- подбирает контекст маршрутизации домена и пространства данных для своего канонического учета
AccountId всегда является каноническим и бездоменным. Значение [account].domain в client.toml обеспечивает контекст маршрутизации и псевдонима; оно не становится частью идентификации учетной записи. Для большинства приложений, начинайте с общественного пространства данных universal. Контекст домена использует форму domain.dataspace, например:
wonderland.universalЕсли вам нужен новый организационный пространство данных, приготовьте каталог и предложение маршрутизации вместо того, чтобы пытаться зарегистрировать его из обычной учетной записи клиента. см. Provision a New Dataspace ниже.
2. Проверьте конечный пункт общественности Torii
Проверьте, что целевая конечная точка включена перед конфигурацией подписи.
Для Taira:
curl -fsS https://taira.sora.org/status \
| jq '{peers, blocks, txs_approved, queue_size}'Для Minamoto:
curl -fsS https://minamoto.sora.org/status \
| jq '{peers, blocks, txs_approved, queue_size}'Проверьте пространство данных и вид полосы, выявленные узлом:
curl -fsS https://taira.sora.org/status \
| jq '.teu_lane_commit[] | {lane_id, alias, dataspace_id, dataspace_alias, visibility}'Используйте ту же команду, что и https://minamoto.sora.org/status для основной сети.
Taira MCP для агентов
Taira также раскрывает Torii-нативный Модель Контекст Протокол (MCP) мост для агентов запуска. Используйте его, когда агент нуждается в живых чтениях тестовой сети, скриптовая диагностика или тщательно пересмотренные репетиции письма без создания настраиваемого клиента Torii сначала.
| Настройка | Значение |
|---|---|
| MCP конечный пункт | https://taira.sora.org/v1/mcp |
| Корень сети | https://taira.sora.org |
| Целевое применение | Taira тестирование чтения сети и репетиции письма, финансируемые из крана |
| Эквивалент производства | Не указывайте данную запись на Minamoto, если не было явно утверждены конечная точка основного сети MCP и контроль выпуска. |
Проверяйте метаданные моста перед добавлением подписи:
curl -fsS https://taira.sora.org/v1/mcp \
| jq '{protocolVersion, server: .serverInfo.name, tools: .capabilities.tools.count}'Конфигурировать URL в качестве локального сервера MCP для пользователя во время запуска агента. Не включайте значения конфигурации агента MCP, токенов API, переданных заголовков авторов, authority или private_key в данный реподокументальный документ или репо приложений.
Правилы агента, которые хорошо работают с Taira:
- Открыть инструменты с сервера MCP перед вызовом их; повторно обнаружить, если сервер сообщает
listChanged. - Предпочтительнее сортированные
iroha.инструменты, чем сырыеtorii.инструменты. - Начните с чтения только: проверьте статус, аккаунты, активы, псевдонимы, блоки, состояние управления и состояние транзакции перед предложением записей.
- Требуйте четких человеческих инструкций перед живыми мутациями сети тестирования. Для заранее подписанных конвертов сделок используйте
iroha.transactions.submit_and_wait, чтобы агент подождал результата, а не только подавал. - Подводите итоги хеш-транзакций, окончательного состояния и ошибок в проверке сервера в ответе агента.
Процесс разработки с агентами
Используйте агентов в качестве помощников по разработке для клиентов Iroha, создателей транзакций, диагностических скриптов и тестовых сетей. Сохраняйте ограниченный авторитет агента: Он может проверять код, читать состояние Taira, предлагать изменения и выполнять локальные тесты, но он не должен мутировать живую сеть до тех пор, пока человек не одобрит точную операцию.
Практический рабочий процесс заключается в:
- Просите агента осмотреть соответствующие документы, код SDK, команду CLI или схему инструмента MCP до написания кода.
- Сначала попросите агента написать самый маленький путь клиента: проверка состояния, поиск учетной записи, разрешение псевдонима или поиск баланса.
- Добавьте код по созданию транзакций только после того, как звонки для чтения будут работать против Taira.
- Сохраняйте опт-ин на тесты в живой сети, например за
TAIRA_LIVE=1, так что обычная единичная проверка никогда не тратит средства для тестирования сети или зависит от доступности сети. - Требуйте от агента сообщить о корне сети, цепочке, учетной записи органа, резюме инструкций, активе сборов и ожидаемом изменении состояния до представления сделки.
- Проверьте генерируемый код для секретного обработки, повторного поведения, идемпотенции и обработки отказов перед продвижением его в CI или основные рабочие процессы сети.
Полезные инструменты для разработки MCP включают поиск активов учетной записи, разрешение псевдонимов, поиск блоков, поиск транзакций, списки транзакций и проверки состояния трубопровода. Используйте их для создания доверия перед отправкой подписанной полезной нагрузки.
Use Taira MCP as a read-only inspector while developing this Iroha feature.
Inspect available iroha.* tools, verify the target account and asset state,
then update the client code. Do not submit transactions unless I explicitly
say "submit this transaction".Рабочий поток транзакций через агентов
В настоящее время MCP bridge может представить подписанный документ Iroha сделки, но это не исключает нормальных требований к сделке. Транзакции все еще нужны правильный авторитет, разрешения, финансирование сборов, цепочка ID, метаданные, и подпись.
Для сырья Iroha транзакции, создать и подписывать конверт с SDK или CLI Сначала, затем дайте агенту только канонические подписанные биты транзакции кодируются как: body_base64. Агент может представить конверт с iroha.transactions.submit_and_wait, или представить с iroha.transactions.submit и опроса с iroha.transactions.wait.
Не вставляйте частные ключи в запрос агента. Если агент должен создать транзакцию, укажите ее на локальный код, который загружает секреты из среды работы пользователя, цепочки ключей, аппаратного подписи или проигнорированный файл конфигурации тестирования сети. Агент никогда не должен записывать ключевой материал в Markdown, фиксации, журналы, или обязательства.
Прежде чем подать транзакцию, попросите агента составить короткий план транзакции:
network: Taira корень и цепочка тестовых сетей IDauthority: учетная запись, подписывающая и уплачивающая сборыinstructions: реестр, банкнота, сжигание, передача, метаданные, разрешение или краткое описание вызова контрактаfee asset: актив, который будет взиматься с Tairapreflight reads: уже проведенные счета, баланс активов, разрешения, псевдоним или блок-контролиexpected result: состояние, которое должно быть видно после подтвержденияidempotency: что произойдёт, если одно и то же запрос будет рассмотрен повторно
После подачи, заставить агента ждать состояния терминала, а затем проверить изменение состояния с помощью запроса чтения.
- транзакционный хэш
- статус терминала, такой как
Committed,Applied,RejectedилиExpired - детали блока или исследователя, когда они доступны
- результаты прочтения проверки
- сообщение об отказе и выглядит ли ошибка как разрешения, сборы, проверка, устаревшее состояние или доступность конечных пунктов
Пример охраняемой пропорции:
Prepare a Taira transaction plan, but do not submit yet. Use MCP reads to
verify the authority account, fee balance, target asset or alias, and current
transaction status if a hash already exists. Show the exact instructions and
expected post-state. Wait for my explicit "submit" message before calling
iroha.transactions.submit_and_wait.Когда подписанный конверт уже подготовлен:
Submit this pre-signed Taira transaction envelope with
iroha.transactions.submit_and_wait. Use the provided body_base64 only; do not
ask for private keys. Wait for a terminal status, then verify the resulting
state with read-only iroha.* tools and report the hash, status, and
verification result.С Taira MCP следует относиться как к общественной контрольной поверхности тестируемой сети. Ключи Taira, тест-сеть XOR, учетные записи на кране и канарические сигналы являются одноразовыми и должны оставаться отдельными от ключей Minamoto и рабочих процессов выпуска продукции.
Примеры игрушек, которые вы можете попробовать
Эти примеры доступны только для чтения, если не указано. Они работают до того, как вы генерируете ключи и безопасны для использования в обеих общественных сетях.
Сравните состояние тестовой сети Taira и основных сетей Minamoto:
for network in taira minamoto; do
root="https://$network.sora.org"
printf '\n%s\n' "$network"
curl -fsS "$root/status" \
| jq '{blocks, txs_approved, txs_rejected, queue_size, peers}'
doneПеречислить полосы общедоступного пространства данных, выявленные в Taira:
curl -fsS https://taira.sora.org/status \
| jq -r '.teu_lane_commit[]
| [.lane_id, .alias, .dataspace_alias, .visibility, .storage_profile, .block_height]
| @tsv'Используйте такую же команду против Minamoto, когда вам нужен просмотр основного сети:
curl -fsS https://minamoto.sora.org/status \
| jq -r '.teu_lane_commit[]
| [.lane_id, .alias, .dataspace_alias, .visibility, .storage_profile, .block_height]
| @tsv'Создайте крошечный Node.js зонд состояния для панели управления, бота или проверки развертывания:
node --input-type=module <<'EOF'
const roots = {
taira: 'https://taira.sora.org',
minamoto: 'https://minamoto.sora.org',
};
for (const [name, root] of Object.entries(roots)) {
const status = await fetch(`${root}/status`).then((res) => res.json());
const publicSpaces = status.teu_lane_commit
.filter((lane) => lane.visibility === 'public')
.map((lane) => `${lane.dataspace_alias}:${lane.block_height}`)
.join(', ');
console.log(
`${name}: ${status.blocks} blocks, ${status.queue_size} queued, public spaces ${publicSpaces}`,
);
}
EOFПервой игрушкой с письменной стороны должна быть Taira Запрос на кране. XOR и никогда не следует указывать на Minamoto.
3. Создать конфигурацию клиента Taira
Создать пара ключей, если у вас уже нет:
kagami keys --algorithm ed25519 --jsonСоздать taira.client.toml:
chain = "fc56984b-2be7-431d-840e-21514d1883f0"
torii_url = "https://taira.sora.org/"
[account]
domain = "wonderland.universal"
profile = "taira"
public_key = "<ED25519_PUBLIC_KEY_HEX>"
private_key = "<ED25519_PRIVATE_KEY_HEX>"
[transaction]
time_to_live_ms = 100000
status_timeout_ms = 15000
nonce = falseНа самом высоком уровне chain Это точно. Taira цепочка сделок ID. В настоящее время [account].profile = "taira" настройка самостоятельно выбирает Taira I105 Дискриминатор цепочки. ID не выбирает профиль счета.
Провести проверку только для чтения:
iroha --config ./taira.client.toml --output-format text ops sumeragi statusПровести публичную диагностику Taira до написания тестов:
iroha taira doctor --public-root https://taira.sora.org --jsonФинансируйте счет Taira через трубку, прежде чем запустить оплачиваемые счета. Прямой поток крана в Получить тестнет XOR на Taira.
После того, как заявление на трубку будет принято и счет будет финансирован, канар Taira является дополнительным испытанием дыма для записи:
iroha --config ./taira.client.toml taira write-canary \
--public-root https://taira.sora.org \
--write-config ./taira.canary.client.toml \
--jsonКанар отправляет подписанный пинг, ожидает подтверждения и записывает конфигурацию подписчика при запуске. --write-config предоставляется. Taira является публичной тестовой сетью, так что насыщение очереди может заставить подписанный пинг потерпеть неудачу даже когда трубка сама работает. Если taira doctor сообщает о насыщенной очереди или канарных доходах PRTRY:NEXUS_FEE_ADMISSION_REJECTED, подождите и попробуйте еще раз, прежде чем рассматривать его как ошибку в конфигурации клиента.
Для неконтролируемых испытаний дыма, завязать канарию в ограниченной петле повторного испытания:
ok=false
for attempt in 1 2 3 4 5; do
iroha --config ./taira.client.toml taira write-canary \
--public-root https://taira.sora.org \
--write-config ./taira.canary.client.toml \
--json && ok=true && break
sleep 60
done
test "$ok" = trueПрекратите повторные попытки, если iroha taira doctor показывает тяжелые неудачи. Насыщение очереди и отказ от ввода платы являются переходными условиями для общественных тестовых сетей; диагностики DNS, TLS или status = "fail" не являются.
Создать учетную запись SORA Nexus ID
А . SORA Nexus счета ID является каноническим I105 Адрес, полученный из публичного ключа счета и префикса целевой сети. [account].domain стоимость в клиенте TOML. Один и тот же код общего ключа для разных IDs на Taira и Minamoto, и пользователи производства должны создать отдельную клавишу для Minamoto.
Создать или загрузить клавишу Ed25519 , которая будет управлять аккаунтом:
kagami keys --algorithm ed25519 --jsonПреобразовать государственный ключ на счет Taira ID:
iroha tools address convert --profile taira <ED25519_PUBLIC_KEY_HEX>Преобразовать общественный ключ Minamoto с предварительным префиксом "mainnet":
iroha tools address convert --profile minamoto <ED25519_PUBLIC_KEY_HEX>Используйте полученную учетную запись ID всякий раз, когда команда Nexus API или CLI требует канонической учетной записи ID, например, крана Taira account_id, запросов на баланс, строгих полей учетной записи или обязательств под псевдонимом . Сохраняйте соответствующий частный ключ в конфигурации клиента и выберите такую же общественную сеть с [account].profile = "taira" или [account].profile = "minamoto".
Создание ID не создает само по себе финансируемого счета на цепочке. Taira, в кране может создать и финансировать счет для testnet пишет. на Minamoto, использовать одобренное включение в основную сеть или поток казначейства.
Сохранение ключей и резервное копирование
Расчет ID Соответствующий частный ключ, пароль, семена и восстановительный материал должны храниться в секрете.
Используйте эти методы для счетов SORA Nexus:
- Сохранить частные ключи в зашифрованном менеджере паролей, аппаратно поддерживаемом клавиатуре или специальном сервисе подписи. Не используйте ключи для управления источником или не оставляйте производственные ключи в истории оболочки, журналах, чатах, билетах или незашифрованных резервных копиях.
- Используйте уникальную пароль с высокой энтропией для каждого хранилища или подписи производства. Сохранить пароли в менеджере паролей или разделенном процессе хранения, не в том же файле или резервном пакете, что и зашифрованный частный ключ.
- Следует держать ключи Taira и Minamoto отдельно, а ключи Taira рассматривать как одноразовый материал для испытательных сетей и ключи Minamoto - как орган по производству средств.
- Запись частного ключа, публичного ключа, учетной записи ID, профиля счета и любых записей о восстановлении или хранении счета, необходимых для восстановления подписителя.
- Сохраняйте, по крайней мере, одну зашифрованную резервную копию в автоном режиме и одну географически отдельную зашифренную резервную копию для подписи для производства.
- Переключите или замените подписи, если был обнаружен личный ключ, пароль, резервный медиа или подпися хостинг.
Более подробно см. Сохранение криптографических ключей и Подтверждение безопасности паролей.
4. Получить Testnet XOR на Taira
Используйте общественный кранок прямо.
- Создание или загрузка подписи и расчет ее канонической учетной записи Taira ID.
- Приведи нынешнюю трубку.
- Решение головоломки, если
difficulty_bitsбольше0. - Подайте заявку на трубку.
- Подождите, пока баланс счета или активов станет видимым, прежде чем отправить платное письмо.
Перевести общественный ключ на счет Taira I105 ID, ожидаемый краном:
iroha tools address convert --profile taira <ED25519_PUBLIC_KEY_HEX>Принеси мне головоломку:
curl -fsS https://taira.sora.org/v1/accounts/faucet/puzzle | jq .Если головоломка или конечная точка претензии возвращает 502, перерыв времени или другую ошибку на уровне шлюза, подождите и попробуйте снова, прежде чем изменить ключи или конфигурацию клиента.
Ответ имеет следующую форму:
{
"algorithm": "scrypt-leading-zero-bits-v1",
"difficulty_bits": 8,
"anchor_height": 741,
"anchor_block_hash_hex": "05d2...",
"challenge_salt_hex": null,
"scrypt_log_n": 13,
"scrypt_r": 8,
"scrypt_p": 1,
"max_anchor_age_blocks": 6
}Если difficulty_bits является 0, представьте только счет ID:
curl -fsS https://taira.sora.org/v1/accounts/faucet \
-H 'content-type: application/json' \
-d '{"account_id":"<TAIRA_I105_ACCOUNT_ID>"}'Если difficulty_bits превышает 0, решить головоломку и включить высоту якоря плюс нонс:
curl -fsS https://taira.sora.org/v1/accounts/faucet \
-H 'content-type: application/json' \
-d '{
"account_id": "<TAIRA_I105_ACCOUNT_ID>",
"pow_anchor_height": 741,
"pow_nonce_hex": "<NONCE_HEX>"
}'Алгоритм головоломки:
- Создать задачу как SHA-256 над:
- байты
iroha:accounts:faucet:pow:v2 - счет UTF-8 ID
anchor_heightкак большая эндияu64anchor_block_hash_hexрасшифрованные в байтахchallenge_salt_hexдекодируются в байтах, если они присутствуют
- байты
- Попробуйте
u64nonces кодируются как величайшие 8-байтные значения. - Для каждой нонси, выполните скрипт с:
- пароль: 8-байтный нонс
- соль: 32-байтовая задача
N = 2^scrypt_log_nr = scrypt_rp = scrypt_p- длина выхода: 32 байта
- Преимущественный нонс - это первый дигест с по меньшей мере
difficulty_bitsведущим нулевым битом.
Ответ на трубку включает в себя финансируемый актив и хэширование транзакций в очереди:
{
"account_id": "<TAIRA_I105_ACCOUNT_ID>",
"asset_definition_id": "6TEAJqbb8oEPmLncoNiMRbLEK6tw",
"asset_id": "...",
"amount": "25000",
"tx_hash_hex": "...",
"status": "QUEUED"
}В настоящее время ответ возвращается с HTTP 202 Accepted. Определение активов ID Выше - Taira актива по счетам, финансируемый государственным краном. Фантик принял запрос, когда он возвращается tx_hash_hex и status: "QUEUED".
Затем проанализируйте финансируемые активы перед тем, как представить свои собственные платежные операции:
iroha --config ./taira.client.toml ledger asset get \
--definition 6TEAJqbb8oEPmLncoNiMRbLEK6tw \
--account <TAIRA_I105_ACCOUNT_ID>Если требование к крану было принято, но учетная запись или актив еще не видны, транзакция по-прежнему находится за обработкой очереди в публичной тестовой сети. Подождите и попробуйте прочитать до отправки писем.
Для готовой к запуску прямой проверки API запишите ее в taira_faucet_claim.py и передайте на счет Taira I105 ID:
#!/usr/bin/env python3
import hashlib
import json
import sys
import urllib.request
def has_leading_zero_bits(digest: bytes, bits: int) -> bool:
full, rem = divmod(bits, 8)
if digest[:full] != b"\0" * full:
return False
return rem == 0 or digest[full] >> (8 - rem) == 0
root = "https://taira.sora.org"
account_id = sys.argv[1]
with urllib.request.urlopen(f"{root}/v1/accounts/faucet/puzzle") as res:
puzzle = json.load(res)
claim = {"account_id": account_id}
difficulty = int(puzzle["difficulty_bits"])
if difficulty > 0:
challenge = hashlib.sha256()
challenge.update(b"iroha:accounts:faucet:pow:v2")
challenge.update(account_id.encode())
challenge.update(int(puzzle["anchor_height"]).to_bytes(8, "big"))
challenge.update(bytes.fromhex(puzzle["anchor_block_hash_hex"]))
if puzzle.get("challenge_salt_hex"):
challenge.update(bytes.fromhex(puzzle["challenge_salt_hex"]))
n = 1 << int(puzzle["scrypt_log_n"])
r = int(puzzle["scrypt_r"])
p = int(puzzle["scrypt_p"])
salt = challenge.digest()
for nonce in range(1_000_000):
nonce_bytes = nonce.to_bytes(8, "big")
digest = hashlib.scrypt(nonce_bytes, salt=salt, n=n, r=r, p=p, dklen=32)
if has_leading_zero_bits(digest, difficulty):
claim["pow_anchor_height"] = puzzle["anchor_height"]
claim["pow_nonce_hex"] = nonce_bytes.hex()
break
else:
raise SystemExit("faucet nonce not found")
request = urllib.request.Request(
f"{root}/v1/accounts/faucet",
data=json.dumps(claim).encode(),
headers={"content-type": "application/json"},
method="POST",
)
with urllib.request.urlopen(request) as res:
print(json.dumps(json.load(res), indent=2))Кран предназначен только для средств тестовой сети Taira. Не используйте тестную сеть XOR, счета кран или канарные сигналы Taira в потоках Minamoto.
5. Создать конфигурацию клиента Minamoto
Используйте отдельную клавишу для Minamoto. Не используйте клавиши Taira в основной сети.
Создать minamoto.client.toml:
chain = "00000000-0000-0000-0000-000000000753"
torii_url = "https://minamoto.sora.org/"
[account]
domain = "wonderland.universal"
profile = "minamoto"
public_key = "<ED25519_PUBLIC_KEY_HEX>"
private_key = "<ED25519_PRIVATE_KEY_HEX>"
[transaction]
time_to_live_ms = 100000
status_timeout_ms = 15000
nonce = falseНа самом высоком уровне chain является точным Nexus цепь майннет ID. [account].profile = "minamoto" выбирает Minamoto I105 Дискриминатор цепи; имя хостинга конечного пункта и цепь ID Не выбирайте его подразумеваемо.
Преобразовать общественный ключ Minamoto в его канонический счет I105 ID с префиксом "mainnet":
iroha tools address convert --profile minamoto <ED25519_PUBLIC_KEY_HEX>Используйте только проверки с точки зрения чтения до тех пор, пока счет не будет обеспечен и профинансирован через потоки включения в сеть или управления:
iroha --config ./minamoto.client.toml --output-format text ops sumeragi statusНе используйте Taira кран или помощник для записывания с помощью Minamoto.
6. Финансирование счета Minamoto на XOR
Minamoto Плата оплачивается с производством XOR, и Minamoto Фонд конфигурированного счета через одобренный майннет-онбординг или казначейский перевод, либо получать XOR из существующего финансируемого Minamoto счета.
Проверяйте канонический отчет ID и финансирование с помощью чеков только для чтения перед подачей письма. Minamoto XOR в качестве средств производства: репетировать ту же операцию на Taira Во-первых, сохраняйте отдельные производственные ключи и не предполагайте, что транзакция с магистральной сетью может быть перезагружена.
Taira XOR не может заплатить Minamoto сборы: балансы тестовой сети и требования к крану не перечисляются на Minamoto.
7. Работа внутри существующего пространства данных
Используйте полностью квалифицированные доменные имена для объектов реестра, которые живут внутри пространства данных. Например, домен проекта в публичном пространстве данных должен использовать:
apps.universalПосле того, как ваша учетная запись получит необходимые разрешения, создавайте секретное намерение AliasSetupPlanRequestV1 для домена и используйте декларативный планировщик:
iroha --config ./taira.client.toml \
app alias setup plan \
--intent-file ./taira-apps-domain.intent.json \
--plan-file ./taira-apps-domain.plan.json
iroha --config ./taira.client.toml \
--metadata ./taira.tx-metadata.json \
app alias setup apply --plan-file ./taira-apps-domain.plan.jsonДля Minamoto создать и утвердить отдельный план и намерение основной сети. Планы связаны с их цепочкой, полномочиями, якорным режимом жизни и сроком действия, поэтому план Taira не может быть продвинут или воспроизведен:
iroha --config ./minamoto.client.toml \
app alias setup plan \
--intent-file ./minamoto-apps-domain.intent.json \
--plan-file ./minamoto-apps-domain.plan.json
iroha --config ./minamoto.client.toml \
app alias setup apply --plan-file ./minamoto-apps-domain.plan.jsonИдентификаторы учетных записей используют один и тот же суфикс пространства данных:
alice@apps.universal
alice@universalВ строгих учетных полях все еще используются канонические I105 счета IDs. Обращайтесь с псевдонимами как с человекочитаемыми связями, которые решаются в каноническом отношении. IDs.
8. Предоставление нового пространства данных
Новое пространство данных - это изменение оператора и управления. общественный конечный пункт Torii может направить трафик на конфигурированные пространства данных, но он отвергнет неизвестные прозвища пространства данных.
Прежде чем подготовить изменение, запишите текущий живой каталог:
curl -fsS https://taira.sora.org/status \
| jq '.teu_lane_commit[] | {lane_id, alias, dataspace_id, dataspace_alias, visibility}'Для аккаунта оператора также проверьте положение проездной полосы:
iroha --config ./operator.client.toml app nexus lane-report --summaryНе продвигайте новые псевдонимы, если полоса ID, пространство данных ID, набор валидатора, допустимость ошибок, манифест, правила маршрутизации и эксплуатационный владелец не были пересмотрены вместе. Нормальная учетная запись пользователя с необходимыми разрешениями может приобрести домен и арендовать его SNS внутри существующего пространства данных через псевдопланировщик; она не может безопасно добавлять новый общественный пространство данных.
Для частного или организационного пространства данных подготовить изменение каталога с:
- уникальный псевдоним пространства данных и цифровая
id - соответствующий вход в полосу или существующее присвоение полосы;
- пространство данных
fault_tolerance - правила маршрутизации для инструкций или объемов учетной записи, которые должны приземлиться там
- манифест Space Directory или эквивалентные доказательства запуска, когда пространство данных раскрывает возможности UAID
- одобрение управленческого характера для политики проверки, соответствия, расчетов и мониторинга;
Пересматриваемый фрагмент конфигурации выглядит так:
[[nexus.lane_catalog]]
index = 5
alias = "payments"
description = "Payments lane"
dataspace = "payments"
visibility = "public"
metadata = {}
[[nexus.dataspace_catalog]]
alias = "payments"
id = 20
description = "Payments dataspace"
fault_tolerance = 1
[[nexus.routing_policy.rules]]
lane = 5
dataspace = "payments"
[nexus.routing_policy.rules.matcher]
account_prefix = "payments."
description = "Route payments domains to the payments dataspace"Прием оператора должен включать в себя следующие ворота:
irohad --sora --config <config.toml> --trace-configпередает конфигурацию решенного узла.- генерируемый или пересмотренный манифест архивируется хэшами и подписями.
- прохождение испытаний дыма на Taira до любого продвижения Minamoto
- каталог
/statusпосле изменения показывает предполагаемую полосу и пространство данных iroha app nexus lane-report --summaryне сообщает о отсутствии требуемых манифестов.
curl -fsS https://taira.sora.org/status \
| jq '.teu_lane_commit[] | select(.dataspace_alias == "payments")'Продвижение одного и того же пространства данных до Minamoto только после завершения развертывания Taira, испытаний дыма, мониторинга и доказательств управления.