Ejecutar una Red Pública (Avanzado)
Ceremonias de génesis
Sección titulada «Ceremonias de génesis»La herramienta aptos
soporta el arranque de nuevas blockchains a través de lo que se conoce como una ceremonia de génesis. La salida de la ceremonia de génesis es la salida de instrucciones de move que preparan una blockchain para operación en línea. La entrada consiste en:
- Un conjunto de validadores y su configuración
- El conjunto inicial de módulos Move, conocido como un framework
- Un
ChainId
único (u8) que distingue esto de otras redes - Para cadenas de prueba, también existe una cuenta que gestiona la acuñación de AptosCoin
Generar génesis
Sección titulada «Generar génesis»- El organizador de génesis construye un
Layout
y lo distribuye. - El organizador de génesis prepara el bytecode del framework de Aptos y lo distribuye.
- Cada participante genera su
ValidatorConfiguration
y la distribuye. - Cada participante genera un
genesis.blob
de las contribuciones resultantes. - El organizador de génesis ejecuta el
genesis.blob
para derivar el waypoint inicial y lo distribuye. - Cada participante comienza su
aptos-node
. Elaptos-node
verifica al inicio que elgenesis.blob
con el waypoint proporcionado por el organizador de génesis. - La blockchain comenzará el consenso después de que un quórum de stake esté disponible.
Preparar aptos-core
Sección titulada «Preparar aptos-core»Las siguientes secciones dependen de herramientas del código fuente de Aptos. Ver Construir Aptos Desde el Código Fuente para la configuración.
El archivo layout
Sección titulada «El archivo layout»El archivo layout contiene:
root_key
: una clave pública Ed25519 para la gestión de AptosCoin.users
: el conjunto de participanteschain_id
: elChainId
o un entero único que distingue este despliegue de otras redes de Aptos
Un ejemplo:
root_key: "0xca3579457555c80fc7bb39964eb298c414fd60f81a2f8eedb0244ec07a26e575"users: - alice - bobchain_id: 8
Construir el Framework de Aptos
Sección titulada «Construir el Framework de Aptos»Desde tu repositorio de Aptos-core, construye el framework y empaquétalo:
cargo run --package frameworkmkdir aptos-framework-releasecp aptos-framework/releases/artifacts/current/build/**/bytecode_modules/* aptos-framework-release
El framework se almacenará dentro del directorio aptos-framework-release
.
El archivo ValidatorConfiguration
Sección titulada «El archivo ValidatorConfiguration»El archivo ValidatorConfiguration
contiene:
account_address
: La cuenta que gestiona este validador. Esto debe derivarse de laaccount_key
proporcionada dentro del archivoValidatorConfiguration
.consensus_key
: La clave pública para autenticar mensajes de consenso del validadoraccount_key
: La clave pública para la cuenta que gestiona este validador. Esto se usa para derivar laaccount_address
.network_key
: La clave pública para autenticación y cifrado de red tanto del validador como del fullnode.validator_host
: La dirección de red donde reside el validador. Esto contiene un campohost
yport
. Elhost
debe ser un nombre DNS o una dirección IP. Actualmente solo se soporta IPv4.full_node_host
: Una dirección de red opcional donde reside el fullnode. Esto contiene un campohost
yport
. Elhost
debe ser un nombre DNS o una dirección IP. Actualmente solo se soporta IPv4.stake_amount
: El número de monedas siendo apostadas por este nodo. Se espera que esto sea1
, si es diferente la configuración se considerará inválida.
Un ejemplo:
account_address: ccd49f3ea764365ac21e99f029ca63a9b0fbfab1c8d8d5482900e4fa32c5448aconsensus_key: "0xa05b8f41057ac72f9ca99f5e3b1b787930f03ba5e448661f2a1fac98371775ee"account_key: "0x3d15ab64c8b14c9aab95287fd0eb894aad0b4bd929a5581bcc8225b5688f053b"network_key: "0x43ce1a4ac031b98bb1ee4a5cd72a4cca0fd72933d64b22cef4f1a61895c2e544"validator_host: host: bobs_host port: 6180full_node_host: host: bobs_host port: 6182stake_amount: 1
Para generar esto usando el CLI de aptos
:
- Genera las claves de tu validador:
cargo run --package aptos -- genesis generate-keys --output-dir bobs
- Genera tu
ValidatorConfiguration
:
cargo run --package aptos -- \\ genesis set-validator-configuration \\ --keys-dir bobs \\ --username bob \\ --validator-host bobs_host:6180 \\ --full-node-host bobs_host:6180 \\ --local-repository-dir .
- El último comando producirá un archivo
bob.yaml
que debe distribuirse a otros participantes para la generación degenesis.blob
.
Generar un génesis y waypoint
Sección titulada «Generar un génesis y waypoint»genesis.blob
y el waypoint pueden generarse después de obtener el archivo layout
, cada uno de los archivos ValidatorConfiguration
individuales, y el lanzamiento del framework. Es importante validar que la ValidatorConfiguration
proporcionada en la etapa anterior sea la misma que en la distribución para generar el genesis.blob
. Si hay una discrepancia, informa a todos los participantes.
Para generar el genesis.blob
y waypoint:
- Coloca el archivo
layout
en un directorio, ej.,genesis
. - Coloca todos los archivos
ValidatorConfiguration
en el directoriogenesis
. - Asegúrate de que los archivos
ValidatorConfiguration
estén listados bajo el conjunto deusers
dentro del archivolayout
. - Crea un directorio
framework
dentro del directoriogenesis
y coloca los archivos.mv
del lanzamiento del framework en el directorioframework
. - Usa el CLI de
aptos
para generar génesis y waypoint:
cargo run --package aptos -- genesis generate-genesis --local-repository-dir genesis
Iniciar un aptos-node
Sección titulada «Iniciar un aptos-node»Al generar el genesis.blob
y waypoint, colócalos en el directorio de configuración de tu validador y fullnode y comienza tu validador y fullnode.