Conexão de Assinante Edge (CLI)
Assinatura legada via CLI — descontinuada em 30 de agosto de 2026
Esta página é para usuários que já utilizam a assinatura via CLI / seat onchain (doublezero-solana shreds pay). Esse sistema será descontinuado em 30 de agosto de 2026.
Novas assinaturas utilizam o fluxo pelo portal em Assinar shreds (Edge).
Ao conectar-se ao DoubleZero, concordo com os Termos de Uso do DoubleZero. Observe que os dados são apenas para uso interno e não podem ser retransmitidos (consulte a Seção 2(e)).
Passo 1: Configuração do DoubleZero
1. Concluir a Configuração
Instale a CLI do Solana.
Siga as instruções de configuração para instalar e configurar o cliente DoubleZero.
Se você já configurou o DoubleZero anteriormente, certifique-se de ter a versão mais recente da CLI Doublezero-Solana com sudo apt update && sudo apt install doublezero-solana
2. Configurar o Firewall
Permita tráfego GRE, BGP, PIM e de shreds.
iptables:
sudo iptables -A OUTPUT -p gre -j ACCEPT
sudo iptables -A INPUT -i doublezero1 -s 169.254.0.0/16 -d 169.254.0.0/16 -p tcp --dport 179 -j ACCEPT
sudo iptables -A OUTPUT -o doublezero1 -s 169.254.0.0/16 -d 169.254.0.0/16 -p tcp --dport 179 -j ACCEPT
sudo iptables -A OUTPUT -o doublezero1 -p pim -j ACCEPT
sudo iptables -A INPUT -i doublezero1 -p udp --dport 7733 -j ACCEPT
sudo iptables -A INPUT -i doublezero0 -p udp --dport 44880 -j ACCEPT
UFW:
sudo ufw allow proto gre from any to any
sudo ufw allow in on doublezero1 from 169.254.0.0/16 to 169.254.0.0/16 port 179 proto tcp
sudo ufw allow out on doublezero1 from 169.254.0.0/16 to 169.254.0.0/16 port 179 proto tcp
sudo ufw allow in on doublezero1 to any port 7733 proto udp
sudo ufw allow in on doublezero0 to any port 44880 proto udp
O UFW não possui protocolo pim. O PIM de saída é permitido pela política padrão de saída do UFW; se você bloquear o tráfego de saída, adicione uma regra raw para PIM em /etc/ufw/before.rules.
3. Habilitar o Reconciler
O reconciler monitora o estado onchain e provisiona túneis automaticamente quando seu seat é alocado. Ele não é habilitado por padrão.
doublezero enable
Passo 2: Configurar Sua Carteira
1. Criar um Keypair do Solana
A CLI doublezero-solana usa um keypair padrão do Solana para gerenciamento de seats onchain. Se você não tiver um:
solana-keygen new
Isso grava em ~/.config/solana/id.json. Para usar um caminho diferente, passe --keypair <path> para qualquer comando doublezero-solana.
Exiba o endereço da sua carteira:
solana address
2. Financiar Sua Carteira
Sua carteira precisa de dois tokens:
- SOL — para taxas de transação do Solana. Transfira SOL para o endereço da carteira exibido acima.
- USDC — para financiamento do seat. A CLI retira da Associated Token Account (ATA) da sua carteira para o mint USDC da mainnet (
EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v).
Passo 3: Comprar um Seat
1. Encontrar o Dispositivo Mais Próximo
Antes de comprar um seat, identifique o dispositivo com a menor latência a partir da sua máquina:
doublezero latency
Anote o código do dispositivo com o resultado de menor latência (ex.: <Device_Name>). Você o usará ao comprar um seat.
2. Verificar Preços
Consulte os preços atuais dos dispositivos antes de comprometer fundos. Os preços têm dois componentes: um preço base do metro e um premium por dispositivo. Você também pode consultar preços e disponibilidade aqui.
Todos os dispositivos:
doublezero-solana shreds price
Dispositivo específico:
doublezero-solana shreds price --device-code <Device_Name>
doublezero-solana shreds price --device <PUBKEY>
Todos os dispositivos em um metro:
doublezero-solana shreds price --metro <PUBKEY>
Colunas de saída: Device Code, Metro Code, Metro Name, Status, Settled Seats, Available Seats, Base Price (USDC), Premium (USDC), Epoch Price (USDC).
O preço por epoch é o custo total por epoch para um seat naquele dispositivo (base + premium). Use --wide para exibir pubkeys completas, ou --json para saída em JSON.
3. Comprar um Seat
Compre um seat com um único comando. Isso inicializa seu seat, financia o escrow e solicita a alocação:
doublezero-solana shreds pay \
--device-code <Device_Name> \
--client-ip <Target_IP> \
--amount <Cost_Of_Seat>
Parâmetros:
| Flag | Descrição |
|---|---|
--device <PUBKEY> |
Dispositivo alvo por chave pública (mutuamente exclusivo com --device-code) |
--device-code <CODE> |
Dispositivo alvo por código legível (ex.: <Device_Name>) |
--client-ip <IP> |
Endereço IPv4 público da sua máquina |
--amount <USDC> |
USDC a financiar (formato decimal, ex.: 100 = 100 USDC). Deve atender o preço mínimo por epoch. |
--source-token-account <PUBKEY> |
Conta USDC de origem personalizada (padrão é a ATA da sua carteira) |
--accept-partial-epoch |
Pula o aviso de epoch restante (veja abaixo) |
--fee-payer <PATH> |
Usa uma carteira diferente para taxas de transação SOL |
--dry-run |
Simula a transação sem executá-la |
--with-compute-unit-price <PRICE> |
Define um preço de compute unit para inclusão mais rápida durante congestionamento |
Depois que seu seat for alocado, o daemon estabelece o túnel GRE automaticamente. Verifique sua conexão com:
doublezero status
Temporização de Epoch
Os seats são alocados por epoch do Solana (~2 dias). Se menos de 10% do epoch atual restar quando você pagar, a CLI avisará que seu seat será alocado imediatamente, mas cobre apenas o restante do epoch atual. Um pagamento separado será deduzido do seu escrow quando o próximo epoch começar.
É aconselhável financiar para mais de 1 epoch por vez para não perder seu seat. Você pode verificar o tempo restante no epoch atual aqui.
Você pode ignorar este aviso com --accept-partial-epoch.
Mantenha Seu Escrow Financiado
Se o saldo do seu escrow estiver abaixo do preço do epoch no momento da liquidação, seu seat não será alocado, o túnel será desativado e você perderá o tenure acumulado. O tenure determina sua prioridade para epochs futuros — perdê-lo significa que você competirá como um novato novamente.
Você pode financiar a mais nesta conta para cobrir múltiplos epochs. Cada liquidação deduz o preço de um epoch do seu escrow, e o saldo restante é transferido. Por exemplo, financiar 5x o preço por epoch mantém seu seat ativo por até 5 epochs sem necessidade de refinanciamento.
Para recarregar seu escrow, execute shreds pay novamente a qualquer momento:
doublezero-solana shreds pay \
--device-code <Device_Name> \
--client-ip <Target_IP> \
--amount 500
Observe que o Target_IP deve ser um endereço IPv4 público na máquina que receberá as shreds. Você pode descobri-lo executando um comando como curl -4 ifconfig.me na máquina de destino.
Monitorar Seats
Esta seção detalha como visualizar seats via CLI. Você também pode usar https://data.doublezero.xyz/api/v1/docs para monitorar seats e auxiliar no gerenciamento da sua conta escrow.
Visualize seus seats ativos e saldos de escrow:
Todos os seus seats:
doublezero-solana shreds list
Filtrar por dispositivo:
doublezero-solana shreds list --device-code <Device_Name>
Filtrar por IP do cliente:
doublezero-solana shreds list --client-ip <Target_IP>
Filtrar por carteira:
doublezero-solana shreds list --withdraw-authority <PUBKEY>
Colunas de saída: Device Code, Client IP, Tenure, Balance (USDC), Est. Epochs Paid.
A coluna "Est. Epochs Paid" mostra quantos epochs seu saldo atual cobre nos preços atuais. Se os preços mudarem, esta estimativa se ajusta.
Retirar Seat e Escrow
Este comando libera seu seat e fecha o escrow. Você recebe um reembolso proporcional pela porção não utilizada do epoch atual, mais qualquer saldo restante do escrow, devolvido à sua carteira. Você perde o seat e qualquer tenure acumulado.
doublezero-solana shreds withdraw \
--device-code <Device_Name> \
--client-ip <Target_IP>
Você pode identificar o dispositivo por --device <PUBKEY> ou --device-code <CODE>, assim como nos outros comandos.
Para enviar o reembolso em USDC para uma conta de token diferente:
doublezero-solana shreds withdraw \
--device-code <Device_Name> \
--client-ip <Target_IP> \
--refund-token-account <PUBKEY>
Isso não pode ser desfeito. Após a retirada, seu seat é perdido e o tenure é resetado.
Endereços de Shreds (IP vs Porta)
Leader Shreds e Retransmit Shreds de alto stake chegarão pela porta 7733, na interface doublezero1. A interface doublezero0 é para tráfego unicast. A porta 5765 é um monitor de heartbeat dos publicadores de shreds — ela não conterá shreds.
Para consumo de shreds, o endereço IP identifica o stream multicast e a porta identifica o serviço UDP naquele stream.
Todos os streams de shreds abaixo usam a porta UDP 7733 em doublezero1.
Você pode examinar os IPs de qualquer grupo multicast com:
doublezero multicast group list
Leader Shreds
edge-solana-shreds:233.84.178.1:7733
Root Shreds
edge-solana-root:233.84.178.16:7733
Retransmit Shreds
edge-solana-retrans-eu:233.84.178.12:7733edge-solana-retrans-apac:233.84.178.13:7733edge-solana-retrans-amer:233.84.178.14:7733
Cabeçalho do Túnel GRE — XDP
O tráfego de shreds entregue pela rede é encapsulado em GRE. Pode ser necessário remover o cabeçalho GRE antes de alimentar os dados no seu pipeline existente (ex.: um deshredder baseado em XDP).
Ferramentas e Dashboards
Placar do Edge
O placar compara a velocidade de entrega de shreds entre o DoubleZero Edge e outros provedores, usando dados por slot para comparar performance em tempo real. Use este dashboard para ver as taxas de vitória das shreds Edge em relação a outros provedores. Você pode visualizar resultados apenas para leader shreds, além de comparação completa de feeds. Também é possível detalhar por região para ver a performance esperada.
Publicadores Edge
A métrica "Publishing Shreds" no canto superior esquerdo do dashboard mostra o percentual total de peso de stake de todos os validadores Solana publicando leader shreds no DoubleZero Edge. Você pode ver detalhes de cada publicador na rede.
Assinantes, Dispositivos e Atividade Edge
Você pode facilmente pesquisar seu IP de Cliente nesta página para seats inscritos e ver o status. Clique em assinaturas específicas de seats para ver histórico de pagamentos e atividade. Você também pode ver dispositivos disponíveis na página de Dispositivos e toda a atividade recente na página de Atividade.
Documentação da API de Dados
Para acesso programático aos endpoints de dados, consulte a documentação da API: https://data.doublezero.xyz/api/v1/docs.
Solução de Problemas
Se você encontrar um problema não coberto aqui, entre em contato pelo seu canal existente antes de tentar contorná-lo. Se você não tiver um canal, pesquise no Discord e abra um ticket se necessário.
Certifique-se de que seu Cliente está atualizado:
Execute: sudo apt update && sudo apt install doublezero-solana
Saldo insuficiente no escrow
Se o saldo do seu escrow estiver abaixo do preço do epoch no momento da liquidação, o seat não é alocado, o túnel é desativado e o tenure é perdido. Recarregue com shreds pay antes da próxima liquidação.
Seat não alocado após o pagamento
- Você pode ter pago tarde no epoch — o seat entra em vigor no próximo epoch.
- Todos os seats no dispositivo podem estar ocupados por incumbentes com maior tenure. Verifique seats disponíveis com
shreds price. - Se você fez a retirada antes da liquidação, o seat não era elegível.
Túnel não está subindo
- Verifique se o daemon está em execução:
sudo systemctl status doublezerod - Verifique se o reconciler está habilitado:
doublezero enable - Verifique se as regras de firewall estão configuradas (GRE, BGP, PIM, tráfego de shreds em
doublezero1, porta 44880 emdoublezero0) - Verifique se seu seat está ativo para o epoch atual:
doublezero-solana shreds list - Verifique o status da sua conexão:
doublezero status
O IP do cliente do daemon é descoberto automaticamente a partir do IP público do seu host — verifique se ele corresponde ao --client-ip usado nos seus comandos de seat.
Aviso de prompt de epoch
A CLI avisa quando menos de 10% do epoch resta. Suas opções:
- Aceitar com
--accept-partial-epochse você quiser o seat imediatamente - Aguardar o próximo epoch para obter cobertura de um epoch completo
"Amount is below the current price"
O comando pay valida seu valor contra o preço mínimo por epoch (base do metro + premium do dispositivo). Use shreds price para verificar os preços atuais e aumente seu valor.
"Multicast user already exists"
Você já tem uma assinatura ativa por um caminho diferente. Desconecte primeiro com doublezero disconnect, depois tente shreds pay novamente.