Cómo utilizar la pila OP con Avail
Introducción
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 elDocumentación de optimismo(se abre en una nueva pestaña).
En esta guía, realizará lo siguiente:
Requisitos previos
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
Compile el código base principal
La configuración del EVM Rollup requiere compilar código de dos repositorios críticos: eladaptador-de-pila-opcional-disponible monorepo(se abre en una nueva pestaña)y elrepositorio op-geth(se abre en una nueva pestaña).
Construya la fuente del adaptador
Clona y navega hasta el adaptador Avail:
Instalar módulos:
Compile los paquetes necesarios:
Construya la fuente Geth del optimismo
Clona y navega hasta
op-geth
:Compilar
op-geth
:
Obtenga acceso a un nodo Goerli
Para implementar en Goerli, acceda a un nodo L1 utilizando un proveedor comoAlquimia(se abre en una nueva pestaña)oejecuta tu propio nodo Goerli(se abre en una nueva pestaña).
Generar y proteger claves
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:
En el repositorio del adaptador Avail, navegue hasta elpaquete básico de contratos(se abre en una nueva pestaña):
Generar cuentas:
Deberías ver un resultado similar a:
Registre y almacene de forma segura estos detalles clave. Necesitará financiar
Admin
,Proposer
yBatcher
con Goerli ETH (2 ETH paraAdmin
, 5 ETH paraProposer
, 10 ETH paraBatcher
).
⚠️
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.
Configuración y configuración de red
Después de construir los repositorios, configure los ajustes de su cadena en elpaquete básico de contratos(se abre en una nueva pestaña).
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
:Si necesita instalar
direnv
, asegúrese también demodificar la configuración del shell(se abre en una nueva pestaña).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úndeploy-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
enavail-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
).
Implementación del contrato principal
Implementar contratos L1 esenciales para la funcionalidad de la cadena:
Navegue hasta
/avail-op-stack-adapter/packages/contracts-bedrock/deployments
y creeavail-optimism
el directorio:
Navegue hasta
/avail-op-stack-adapter/packages/contracts-bedrock/
los contratos de implementación (esto puede tardar hasta 15 minutos):
Configuración de la configuración L2
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énesisrollup.json
para configuraciones acumuladasjwt.txt
para una comunicación segura entreop-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 archivosgenesis.json
yrollup.json
:Encontrarás el recién creado
genesis.json
yrollup.json
en elop-node
paquete.Genere un
jwt.txt
archivo, que es crucial para la interacción segura entre nodos:Para
op-geth
prepararse, mueva los archivosgenesis.json
yjwt.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.
Inicializar y configurar Geth
Prepárese op-geth
para ejecutar la cadena:
Navegar a
op-geth
:Cree un directorio de datos:
Inicialice con el archivo génesis:
Lanzar y monitorear nodos
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
Ejecutando op-geth
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 luegoop-node
.
Ejecutando nodo de operación
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.
Ejecutando op-batcher
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.
Ejecución del proponente de oposición
Finalmente, empezar op-proposer
a proponer nuevas raíces estatales:
Adquiera Goerli ETH para la Capa 2
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.
Realizar transacciones de prueba
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!
Last updated