Skip to content

Referencia del Génesis ​

En el flujo de trabajo actual Iroha 3, un manifiesto genesis.json describe las primeras transacciones y parámetros que se aplicarán cuando la red se inicie.

El artefacto firmado distribuido entre pares es un archivo .nrt codificado en Norito producido por kagami genesis sign.

Principales campos ​

Un manifiesto de génesis puede definir:

  • chain para el identificador de cadena
  • executor para un ejecutor opcional que actualice el recorrido del código de byte
  • ivm_dir para las bibliotecas IVM utilizadas por los disparadores y actualizaciones
  • consensus_mode para el modo inicial anunciado en el manifiesto.
  • transactions para las actualizaciones de parámetros ordenadas, instrucciones, desencadenantes y topología
  • crypto para la instantánea inicial de criptografía

Dentro de transactions, las entradas topológicas parejas de identificación de pares y PoPs juntas:

json
{
  "peer": "ea0130...",
  "pop_hex": "0xabcd..."
}

Generar un manifiesto ​

Para generar una plantilla, utilice Kagami:

bash
cargo run -p iroha_kagami -- genesis generate \
  --consensus-mode npos \
  --ivm-dir defaults \
  --genesis-public-key <PUBLIC_KEY> > genesis.json

Para el espacio de datos público SORA Nexus, npos es el modo esperado de consenso. Otras implementaciones Iroha 3 pueden utilizar permisos o NPoS dependiendo del perfil objetivo.

Firmar el Manifiesto ​

Después de editar y validar el JSON, firmarlo en un bloque .nrt desplegable:

bash
cargo run -p iroha_kagami -- genesis sign genesis.json \
  --private-key <PRIVATE_KEY> \
  --out-file genesis.signed.nrt

kagami genesis sign lee la clave pública genesis del manifiesto y utiliza la clave privada proporcionada, la semilla y el algoritmo para producir el bloque firmado desplegable. El resultado es el archivo que los pares deben consultar desde su configuración.

Configuración irohad ​

Apuntar al demonio en el bloque de Génesis firmado:

toml
[genesis]
file = "genesis.signed.nrt"
public_key = "<PUBLIC_KEY>"
  • kagami genesis validate
  • kagami genesis normalize
  • kagami genesis embed-pop
  • kagami localnet
  • cargo xtask kagami-profiles

Para obtener detalles sobre la implementación y el comando del generador, véase el Kagami README.