Archway multi firma hub

Bienvenido a nuestra guía paso a paso sobre el despliegue de una solución MultiSig en la cadena de bloques Archway. Si prefiere un tutorial visual, a continuación encontrará un vídeo de esta guía. También hay disponible una guía de instalación básica en el repositorio Archway MultiSig Hub.

Pre requisitos

  • Mac o linux

  • Node versión 16 o superior instalado. Evite utilizar la versión 20.6 de Node debido a problemas conocidos.

  • NPM versión 8 o superior

Paso 1: Instalar las dependencias

Antes de empezar, asegúrate de que tienes todas las dependencias necesarias instaladas. Necesitarás instalar los paquetes jq y Archway CLI.

jp

El paquete jq es necesario para el script utilizado para instanciar los contratos multisig.

En linux
sudo apt install jq

En Mac
brew install jq

Archway cli (v2 beta)

El paquete Archway CLI es necesario para ejecutar transacciones en la blockchain de Archway. Instalaremos la versión 2 del paquete, que aún está en Beta.

npm install -g @archwayhq/cli@pre

Paso 2: Configurar archway cli

Vamos a configurar un chain-id por defecto para el entorno CLI de Archway.

Confirme en qué red desplegar: Mainnet (archway-1) o Testnet (constantine-3).

Ajusta la configuración del chain-id:

Para Testnet:

archway config chain-id constantine-3 --global

Para mainnet:

archway config chain-id archway-1 --global

Verifique la configuracion chain-id:

archway config show

Paso 3: Configurar las cuentas

Con nuestro entorno configurado, es hora de añadir al menos una cuenta al almacén de claves CLI de Archway, necesaria para ejecutar transacciones en cadena. También puedes configurar cuentas adicionales en esta etapa si lo deseas, ya que necesitarás al menos dos cuentas para instanciar los contratos multisig.

Ejecute el siguiente comando para crear una nueva cuenta:

archway accounts new

Anote la frase mnemonic mostrada y guárdela en un lugar seguro. Necesitará importar esta frase mnemonic a Keplr, por ejemplo, para interactuar con la interfaz de usuario de Multisig más adelante.

Para utilizar una cuenta existente:

archway accounts new [account-name] --recover

Compruebe sus cuentas:

archway accounts list

Después de crear la cuenta tendrás que financiar la cuenta con tokens ARCH para ejecutar transacciones en Mainnet y si estás usando Testnet tendrás que conseguir tokens CONST tesstnet. Puedes conseguir tokens CONST testnet en el canal #testnet-faucet de Archway Discord.

Paso 4: Clona el repositorio multi firma

Con las dependencias establecidas, y al menos una cuenta configurada en Achway CLI, vamos a clonar el repositorio multisig.

git clone git@github.com:archway-network/archway-msig.git
cd archway-msig
npm install

Cambie al directorio recién creado y ejecute el siguiente comando para instalar los paquetes requeridos por el multisig:

npm install

Paso 5: Configurando el script multi firma

Ahora tenemos que configurar el script multisig que se utilizará para crear los contratos on-chain. Edita el siguiente archivo: scripts/instantiate/multisig_params.json.

Este archivo contiene los parámetros iniciales de la nueva multisig.

Algunos parámetros, como max_voting_period_in_seconds y members, siempre pueden ser modificados por los propietarios de la multisig, pero el resto de campos son inmutables tras la implantación.

  • La sender_account es la cuenta que firmará la transacción. Debe ser una cuenta financiada existente en el almacén de claves de Archway CLI. Sería una de las cuentas creadas anteriormente.

  • El name es el nombre de este multisig. Puede ayudar a dar a la aplicación multisig una etiqueta apropiada si planea desplegar múltiples multisigs dentro de este proyecto.

  • La description es una breve descripción de texto de la multi-sig como referencia.

  • Image-url es una URL a una imagen que se mostrará en la interfaz de usuario.

  • El max_voting_period_in_seconds es el periodo de votación para propuestas multi-sig, expresado en segundos.

  • Members son los miembros de la multisig que incluyen sus direcciones y poder de voto. Aquí se puede añadir cualquier número de direcciones, pero debe haber al menos 2 para empezar.

Paso 6: Deploy del contrato de multi firmas

En la consola, introduce el siguiente comando desde la raíz de tu proyecto para desplegar los contratos multisig:

bash scripts/instantiate/instantiate_contracts.sh

Si tiene éxito, se mostrará el hash de la transacción y las direcciones de los contratos resultantes. También se creará un nuevo archivo llamado multisig_contracts_result.json en el directorio scripts/instantiate, que contendrá las direcciones de los contratos resultantes. Estas direcciones de contrato necesitarán ser copiadas en el archivo .env del proyecto que crearemos a continuación.

Paso 7: Configurar el entorno multi firmas

Ahora vamos a configurar su entorno MultiSig. Necesitará crear un archivo .env a partir del archivo .env.example y luego agregar los valores DOADAO_CONTRACTS del archivo de resultados creado anteriormente.

Copie las direcciones de los contratos de multisig_contracts_result.json en la sección DAODAO_CONTRACTS del archivo .env y edite los demás campos según sea necesario:

  • RUNTIME_ENVIRONMENT: Establecer como mainnet o testnet.

  • APP_NAME: El nombre de tu proyecto.

  • APP_BRAND: Ruta textual opcional de la imagen del logotipo.

  • DAODAO_CONTRACTS: Una matriz JSON de contratos multisig (que se actualizará después del despliegue).

Paso 8: Iniciar el servidor de desarrollo

Para ver e interactuar con la interfaz de usuario, inicie el servidor de desarrollo:

npm run dev

Esto configurará un servidor de pruebas local y podrás navegar por la interfaz de usuario multisig visitando una de las direcciones mostradas. Visite http://localhost:3000 para ver su MultiSig en acción.

Paso 9: Preparación para producción

Construye la aplicación:

npm run build

Previsualice la compilación localmente:

npm run preview

Paso 10: Deploy en plataforma de hosting

Firabase

Si aún no lo has hecho, instala las funciones de firebase de forma global, y accede a tu cuenta

npm install -g firebase-tools@latest
firebase login
firebase init hosting

Modifique el archivo .firebaserc para que el id de su proyecto firebase sea el predeterminado

{
  "projects": {
    "default": "<your-firebase-project-id>"
  }
}

A continuación, modifique el archivo firebase.json para que contenga lo siguiente:

{
  "functions": { "source": ".output/server" },
  "hosting": {
    "site": "<your-firebase-project-id>",
    "public": ".output/public",
    "cleanUrls": true,
    "rewrites": [{ "source": "**", "function": "server" }]
  }
}

Instale también los paquetes firebase como dependencias locales para utilizarlos durante el proceso de compilación:

npm install -D firebase-admin firebase-functions

Y entonces usted puede construir y desplegar con los siguientes comandos:

NITRO_PRESET=firebase npm run build
npx firebase-tools deploy

Vercel

Importa tu proyecto de Github en Vercel, y automáticamente habilitará los ajustes correctos para tu despliegue.

Otras plataformas

Consulte la documentación de deploy para obtener más información.

Last updated