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
  • Requerimientos de hardware
  • Pasos para la instalación y configuración del binario junod
  • Iniciar y Crear un nodo de validación en MainNet
  • Configurar cosmovisor
  1. Recursos
  2. Nodos validadores

Montaje de nodo validador de Juno

No pretendemos reemplazar la guía oficial en inglés de Juno Network, por el contrario complementar desde nuestra experiencia el proceso; a su vez, de traer esta documentación en lenguaje español.

PreviousMontaje de nodo validador de TgradeNextInstalacion del Cosmovisor

Last updated 1 year ago

Requerimientos de hardware

Los requerimientos mínimos que se necesitan para correr juno son:

  • 4 vcpu.

  • 32GB RAM

  • 1TB de storage. (Recomendamos tipo NVME, la base de datos actual de juno no ocupa todo este espacio, pero se recomienda estar sobredimensionado para evitar estar haciendo intervenciones futuras).

Pasos para la instalación y configuración del binario junod

Sistema Operativo

El sistema operativo que nosotros elegimos fue ubuntu 20.04 LTS pero este puede funcionar en la mayoría de distribuciones Linux modernas o con soporte actual, y en las versiones más recientes de macOS.

Instalación de requisitos necesarios

#Actualizar paquetes
sudo apt update && sudo apt upgrade -y 

#Instalar herramientas necesarias para continuar la instalación
sudo apt-get install make build-essential gcc git jq chrony -y

Instalación de Go

Descargue e instale la última versión de Go desde su página oficial

en nuestro caso sería la versión 1.18.4. NOTA: Juno necesita la version de Go 1.18 o superior

#Descargar Go 
wget https://go.dev/dl/go1.18.4.linux-amd64.tar.gz
#Eliminar Paquetes anteriores de Go (en caso de existir) 
rm -rf /usr/local/go
#extraer archivos en /usr/local
tar -C /usr/local -xzf go1.18.4.linux-amd64.tar.gz

Configuramos las variables en el archivo ~/.profile

export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export GO111MODULE=on
export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin

Actualizamos el archivo ~/.profile y verificamos la versión de Go

source ~/.profile
#validar la versión de Go
go version

Construir el binario de juno

git clone https://github.com/CosmosContracts/juno
cd juno
git fetch
git checkout <version-tag>

En nuestro caso la versión más actual del binario es la v8.0.0 (Como las blockchain se van actualizando constantemente por mejoras ó fallas, la versión va cambiando).

#cambia de versión
git checkout v8.0.0
#revisar versión actual
git status
#Se realiza la compilación del binario
make install
#Se valida que la versión instalada coincida con la que necesitamos
junod version
# salida debe mostrar en este caso v8.0.0


Iniciar y Crear un nodo de validación en MainNet

Variables de entorno

Una forma más sencilla de configurar el entorno es creando variables, esto nos ayudará a agilizar un poco ya que no tendremos que estar buscando siempre el ID de la cadena, o los peers, entre otras, si no que los dejaremos definidos en variables que sean más sencillas de recordar, para ello las definiremos dentro del archivo ~/.profile.

En el archivo pondremos el ID de la cadena y el nombre como se va a reconocer este validador.

# "Decry" es solo un ejemplo de apodo, usted debe poner el de su preferencia.
CHAIN_ID=juno-1
MONIKER_NAME="Decry"

Configuración de Persistent peers

Los peer son los compañeros que necesitamos para poder obtener información de ellos y mantener nuestro nodo en sincronía con los demás. Para obtenerlos podemos crear otras variables de entorno así:

CHAIN_REPO="https://raw.githubusercontent.com/CosmosContracts/mainnet/main/$CHAIN_ID" && \
export PEERS="$(curl -sL "$CHAIN_REPO/persistent_peers.txt")"

Inicializar la cadena de bloques

Para iniciar una cadena debemos ejecutar el binario compilado con el comando init y argumentos nombre del validador y el id de la cadena

junod init "$MONIKER_NAME" --chain-id $CHAIN_ID
#Si desea modificar el home
junod init "$MONIKER_NAME" --chain-id $CHAIN_ID --home /dirección/.juno

Si quiere cambiar la carpeta por defecto de .juno para usarla en otra partición con más espacio o en otro lado del sistema puedes anexar --home seguido de la dirección deseada. Por defecto utilizará la carpeta del usuario que corre el comando.

Este comando genera 3 archivos necesarios para el funcionamiento del nodo:

  • genesis.json

  • node_key.json (Necesario para recuperar el nodo, Guardarlo muy bien y no compartirlo)

  • priv_validator_key.json (Necesario para recuperar el nodo, Guardarlo muy bien y no compartirlo)

Los dos archivos necesarios para recuperar el validador, se deben guardar muy bien y en lugares seguros igual como cuando almacenamos las semillas de nuestras wallets, ya que esta será nuestra única garantía para poder recuperar el validador en caso de pérdida, o de migración a otra máquina.

Archivo génesis

En el paso anterior se generó un archivo genesis.json, pero este se debe reemplazar por uno actualizado, para esto recurrimos al archivo que tiene alojado Dimi

wget https://download.dimi.sh/juno-phoenix2-genesis.tar.gz
tar -xvf juno-phoenix2-genesis.tar.gz
mv juno-phoenix2-genesis.json $HOME/.juno/config/genesis.json
#Este comando reemplazará el archivo genesis.json tenga en cuenta que está direccionado  a la ruta por defecto de .juno,
#usted debe modificarlo para que coincida con el suyo, si es el caso que modificó su dirección.

Establecer peers

La configuración de peers, se encuentra en el archivo ~/.juno/config/config.toml y para añadir los peers solo debemos ejecutar el siguiente comando:

sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" ~/.juno/config/config.toml

Establecer el costo del gas

Esto es recomendable para los validadores, ya que esto ayudará a proteger de spam y otros posibles ataques, esta configuración se encuentra por defecto en ~/.juno/config/app.toml

sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.0025ujuno,0.001ibc\/C4CFF46FD6DE35CA4CF4CE031E643C8FDC9BA4B99AE598E9B0ED98FE3A2319F9\"/" ~/.juno/config/app.toml

Esta configuración hará que el validador acepte tanto ujuno e IBC atom como tarifa para las transacciones, esta es la configuración que se recomienda.

Creación o Restauración de wallet

El validador necesita tener una billetera asociada para funcionar, aquí llegaran las comisiones, las recompensas de stacking que el nodo propio realice.

#Crear una nueva wallet si desea cambiar la ubicación use --home dir/.juno
junod keys add <nombre de la billetera> 
#Recuperar wallet ya existente, debe tener su frase nemotecnica para poder recuperarla, solo copiela
junod keys add <nombre de la billetera> --recover

Importante, al crear una nueva wallet, esta mostrará una frase nemotécnica, esta debe conservarse en algún lugar seguro ya que en caso de perder la wallet será la única forma de recuperarla, es de vital importancia no perder esta frase.

Sincronizar el nodo

junod start --home ubicacion/.juno
#Revisar estado de sincronización 
#true: aún está en proceso de sincronización
#false: ya está sincronizado y puede continuar
curl http://localhost:26657/status | jq .result.sync_info.catching_up
#Revisar altura de la cadena alcanzada 
curl http://localhost:26657/status | jq .result.sync_info.latest_block_height
#Uno compara el bloque alcanzado con la información que se desplega en el scan de la blockchain

Crear el validador en la red

Para realizar este paso, debe estar seguro de que su cadena ya esta sincronizada y tener una cantidad mínima de tokens juno en la wallet creada anteriormente.

junod tx staking create-validator \
  --amount 1000000ujuno \
  --commission-max-change-rate "0.1" \
  --commission-max-rate "0.20" \
  --commission-rate "0.1" \
  --min-self-delegation "1" \
  --details "detalles de su preferencia sobre el validador" \
  --pubkey=$(junod tendermint show-validator --home dir/.junod) \
  --moniker "$MONIKER_NAME" \
  --chain-id $CHAIN_ID \
  --gas-prices 0.025ujuno \
  --from <Nombre-billetera> \
  –-home ubicacion/.junod

Configurando Cosmovisor

Cosmovisor es una herramienta de administración de los binarios de Cosmos SDK que constantemente supervisa nuevas actualizaciones y tiene la capacidad de ejecutarlas por sí mismo, de igual manera se recomienda estar al pendiente de toda actualización y si es posible descargar el binario de forma manual. Se recomienda usar cosmovisor para la mainnet, ya que automatiza procesos a la hora de actualizar nuestro nodo, es importante que ya sepa usar cosmovisor para implementarlo en mainnet, si no está familiarizado con este software, se recomienda implementarlo en el testnet y asegurarse de que puede configurarlo y ponerlo en marcha correctamente.

Instalación

#obtenemos cosmovisor
go get github.com/cosmos/cosmos-sdk/cosmovisor/cmd/cosmovisor

# o puede instalar última versión disponible (recomendado)
go install github.com/cosmos/cosmos-sdk/cosmovisor/cmd/cosmovisor@latest

# para elegir una versión específica use (v1.0.0 es un ejemplo) 
go install github.com/cosmos/cosmos-sdk/cosmovisor/cmd/cosmovisor@v1.0.0

Agregar variables de entorno

En el archivo ~/.profile se debe agregar las siguientes lineas

export DAEMON_NAME=junod
export DAEMON_HOME=$HOME/.juno
#Cargar las variables nuevamente al entorno
source ~/.profile

Estructura de Carpetas para Cosmovisor

Cosmovisor siempre espera una misma estructura de carpetas, la cual es la siguiente:

.
├── current -> genesis or upgrades/<name>
├── genesis
│   └── bin
│       └── $DAEMON_NAME
└── upgrades
    └── <name>
        └── bin
            └── $DAEMON_NAME

NOTA: este resultado anterior se puede ver con la herramienta tree, la raiz de estas carpetas esta predefinido a través de las variables. Por lo tanto; va quedar en el home definido para la instalación de juno. Para tener la estructura anterior creamos estas carpetas:

mkdir -p $DAEMON_HOME/cosmovisor/genesis/bin
mkdir -p $DAEMON_HOME/cosmovisor/upgrades

Configurar cosmovisor

Para esto cosmovisor necesita conocer el binario que usará para inicializar, en este caso sería v8.0.0, este binario se debe copiar en $DAEMON_HOME/cosmovisor/genesis/bin buscamos el binario, este fue compilado al inicio de la guia.

which junod
# Lo copiamos a la nueva ubicación, cambie el origen según sea su caso
cp $HOME/go/bin/junod $DAEMON_HOME/cosmovisor/genesis/bin

Configurar el servicio para ejecutarse en segundo plano

Con la anterior configuración lo que logramos es que haya una correspondencia entre los dos binarios (comovisor y junod), por lo que escribir cosmovisor version será igual que escribir junod version.

Igual que se configuraría para el binario junod, usaremos la configuración para cosmovisor, para que este pueda trabajar de forma correcta en segundo plano, y en caso de que ocurra algún bug o daño este se reinicie automáticamente para esto nosotros usamos el servicio systemd, primero creamos el servicio:

nano /etc/systemd/system/cosmovisor.service

La configuración correspondiente debe ajustarla a su sistema y a sus preferencias, compartimos la configuración que nosotros tenemos para que sirva de base, debe verificar bien las rutas de los binarios usados.

[Unit]
Description=cosmovisor juno
After=network-online.target

[Service]
User=<user>
ExecStart=/root/go/bin/cosmovisor start --home /mnt/data/.juno
Restart=always
RestartSec=3
LimitNOFILE=4096
Environment="DAEMON_NAME=junod"
Environment="DAEMON_HOME=/mnt/data/.juno"
Environment="DAEMON_ALLOW_DOWNLOAD_BINARIES=false"
Environment="DAEMON_RESTART_AFTER_UPGRADE=true"

[Install]
WantedBy=multi-user.target

Iniciar cosmovisor

Después de crear el servicio, debe habilitarlo y ponerlo a funcionar

systemctl daemon-reload
systemctl enable cosmovisor
systemctl start cosmovisor

Verificación de los procesos:

#validar el estado del demonio de cosmovisor
systemctl status cosmovisor

#Para ver los logs del proceso que se está ejecutando:
journalctl -u cosmovisor -f

Realizado por:

Mauricio Gil - maurog@decry.io

fabian - vfabian@decry.io

Para conocer la versión más actual del binario revisa el repositorio oficial de juno aquí:

Si no está seguro, puede preguntar por el discord oficial de juno network aquí para obtener más peers o nodos semilla para sincronizar su nodo

Para ejecutar el binario se tienen dos métodos en el ecosistema de cosmos. Simplemente empezar a correr el binario como cualquier otro ejecutable o usar cosmovisor, nosotros recomendamos usar cosmovisor, ya que es una forma de tener el proceso de inicio, sincronización y actualización mucha más automatizado, para configurarlo con cosmovisor simplemente revise el apartado de esta guía, en caso de querer hacerlo manualmente puede iniciar de la siguiente forma. Este proceso de sincronización puede tardar bastante, todo depende del tamaño de la blockchain.

Al finalizar con éxito este paso, debería poder ver después de unos segundos su validador dentro del scan de la red aquí

👽
💻
https://go.dev/doc/install
https://github.com/CosmosContracts/juno
https://discord.gg/RChBuccb
https://www.mintscan.io/juno/validators
Cosmovisor