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
sistema operativo predeterminado
sistema operativo predeterminado
Foundry se instalará localmente dentro del entorno del proyecto, a través depackage.json
Software
Versión
sistema operativo predeterminado
sistema operativo predeterminado
sistema operativo predeterminado
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 walleten el contracts-bedrockpaquete 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,ProposeryBatchercon 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 walletno 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-bedrocksubdirectorio:Copie el archivo de entorno:
Editar
.envrccon 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
castel 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.jsonsegúndeploy-config/getting-started.json. Conserve la configuración predeterminada proporcionada en la configuración y aplique las siguientes modificaciones:Reemplácela
ADMINcon la dirección de la cuenta de administrador que generó anteriormente.Reemplácela
PROPOSERcon la dirección de la cuenta del Proponente que generó anteriormente.Reemplácela
BATCHERcon la dirección de la cuenta de Batcher que generó anteriormente.Reemplácela
SEQUENCERcon la dirección de la cuenta de Sequencer que generó anteriormente.Reemplácelo
BLOCKHASHcon el blockhash que obtuvo del comando de transmisión.Reemplácela
TIMESTAMPcon 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
enableDAenavail-optimism.json(truepara cadena Avail como DA,falsepara Ethereum).Ingrese
op-availal módulo:Crear
config.jsoncon 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/deploymentsy creeavail-optimismel 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.jsonpara el bloque génesisrollup.jsonpara configuraciones acumuladasjwt.txtpara una comunicación segura entreop-nodeyop-geth
Navegue al
op-nodedirectorio:Ejecute el siguiente comando, asegurándose de reemplazarlo
<RPC>con su URL RPC L1 específica. Esto genera los archivosgenesis.jsonyrollup.json:Encontrarás el recién creado
genesis.jsonyrollup.jsonen elop-nodepaquete.Genere un
jwt.txtarchivo, que es crucial para la interacción segura entre nodos:Para
op-gethprepararse, mueva los archivosgenesis.jsonyjwt.txta 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-gethpara 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-gethy op-nodees esencial para cada nodo. op-batchery op-proposerson 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-gethahora está activo, pero la creación de bloques comenzará una vez op-nodeque 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-proposerpara 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-nodeerrores o falta de encontrar cabezas L2, siga estos pasos:
Detener
op-geth.Eliminar los datos existentes:
Reinicializar:
Reinicie
op-gethy 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-nodecomience 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-batcheres 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=nconfiguració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-proposera 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