Como configurar o DoubleZero
Terminologia
Novo no DoubleZero? Consulte o Glossário para definições de termos como doublezerod, IBRL e DZD.
Ao conectar-me ao DoubleZero, concordo com os Termos de Serviço do DoubleZero
Pré-requisitos
Warning
Para validadores: o DoubleZero precisa ser instalado diretamente no host do seu validador, não em um contêiner.
- Conectividade com a internet com um endereço IP público (sem NAT)
- Servidor x86_64
- Sistema operacional compatível: Ubuntu 22.04+ ou Debian 11+, ou Rocky Linux / RHEL 9+
- Privilégios root ou sudo no servidor onde o DoubleZero será executado
- Opcional, mas útil: jq e curl para depuração
Conectando ao DoubleZero
O DoubleZero Testnet e o DoubleZero Mainnet-Beta são redes fisicamente distintas. Por favor, escolha a rede apropriada durante a instalação.
Ao ingressar no DoubleZero, você estabelecerá uma identidade DoubleZero, representada por uma chave pública chamada DoubleZero ID. Essa chave faz parte de como o DoubleZero reconhece sua máquina.
1. Instalar os Pacotes do DoubleZero
Versões Atuais
| Pacote | Mainnet-Beta | Testnet |
|---|---|---|
doublezero |
MAINNET_CLIENT_VERSION |
TESTNET_CLIENT_VERSION |
Siga estes passos de acordo com o seu sistema operacional:
Ubuntu / Debian
A implantação recomendada atual para Mainnet-Beta é:
curl -1sLf https://dl.cloudsmith.io/public/malbeclabs/doublezero/setup.deb.sh | sudo -E bash
sudo apt-get install doublezero
A implantação recomendada atual para Testnet é:
curl -1sLf https://dl.cloudsmith.io/public/malbeclabs/doublezero-testnet/setup.deb.sh | sudo -E bash
sudo apt-get install doublezero
Rocky Linux / RHEL
A implantação recomendada atual para Mainnet-Beta é:
curl -1sLf https://dl.cloudsmith.io/public/malbeclabs/doublezero/setup.rpm.sh | sudo -E bash
sudo yum install doublezero
A implantação recomendada atual para Testnet é:
curl -1sLf https://dl.cloudsmith.io/public/malbeclabs/doublezero-testnet/setup.rpm.sh | sudo -E bash
sudo yum install doublezero
Apenas para Usuários Existentes: Alterar um pacote de Testnet para Mainnet-Beta, ou Mainnet-Beta para Testnet
Quando você instala a partir de um dos repositórios de pacotes acima, ele é específico para o DoubleZero Testnet ou DoubleZero Mainnet Beta. Se você trocar de rede em algum momento, precisará remover os repositórios de pacotes instalados anteriormente e atualizar para o repositório de destino.
Este exemplo mostrará a migração de Testnet para Mainnet-Beta
Os mesmos passos podem ser realizados para migrar de Mainnet-Beta para Testnet, substituindo o passo 3 pelo comando de instalação para Testnet acima.
-
Encontrar Arquivos de Repositório Antigos
Primeiro, localize quaisquer arquivos de configuração de repositório do DoubleZero existentes no seu sistema:
find /etc/apt | grep doublezerofind /usr/share/keyrings/ | grep doublezero -
Remover Arquivos de Repositório Antigos
Remova os arquivos de repositório antigos encontrados no passo anterior, por exemplo
sudo rm /etc/apt/sources.list.d/malbeclabs-doublezero.list sudo rm /usr/share/keyrings/malbeclabs-doublezero-archive-keyring.gpg -
Instalar a partir do Novo Repositório
Adicione o novo repositório Mainnet-Beta e instale o pacote mais recente:
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 o status do doublezerod
Após a instalação do pacote, uma nova unidade systemd é instalada, ativada e iniciada. Para ver o status, você pode executar:
sudo systemctl status doublezerod
Configurar Firewall para GRE e BGP
O DoubleZero utiliza tunelamento GRE (protocolo IP 47) e roteamento BGP (tcp/179 em endereços link-local). Certifique-se de que seu firewall permita esses protocolos:
Permitir GRE e BGP através do 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
Ou permitir GRE e BGP através do 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. Criar Nova Identidade DoubleZero
Crie uma Identidade DoubleZero no seu servidor com o seguinte comando:
doublezero keygen
Info
Se você possui um ID existente que gostaria de usar, pode seguir estes passos opcionais.
Criar diretório de configuração do doublezero
mkdir -p ~/.config/doublezero
Copie ou crie um link do id.json que você deseja usar com o DoubleZero para o diretório de configuração do doublezero.
sudo cp </path/to/id.json> ~/.config/doublezero/
3. Recuperar a identidade DoubleZero do servidor
Revise sua Identidade DoubleZero. Esta identidade será usada para criar a conexão entre sua máquina e o DoubleZero
doublezero address
Saída:
YourDoubleZeroAddress11111111111111111111111111111
4. Verificar se o doublezerod descobriu dispositivos DZ
Antes de conectar, certifique-se de que o doublezerod descobriu e realizou ping em cada um dos switches DZ testnet disponíveis:
doublezero latency
Exemplo de saída:
$ 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
Se nenhum dispositivo for retornado na saída, aguarde 10-20 segundos e tente novamente.
5. Desconectar do DoubleZero
Nas próximas seções, você configurará seu Ambiente DoubleZero. Para garantir o sucesso, desconecte a sessão atual. Isso evitará problemas relacionados a múltiplos túneis abertos na sua máquina.
Verifique
doublezero status
se estiver up execute:
doublezero disconnect
Próximo Passo: Tenant
A conexão ao DoubleZero será diferente com base no seu caso de uso. No DoubleZero, Tenants são grupos que possuem perfis de usuário semelhantes. Exemplos incluem Blockchains, Camadas de Transferência de Dados, etc.
Prossiga para escolher seu tenant aqui
Opcional: Habilitar Métricas Prometheus
Operadores familiarizados com métricas Prometheus podem querer habilitá-las para monitoramento do DoubleZero. Isso fornece visibilidade sobre o desempenho do cliente DoubleZero, status da conexão e saúde operacional.
Quais Métricas Estão Disponíveis
O DoubleZero expõe várias métricas importantes: - Informações de Build: Versão, hash do commit e data de build - Status da Sessão: Se a sessão do DoubleZero está ativa - Métricas de Conexão: Latência e informações de conectividade - Dados de Desempenho: Throughput e taxas de erro
Habilitar Métricas Prometheus
Para habilitar as métricas Prometheus no cliente DoubleZero, siga estes passos:
1. Modificar o comando de inicialização do serviço systemd do doublezerod
Crie ou edite a configuração de override do systemd:
sudo mkdir -p /etc/systemd/system/doublezerod.service.d/
sudo nano /etc/systemd/system/doublezerod.service.d/override.conf
Substitua por esta configuração:
Note que a flag -env precisa apontar para testnet ou mainnet-beta dependendo de qual rede você deseja coletar dados. No bloco de exemplo, testnet é utilizado. Você pode substituí-lo por mainnet-beta se necessário.
[Service]
ExecStart=
ExecStart=/usr/bin/doublezerod -sock-file /run/doublezerod/doublezerod.sock -env testnet -metrics-enable -metrics-addr localhost:2113
2. Recarregar e reiniciar o serviço
sudo systemctl daemon-reload
sudo systemctl restart doublezerod
sudo systemctl status doublezerod
3. Verificar se as métricas estão disponíveis
Teste se o endpoint de métricas está respondendo:
curl -s localhost:2113/metrics | grep doublezero
Saída 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
Solução de Problemas
Se as métricas não estiverem aparecendo:
- Verificar status do serviço:
sudo systemctl status doublezerod - Verificar configuração:
sudo systemctl cat doublezerod - Verificar logs:
sudo journalctl -u doublezerod -f - Testar endpoint:
curl -v localhost:2113/metrics - Verificar porta:
netstat -tlnp | grep 2113
Configurar Servidor Prometheus
Configuração e segurança estão além do escopo desta documentação. Grafana é uma excelente opção para visualização e possui documentação disponível aqui detalhando como coletar métricas Prometheus.
Dashboard Grafana (Opcional)
Para visualização, você pode criar um dashboard Grafana usando as métricas do DoubleZero. Painéis comuns incluem: - Status da sessão ao longo do tempo - Informações de build - Tendências de latência de conexão - Monitoramento de taxa de erros