Cuentas
Una cuenta es una autoridad que puede firmar transacciones y el estado del libro mayor propio. En el modelo de datos actual Iroha 3, AccountId es canónico y no tiene dominio: se deriva del controlador de la cuenta y se codifica canónicamente como I105. El contexto de dominio y espacio de datos legibles por el hombre pertenece a vínculos separados de alias de cuenta.
La estructura
Un Account registrado contiene:
id: el canónicoAccountIdmetadata: metadatos de cuentas arbitrarioslabel: un alias estable opcionaluaid: cuenta universal opcional ID utilizada por los flujos Nexusopaque_ids: Identificadores opacos vinculados a la cuenta de UAID
La carga útil de la transacción utilizada para crear una cuenta es NewAccount. Lleva los mismos campos de identidad, metadatos, etiqueta, UAID y opaco ID utilizados por la cuenta registrada.
uaid complementa el canónico AccountId; No lo reemplaza. Nexus Los servicios necesitan un usuario o una organización estable para gestionar los espacios de datos, la inscripción que preserva la privacidad. El tiempo de ejecución mantiene un uno a uno UAID- el índice de contabilidad, requiere que se adjunten identificadores opacos a través de un UAID, y rechaza los identificadores opacos duplicados o en colisión. FHE y UAID para el Nexus flujo de la capa de servicio.
Controladores de cuentas
El controlador define cómo la cuenta autoriza acciones. El flujo de cliente predeterminado utiliza un par de teclas Ed25519, pero el modelo de datos también admite controladores más ricos como los controladores de políticas multisignaturales.
La configuración del cliente almacena la autoridad de firma por separado de la configuración de pares:
[account]
public_key = "ed0120..."
private_key = { digest_function = "ed25519", payload = "..." }Veamos . configuración del cliente y generación clave para los formatos clave actuales.
Pruébalo en Taira
Enumera algunas cuentas canónicas IDs de la red de pruebas pública Taira:
curl -fsS 'https://taira.sora.org/v1/accounts?limit=5' \
| jq -r '.items[] | [.id, (.primary_alias // "-")] | @tsv'Para inspeccionar los activos de la cuenta, copiar una cuenta ID desde la primera llamada y URL- lo codifica antes de ponerlo en el camino. Python snippet hace eso para la primera cuenta incluida en la lista:
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))
PYEstas son lecturas públicas. La creación o actualización de una cuenta es una transacción firmada y requiere la configuración Taira financiada por grifo descrita en Conectar a SORA Nexus Dataspaces .
Registro y permisos
Las cuentas se registran y no se registran con las instrucciones genéricas Register y Unregister. El validador de tiempo de ejecución activo decide quién puede crear cuentas y qué fichas o roles de permiso se requieren.
Después del registro, una cuenta puede:
- firmar las transacciones
- poseer activos
- dominios propios
- reciben papeles y tokens de permiso
- almacenamiento de metadatos
- Participar en los flujos de alias, rekey, recuperación y identidad Nexus, cuando estas características estén activadas
Resolución de problemas con la identidad
Si una transacción es rechazada de forma inesperada, compruebe si:
- La clave pública del cliente coincide con la clave privada utilizada para firmar.
- la cuenta se registró en génesis o mediante una transacción comprometida
- La autoridad tiene los permisos requeridos por la instrucción.
- Los campos de cuentas estrictas utilizan la cuenta canónica I105 ID, mientras que los nombres legibles se resuelven a través de un alias activo de contabilidad vinculativo
Véase también: