Skip to content

Счета

Счет - это орган, который может подписывать транзакции и иметь собственное состояние бухгалтерского учета. В текущей модели данных Iroha 3 AccountId является канонической и бездоменной: она происходит от контролера счета и кодируется канонически как I105. Контекст человекочитаемого домена и пространства данных относится к отдельным обязательствам под названием учетных записей.

Структура

Регистрированный Account содержит:

  • id: канонический AccountId
  • metadata: произвольные метаданные счета
  • label: факультативный стабильный псевдоним
  • uaid: необязательный универсальный счет ID, используемый потоками Nexus
  • opaque_ids: непрозрачные идентификаторы, связанные с учетной записью UAID

Транзакционная полезная нагрузка, используемая для создания учетной записи, составляет NewAccount. Она содержит те же поля идентификации, метаданные, этикетку, UAID и непрозрачные ID, которые используются зарегистрированным счетом.

uaid дополняет канонический AccountId; он не заменяет его. Используйте его, когда услуги Nexus нуждаются в стабильном пользовательском или организационном управлении по пространствам данных, сохранении конфиденциальности регистрации или поиску возможностей сервиса. Время выполнения сохраняет индекс от одного к одному UAID к счету, требует прикрепления непрозрачных идентификаторов через UAID, и отвергает дублирующие или столкнувшиеся непрозрачные идентификаторы. См. FHE и UAID для потока обслуживающего слоя Nexus .

Контроллеры счетов

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

Конфигурация клиента хранит авторитет подписания отдельно от конфигурации сверстников:

toml
[account]
public_key = "ed0120..."
private_key = { digest_function = "ed25519", payload = "..." }

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

Попробуй на Taira

Перечислить несколько канонических счетов IDs из общественной Taira тестовой сети:

bash
curl -fsS 'https://taira.sora.org/v1/accounts?limit=5' \
  | jq -r '.items[] | [.id, (.primary_alias // "-")] | @tsv'

Для проверки активов счета копируйте счет ID с первого звонка и URL- Кодируйте его перед тем, как поместить в путь. Python snippet делает это для первого перечисленного счета:

bash
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, в то время как читаемые имена решаются через активную связующую прямую форму счета.

См. также: