Ir para o conteúdo

Como configurar o DoubleZero

This translation was generated using artificial intelligence and has not been reviewed by a human translator. It may contain inaccuracies or errors and should not be relied upon.

Terminologia

Novo no DoubleZero? Consulte o Glossário para definições de termos como doublezerod, IBRL e DZD.

Ao conectar 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 validador, não em um contêiner.

  • Conectividade à internet com um endereço IP público (sem NAT)
  • Servidor x86_64
  • SO suportado: Ubuntu 22.04+ ou Debian 11+, ou Rocky Linux / RHEL 8+
  • Privilégios de root ou sudo no servidor onde o DoubleZero será executado
  • Opcional, mas útil: jq e curl para depuração

Conectando ao DoubleZero

O Testnet do DoubleZero e o Mainnet-Beta do DoubleZero são redes fisicamente distintas. Por favor, escolha a rede apropriada durante a instalação.

Ao integrar ao 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 estas etapas dependendo do 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 Usuários Existentes: Mudar um pacote de Testnet para Mainnet-Beta, ou de Mainnet-Beta para Testnet

Quando você instala a partir de um dos repositórios de pacotes acima, ele é específico para o Testnet do DoubleZero ou o 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 do Testnet para o Mainnet-Beta.

As mesmas etapas podem ser concluídas para mover do Mainnet-Beta para o Testnet, substituindo o passo 3 pelo comando de instalação do Testnet acima.

  1. Encontrar Arquivos de Repositório Antigos

    Primeiro, localize quaisquer arquivos de configuração de repositório do DoubleZero existentes em seu sistema:

    find /etc/apt | grep doublezero

    find /usr/share/keyrings/ | grep doublezero

  2. Remover Arquivos de Repositório Antigos

    Remova os arquivos de repositório antigos encontrados na etapa anterior, por exemplo:

    sudo rm /etc/apt/sources.list.d/malbeclabs-doublezero.list
    sudo rm /usr/share/keyrings/malbeclabs-doublezero-archive-keyring.gpg
    
  3. 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=<versao_recomendada_atual_acima>
    

Verificar o status do doublezerod

Após a instalação do pacote, uma nova unidade systemd é instalada, ativada e iniciada. Para ver o status, execute:

sudo systemctl status doublezerod

Configurar Firewall para GRE e BGP

O DoubleZero usa 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 via 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 via 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 em seu servidor com o seguinte comando:

doublezero keygen

Info

Se você tiver um ID existente que gostaria de usar, pode seguir estas etapas opcionais.

Criar o diretório de configuração do doublezero

mkdir -p ~/.config/doublezero

Copie ou vincule o id.json que deseja usar com o DoubleZero no diretório de configuração do doublezero.

sudo cp </caminho/para/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 os dispositivos DZ

Antes de conectar, certifique-se de que o doublezerod tenha descoberto e feito 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ê definirá seu Ambiente DoubleZero. Para garantir o sucesso, desconecte a sessão atual. Isso evitará problemas relacionados a múltiplos túneis abertos em sua máquina.

Verifique

doublezero status

se estiver up, execute:

doublezero disconnect

Próxima Etapa: Tenant

A conexão ao DoubleZero será diferente com base no seu caso de uso. No DoubleZero, Tenants são grupos que têm 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 de conexão e saúde operacional.

Quais Métricas Estão Disponíveis

O DoubleZero expõe várias métricas principais: - Informações de Build: Versão, hash de commit e data de build - Status da Sessão: Se a sessão DoubleZero está ativa - Métricas de Conexão: Informações de latência e conectividade - Dados de Desempenho: Throughput e taxas de erro

Habilitar Métricas Prometheus

Para habilitar métricas Prometheus no cliente DoubleZero, siga estas etapas:

1. Modificar o comando de inicialização do serviço systemd doublezerod

Crie ou edite a configuração de substituição 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 o flag -env precisa apontar para testnet ou mainnet-beta dependendo de qual rede você gostaria de coletar dados. No bloco de exemplo, testnet é usado. 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

Resolução de Problemas

Se as métricas não aparecerem:

  1. Verificar status do serviço: sudo systemctl status doublezerod
  2. Verificar configuração: sudo systemctl cat doublezerod
  3. Verificar logs: sudo journalctl -u doublezerod -f
  4. Testar endpoint: curl -v localhost:2113/metrics
  5. Verificar porta: netstat -tlnp | grep 2113

Configurar Servidor Prometheus

Configuração e segurança estão além do escopo desta documentação. 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