Saltar a contenido

Conexión de Validador a Testnet en 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.

Al conectarme a DoubleZero testnet acepto los términos del Acuerdo de Evaluación establecido aquí (haga clic para expandir)

DoubleZero Testnet Acuerdo de Evaluación

Al acceder o usar la Solución (definida a continuación), usted acepta a partir de la primera fecha de dicho acceso (la "Fecha de Vigencia") que este Acuerdo de Evaluación (el "Acuerdo") establece los términos y condiciones bajo los cuales la Fundación DoubleZero ("DZF") le proporcionará acceso a la Solución en base de evaluación. En consideración de las promesas mutuas aquí contenidas, usted acepta lo siguiente:

1. DEFINICIONES.

1.1 "Información Confidencial" significa cualquier y toda la información divulgada por cualquiera de las partes a la otra que esté designada como confidencial, o que de otra manera deba entenderse como confidencial, incluyendo pero no limitado a, la Solución, planes de productos, planes de negocios, secretos comerciales, tecnología, u otra información propietaria.

1.2 "Solución" significa la versión testnet de la infraestructura de red de alto rendimiento de DoubleZero para proyectos web3 ("Testnet") y el servicio de filtrado de borde integrado con ancho de banda ("Servicio de Información") el Software DZ (definido a continuación), todos y cada uno de los materiales proporcionados por DZF en relación con el Software DZ ("Documentación"), y otros materiales que DZF proporciona al Usuario en virtud del presente.

2. ACCESO.

2.1 Acceso a la Solución. Sujeto a los términos y condiciones de este Acuerdo, DZF proporcionará al Usuario acceso a la Solución a través de Internet. El acceso del Usuario es un uso no exclusivo, no transferible y limitado de la Solución para permitir al Usuario evaluar el Servicio de Información únicamente. Con respecto a cualquier software que comprenda la Solución ("Software DZ"), DZF otorga al Usuario una licencia limitada y revocable, durante el Período de Evaluación, para copiar, descargar, hacer un número razonable de copias, ejecutar y desplegar (según corresponda) dicho Software DZ únicamente según lo contemplado en la Documentación.

2.2 Restricciones. El Usuario puede usar la Solución de acuerdo con este Acuerdo desde la Fecha de Vigencia hasta que DZF lo termine (el "Período de Evaluación"). El Usuario entiende que cualquier derecho a usar la Solución más allá del Período de Evaluación estará sujeto a un acuerdo comercial separado entre las partes al respecto, incluyendo el pago de tarifas. El Usuario no deberá, y no permitirá que ningún tercero: (i) modifique o cree obras derivadas basadas en la Solución o cualquier parte de ella; (ii) reproduzca la Solución excepto según lo permitido expresamente por este Acuerdo; (iii) sublicencie, distribuya, venda, preste, arriende, transfiera o conceda cualquier derecho sobre toda o cualquier parte de la Solución o proporcione acceso a la Solución a terceros, ya sea mediante servicios o de otra manera, excepto como oferta de los Servicios de Información a través de o en conexión con la plataforma o producto del Usuario y no de forma independiente; o (iv) use la Solución de otra forma que no sea la prevista en el presente.

2.3 Propiedad. DZF conserva todos los derechos, títulos e intereses, incluidos los derechos de propiedad intelectual, sobre la Solución.

3 COMENTARIOS. DZF puede solicitar periódicamente que el Usuario proporcione, y el Usuario acepta proporcionar a DZF, comentarios sobre el uso, operación y funcionalidad de la Solución ("Comentarios"). El Usuario otorga a DZF un derecho y licencia no exclusivos, mundiales, perpetuos, irrevocables, libres de regalías, totalmente pagados, completamente sublicenciables y transferibles para usar e incorporar los Comentarios en cualquier producto y servicio, para fabricar, usar, vender, ofrecer en venta, importar y explotar de otra manera dichos productos y servicios, y para usar, copiar, distribuir y explotar de otra manera los Comentarios sin restricción.

4. PLAZO Y RESCISIÓN.

4.1 Plazo. Este Acuerdo comenzará a partir de la Fecha de Vigencia y permanecerá en pleno vigor y efecto durante el Período de Evaluación. Cualquiera de las partes puede rescindir este Acuerdo de inmediato por conveniencia, por cualquier razón o sin razón alguna, mediante notificación escrita a la otra parte (el correo electrónico será suficiente).

