Cómo configurar DoubleZero
Terminología
¿Nuevo en DoubleZero? Consulta el Glosario para definiciones de términos como doublezerod, IBRL y DZD.
Al conectarme a DoubleZero acepto los Términos de Servicio de DoubleZero
Requisitos previos
Warning
Para validadores: DoubleZero debe instalarse directamente en el host de tu validador, no en un contenedor.
- Conectividad a Internet con una dirección IP pública (sin NAT)
- Servidor x86_64
- SO compatible: Ubuntu 22.04+ o Debian 11+, o Rocky Linux / RHEL 9+
- Privilegios de root o sudo en el servidor donde se ejecutará DoubleZero
- Opcional pero útil: jq y curl para depuración
Conexión a DoubleZero
DoubleZero Testnet y DoubleZero Mainnet-Beta son redes físicamente distintas. Por favor, elige la red apropiada durante la instalación.
Al incorporarte a DoubleZero establecerás una identidad DoubleZero, representada por una clave pública llamada DoubleZero ID. Esta clave es parte de cómo DoubleZero reconoce tu máquina.
1. Instalar paquetes de DoubleZero
Versiones actuales
| Paquete | Mainnet-Beta | Testnet |
|---|---|---|
doublezero |
MAINNET_CLIENT_VERSION |
TESTNET_CLIENT_VERSION |
Sigue estos pasos según tu sistema operativo:
Ubuntu / Debian
El despliegue recomendado actualmente para Mainnet-Beta es:
curl -1sLf https://dl.cloudsmith.io/public/malbeclabs/doublezero/setup.deb.sh | sudo -E bash
sudo apt-get install doublezero
El despliegue recomendado actualmente para Testnet es:
curl -1sLf https://dl.cloudsmith.io/public/malbeclabs/doublezero-testnet/setup.deb.sh | sudo -E bash
sudo apt-get install doublezero
Rocky Linux / RHEL
El despliegue recomendado actualmente para Mainnet-Beta es:
curl -1sLf https://dl.cloudsmith.io/public/malbeclabs/doublezero/setup.rpm.sh | sudo -E bash
sudo yum install doublezero
El despliegue recomendado actualmente para Testnet es:
curl -1sLf https://dl.cloudsmith.io/public/malbeclabs/doublezero-testnet/setup.rpm.sh | sudo -E bash
sudo yum install doublezero
Solo para usuarios existentes: Cambiar un paquete de Testnet a Mainnet-Beta, o de Mainnet-Beta a Testnet
Cuando instalas desde uno de los repositorios de paquetes anteriores, es específico para DoubleZero Testnet o DoubleZero Mainnet Beta. Si cambias de red en algún momento, necesitarás eliminar los repositorios de paquetes previamente instalados y actualizar al repositorio destino.
Este ejemplo recorrerá la migración de Testnet a Mainnet-Beta
Los mismos pasos pueden completarse para pasar de Mainnet-Beta a Testnet, reemplazando el paso 3 con el comando de instalación para Testnet indicado anteriormente.
-
Encontrar archivos de repositorio antiguos
Primero, localiza cualquier archivo de configuración de repositorio de DoubleZero existente en tu sistema:
find /etc/apt | grep doublezerofind /usr/share/keyrings/ | grep doublezero -
Eliminar archivos de repositorio antiguos
Elimina los archivos de repositorio antiguos encontrados en el paso anterior, por ejemplo
sudo rm /etc/apt/sources.list.d/malbeclabs-doublezero.list sudo rm /usr/share/keyrings/malbeclabs-doublezero-archive-keyring.gpg -
Instalar desde el nuevo repositorio
Añade el nuevo repositorio de Mainnet-Beta e instala el paquete más reciente:
curl -1sLf https://dl.cloudsmith.io/public/malbeclabs/doublezero/setup.deb.sh | sudo -E bash sudo apt-get install doublezero=<current_recomended_version_above>
Verificar el estado de doublezerod
Después de instalar el paquete, se instala, activa e inicia una nueva unidad de systemd. Para ver el estado puedes ejecutar:
sudo systemctl status doublezerod
Configurar el firewall para GRE y BGP
DoubleZero utiliza túneles GRE (protocolo IP 47) y enrutamiento BGP (tcp/179 en direcciones link-local). Asegúrate de que tu firewall permita estos protocolos:
Permitir GRE y BGP a través de iptables:
sudo iptables -A INPUT -p gre -j ACCEPT
sudo iptables -A OUTPUT -p gre -j ACCEPT
sudo iptables -A INPUT -i doublezero0 -s 169.254.0.0/16 -d 169.254.0.0/16 -p tcp --dport 179 -j ACCEPT
sudo iptables -A OUTPUT -o doublezero0 -s 169.254.0.0/16 -d 169.254.0.0/16 -p tcp --dport 179 -j ACCEPT
O permitir GRE y BGP a través de UFW:
sudo ufw allow proto gre from any to any
sudo ufw allow in on doublezero0 from 169.254.0.0/16 to 169.254.0.0/16 port 179 proto tcp
sudo ufw allow out on doublezero0 from 169.254.0.0/16 to 169.254.0.0/16 port 179 proto tcp
2. Crear una nueva identidad DoubleZero
Crea una identidad DoubleZero en tu servidor con el siguiente comando:
doublezero keygen
Info
Si tienes un ID existente que deseas utilizar, puedes seguir estos pasos opcionales.
Crear el directorio de configuración de doublezero
mkdir -p ~/.config/doublezero
Copia o enlaza el id.json que deseas usar con DoubleZero al directorio de configuración de doublezero.
sudo cp </path/to/id.json> ~/.config/doublezero/
3. Obtener la identidad DoubleZero del servidor
Revisa tu identidad DoubleZero. Esta identidad se utilizará para crear la conexión entre tu máquina y DoubleZero
doublezero address
Salida:
YourDoubleZeroAddress11111111111111111111111111111
4. Verificar que doublezerod ha descubierto dispositivos DZ
Antes de conectar, asegúrate de que doublezerod haya descubierto y hecho ping a cada uno de los switches DZ de testnet disponibles:
doublezero latency
Ejemplo de salida:
$ doublezero latency
pubkey | name | ip | min | max | avg | reachable
96AfeBT6UqUmREmPeFZxw6PbLrbfET51NxBFCCsVAnek | la2-dz01 | 207.45.216.134 | 0.38ms | 0.45ms | 0.42ms | true
CCTSmqMkxJh3Zpa9gQ8rCzhY7GiTqK7KnSLBYrRriuan | ny5-dz01 | 64.86.249.22 | 68.81ms | 68.87ms | 68.85ms | true
BX6DYCzJt3XKRc1Z3N8AMSSqctV6aDdJryFMGThNSxDn | ty2-dz01 | 180.87.154.78 | 112.16ms | 112.25ms | 112.22ms | true
55tfaZ1kRGxugv7MAuinXP4rHATcGTbNyEKrNsbuVLx2 | ld4-dz01 | 195.219.120.66 | 138.15ms | 138.21ms | 138.17ms | true
3uGKPEjinn74vd9LHtC4VJvAMAZZgU9qX9rPxtc6pF2k | ams-dz001 | 195.219.138.50 | 141.84ms | 141.97ms | 141.91ms | true
65DqsEiFucoFWPLHnwbVHY1mp3d7MNM2gNjDTgtYZtFQ | frk-dz01 | 195.219.220.58 | 143.52ms | 143.62ms | 143.58ms | true
9uhh2D5c14WJjbwgM7BudztdoPZYCjbvqcTPgEKtTMZE | sg1-dz01 | 180.87.102.98 | 176.66ms | 176.76ms | 176.72ms | true
Si no se devuelven dispositivos en la salida, espera 10-20 segundos y vuelve a intentar.
5. Desconectarse de DoubleZero
En las siguientes secciones configurarás tu entorno DoubleZero. Para garantizar el éxito, desconecta la sesión actual. Esto evitará problemas relacionados con múltiples túneles abiertos en tu máquina.
Verifica
doublezero status
si está up ejecuta:
doublezero disconnect
Siguiente paso: Tenant
La conexión a DoubleZero variará según tu caso de uso. En DoubleZero, los Tenants son grupos que tienen perfiles de usuario similares. Los ejemplos incluyen Blockchains, Capas de Transferencia de Datos, etc.
Continúa para elegir tu tenant aquí
Opcional: Habilitar métricas de Prometheus
Los operadores familiarizados con métricas de Prometheus pueden querer habilitarlas para el monitoreo de DoubleZero. Esto proporciona visibilidad sobre el rendimiento del cliente DoubleZero, el estado de la conexión y la salud operativa.
Qué métricas están disponibles
DoubleZero expone varias métricas clave: - Información de compilación: Versión, hash del commit y fecha de compilación - Estado de la sesión: Si la sesión de DoubleZero está activa - Métricas de conexión: Latencia e información de conectividad - Datos de rendimiento: Throughput y tasas de error
Habilitar métricas de Prometheus
Para habilitar las métricas de Prometheus en el cliente de DoubleZero sigue estos pasos:
1. Modificar el comando de inicio del servicio systemd de doublezerod
Crea o edita la configuración de override de systemd:
sudo mkdir -p /etc/systemd/system/doublezerod.service.d/
sudo nano /etc/systemd/system/doublezerod.service.d/override.conf
Reemplaza con esta configuración:
Ten en cuenta que el flag -env debe apuntar a testnet o mainnet-beta dependiendo de qué red deseas recopilar datos. En el bloque de ejemplo se usa testnet. Puedes cambiarlo por mainnet-beta si es necesario.
[Service]
ExecStart=
ExecStart=/usr/bin/doublezerod -sock-file /run/doublezerod/doublezerod.sock -env testnet -metrics-enable -metrics-addr localhost:2113
2. Recargar y reiniciar el servicio
sudo systemctl daemon-reload
sudo systemctl restart doublezerod
sudo systemctl status doublezerod
3. Verificar que las métricas están disponibles
Prueba que el endpoint de métricas está respondiendo:
curl -s localhost:2113/metrics | grep doublezero
Salida esperada:
# HELP doublezero_build_info Build information of the client
# TYPE doublezero_build_info gauge
doublezero_build_info{commit="0d684e1b",date="2025-09-10T16:30:25Z",version="0.6.4"} 1
# HELP doublezero_session_is_up Status of session to doublezero
# TYPE doublezero_session_is_up gauge
doublezero_session_is_up 0
Solución de problemas
Si las métricas no aparecen:
- Verificar el estado del servicio:
sudo systemctl status doublezerod - Verificar la configuración:
sudo systemctl cat doublezerod - Revisar los logs:
sudo journalctl -u doublezerod -f - Probar el endpoint:
curl -v localhost:2113/metrics - Verificar el puerto:
netstat -tlnp | grep 2113
Configurar el servidor Prometheus
La configuración y la seguridad están fuera del alcance de esta documentación. Grafana es una excelente opción para visualización y tiene documentación disponible aquí que detalla cómo recopilar métricas de Prometheus.
Dashboard de Grafana (Opcional)
Para visualización, puedes crear un dashboard de Grafana usando las métricas de DoubleZero. Los paneles comunes incluyen: - Estado de la sesión a lo largo del tiempo - Información de compilación - Tendencias de latencia de conexión - Monitoreo de tasa de errores