Conexão do Validador ao Testnet no Modo IBRL
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.
Ao conectar ao testnet DoubleZero, concordo com os termos do Acordo de Avaliação estabelecido aqui (clique para expandir)
Testnet DoubleZero Acordo de Avaliação
Ao acessar ou usar a Solução (definida abaixo), você concorda a partir da primeira data de tal acesso (a "Data de Vigência") que este Acordo de Avaliação (o "Acordo") estabelece os termos e condições sob os quais a DoubleZero Foundation ("DZF") fornecerá a você ("Usuário" ou "você") acesso à Solução em base de avaliação. Em consideração às promessas mútuas aqui contidas, você concorda com o seguinte:
1. DEFINIÇÕES.
1.1 "Informações Confidenciais" significa toda e qualquer informação divulgada por qualquer das partes à outra que seja designada como confidencial, ou que deva ser entendida como confidencial, incluindo, mas não se limitando a, a Solução, planos de produtos, planos de negócios, segredos comerciais, tecnologia ou quaisquer outras informações proprietárias.
1.2 "Solução" significa a versão testnet da infraestrutura de rede de alto desempenho do DoubleZero para projetos web3 ("Testnet") e serviço de filtragem de borda relacionado com largura de banda integrada ("Serviço de Informação"), o Software DZ (definido abaixo), todos e quaisquer materiais fornecidos pela DZF relacionados ao Software DZ ("Documentação") e outros materiais que a DZF fornece ao Usuário neste documento.
2. ACESSO.
2.1 Acesso à Solução. Sujeito aos termos e condições deste Acordo, a DZF fornecerá ao Usuário acesso à Solução pela Internet. O acesso do Usuário é um uso não exclusivo, intransferível e limitado da Solução para permitir que o Usuário avalie apenas o Serviço de Informação. Com relação a qualquer software que compõe a Solução ("Software DZ"), a DZF concede ao Usuário uma licença limitada e revogável, durante o Período de Avaliação, para copiar, baixar, fazer um número razoável de cópias, executar e implantar (conforme aplicável) tal Software DZ exclusivamente conforme contemplado pela Documentação.
2.2 Restrições. O Usuário pode usar a Solução de acordo com este Acordo a partir da Data de Vigência até ser encerrado pela DZF (o "Período de Avaliação"). O Usuário entende que quaisquer direitos de usar a Solução além do Período de Avaliação estarão sujeitos a um acordo comercial separado entre as partes com relação ao mesmo, incluindo o pagamento de taxas. O Usuário não deve, e não deve permitir que terceiros: (i) modifiquem ou criem obras derivadas com base na Solução ou qualquer parte dela; (ii) reproduzam a Solução exceto conforme expressamente permitido por este Acordo; (iii) sublicenciem, distribuam, vendam, emprestem, aluguem, arrendem, transfiram ou concedam quaisquer direitos sobre toda ou qualquer parte da Solução ou forneçam acesso à Solução a terceiros, em base de serviço de bureau ou de outra forma, exceto como oferta dos Serviços de Informação por meio ou em conexão com a plataforma ou produto do Usuário e não de forma independente; ou (iv) usem a Solução de outra forma que não a prevista neste documento.
2.3 Propriedade. A DZF retém todos os direitos, títulos e interesses, incluindo direitos de propriedade intelectual, sobre e na Solução.
3 FEEDBACK. A DZF pode periodicamente solicitar que o Usuário forneça, e o Usuário concorda em fornecer à DZF, feedback sobre o uso, operação e funcionalidade da Solução ("Feedback"). O Usuário concede à DZF um direito e licença não exclusivos, mundiais, perpétuos, irrevogáveis, sem royalties, totalmente pagos, totalmente sublicenciáveis e transferíveis para usar e incorporar o Feedback em quaisquer produtos e serviços, para fabricar, usar, vender, oferecer para venda, importar e de outra forma explorar tais produtos e serviços, e de outra forma usar, copiar, distribuir e de outra forma explorar o Feedback sem restrição.
4. PRAZO E RESCISÃO.
4.1 Prazo. Este Acordo entrará em vigor na Data de Vigência e permanecerá em pleno vigor e efeito durante o Período de Avaliação. Qualquer das partes pode rescindir este Acordo imediatamente por conveniência, por qualquer motivo ou sem motivo, mediante notificação por escrito à outra parte (e-mail suficiente).
4.1 Efeitos da Rescisão. Após a rescisão deste Acordo por qualquer motivo: (i) os direitos concedidos ao Usuário neste documento encerrarão imediatamente; (ii) o Usuário deverá imediatamente descontinuar qualquer uso da Solução e deverá devolver ou destruir toda a Documentação e qualquer Software DZ sob seu controle; (iii) cada parte deverá prontamente devolver ou destruir todas as Informações Confidenciais e propriedades da outra parte; e (iv) as Seções 2.2, 2.3, 3, 4.2 e 5 a 8 sobreviverão.
5. CONFIDENCIALIDADE. Cada parte concorda que usará as Informações Confidenciais da outra parte exclusivamente para cumprir suas obrigações e exercer seus direitos sob este Acordo e não divulgará, nem permitirá que sejam divulgadas, exceto conforme permitido neste documento. No entanto, qualquer das partes pode divulgar Informações Confidenciais ao seu pessoal, advogados e outros representantes que tenham necessidade de saber e estejam vinculados por obrigações de confidencialidade não menos protetoras do que as estabelecidas neste Acordo; e conforme exigido por lei (caso em que a parte receptora fornecerá à parte divulgadora aviso prévio e oportunidade de contestar tal divulgação, e minimizará tal divulgação na medida permitida pela lei aplicável). As obrigações de confidencialidade nesta Seção 5 não se aplicarão a informações que: (a) sejam ou se tornem geralmente conhecidas ou publicamente disponíveis sem culpa da parte receptora; (b) eram adequadamente conhecidas pela parte receptora, sem restrição, antes da divulgação pela parte divulgadora; (c) foram adequadamente divulgadas à parte receptora, sem restrição, por outra pessoa com autoridade legal para fazê-lo; ou (d) são desenvolvidas de forma independente pela parte receptora sem uso ou referência às Informações Confidenciais da parte divulgadora.
6. ISENÇÃO DE GARANTIA; LIMITAÇÃO DE RESPONSABILIDADE.
6.1 ISENÇÃO DE GARANTIA. A SOLUÇÃO É FORNECIDA "NO ESTADO EM QUE SE ENCONTRA" SEM GARANTIA DE QUALQUER TIPO. A DZF NÃO OFERECE GARANTIAS, SEJAM EXPRESSAS, IMPLÍCITAS, ESTATUTÁRIAS OU DE OUTRA FORMA, COM RELAÇÃO À SOLUÇÃO E DOCUMENTAÇÃO, INCLUINDO SUA CONDIÇÃO, CONFORMIDADE COM QUALQUER REPRESENTAÇÃO OU DESCRIÇÃO, E A DZF ESPECIFICAMENTE SE ISENTA DE TODAS AS GARANTIAS IMPLÍCITAS DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UM FIM ESPECÍFICO, TÍTULO E NÃO VIOLAÇÃO.
6.2 LIMITAÇÃO DE RESPONSABILIDADE. EXCETO POR VIOLAÇÃO DAS SEÇÕES 2.1, 2.2 E 5, EM NENHUM CASO QUALQUER DAS PARTES SERÁ RESPONSÁVEL PERANTE A OUTRA POR DANOS INDIRETOS, INCIDENTAIS, ESPECIAIS OU OUTROS DANOS CONSEQUENCIAIS, INCLUINDO SEM LIMITAÇÃO DANOS POR PERDA DE LUCROS OU USO OU PERDA DE DADOS, INCORRIDOS POR VOCÊ OU QUALQUER TERCEIRO, DECORRENTES DE OU RELACIONADOS A ESTE ACORDO, SEJA EM UMA AÇÃO EM CONTRATO, ATO ILÍCITO OU DE OUTRA FORMA, MESMO QUE A OUTRA PARTE TENHA SIDO AVISADA DA POSSIBILIDADE DE TAIS DANOS. EM NENHUM CASO A RESPONSABILIDADE AGREGADA DA DZF DECORRENTE DE OU RELACIONADA A ESTE ACORDO EXCEDERÁ CEM DÓLARES ($100), SEJA EM AÇÃO EM CONTRATO, ATO ILÍCITO OU DE OUTRA FORMA.
7. LEI APLICÁVEL. Este Acordo e todos os assuntos decorrentes de ou relacionados a este Acordo serão regidos, interpretados e construídos de acordo com as leis das Ilhas Cayman.
8. DISPOSIÇÕES GERAIS. Este Acordo não pode ser transferido ou cedido pelo Usuário sem o consentimento prévio por escrito da DZF. A DZF pode ceder livremente este Acordo. Este Acordo, juntamente com quaisquer anexos, constitui o acordo completo entre as partes e substitui todos os acordos ou representações anteriores ou contemporâneos, escritos ou orais, relativos ao assunto aqui tratado.
Conectando ao Testnet no Modo IBRL
Note
O modo IBRL não requer reinicialização dos clientes validadores, pois usa seu endereço IP público existente.
Os Validadores Testnet da Solana completarão a conexão ao Testnet do DoubleZero, detalhada nesta página.
Cada validador Solana tem seu próprio keypair de identidade; dele é extraída a chave pública conhecida como o node ID. Esta é a impressão digital única do validador na rede Solana.
Com o DoubleZeroID e o node ID identificados, você provará a propriedade da sua máquina. Isso é feito criando uma mensagem que inclui o DoubleZeroID assinado com a chave de identidade do validador. A assinatura criptográfica resultante serve como prova verificável de que você controla o validador.
Por fim, você enviará uma solicitação de conexão ao DoubleZero. Esta solicitação comunica: "Aqui está minha identidade, aqui está a prova de propriedade e aqui está como pretendo me conectar." O DoubleZero valida essas informações, aceita a prova e provisiona acesso à rede para o validador no DoubleZero.
Este guia permite que 1 Validador Primário se registre e até 3 máquinas de backup/failover ao mesmo tempo.
Pré-requisitos
- CLI da Solana instalado e no $PATH
- Para validadores: Permissão para acessar o arquivo keypair de identidade do validador (por exemplo, validator-keypair.json) sob o usuário sol
- Para validadores: Verificar que a chave de identidade do validador Solana conectado tem pelo menos 1 SOL
- As regras de firewall permitem conexões de saída para DoubleZero e Solana RPC conforme necessário, incluindo GRE (ip proto 47) e BGP (169.254.0.0/16 na tcp/179)
Info
O ID do Validador será verificado contra o gossip da Solana para determinar o IP alvo. O IP alvo e o ID DoubleZero serão então usados para abrir um túnel GRE entre sua máquina e o Dispositivo DoubleZero alvo.
Considere: No caso em que você tem um ID junk e um ID Primário no mesmo IP, apenas o ID Primário será usado no registro da máquina. Isso ocorre porque o ID junk não aparecerá no gossip e, portanto, não pode ser usado para verificar o IP da máquina alvo.
1. Configuração do Ambiente
Siga as instruções de configuração antes de continuar.
O último passo na configuração foi desconectar da rede. Isso é para garantir que apenas um túnel esteja aberto na sua máquina para o DoubleZero, e que esse túnel esteja na rede correta.
Para configurar o CLI do DoubleZero (doublezero) e o daemon (doublezerod) para se conectar ao testnet DoubleZero:
DESIRED_DOUBLEZERO_ENV=testnet \
&& sudo mkdir -p /etc/systemd/system/doublezerod.service.d \
&& echo -e "[Service]\nExecStart=\nExecStart=/usr/bin/doublezerod -sock-file /run/doublezerod/doublezerod.sock -env $DESIRED_DOUBLEZERO_ENV" | sudo tee /etc/systemd/system/doublezerod.service.d/override.conf > /dev/null \
&& sudo systemctl daemon-reload \
&& sudo systemctl restart doublezerod \
&& doublezero config set --env $DESIRED_DOUBLEZERO_ENV > /dev/null \
&& echo "✅ doublezerod configured for environment $DESIRED_DOUBLEZERO_ENV"
✅ doublezerod configured for environment testnet
Após aproximadamente 30 segundos, você verá os dispositivos DoubleZero disponíveis:
doublezero latency
doublezero latency
pubkey | code | ip | min | max | avg | reachable
6E1fuqbDBG5ejhYEGKHNkWG5mSTczjy4R77XCKEdUtpb | nyc-dz001 | 64.86.249.22 | 2.44ms | 2.63ms | 2.50ms | true
CT8mP6RUoRcAB67HjKV9am7SBTCpxaJEwfQrSjVLdZfD | lax-dz001 | 207.45.216.134 | 71.97ms | 72.01ms | 71.99ms | true
Cpt3doj17dCF6bEhvc7VeAuZbXLD88a1EboTyE8uj6ZL | lon-dz001 | 195.219.120.66 | 71.94ms | 72.08ms | 72.00ms | true
4Wr7PQr5kyqCNJo3RKa8675K7ZtQ6fBUeorcexgp49Zp | ams-dz001 | 195.219.138.50 | 76.55ms | 76.65ms | 76.61ms | true
29ghthsKeH2ZCUmN2sUvhJtpEXn2ZxqAuq4sZFBFZmEs | fra-dz001 | 195.219.220.58 | 83.01ms | 83.10ms | 83.05ms | true
hWffRFpLrsZoF5r9qJS6AL2D9TEmSvPUBEbDrLc111Y | fra-dz-001-x | 195.12.227.250 | 84.87ms | 84.91ms | 84.89ms | true
8jyamHfu3rumSEJt9YhtYw3J4a7aKeiztdqux17irGSj | prg-dz-001-x | 195.12.228.250 | 95.27ms | 95.30ms | 95.29ms | true
5tqXoiQtZmuL6CjhgAC6vA49JRUsgB9Gsqh4fNjEhftU | tyo-dz001 | 180.87.154.78 | 180.96ms | 181.08ms | 181.02ms | true
D3ZjDiLzvrGi5NJGzmM7b3YZg6e2DrUcBCQznJr3KfC8 | sin-dz001 | 180.87.102.98 | 220.87ms | 221.14ms | 220.97ms | true
A saída do Mainnet será idêntica em estrutura, mas com muito mais dispositivos disponíveis.
2. Abrir a porta 44880
Os usuários precisam abrir a porta 44880 para utilizar alguns recursos de roteamento.
Para abrir a porta 44880, você pode atualizar as regras do iptables da seguinte forma:
sudo iptables -A INPUT -i doublezero0 -p udp --dport 44880 -j ACCEPT
sudo iptables -A OUTPUT -o doublezero0 -p udp --dport 44880 -j ACCEPT
observe os flags -i doublezero0, -o doublezero0 que restringem esta regra apenas à interface DoubleZero
Ou UFW da seguinte forma:
sudo ufw allow in on doublezero0 to any port 44880 proto udp
sudo ufw allow out on doublezero0 to any port 44880 proto udp
observe os flags in on doublezero0, out on doublezero0 que restringem esta regra apenas à interface DoubleZero
3. Atestar a Propriedade do Validador
Com seu Ambiente DoubleZero configurado, é hora de atestar a Propriedade do seu Validador.
O ID DoubleZero que você criou na configuração do seu validador primário deve ser usado em todas as máquinas de backup.
O ID na sua máquina primária pode ser encontrado com doublezero address. O mesmo ID deve estar em ~/.config/doublezero/id.json em todas as máquinas do cluster.
Para conseguir isso, você primeiro verificará que a máquina da qual está executando os comandos é seu Validador Primário com:
doublezero-solana passport find-validator -ut
Isso verifica que o validador está registrado no gossip e aparece no cronograma de líderes.
Saída esperada:
Connected to Solana: testnet
DoubleZero ID: YourDoubleZeroAddress11111111111111111111111111111
Detected public IP: 11.11.11.111
Validator ID: ValidatorIdentity111111111111111111111111111
Gossip IP: 11.11.11.111
In Leader scheduler
✅ This validator can connect as a primary in DoubleZero 🖥️ 💎. It is a leader scheduled validator.
Info
O mesmo fluxo de trabalho é usado para uma ou muitas máquinas. Para registrar uma máquina, exclua os argumentos "--backup-validator-ids" ou "backup_ids=" de qualquer comando nesta página.
Agora, em todas as máquinas de backup nas quais você planeja executar seu Validador Primário, execute o seguinte:
doublezero-solana passport find-validator -ut
Saída esperada:
Connected to Solana: testnet
DoubleZero ID: YourDoubleZeroAddress11111111111111111111111111111
Detected public IP: 22.22.22.222
Validator ID: ValidatorIdentity222222222222222222222222222
Gossip IP: 22.22.22.222
In Not in Leader scheduler
✅ This validator can only connect as a backup in DoubleZero 🖥️ 🛟. It is not leader scheduled and cannot act as a primary validator.
Você agora executará este comando em todas as máquinas de backup nas quais planeja usar a conta de voto e identidade do seu Validador Primário.
Preparar a Conexão
Execute o seguinte comando na máquina do Validador Primário. Esta é a máquina na qual você tem stake ativo, que está no cronograma de líderes com seu ID de validador primário no gossip da Solana na máquina da qual você está executando o comando:
doublezero-solana passport prepare-validator-access -ut \
--doublezero-address YourDoubleZeroAddress11111111111111111111111111111 \
--primary-validator-id ValidatorIdentity111111111111111111111111111 \
--backup-validator-ids ValidatorIdentity222222222222222222222222222,ValidatorIdentity33333333333333333333333333,ValidatorIdentity444444444444444444444444444>
Exemplo de saída:
DoubleZero Passport - Prepare Validator Access Request
Connected to Solana: testnet
Primary validator 🖥️ 💎:
ID: ValidatorIdentity111111111111111111111111111
Gossip: ✅ OK 11.11.11.111)
Leader scheduler: ✅ OK (Stake: 1,050,000.00 SOL)
Backup validator 🖥️ 🛡️:
ID: ValidatorIdentity222222222222222222222222222
Gossip: ✅ OK (22.22.22.222)
Leader scheduler: ✅ OK (not a leader scheduled validator)
Backup validator 🖥️ 🛡️:
ID: ValidatorIdentity333333333333333333333333333
Gossip: ✅ OK (33.33.33.333)
Leader scheduler: ✅ OK (not a leader scheduled validator)
Backup validator 🖥️ 🛡️:
ID: ValidatorIdentity444444444444444444444444444
Gossip: ✅ OK (33.33.33.333)
Leader scheduler: ✅ OK (not a leader scheduled validator)
To request access, sign the following message with your validator's identity key:
solana sign-offchain-message \
service_key=YourDoubleZeroAddress11111111111111111111111111111,backup_ids=ValidatorIdentity222222222222222222222222222,ValidatorIdentity33333333333333333333333333,ValidatorIdentity444444444444444444444444444 \
-k <identity-keypair-file.json>
4. Gerar Assinatura
No final do último passo, recebemos uma saída pré-formatada para solana sign-offchain-message.
Da saída anterior, executaremos este comando na máquina do Validador Primário.
solana sign-offchain-message \
service_key=YourDoubleZeroAddress11111111111111111111111111111,backup_ids=ValidatorIdentity222222222222222222222222222,ValidatorIdentity33333333333333333333333333,ValidatorIdentity444444444444444444444444444 \
-k <identity-keypair-file.json>
Saída:
Signature111111rrNykTByK2DgJET3U6MdjSa7xgFivS9AHyhdSG6AbYTeczUNJSjYPwBGqpmNGkoWk9NvS3W7
5. Iniciar uma Solicitação de Conexão no DoubleZero
Use o comando request-validator-access para criar uma conta na Solana para a solicitação de conexão. O agente Sentinel do DoubleZero detecta a nova conta, valida sua identidade e assinatura, e cria o passe de acesso no DoubleZero para que o servidor possa estabelecer uma conexão.
Use o node ID, o DoubleZeroID e a assinatura.
Note
Neste exemplo usamos -k /home/user/.config/solana/id.json para encontrar a Identidade do validador. Use o local apropriado para sua implantação local.
doublezero-solana passport request-validator-access -k <path to keypair> -ut \
--primary-validator-id ValidatorIdentity111111111111111111111111111 \
--backup-validator-ids ValidatorIdentity222222222222222222222222222,ValidatorIdentity33333333333333333333333333,ValidatorIdentity444444444444444444444444444 \
--signature Signature111111rrNykTByK2DgJET3U6MdjSa7xgFivS9AHyhdSG6AbYTeczUNJSjYPwBGqpmNGkoWk9NvS3W7 --doublezero-address YourDoubleZeroAddress11111111111111111111111111111
Saída:
Esta saída pode ser usada para ver a transação em um explorador Solana. Certifique-se de mudar o explorador para testnet. Esta verificação é opcional.
Request Solana validator access: Transaction22222222VaB8FMqM2wEBXyV5THpKRXWrPtDQxmTjHJHiAWteVYTsc7Gjz4hdXxvYoZXGeHkrEayp
Se bem-sucedido, o DoubleZero registrará o primário com seus backups. Agora você pode fazer failover entre os IPs registrados no passe de acesso. O DoubleZero manterá a conectividade automaticamente ao mudar para nós de backup registrados desta forma.
6. Conectar no Modo IBRL
No servidor, com o usuário que se conectará ao DoubleZero, execute o comando connect para estabelecer a conexão com o DoubleZero.
doublezero connect ibrl
Você deve ver uma saída indicando o provisionamento, como:
DoubleZero Service Provisioning
🔗 Start Provisioning User...
Public IP detected: 137.184.101.183 - If you want to use a different IP, you can specify it with `--client-ip x.x.x.x`
🔍 Provisioning User for IP: 137.184.101.183
User account created
Connected to device: nyc-dz001
The user has been successfully activated
Service provisioned with status: ok
✅ User Provisioned
Verifique sua conexão:
doublezero status
Saída:
Note
Examine esta saída. Observe que Tunnel src e DoubleZero IP correspondem ao endereço IPv4 público da sua máquina.
Tunnel status | Last Session Update | Tunnel Name | Tunnel src | Tunnel dst | Doublezero IP | User Type | Current Device | Lowest Latency Device | Metro | Network
up | 2025-10-20 12:12:55 UTC | doublezero0 | 11.11.11.111 | 12.34.56.789 | 11.11.11.111 | IBRL | ams-dz001 | ✅ ams-dz001 | Amsterdam | testnet
up significa que você está conectado com sucesso.
Você poderá visualizar as rotas propagadas por outros usuários no DoubleZero executando:
ip route
default via 149.28.38.1 dev enp1s0 proto dhcp src 149.28.38.64 metric 100
5.39.216.186 via 169.254.0.68 dev doublezero0 proto bgp src 149.28.38.64
5.39.251.201 via 169.254.0.68 dev doublezero0 proto bgp src 149.28.38.64
5.39.251.202 via 169.254.0.68 dev doublezero0 proto bgp src 149.28.38.64
...
Próximo Passo: Publicando Shreds via Multicast
Se você completou esta configuração e planeja publicar shreds via multicast, continue para a próxima página.