Parceros
  • 👽Recursos
    • 💻Nodos validadores
      • Buenas prácticas y seguridad de un validador
      • Montaje de nodo validador de Stargaze
      • Montaje de nodo validador de Tgrade
      • Montaje de nodo validador de Juno
      • Instalacion del Cosmovisor
      • Instalación de AutoCompound
      • Guía de instalación Prometheus y Grafana para un Validador
    • 🎓Desarrollo
      • Fundamentos en Gnu/Linux
      • Fundamentos en Blockchain
      • Billeteras
      • Introducción a Cosmos Hub
      • Guia de Inicio en Rust
      • Clases de CosmWasm
        • Introducción a CosmWasm
        • Puntos de entrada de un contrato vacio
        • Consultas - Query
      • Clases de Rust
        • Introducción a Rust
        • Ciclos
        • Funciones
        • Manejo de la memoria
        • Tipos de datos avanzados
        • Macros
        • Manejo de paquetes
        • Manejo de errores
      • Guia Archway
        • Instalación de requisitos
        • Configuración del proyecto
        • Solicitud de tokens Testnet
        • Mi primera app
          • Configuracion
          • Produciendo ejecutables wasm
          • Despliegue e instanciación de contratos en la cadena
          • Interactuar con su contrato
          • Construir el frontend de la dApp
        • Proyecto NFT
          • Creando un proyecto NFT
          • Despliegue del contrato de tokens
          • Acuñación y envío de tokens
          • Construye la Dapp NFT
        • Fee Grant
          • Comprendiendo los Fee grant
          • Grant asignación
          • Utilizando asignaciones grant
        • Multifirmas
          • Archway multi firma hub
          • Navegar por la interfaz multi firmas
      • Cosmwasm Documentacion
        • Introducción
        • Primeros pasos
          • Introducción
          • Configuración del entorno
          • Elaborar un contrato
          • Test Unitarios
          • Despliegue e interacción
          • Integración con contratos inteligentes
          • Próximos pasos
        • Arquitectura
          • ¿Qué son los contratos multicadena?
          • Modelo de actor para las convocatorias de contratos
          • Nombres y direcciones
          • Consulta del estado del contrato
          • Formatos de serialización
          • Composición del contrato
          • Comparación con los contratos de solidity
        • Contratos inteligentes
          • Semántica contractual
          • Message
            • Messages
            • Submensajes
          • State
            • Simple state
            • Complex state y maps
          • Result y option
          • Entry points
          • Query
          • Events
          • Math
          • Verificación de contratos inteligentes
          • Migration
          • Migrar una dapp a una red diferente
          • Testing
          • Ejecución Sudo
          • CosmWasm y CIB
        • Tutoriales
          • Opcion simple
            • Testing
          • Storage
            • ¿Cómo funciona el almacenamiento de valores clave?
            • Índices
            • Modelización avanzada de estados
          • Cosmwasm con ejemplos
            • Operaciones matemáticas de Cosmowasm
            • Crear una instancia de un contrato CosmWasm
            • Timelock
            • Contrato Crowdfunding
            • Respuestas y atributos en Cosmwasm
            • Lee y escribe
            • Envío de tokens
            • Token Vaults
            • Creador de mercado automático de productos constantes (AMM)
      • Guia Celestia
        • Descripcion general de celestia
          • Introduccion
          • Blockchains monolíticos vs modulares
          • Capa de disponibilidad de datos
            • La capa de disponibilidad de datos de Celestia
            • El ciclo de vida de una transacción celestia-app
            • Recuperabilidad de datos y poda
            • Disponibilidad de datos FAQ
          • Recursos adicionales
            • Aprende modular
            • Glosario de Celestia
            • Especificaciones de aplicación de celestes
            • Documentación API de nodo celestial
        • Ejecutar un nodo
          • Descripción general de los nodos en ejecución en Celestia
          • Guía de inicio rápido
            • Decidir qué nodo ejecutar
            • Entorno de desarrollo
            • Instalar celestia-node
            • Instalar celestia-app
            • 🐳 Configuración de Docker
          • Redes
            • Resumen de redes
            • Mainnet Beta
            • Mocha testnet
            • Arábica devnet
          • Tipos de nodos
            • Disponibilidad de datos
              • Nodo ligero
              • Nodo completo
              • Nodo puente
            • Consenso
            • Relay de IBC
              • Guía de retransmisión IBC
              • Relays de IBC
          • Recursos
            • nodo-celestia
              • Metricas
              • guía config.toml
              • Redes y valores personalizados
              • Solución de problemas
            • celestia-app
              • Especificaciones
              • Métricas, visualización y alertas
              • Mecánica de corte
              • Crear un testnet Celestia
              • Comandos CLI útiles
              • Monitor de Actualización
              • Carteras en celestia-app
              • Multisig
              • Crea una cuenta de adquisición
            • SystemD
            • Proceso de hardfork
        • Desarrolladores
          • Construir modular
          • Envío de blobs de datos a Celestia
          • Directrices de reenvío de transacciones
          • API de nodo
            • Celestia-node RPC CLI tutorial
            • Documentación de la API RPC de Celestia-Node
            • Rápido Scavenger
            • Page
          • Integrar con Blobstream
            • Descripción general de Blobstream
            • Integrarse con contratos de Blobstream
            • Integrar con el cliente Blobstream
            • Consultando las pruebas de Blobstream
            • Operadores locales de Blobstream X
              • Solicitar rangos de compromiso de datos
              • Nuevas implementaciones de Blobstream X
          • Implementar un rollup
            • L2s Ethereum
              • Ethereum fallback
              • Arbitro
                • Introducción a los rollups de Arbitrum con Celestia como DA
                • Implementar un arbitrum rollup devnet
                • Testnet de nitrógeno
                • Implementar un contrato inteligente sobre la implementación de Arbitrum
                • Implemente un dapp en su devnet Arbitrum rollup
                • Optimismo
                  • Introducción a la integración de OP Stack
                  • Bubs testnet
                  • Implemente un contrato inteligente en Bubs testnet
                  • Implemente un dapp en Bubs testnet
                  • Implemente un devnet OP Stack
                  • Implemente un devnet OP Stack en Celestia
                  • Auditoría
                  • Implemente un dapp con thirdweb
                  • Rollups-as-a-Servicio
                    • Caldera
            • Rollkit
            • Astria
              • Documentación
              • Implementar a Dusknet
            • SDK Soberano
            • Vistara
            • Dimensión
          • Carteras
            • Crea una billetera con celestia-node
            • Integraciones de billeteras con Celestia
          • Integre Celestia para proveedores de servicios
      • Unión
        • Arquitectura
          • CometBLS
          • Galois
          • Voyager
        • Conceptos
          • BLS Firmas
          • Clientes de Luz Condicional
          • Verificación de Consenso
          • Tecnología de validador distribuido
          • IBC
          • Sin permiso versus sin confianza
        • Infraestructura
          • Operador de nodo
            • Empezando
            • Docker Compose
            • Kubernetes
            • NixOS
            • Configuración del Nodo
        • Integracion
          • IBC Enabled Solidity
        • Demostrar
          • Dirigiendo el Union Devnet
          • PingPong
        • Unirse al testnet
          • Empezando
          • Ejecutar el binario cliente
          • Ejecución de Unionvisor
          • Obteniendo Tokens Testnet
          • Crear un Validador
          • Endpoints publicos
          • Sincronización de estado
          • Liberar un validador
          • Preguntas frecuentes
          • Historial de actualizaciones
        • Guia de estilo
          • Lista de palabras
      • Avail
        • Introducción a Avail
          • Aprovechar DA
          • Aprovechar Nexus
          • Aprovechar la fusión
        • Informacion de red
        • Más información sobre disponibilidad
          • El conseso
            • BABE
            • GRANDPA
            • NPoS
          • EIP-4844 y disponible
        • Guia de nuevo usuario
          • Cómo crear y administrar una cuenta disponible
          • Cómo utilizar el Explorador Goldberg Testnet
          • Cómo utilizar el faucet Testnet
          • Cómo establecer una identidad en cadena
          • Cómo generar una identificación de aplicación disponible
          • Cómo realizar transferencias de saldo disponibles
          • Cómo crear grupos de nominaciones disponibles
        • Construir con disponibilidad
          • Cree un paquete acumulativo con Avail
          • Comience con Avail
          • Optimium
            • OP Stack
            • Aprovechando la pila OP con Avail
            • Cómo utilizar la pila OP con Avail
            • Adaptador de pila OP 🔗
          • Validium
            • Polygon zkEVM
              • Construyendo sobre Polygon zkEVM con Avail
              • Cómo utilizar Polygon zkEVM con Avail
              • Nodo Validium 🔗
              • Contratos de Validium 🔗
              • Puente Validium 🔗
            • Madara Starknet
              • Construyendo sobre Madara Stack con Avail
              • Cómo utilizar Madara con Avail
              • Madara Starknet🔗
            • Referencia
          • Sovereign Rollups
            • Sovereign SDK 🔗
            • Rollkit 🔗
            • OpEVM 🔗
        • Glosario
        • Preguntas generales frecuentes
      • Dymension
        • Aprender
          • ELI5
          • RollApps
            • RollApps
            • Tokens
            • Gobernancia
            • Puente
            • En profundidad
              • Dymension RDK
                • Dymint
              • Gobernanza
                • Gobernador
                  • Descripción general
                  • Crear gobernador
                  • Otros comandos
                • Votación
                  • Parámetros ajustables
                  • Gasto comunitario
                  • Registro de tokens ERC-20
              • IBC Puente
                • Visión general
                • Seguridad
                • Retransmisores
          • Dymension
            • Visión general
            • DYM
              • Supply
              • Demanda
              • Crecimiento
              • Distribución
            • Seguridad
              • Estándares
              • Actualizable
              • Disponibilidad de datos
              • Pruebas de fraude
              • Resistencia a la censura
              • Page 1
            • Puentes
              • IBC
              • eIBC
            • Liquidez
              • Descripción general
              • Depositar tokens
              • Vinculación de tokens LP
              • Incentivos
              • Comisiones
            • Gobernanza
              • Descripción general
              • Preparando una propuesta
              • Proponiendo a la dimocracia
        • Construir
          • Descripción general
          • Testnet
            • EVM
              • Descripción general
            • CosmWasm
              • Descripción general
              • Información
              • Ejemplo de cosmoWasm
          • Roller CLI
            • Descripción general
            • Comenzar
              • Instalar
              • Inicializar RollApp
              • Registro
              • Correr
                • Simple
                • Avanzado
                  • Cliente ligero DA
                  • Secuenciador
                  • Retransmisor
            • Nodo en ejecución
              • Ejecutando en producción
              • Supervisión
              • Información de RollApp
              • Exportar claves
              • Mejora
              • Editar la configuración de RollApp
              • Sincronización de estado
            • Solución de problemas
              • Descripción general
              • Saldos
              • Hardware
              • Rollapp de importación/exportación
              • Acceso externo
              • Estado
              • Archivos de registro
            • RollApp local
              • Ejecute la aplicación EVM RollApp
              • Ejecute la aplicación CosmWasm RollApp
        • Validar
          • Preguntas frecuentes sobre nodos
          • Construir dimensión
          • Configuración de nodo
          • Únase a una red
          • Nodo de sincronización
          • Validador
          • Actualizaciones
          • Solución de problemas
          • Programa de delegación
            • objetivos del programa
            • Parámetros de evaluación
            • Solicitud
      • Movement
        • Desarrolladores
          • Inicio rápido
          • Configuración
            • Usando contenedores
            • Usando el instalador
          • Tutoriales
            • Desplegar
              • Módulo Aptos
              • Módulo Sui
              • Contratos EVM
                • Implementación de contratos de solidez en movimiento utilizando Foundry y Fractal
                • Implementación de contratos de solidez en M1 usando Hardhat y Fractal
                • Implementación de contratos inteligentes de Solidity en M1 utilizando el tiempo de ejecución Fractal
            • Ejecute MoveVM
              • Ejecutando M1 usted mismo
            • Construir dApp
              • Aptos Move dApp
              • Aplicación Sui Move
              • DApp de solidity
            • Interoperar
              • AptosVM<>MEVM
          • Herramientas de desarrollo
            • Movement CLI
              • Movement aptos
                • cuenta
                  • crear
                  • crear-cuenta-de-recursos
                    • derivar-dirección-de-cuenta-de-recursos
                  • fondo-con-grifo
                  • lista
                  • dirección de búsqueda
                  • rotar llave
                  • transferir
                • configuración
                  • generar-compleciones-de-shell
                  • configurar-global-config
                  • show-global-config
                  • mostrar-perfiles
                • génesis
                  • generar-admin-escritura-conjunto
                  • generar-génesis
                  • obtener direcciones de grupo
                  • generar-claves
                  • generar-plantilla-de-diseño
                  • configuración-git
                  • configuración-del-validador-de-conjuntos
                • gobernancia
                  • proponer
                  • votar
                  • propuesta de show
                  • lista-propuestas
                  • verificar-propuesta
                  • ejecutar propuesta
                  • generar-propuesta-de-actualización
                  • aprobar-ejecución-hash
                • información
                • init
                • llave
                  • generar
                  • extraer-peer
                • mover
                  • construir-publicar-carga útil
                  • limpio
                  • compilar
                  • script de compilación
                  • cobertura
                    • resumen
                    • fuente
                    • código de bytes
                  • crear-cuenta-de-recursos-y-publicar-paquete
                  • desmontar
                  • documento
                  • descargar
                  • init
                  • list
                  • probar
                  • publicar
                  • correr
                  • ejecutar guión
                  • prueba
                  • prueba transaccional
                  • verificar-paquete
                  • vista
                • multifirma
                  • aprobar
                  • crear
                  • crear-transacción
                  • ejecutar
                  • ejecutar-rechazar
                  • ejecutar con carga útil
                  • rechazar
                  • verificar-propuesta
                • nodo
                  • analizar-validador-rendimiento
                  • arranque-db
                  • verificar-conectividad-de-red
                  • conseguir-participación-pool
                  • inicializar-validador
                  • conjunto de validadores de unión
                  • conjunto de validadores de licencia
                  • mostrar-información-de-época
                  • mostrar-validador-config
                  • mostrar-conjunto-validador
                  • mostrar-validador-participación
                  • ejecutar-testnet-local
                  • actualización-clave-de-consenso
                  • actualizar-validador-direcciones-de-red
                • apostar
                  • agregar apuesta
                  • crear-contrato-de-participación
                  • distribuir-monedas-adquiridas
                  • aumentar-bloqueo
                  • inicializar-propietario de la participación
                  • solicitud-comisión
                  • establecer-votante-delegado
                  • operador de conjunto
                  • desbloquear-apuesta
                  • desbloquear-monedas-adquiridas
                  • retirar-apuesta
                • actualizar
              • movement sui
                • comenzar
                • génesis
                • ceremonia-genesis
                  • init
                  • estado de validación
                  • agregar-validador
                  • validadores de lista
                  • punto de control de compilación sin firmar
                  • examinar-punto-de-control-génesis
                  • verificar y firmar
                  • finalizar
                • herramienta clave
                  • convertir
                  • decodificar-tx-bytes
                  • decodificar-multi-sig
                  • generar
                  • importar
                  • lista
                  • par de claves de carga
                  • dirección multifirma
                  • multi-sig-combinar-sig-parcial
                  • herencia-sig-parcial-combinada-multi-sig
                  • espectáculo
                  • firmar
                  • señal-kms
                  • deshacer
                  • zk-login-firmar-y-ejecutar-tx
                  • zk-login-ingresar-token
                  • zk-login-sig-verificar
                  • zk-login-signo-inseguro-mensaje-personal
                • consola
                • cliente
                  • dirección activa
                  • entorno-activo
                  • direcciones
                  • llamar
                  • identificador de cadena
                  • campo dinámico
                  • env
                  • ejecutar-tx firmado
                  • gas
                  • fusionar moneda
                  • nueva direccion
                  • nuevo-ambiente
                  • objeto
                  • objetos
                  • pagar
                  • pago todo-sui
                  • pay-sui
                  • publicar
                  • moneda dividida
                  • cambiar
                  • bloque tx
                  • transferir
                  • transferencia-sui
                  • mejora
                  • verificar-bytecode-metro
                  • verificar-fuente
                  • transacción-repetición
                  • lote de repetición
                  • punto de control de repetición
                • validador
                  • hacer-información-validador
                  • convertirse en candidato
                  • comité conjunto
                  • comité de licencia
                  • metadatos de visualización
                  • actualizar-metadatos
                    • nombre
                    • descripción
                    • URL de la imagen
                    • URL del proyecto
                    • dirección de red
                    • dirección primaria
                    • dirección-trabajador
                    • dirección-p2p
                    • clave-pub-de-red
                    • clave-pub-trabajador
                    • protocolo-pub-clave
                  • actualizar-precio-de-gas
                  • validador de informes
                  • serializar-carga útil-pop
                  • mostrar-actualización-del-precio-del-gas-raw-txn
                • move
                  • construir
                  • cobertura
                    • resumen
                    • fuente
                    • código de bytes
                  • desmontar
                  • nuevo
                  • probar
                  • prueba
                • simulacro de incendio
                  • rotación de metadatos
              • movement ctl
              • movement manage
            • fractales
              • marco evm
          • Desarrolladores Aptos
            • Configurar la CLI de Aptos
            • Usando la CLI de Aptos
          • Desarrolladores Sui
            • Configurar Sui CLI
            • Usando Sui CLI
          • Preguntas más frecuentes
        • Ecosistema
          • Wallets
          • Tokens
          • Faucet
          • Move idioma
            • Módulos y scripts
            • Tipos primitivos
              • Enteros
              • booleano
              • DIRECCIÓN
              • Vector
              • Firmante
              • Referencias
              • Tuplas y unidad
          • Recursos de aprendizaje
          • Techpedia
            • Paralelización
            • Mover recursos
            • SDK de movement
      • Initia
        • ACERCA DE
          • Bienvenido a Inicia
          • Arquitectura Omnitia
            • Inicia (Capa 1)
            • Minitia (Capa 2)
          • Ciclo de vida de la transacción
          • Liquidez y apuestas consagradas
            • IniciaDEX
          • Programa de intereses adquiridos
        • CONSTRUIR SOBRE LA INICIATIVA
          • iniciado
          • inicia.js
          • Creando cuenta
          • Tutoriales específicos de VM
            • MoverVM
              • Implementación de módulos de movimiento
              • Creando moneda de movimiento
              • Envío de moneda de movimiento
              • Creando movimiento NFT
              • Módulos relacionados con el replanteo
              • Interactuar con Oracle en MoveVM
              • Mover ganchos IBC
            • WASMVM
              • Implementación del contrato CosmWasm
              • Interactuando con Oracle en WasmVM
              • Ganchos Wasm IBC
              • Fábrica de fichas
            • EVM
              • Implementación del contrato de solidez
              • Crear un token ERC-20 personalizado
              • Consultar estados del cosmos
              • Ejecutando mensajes de Cosmos
              • Conversión de direcciones entre EVM y Cosmos
              • Conversión entre direcciones Denom y ERC-20
              • Interactuar con Oracle en EVM
              • Ganchos EVM IBC
              • Ethereum JSON-RPC
          • Tutoriales generales
            • Oráculo: Furtivo
            • Mensajes entre cadenas
            • Saltar API
            • Miniswap
              • Interactuando con Minitswap
            • Conversión entre nombres de usuario y direcciones
            • Usando el Explorador local de Initia
            • Interactuando con InitiaDEX
            • Usando el widget de billetera Initia
        • IMPLEMENTAR MINITIA
          • Empezando
            • Implementación de su propia Minitia (Capa 2)
          • Configuración
          • Implementación de una Minitia independiente
          • Implementación completa de Minitia
            • Dirigiendo la Minitia
            • Pila de OPinit
              • Módulo OPinit: OPhost y OPchild
              • Configurar robots OPinit
                • Ejecutor del puente
                • Remitente de salida
                • Desafiador
                • Envío por lotes
                  • Envío de lotes a Inicia L1
                  • Envío de lotes a Celestia
            • Relé Hermes (IBC)
            • Habilitando oráculos
          • Retroceder
          • Agregar tokens a Initia Wallet
          • Personalizando Minitia
        • EJECUTAR EL NODO DE INICIO
          • Ejecutando el nodo de inicio
          • Arrancar un nodo de inicio
          • Conéctese a la red Inicial
          • Oráculo
          • Automatización de actualizaciones de software con Cosmovisor
          • Convertirse en un validador
        • RECURSOS
          • Registro de Iniciación
          • Información de la cadena Testnet
          • Parámetros de cadena
          • Documentación de la API
          • Documentos API (MiniMove)
          • Documentos API (MiniWasm)
          • Documentos API (MiniEVM)
      • Internet Computer
        • ¡Hola, mundo!
        • Descripción general del ICP
Powered by GitBook
On this page
  • Introducción
  • Requisitos previos
  • Compile el código base principal
  • Generar y proteger claves
  • Configuración y configuración de red
  • Implementación del contrato principal
  • Configuración de la configuración L2
  • Inicializar y configurar Geth
  • Lanzar y monitorear nodos
  • Adquiera Goerli ETH para la Capa 2
  • Realizar transacciones de prueba
  1. Recursos
  2. Desarrollo
  3. Avail
  4. Construir con disponibilidad
  5. Optimium

Cómo utilizar la pila OP con Avail

PreviousAprovechando la pila OP con AvailNextValidium

Last updated 1 year ago

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 el.

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

Construya la fuente del adaptador

  1. Clona y navega hasta el adaptador Avail:

    git clone https://github.com/availproject/avail-op-stack-adapter.gitcd avail-op-stack-adapter
  2. Instalar módulos:

    pnpm install
  3. Compile los paquetes necesarios:

    make op-node op-batcher op-proposerpnpm build

Construya la fuente Geth del optimismo

  1. Clona y navega hasta op-geth:

    git clone https://github.com/ethereum-optimism/op-geth.gitcd op-geth
  2. Compilar op-geth:

    make geth

Obtenga acceso a un nodo Goerli

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:

  1. cd ~/avail-op-stack-adapter/packages/contracts-bedrock
  2. Generar cuentas:

    echo "Admin:"cast wallet newecho "Proposer:"cast wallet newecho "Batcher:"cast wallet newecho "Sequencer:"cast wallet new

    Deberías ver un resultado similar a:

    Admin:Successfully created new keypair.Address:     0xc4A01194958DE0D90A876e8A5fc9D7B530072148Private key: 0xb8e39bd94a210e410c4024e1cc91014de45a5eb1e42f3aa99a368b5a5ac19b45Proposer:Successfully created new keypair.Address:     0xFC0374Ae658e46cA4022acA179d3cb6D8e1A4934Private key: 0xa9bc1b3f5deb1e00251df68bf86e3493b25bc5430665433546f2f9aacc748d1aBatcher:Successfully created new keypair.Address:     0xD6857B5BE9468Be67d64ABaB48459378d5329b96Private key: 0xe9cd8960fc7984a301d567b819e0c62871eb2c7239c2e66b8f319eaa45c3cbd5Sequencer:Successfully created new keypair.Address:     0x33348817E4B1192D576C4f157e9a5EC93dc5392DPrivate key: 0xd98b49e11e4e0be9931017831395e6644a50c36285d08e14d1a479af5ee08675

    Registre y almacene de forma segura estos detalles clave. Necesitará financiar Admin, Proposery Batchercon 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 walletno está diseñado para implementaciones de producción.

Configuración y configuración de red

  1. Asegúrese de estar en el contracts-bedrocksubdirectorio:

    cd ~/avail-op-stack-adapter/packages/contracts-bedrock
  2. Copie el archivo de entorno:

    cp .envrc.example .envrc
  3. 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"

  4. Activa el entorno con direnv:

    direnv allow .
  5. Elija un bloque L1 como punto de partida usando castel comando:

    Lo mejor es usar un bloque L1 finalizado como nuestro bloque inicial.

    cast block finalized --rpc-url $ETH_RPC_URL | grep -E "(timestamp|hash|number)"

    Debería obtener una respuesta similar a:

    hash                 0x784d8e7f0e90969e375c7d12dac7a3df6879450d41b4cb04d4f8f209ff0c4cd9number               8482289timestamp            1676253324
  6. A continuación, cree y modifique deploy-config/avail-optimism.jsonsegún deploy-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.

  7. Configure enableDAen avail-optimism.json( truepara cadena Avail como DA, falsepara Ethereum).

  8. Ingrese op-availal módulo:

    cd ~/avail-op-stack-adapter/op-avail
  9. Crear config.jsoncon las variables necesarias ( seed, api_url, app_id).

    {  "seed": "test test test test test test test test test test test test",  "api_url": "wss://goldberg.avail.tools:443/ws",  "app_id": 1}

Implementación del contrato principal

Implementar contratos L1 esenciales para la funcionalidad de la cadena:

  1. Navegue hasta /avail-op-stack-adapter/packages/contracts-bedrock/deploymentsy cree avail-optimismel directorio:

cd ~/avail-op-stack-adapter/packages/contracts-bedrock/deploymentsmkdir avail-optimism
  1. Navegue hasta /avail-op-stack-adapter/packages/contracts-bedrock/los contratos de implementación (esto puede tardar hasta 15 minutos):

    forge script scripts/Deploy.s.sol:Deploy --private-key $PRIVATE_KEY --broadcast --rpc-url $ETH_RPC_URLforge script scripts/Deploy.s.sol:Deploy --sig 'sync()' --private-key $PRIVATE_KEY --broadcast --rpc-url $ETH_RPC_URL

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énesis

  • rollup.jsonpara configuraciones acumuladas

  • jwt.txtpara una comunicación segura entre op-nodeyop-geth

  1. Navegue al op-nodedirectorio:

    cd ~/avail-op-stack-adapter/op-node
  2. Ejecute el siguiente comando, asegurándose de reemplazarlo <RPC>con su URL RPC L1 específica. Esto genera los archivos genesis.jsony rollup.json:

    go run cmd/main.go genesis l2 \    --deploy-config ../packages/contracts-bedrock/deploy-config/avail-optimism.json \    --deployment-dir ../packages/contracts-bedrock/deployments/avail-optimism/ \    --outfile.l2 genesis.json \    --outfile.rollup rollup.json \    --l1-rpc=$L1_RPC

    Encontrarás el recién creado genesis.jsony rollup.jsonen el op-nodepaquete.

  3. Genere un jwt.txtarchivo, que es crucial para la interacción segura entre nodos:

    openssl rand -hex 32 > jwt.txt
  4. Para op-gethprepararse, mueva los archivos genesis.jsony jwt.txta su directorio:

    cp genesis.json ~/op-gethcp jwt.txt ~/op-geth

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:

  1. Navegar a op-geth:

    cd ~/op-geth
  2. Cree un directorio de datos:

    mkdir datadir
  3. Inicialice con el archivo génesis:

    build/bin/geth init --datadir=datadir genesis.json

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:

cd ~/op-geth./build/bin/geth \  --datadir ./datadir \  --http \  --http.corsdomain="*" \  --http.vhosts="*" \  --http.addr=0.0.0.0 \  --http.port=9545 \  --http.api=web3,debug,eth,txpool,net,engine \  --ws \  --ws.addr=0.0.0.0 \  --ws.port=9546 \  --ws.origins="*" \  --ws.api=debug,eth,txpool,net,engine \  --syncmode=full \  --gcmode=archive \  --nodiscover \  --maxpeers=0 \  --networkid=42069 \  --authrpc.vhosts="*" \  --authrpc.addr=0.0.0.0 \  --authrpc.port=9551 \  --authrpc.jwtsecret=./jwt.txt \  --rollup.disabletxpoolgossip=true

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:

  1. op-proposerpara acceder al historial completo del estado.

  2. 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:

  1. Detener op-geth.

  2. Eliminar los datos existentes:

    cd ~/op-gethrm -rf datadir/geth
  3. Reinicializar:

    build/bin/geth init --datadir=datadir genesis.json
  4. Reinicie op-gethy luego op-node.

Ejecutando nodo de operación

Para iniciar op-node, que actúa como cliente de consenso, ejecute:

cd ~/avail-op-stack-adapter/op-node./bin/op-node \  --l2=http://localhost:9551 \  --l2.jwt-secret=./jwt.txt \  --sequencer.enabled \  --sequencer.l1-confs=3 \  --verifier.l1-confs=3 \  --rollup.config=./rollup.json \  --rpc.addr=0.0.0.0 \  --rpc.port=9547 \  --p2p.disable \  --rpc.enable-admin \  --p2p.sequencer.key=$SEQ_KEY \  --l1=$L1_RPC \  --l1.rpckind=$RPC_KIND

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.

cd ~/avail-op-stack-adapter/op-batcher./bin/op-batcher \  --l2-eth-rpc=http://localhost:9545 \  --rollup-rpc=http://localhost:9547 \  --poll-interval=10s \  --sub-safety-margin=6 \  --num-confirmations=1 \  --safe-abort-nonce-too-low-count=3 \  --resubmission-timeout=30s \  --rpc.addr=0.0.0.0 \  --rpc.port=9548 \  --rpc.enable-admin \  --max-channel-duration=1 \  --l1-eth-rpc=$L1_RPC \  --private-key=$BATCHER_KEY

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:

cd ~/avail-op-stack-adapter/op-proposer./bin/op-proposer \  --poll-interval=12s \  --rpc.port=9560 \  --rollup-rpc=http://localhost:9547 \  --l2oo-address=$L2OO_ADDR \  --private-key=$PROPOSER_KEY \  --l1-eth-rpc=$L1_RPC

Adquiera Goerli ETH para la Capa 2

Para obtener ETH en su Rollup:

  1. Ir a contracts-bedrock:

    cd ~/avail-op-stack-adapter/packages/contracts-bedrock
  2. Encuentre la dirección del contrato puente estándar L1:

    cat deployments/avail-optimism/L1StandardBridgeProxy.json | jq -r .address
  3. 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!

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.

👽
🎓
# Install Gitsudo apt install -y git curl make jq # Install Gowget https://go.dev/dl/go1.20.linux-amd64.tar.gztar xvzf go1.20.linux-amd64.tar.gzsudo cp go/bin/go /usr/bin/gosudo mv go /usr/libecho export GOROOT=/usr/lib/go >> ~/.bashrc # Install Node.jscurl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -sudo apt-get install -y nodejs npm # Install Pnpmsudo npm install -g pnpm # Install Makesudo apt install -y make # Install jqsudo apt install -y jq # Install direnvsudo apt install -y direnv
Documentación de optimismo(se abre en una nueva pestaña)
Introducción
Requisitos previos
Compile el código base principal
Construya la fuente del adaptador
Construya la fuente Geth del optimismo
Obtenga acceso a un nodo Goerli
Generar y proteger claves
Configuración y configuración de red
Implementación del contrato principal
Configuración de la configuración L2
Inicializar y configurar Geth
Lanzar y monitorear nodos
Ejecutando op-geth
¿Por qué el modo de archivo?
Reiniciando op-geth
Ejecutando nodo de operación
Sincronización P2P
Ejecutando op-batcher
Controlar los costos del dosificador
Ejecución del proponente de oposición
Adquiera Goerli ETH para la Capa 2
Realizar transacciones de prueba
adaptador-de-pila-opcional-disponible monorepo(se abre en una nueva pestaña)
repositorio op-geth(se abre en una nueva pestaña)
Alquimia(se abre en una nueva pestaña)
ejecuta tu propio nodo Goerli(se abre en una nueva pestaña)
paquete básico de contratos(se abre en una nueva pestaña)
paquete básico de contratos(se abre en una nueva pestaña)
modificar la configuración del shell(se abre en una nueva pestaña)
git(se abre en una nueva pestaña)
Ir(se abre en una nueva pestaña)
Nodo(se abre en una nueva pestaña)
Pnpm(se abre en una nueva pestaña)
Hacer(se abre en una nueva pestaña)
jq(se abre en una nueva pestaña)
directo(se abre en una nueva pestaña)
Fundición(se abre en una nueva pestaña)

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

git(se abre en una nueva pestaña)
Ir(se abre en una nueva pestaña)
Nodo(se abre en una nueva pestaña)
Pnpm(se abre en una nueva pestaña)
Hacer(se abre en una nueva pestaña)
jq(se abre en una nueva pestaña)
directo(se abre en una nueva pestaña)
Fundición(se abre en una nueva pestaña)