4.1 Efectos de la Rescisión. Al momento de la rescisión de este Acuerdo por cualquier razón: (i) los derechos otorgados al Usuario en el presente terminarán de inmediato; (ii) el Usuario deberá cesar de inmediato cualquier uso de la Solución y deberá devolver o destruir toda la Documentación y cualquier Software DZ bajo su control; (iii) cada parte devolverá o destruirá de inmediato toda la Información Confidencial y propiedad de la otra parte; y (iv) las Secciones 2.2, 2.3, 3, 4.2 y 5 a 8 sobrevivirán.

5. CONFIDENCIALIDAD. Cada parte acepta que usará la Información Confidencial de la otra parte únicamente para cumplir con sus obligaciones y ejercer sus derechos bajo este Acuerdo y no divulgará, ni permitirá que se divulgue, la misma, excepto según se permita de otra manera en el presente. Sin embargo, cualquiera de las partes puede divulgar Información Confidencial a su personal, abogados y otros representantes que tengan necesidad de conocerla y estén sujetos a obligaciones de confidencialidad no menos protectoras que las establecidas en este Acuerdo; y según lo requiera la ley (en cuyo caso la parte receptora proporcionará a la parte divulgadora notificación previa al respecto y oportunidad de impugnar dicha divulgación, y minimizará dicha divulgación en la medida permitida por la ley aplicable). Las obligaciones de confidencialidad en esta Sección 5 no se aplicarán a la información que: (a) sea o se vuelva generalmente conocida o esté disponible públicamente sin culpa de la parte receptora; (b) era conocida apropiadamente por la parte receptora, sin restricción, antes de la divulgación por la parte divulgadora; (c) fue apropiadamente divulgada a la parte receptora, sin restricción, por otra persona con la autoridad legal para hacerlo; o (d) es desarrollada de forma independiente por la parte receptora sin uso de ni referencia a la Información Confidencial de la parte divulgadora.

6. DESCARGO DE GARANTÍAS; LIMITACIÓN DE RESPONSABILIDAD.

6.1 DESCARGO DE GARANTÍAS. LA SOLUCIÓN SE PROPORCIONA "TAL CUAL" SIN GARANTÍA DE NINGÚN TIPO. DZF NO OFRECE GARANTÍAS, YA SEAN EXPRESAS, IMPLÍCITAS, ESTATUTARIAS O DE OTRO TIPO CON RESPECTO A LA SOLUCIÓN Y LA DOCUMENTACIÓN, INCLUYENDO SU CONDICIÓN, CONFORMIDAD CON CUALQUIER REPRESENTACIÓN O DESCRIPCIÓN, Y DZF RECHAZA ESPECÍFICAMENTE TODAS LAS GARANTÍAS IMPLÍCITAS DE COMERCIABILIDAD, IDONEIDAD PARA UN PROPÓSITO PARTICULAR, TÍTULO Y NO INFRACCIÓN.

6.2 LIMITACIÓN DE RESPONSABILIDAD. EXCEPTO POR UNA VIOLACIÓN DE LAS SECCIONES 2.1, 2.2 Y 5, EN NINGÚN CASO NINGUNA DE LAS PARTES SERÁ RESPONSABLE ANTE LA OTRA POR DAÑOS INDIRECTOS, INCIDENTALES, ESPECIALES U OTROS DAÑOS CONSECUENTES, INCLUYENDO SIN LIMITACIÓN DAÑOS POR PÉRDIDA DE GANANCIAS O USO O PÉRDIDA DE DATOS, INCURRIDOS POR USTED O CUALQUIER TERCERO, QUE SURJAN DE O ESTÉN RELACIONADOS CON ESTE ACUERDO, YA SEA EN UNA ACCIÓN CONTRACTUAL, POR AGRAVIO O DE OTRO MODO, INCLUSO SI LA OTRA PARTE HA SIDO ADVERTIDA DE LA POSIBILIDAD DE DICHOS DAÑOS. EN NINGÚN CASO LA RESPONSABILIDAD AGREGADA DE DZF QUE SURJA DE O ESTÉ RELACIONADA CON ESTE ACUERDO EXCEDERÁ CIEN DÓLARES ($100), YA SEA EN UNA ACCIÓN CONTRACTUAL, POR AGRAVIO O DE OTRO MODO.

7. LEY APLICABLE. Este Acuerdo y todos los asuntos que surjan de o estén relacionados con este Acuerdo se regirán, interpretarán y construirán de acuerdo con las leyes de las Islas Caimán.

8. DISPOSICIONES GENERALES. Este Acuerdo no puede ser transferido o cedido por el Usuario sin el consentimiento previo por escrito de DZF. DZF puede ceder libremente este Acuerdo. Todos los avisos que deban enviarse en virtud del presente se enviarán por correo electrónico (a DZF: legal@doublezero.xyz) y se considerarán recibidos el día siguiente al envío (con confirmación de transmisión).

Conexión a Testnet en modo IBRL

Note

El modo IBRL no requiere reiniciar los clientes de validadores, ya que usa su dirección IP pública existente.

Los Validadores de Testnet de Solana completarán la conexión a DoubleZero Testnet, que se detalla en esta página.

Cada validador Solana tiene su propio keypair de identidad; de él se extrae la clave pública conocida como el node ID. Esta es la huella digital única del validador en la red Solana.

Con el DoubleZeroID y el node ID identificados, demostrará la propiedad de su máquina. Esto se hace creando un mensaje que incluye el DoubleZeroID firmado con la clave de identidad del validador. La firma criptográfica resultante sirve como prueba verificable de que controla el validador.

Finalmente, enviará una solicitud de conexión a DoubleZero. Esta solicitud comunica: "Aquí está mi identidad, aquí está la prueba de propiedad y aquí está cómo pretendo conectarme." DoubleZero valida esta información, acepta la prueba y provisiona acceso a la red para el validador en DoubleZero.

Esta guía permite que 1 Validador Primario se registre a sí mismo, y hasta 3 máquinas de respaldo/failover al mismo tiempo.

Requisitos Previos

  • CLI de Solana instalada y en $PATH
  • Para validadores: Permiso para acceder al archivo keypair de identidad del validador (por ejemplo, validator-keypair.json) bajo el usuario sol
  • Para validadores: Verificar que la clave de identidad del validador Solana que se conecta tiene al menos 1 SOL
  • Las reglas del firewall permiten conexiones salientes para DoubleZero y Solana RPC según sea necesario, incluyendo GRE (ip proto 47) y BGP (169.254.0.0/16 en tcp/179)

Info

El ID del Validador se verificará contra el gossip de Solana para determinar la IP objetivo. La IP objetivo y el ID DoubleZero se utilizarán luego para abrir un túnel GRE entre su máquina y el Dispositivo DoubleZero objetivo.

Considere: En el caso en que tenga un ID junk y un ID Primario en la misma IP, solo el ID Primario se usará en el registro de la máquina. Esto se debe a que el ID junk no aparecerá en el gossip y, por lo tanto, no puede usarse para verificar la IP de la máquina objetivo.

1. Configuración del Entorno

Siga las instrucciones de configuración antes de continuar.

El último paso en la configuración fue desconectarse de la red. Esto es para asegurar que solo un túnel esté abierto en su máquina hacia DoubleZero, y que ese túnel esté en la red correcta.

Para configurar el CLI DoubleZero (doublezero) y el daemon (doublezerod) para conectarse a DoubleZero testnet:

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"
Debería ver la siguiente salida:
✅ doublezerod configured for environment testnet

Después de aproximadamente 30 segundos verá los dispositivos DoubleZero disponibles:

doublezero latency
Ejemplo de salida (testnet)
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

La salida de mainnet tendrá la misma estructura, pero con muchos más dispositivos disponibles.

2. Abrir el puerto 44880

Los usuarios necesitan abrir el puerto 44880 para utilizar algunas funciones de enrutamiento.

Para abrir el puerto 44880 puede actualizar IP tables de la siguiente manera:

sudo iptables -A INPUT -i doublezero0 -p udp --dport 44880 -j ACCEPT
sudo iptables -A OUTPUT -o doublezero0 -p udp --dport 44880 -j ACCEPT

note los flags -i doublezero0, -o doublezero0 que restringen esta regla únicamente a la interfaz DoubleZero

O UFW de la siguiente manera:

sudo ufw allow in on doublezero0 to any port 44880 proto udp
sudo ufw allow out on doublezero0 to any port 44880 proto udp

note los flags in on doublezero0, out on doublezero0 que restringen esta regla únicamente a la interfaz DoubleZero

3. Atestar la Propiedad del Validador

Con su Entorno DoubleZero configurado, es hora de atestar la Propiedad de su Validador.

El ID DoubleZero que creó en la configuración de su validador primario debe usarse en todas las máquinas de respaldo.

El ID en su máquina primaria se puede encontrar con doublezero address. El mismo ID debe estar en ~/.config/doublezero/id.json en todas las máquinas del clúster.

Para lograr esto, primero verificará que la máquina desde la que ejecuta los comandos sea su Validador Primario con:

doublezero-solana passport find-validator -ut

Esto verifica que el validador esté registrado en el gossip y aparezca en el cronograma de líderes.

Salida 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

El mismo flujo de trabajo se usa para una o muchas máquinas. Para registrar una máquina, excluya los argumentos "--backup-validator-ids" o "backup_ids=" de cualquier comando en esta página.

Ahora, en todas las máquinas de respaldo en las que planea ejecutar su Validador Primario, ejecute lo siguiente:

doublezero-solana passport find-validator -ut

Salida 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.
Esta salida es esperada. El nodo de respaldo no puede estar en el cronograma de líderes en el momento de la creación del pase.

Ahora ejecutará este comando en todas las máquinas de respaldo que planea usar con la cuenta de votación e identidad de su Validador Primario.

Preparar la Conexión

Ejecute el siguiente comando en la máquina del Validador Primario. Esta es la máquina en la que tiene stake activo, que está en el cronograma de líderes con su ID de validador primario en el gossip de Solana en la máquina desde la que ejecuta el comando:

doublezero-solana passport prepare-validator-access -ut \
  --doublezero-address YourDoubleZeroAddress11111111111111111111111111111 \
  --primary-validator-id ValidatorIdentity111111111111111111111111111 \
  --backup-validator-ids ValidatorIdentity222222222222222222222222222,ValidatorIdentity33333333333333333333333333,ValidatorIdentity444444444444444444444444444>

Ejemplo de salida:

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>
Note la salida al final de este comando. Es la estructura para el siguiente paso.

4. Generar Firma

Al final del último paso, recibimos una salida preformateada para solana sign-offchain-message.

Desde la salida anterior ejecutaremos este comando en la máquina del Validador Primario.

  solana sign-offchain-message \
     service_key=YourDoubleZeroAddress11111111111111111111111111111,backup_ids=ValidatorIdentity222222222222222222222222222,ValidatorIdentity33333333333333333333333333,ValidatorIdentity444444444444444444444444444 \
     -k <identity-keypair-file.json>

Salida:

  Signature111111rrNykTByK2DgJET3U6MdjSa7xgFivS9AHyhdSG6AbYTeczUNJSjYPwBGqpmNGkoWk9NvS3W7

5. Iniciar una Solicitud de Conexión en DoubleZero

Use el comando request-validator-access para crear una cuenta en Solana para la solicitud de conexión. El agente Sentinel de DoubleZero detecta la nueva cuenta, valida su identidad y firma, y crea el pase de acceso en DoubleZero para que el servidor pueda establecer una conexión.

Use el node ID, el DoubleZeroID y la firma.

Note

En este ejemplo usamos -k /home/user/.config/solana/id.json para encontrar la Identidad del validador. Use la ubicación apropiada para su despliegue 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

Salida:

Esta salida puede usarse para ver la transacción en un explorador Solana. Asegúrese de cambiar el explorador a testnet. Esta verificación es opcional.

Request Solana validator access: Transaction22222222VaB8FMqM2wEBXyV5THpKRXWrPtDQxmTjHJHiAWteVYTsc7Gjz4hdXxvYoZXGeHkrEayp

Si tiene éxito, DoubleZero registrará el primario con sus respaldos. Ahora puede hacer failover entre las IPs registradas en el pase de acceso. DoubleZero mantendrá la conectividad automáticamente al cambiar a nodos de respaldo registrados de esta manera.

6. Conectarse en modo IBRL

En el servidor, con el usuario que se conectará a DoubleZero, ejecute el comando connect para establecer la conexión a DoubleZero.

doublezero connect ibrl

Debería ver una salida que indique el aprovisionamiento, 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
Espere un minuto para que el túnel GRE termine de configurarse. Hasta que el túnel GRE esté configurado, su salida de estado puede devolver "down" o "Unknown".

Verifique su conexión:

doublezero status

Salida:

Note

Examine esta salida. Note que Tunnel src y DoubleZero IP coinciden con la dirección IPv4 pública de su 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
Un estado de up significa que está conectado correctamente.

Podrá ver las rutas propagadas por otros usuarios en DoubleZero ejecutando:

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
...

Siguiente Paso: Publicar Shreds mediante Multicast

Si ha completado esta configuración y planea publicar shreds mediante multicast, continúe a la siguiente página.