Счета
Счет - это орган, который может подписывать транзакции и иметь собственное состояние бухгалтерского учета. В текущей модели данных Iroha 3 AccountId является канонической и бездоменной: она происходит от контролера счета и кодируется канонически как I105. Контекст человекочитаемого домена и пространства данных относится к отдельным обязательствам под названием учетных записей.
Структура
Регистрированный Account содержит:
id: каноническийAccountIdmetadata: произвольные метаданные счетаlabel: факультативный стабильный псевдонимuaid: необязательный универсальный счет ID, используемый потоками Nexusopaque_ids: непрозрачные идентификаторы, связанные с учетной записью UAID
Транзакционная полезная нагрузка, используемая для создания учетной записи, составляет NewAccount. Она содержит те же поля идентификации, метаданные, этикетку, UAID и непрозрачные ID, которые используются зарегистрированным счетом.
uaid дополняет канонический AccountId; он не заменяет его. Используйте его, когда услуги Nexus нуждаются в стабильном пользовательском или организационном управлении по пространствам данных, сохранении конфиденциальности регистрации или поиску возможностей сервиса. Время выполнения сохраняет индекс от одного к одному UAID к счету, требует прикрепления непрозрачных идентификаторов через UAID, и отвергает дублирующие или столкнувшиеся непрозрачные идентификаторы. См. FHE и UAID для потока обслуживающего слоя Nexus .
Контроллеры счетов
Контроллер определяет, как учетная запись разрешает действия. По умолчанию клиентский поток использует пару ключей Ed25519, но модель данных также поддерживает более богатые контроллеры, такие как контроллеры политики многоподписки.
Конфигурация клиента хранит авторитет подписания отдельно от конфигурации сверстников:
[account]
public_key = "ed0120..."
private_key = { digest_function = "ed25519", payload = "..." }Смотрите . конфигурация клиента и ключевое поколение для существующих ключевых форматов.
Попробуй на Taira
Перечислить несколько канонических счетов IDs из общественной Taira тестовой сети:
curl -fsS 'https://taira.sora.org/v1/accounts?limit=5' \
| jq -r '.items[] | [.id, (.primary_alias // "-")] | @tsv'Для проверки активов счета копируйте счет ID с первого звонка и URL- Кодируйте его перед тем, как поместить в путь. Python snippet делает это для первого перечисленного счета:
python3 - <<'PY'
import json
import urllib.parse
import urllib.request
root = "https://taira.sora.org"
accounts = json.load(urllib.request.urlopen(f"{root}/v1/accounts?limit=1"))["items"]
account_id = accounts[0]["id"]
encoded = urllib.parse.quote(account_id, safe="")
assets = json.load(
urllib.request.urlopen(f"{root}/v1/accounts/{encoded}/assets?limit=5")
)
print(json.dumps({"account_id": account_id, "assets": assets["items"]}, indent=2))
PYСоздание или обновление учетной записи является подписанной транзакцией и требует установки Taira, описанной в Связь с SORA Nexus Дата-пасеями.
Регистрация и разрешения
Счета зарегистрированы и незарегистрированы с помощью общих инструкций Register и Unregister. Активный валидатор времени запуска определяет, кто может создавать учетные записи и какие токены или роли разрешения требуются.
После регистрации учетная запись может:
- подписывать сделки
- держать активы
- собственные домены
- получать роли и знаки разрешения
- хранить метаданные
- участвовать в псевдоним, рекее, восстановлении и потоках идентификации Nexus, когда эти функции включены
Проблемы с идентификацией
Если сделка неожиданно отклоняется, проверьте:
- публичный ключ клиента соответствует частному ключу, используемому для подписания
- учетная запись была зарегистрирована в генезисе или путем обязательной сделки
- у органа есть разрешения, требуемые инструкцией
- строгие поля счета используют канонический I105 счет ID, в то время как читаемые имена решаются через активную связующую прямую форму счета.
См. также: