Dirigiendo el Union Devnet

El Union Devnet se utiliza para ejecutar todos los componentes que hay localmente para poder experimentar con IBC entre Ethereum y Union. Lo bueno de la configuración es que requiere que ejecutes solo dos comandos y manejará el resto. Este documento explicará todas las opciones para hacer la configuración para sus necesidades.

Inicio rápido

Comience con la clonación del repositorio si ya no lo ha hecho:

git clone git@github.com:unionlabs/union.git

Antes de ejecutar el comando de configuración, debemos iniciar ambas cadenas. Se iniciará el siguiente comando:

  1. Unión con 4 validadores.

  2. Ethereum con el el preajuste mínimo.

nix run ".#devnet"

El comando anterior ejecutará ambas cadenas en una sola sesión. Entonces, si desea tener registros separados para Ethereum y Union, puede ejecutar ambos devnets por separado:

# For ethereumnix run ".#devnet-eth"
# For unionnix run ".#devnet-union"

Ahora que estamos listos, podemos ejecutar la configuración:

nix run ".#e2e-setup" -- --circuit-path ./

--circuit-pathse pasa para que el probador busque y descargue los archivos que necesita.

La configuración puede llevar algún tiempo en función de su velocidad de Internet y su potencia informática. Pero tenga en cuenta que si va a ejecutar el probador localmente, le recomendamos que tenga al menos 32 GB de memoria. Si no tiene tanta memoria pero puede ejecutar el probador en un servidor remoto o computadora, le explicaremos cómo usar un probador remoto más adelante en este documento.

¿Qué hace exactamente esta configuración?

Hay muchas cosas para hacer que IBC funcione. Para explicarlo brevemente, los pasos son:

  1. Si el probador se ejecuta localmente, primero buscará los archivos debajo --circuit-path y descargarlos o actualizarlos si es necesario.

  2. Comprueba si ambas cadenas están vivas.

  3. Instancia las siguientes aplicaciones IBC a Union para que las pruebe:

    1. ucs01-relay: Para transferencias de tokens entre cadenas. 2. ping-pong: Para comenzando ping-pong sin fin entre Ethereum y Union.

  4. Implementa los contratos de protocolo IBC, así como ICS20Transfer contrato para transferencias entre cadenas a Ethereum.

  5. Implementa el contrato de ping-pong en Ethereum.

  6. Comienza el prover local en segundo plano si el --circuit-path se proporciona.

  7. Establece los canales iniciales para ambos ICS20Transfer y PingPong en Ethereum. Tenga en cuenta que esto no se está haciendo en Union ya que esto se maneja en la configuración de génesis.

  8. Crea clientes ligeros en ambas cadenas.

  9. Espera a que el prover esté en línea, y luego comienza la Voyager a transmitir paquetes.

Opciones CLI para personalizar la ejecución

Usando un prover que ya está en ejecución

Esto puede ser muy útil porque iniciar el prover localmente requiere tiempo y memoria. Un posible caso de uso aquí es implementar el prover en un servidor remoto, en una computadora dentro de la misma red o si tiene suficiente memoria, también puede ejecutar el prover localmente y ejecutar la demostración una y otra vez. Pero tenga en cuenta que la implementación de contratos de Ethereum también requiere mucha memoria, por lo que 32 GB podrían no ser suficientes para ejecutar ambos en paralelo.

Para ejecutar el prover:

nix run ".#galoisd-devnet" -- serve 0.0.0.0:16657

Para usar un prover donde el TLS no está habilitado:

nix run ".#e2e-setup" -- --galois-url http://myserver.com:1111

Para habilitar el TLS:

nix run ".#e2e-setup" -- --galois-url http://myserver.com:1111 --galois-tls

Tenga en cuenta que incluso si desea ejecutar Galois localmente pero en un punto final diferente, puede proporcionar un punto final local y --circuit-path. El --circuit-path parámetro es el punto de decisión sobre si ejecutar Galois localmente o no.

Uso de puntos finales personalizados para las redes de desarrollo

Es posible que esté ejecutando el devnet en un servidor remoto, puede cambiar las siguientes opciones como desee:

--evm-beacon-rpc-url         Rpc endpoint for the evm beacon chain. (Default: http://localhost:9596)--evm-ws-url                 Websocket endpoint for the evm execution chain (Default: ws://localhost:8546).--union-rpc-url              Rpc endpoint for union (Default: http://localhost:26657).--union-ws-url               Websocket endpoint for union (Default: ws://localhost:26657/websocket).

Correr --help para ver la descripción por ti mismo.

Usando un archivo de configuración Voyager personalizado

Nuestro Voyager de relé utiliza un archivo de configuración para los contratos de IBC que se implementan, puntos finales de cadena, etc. En una ejecución normal, se crea un archivo de configuración para usted en una ubicación temporal y esta ubicación se imprime en la consola una vez que se completa la configuración, para que pueda usar Voyager manualmente si lo desea.

Para cambiar esta ruta de configuración, ejecute:

nix run ".#e2e-setup" -- --voyager-config-file /path/to/config.json

Personalizar la configuración del ping-pong

Nuestros contratos de ping-pong tienen el argumento de tiempo de espera que es el número de bloques antes ping los tiempos de mensaje fuera. Por defecto, esto es 1000. Para cambiar esto, ejecute:

nix run ".#e2e-setup" -- --ping-pong-timeout 100

Last updated