Cómo utilizar la pila OP con Avail
Last updated
Last updated
Embárquese en la creación de su propia cadena de Avail-Optimismo. Esta guía está dirigida a la red de prueba Goerli de Ethereum y a la red de prueba Avail Goldberg. Para una comprensión detallada, revise el.
En esta guía, realizará lo siguiente:
Asegúrese de haber instalado el siguiente software.
Los comandos de instalación se basan en Ubuntu 20.04 LTS:
Software
Versión
sistema operativo predeterminado
1.20
16.19.0
8.5.6
sistema operativo predeterminado
sistema operativo predeterminado
El último
Foundry se instalará localmente dentro del entorno del proyecto, a través depackage.json
Clona y navega hasta el adaptador Avail:
Instalar módulos:
Compile los paquetes necesarios:
Clona y navega hasta op-geth
:
Compilar op-geth
:
Cree cuatro cuentas esenciales con claves privadas:
Admin
(autoridad de actualización de contrato)
Batcher
(publica datos del secuenciador en L1)
Proposer
(publica resultados de L2 en L1)
Sequencer
(seña bloques en la red p2p)
Puede utilizar cast wallet
en el contracts-bedrock
paquete para la generación de claves:
Generar cuentas:
Deberías ver un resultado similar a:
Registre y almacene de forma segura estos detalles clave. Necesitará financiar Admin
, Proposer
y Batcher
con Goerli ETH (2 ETH para Admin
, 5 ETH para Proposer
, 10 ETH para Batcher
).
⚠️
NOTA PARA PRODUCCIÓN
Utilice hardware seguro para la gestión de claves en entornos de producción. cast wallet
no está diseñado para implementaciones de producción.
Asegúrese de estar en el contracts-bedrock
subdirectorio:
Copie el archivo de entorno:
Editar .envrc
con los valores necesarios:
ETH_RPC_URL
: URL para su nodo L1.
PRIVATE_KEY
: Clave privada de la cuenta de administrador.
DEPLOYMENT_CONTEXT
: Nombre de la red; debería ser "optimismo de aprovechamiento"
Activa el entorno con direnv
:
Elija un bloque L1 como punto de partida usando cast
el comando:
Lo mejor es usar un bloque L1 finalizado como nuestro bloque inicial.
Debería obtener una respuesta similar a:
A continuación, cree y modifique deploy-config/avail-optimism.json
según deploy-config/getting-started.json
. Conserve la configuración predeterminada proporcionada en la configuración y aplique las siguientes modificaciones:
Reemplácela ADMIN
con la dirección de la cuenta de administrador que generó anteriormente.
Reemplácela PROPOSER
con la dirección de la cuenta del Proponente que generó anteriormente.
Reemplácela BATCHER
con la dirección de la cuenta de Batcher que generó anteriormente.
Reemplácela SEQUENCER
con la dirección de la cuenta de Sequencer que generó anteriormente.
Reemplácelo BLOCKHASH
con el blockhash que obtuvo del comando de transmisión.
Reemplácela TIMESTAMP
con la marca de tiempo que obtuvo del comando de transmisión. Tenga en cuenta que, aunque todos los demás campos son cadenas, ¡este campo es un número! No incluyas las comillas.
Configure enableDA
en avail-optimism.json
( true
para cadena Avail como DA, false
para Ethereum).
Ingrese op-avail
al módulo:
Crear config.json
con las variables necesarias ( seed
, api_url
, app_id
).
Implementar contratos L1 esenciales para la funcionalidad de la cadena:
Navegue hasta /avail-op-stack-adapter/packages/contracts-bedrock/deployments
y cree avail-optimism
el directorio:
Navegue hasta /avail-op-stack-adapter/packages/contracts-bedrock/
los contratos de implementación (esto puede tardar hasta 15 minutos):
Después de configurar la capa L1, la atención se centra en establecer la infraestructura L2. Esto implica generar tres archivos clave:
genesis.json
para el bloque génesis
rollup.json
para configuraciones acumuladas
jwt.txt
para una comunicación segura entre op-node
yop-geth
Navegue al op-node
directorio:
Ejecute el siguiente comando, asegurándose de reemplazarlo <RPC>
con su URL RPC L1 específica. Esto genera los archivos genesis.json
y rollup.json
:
Encontrarás el recién creado genesis.json
y rollup.json
en el op-node
paquete.
Genere un jwt.txt
archivo, que es crucial para la interacción segura entre nodos:
Para op-geth
prepararse, mueva los archivos genesis.json
y jwt.txt
a su directorio:
Estos pasos garantizan que la capa L2 esté configurada correctamente y lista para la integración con los componentes L1, allanando el camino para un paquete acumulativo de EVM completamente funcional en Avail-OP Stack.
Prepárese op-geth
para ejecutar la cadena:
Navegar a op-geth
:
Cree un directorio de datos:
Inicialice con el archivo génesis:
En funcionamiento op-geth
y op-node
es esencial para cada nodo. op-batcher
y op-proposer
son exclusivos del secuenciador.
Establezca las siguientes variables de entorno:
Variable
Valor
SEQ_KEY
Clave privada del secuenciador
BATCHER_KEY
Clave privada del lote (mínimo 1 ETH)
PROPOSER_KEY
Clave privada del proponente
L1_RPC
URL del nodo L1
RPC_KIND
Tipo de servidor L1 (p. ej., alchemy, quicknode)
L2OO_ADDR
L2OutputOracleDirección proxy
Para iniciar op-geth
, navegue hasta su directorio y ejecute los siguientes comandos:
op-geth
ahora está activo, pero la creación de bloques comenzará una vez op-node
que esté operativo.
¿Por qué el modo de archivo?
El modo de archivo, que requiere más espacio en disco que el modo completo, es esencial para:
op-proposer
para acceder al historial completo del estado.
La funcionalidad del explorador.
Reiniciando op-geth
En casos de corrupción de la base de datos indicada por op-node
errores o falta de encontrar cabezas L2, siga estos pasos:
Detener op-geth
.
Eliminar los datos existentes:
Reinicializar:
Reinicie op-geth
y luego op-node
.
Para iniciar op-node
, que actúa como cliente de consenso, ejecute:
La creación del bloque comenzará una vez que op-node
comience a procesar la información L1 y las interfaces con op-geth
.
Sincronización P2P
Para optimizar la sincronización y evitar el desperdicio de recursos de la red:
Deshabilite la sincronización p2p ( --p2p.disable
) de forma predeterminada.
Utilice parámetros de línea de comando específicos para la sincronización entre múltiples nodos.
op-batcher
es crucial en la publicación de transacciones del secuenciador a L1. Asegúrese de que tenga al menos 1 Goerli ETH para la continuidad operativa.
Controlar los costos del dosificador
Ajuste la --max-channel-duration=n
configuración para equilibrar la frecuencia de transacciones en L1 y los costos operativos del dosificador.
Finalmente, empezar op-proposer
a proponer nuevas raíces estatales:
Para obtener ETH en su Rollup:
Ir a contracts-bedrock
:
Encuentre la dirección del contrato puente estándar L1:
Envíe Goerli ETH a la dirección del contrato puente.
Ahora tiene un paquete acumulativo de EVM basado en Optimismo impulsado por Avail totalmente operativo. Experimente con él como lo haría con cualquier otra cadena de bloques de prueba.
¡Felicitaciones por configurar su cadena!
La configuración del EVM Rollup requiere compilar código de dos repositorios críticos: ely el.
Para implementar en Goerli, acceda a un nodo L1 utilizando un proveedor comoo.
En el repositorio del adaptador Avail, navegue hasta el:
Después de construir los repositorios, configure los ajustes de su cadena en el.
Si necesita instalar direnv
, asegúrese también de.
Software
Versión
sistema operativo predeterminado
1.20
16.19.0
8.5.6
sistema operativo predeterminado
sistema operativo predeterminado
El último
Foundry se instalará localmente dentro del entorno del proyecto, a través depackage.json