diff --git a/docs/DZ Mainnet-beta Connection.es.md b/docs/DZ Mainnet-beta Connection.es.md index 4934243..b9e862e 100644 --- a/docs/DZ Mainnet-beta Connection.es.md +++ b/docs/DZ Mainnet-beta Connection.es.md @@ -1,74 +1,81 @@ -# Conexión de Validador a Mainnet-Beta en modo IBRL -!!! warning "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." +--- +description: Conecta un validador de Solana Mainnet-Beta y hasta tres respaldos a DoubleZero en modo IBRL, incluyendo la prueba de identidad y la solicitud de conexión. +--- -!!! warning "Al conectarme a DoubleZero acepto los [Términos de Servicio de DoubleZero](https://doublezero.xyz/terms-protocol)" +# Conexión de Validador Mainnet-Beta en Modo IBRL +!!! warning "Al conectarme a DoubleZero, acepto los [Términos de Servicio de DoubleZero](https://doublezero.xyz/terms-protocol)" -### Conectando a Mainnet-Beta en modo IBRL +### Conexión a Mainnet-Beta en Modo IBRL !!! Note inline end - El modo IBRL no requiere reiniciar los clientes de validadores, ya que usa su dirección IP pública existente. + El modo IBRL no requiere reiniciar los clientes del validador, porque utiliza tu dirección IP pública existente. -Los Validadores Mainnet de Solana completarán la conexión a DoubleZero Mainnet-beta, que se detalla en esta página. +Los Validadores de Solana Mainnet completarán la conexión a DoubleZero Mainnet-beta, lo cual 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. +Cada validador de Solana tiene su propio **par de claves de identidad**; de este, se extrae la clave pública conocida como el **ID de nodo**. Esta es la huella digital única del validador en la red de 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. +Con el DoubleZeroID y el ID de nodo identificados, probarás la propiedad de tu 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 controlas 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. +Finalmente, enviarás 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 aprovisiona el 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. +Esta guía permite registrar 1 Validador Primario y hasta 3 máquinas de respaldo/conmutación por error al mismo tiempo. -## Requisitos Previos +## Prerrequisitos -- 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) +- Solana CLI instalado y en $PATH +- Para validadores: Permiso de acceso al archivo del par de claves de identidad del validador (por ejemplo, validator-keypair.json) bajo el usuario sol +- Para validadores: Verificar que la clave de identidad del validador de 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. + El ID del Validador se verificará contra el gossip de Solana para determinar la IP de destino. La IP de destino y el DoubleZero ID se utilizarán luego al abrir un túnel GRE entre tu máquina y el Dispositivo DoubleZero de destino. - 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. + Considere: En el caso de que tengas un ID basura y un ID Primario en la misma IP, solo se utilizará el ID Primario en el registro de la máquina. Esto se debe a que el ID basura no aparecerá en el gossip y, por lo tanto, no se puede usar para verificar la IP de la máquina de destino. -## 1. Configuración del Entorno +## 1. Confirmar la red del cliente -Siga las instrucciones de [configuración](setup.md) antes de continuar. +Por favor sigue las instrucciones de [configuración](setup.md) antes de continuar. Instala los paquetes de **Mainnet-Beta** — Testnet y Mainnet-Beta usan repositorios de paquetes diferentes. -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. +El último paso en la configuración fue desconectarse de la red. Esto es para asegurar que solo un túnel esté abierto en tu máquina hacia DoubleZero, y que ese túnel esté en la red correcta. -
+Confirma que el cliente está en mainnet-beta: -Para configurar el CLI DoubleZero (`doublezero`) y el daemon (`doublezerod`) para conectarse a **DoubleZero mainnet-beta**: ```bash -DESIRED_DOUBLEZERO_ENV=mainnet-beta \ - && 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" +doublezero status ``` -Debería ver la siguiente salida: -` -✅ doublezerod configured for environment mainnet-beta -` +La columna `Network` debería ser `mainnet-beta`. Si es `testnet`, o instalaste el paquete incorrecto, usa el interruptor de copiar y pegar en [solución de problemas](troubleshooting.md#issue-wrong-doublezero-environment). -Después de aproximadamente 30 segundos verá los dispositivos DoubleZero disponibles: +Después de aproximadamente 30 segundos verás los dispositivos DoubleZero disponibles: ```bash doublezero latency ``` - -
+Salida de ejemplo (Mainnet-Beta) +```bash + pubkey | code | ip | min | max | avg | reachable + 2hPMFJHh5BPX42ygBvuYYJfCv9q7g3rRR3ZRsUgtaqUi | dz-ny7-sw01 | 137.239.213.162 | 1.74ms | 1.92ms | 1.84ms | true + ETdwWpdQ7fXDHH5ea8feMmWxnZZvSKi4xDvuEGcpEvq3 | dz-ny5-sw01 | 137.239.213.170 | 1.88ms | 4.39ms | 2.72ms | true + 8J691gPwzy9FzUZQ4SmC6jJcY7By8kZXfbJwRfQ8ns31 | nyc002-dz002 | 38.122.35.137 | 2.45ms | 3.30ms | 2.74ms | true + 8gisbwJnNhMNEWz587cAJMtSSFuWeNFtiufPuBTVqF2Z | dz-ny7-sw02 | 142.215.184.122 | 1.88ms | 5.13ms | 3.02ms | true + uzyg9iYw2FEbtdTHaDb5HoeEWYAPRPQgvsgyd873qPS | nyc001-dz002 | 4.42.212.122 | 3.17ms | 3.63ms | 3.33ms | true + FEML4XsDPN3WfmyFAXzE2xzyYqSB9kFCRrMik8JqN6kT | nyc001-dz001 | 38.104.167.29 | 2.33ms | 5.46ms | 3.39ms | true + 9oKLaL6Hwno5TyAFutTbbkNrzxm1fw9fhzkiUHgsxgGx | dz-dc10-sw01 | 137.239.200.186 | 6.84ms | 7.01ms | 6.91ms | true + DESzDP8GkSTpQLkrUegLkt4S2ynGfZX5bTDzZf3sEE58 | was001-dz002 | 38.88.214.133 | 7.39ms | 7.44ms | 7.41ms | true + HHNCpqB7CwHVLxAiB1S86ko6gJRzLCtw78K1tc7ZpT5P | was001-dz001 | 66.198.11.74 | 7.67ms | 7.85ms | 7.76ms | true + 9LFtjDzohKvCBzSquQD4YtL3HwuvkKBDE7KSzb8ztV2b | dz-mtl11-sw01 | 134.195.161.10 | 9.88ms | 10.01ms | 9.95ms | true + 9M7FfYYyjM4wGinKPofZRNmQFcCjCKRbXscGBUiXvXnG | dz-tor1-sw01 | 209.42.165.10 | 14.52ms | 14.53ms | 14.52ms | true +``` +La salida de Testnet será idéntica en estructura, pero con menos dispositivos. ## 2. Abrir el puerto 44880 Los usuarios necesitan abrir el puerto 44880 para utilizar algunas [funciones de enrutamiento](https://github.com/malbeclabs/doublezero/blob/main/rfcs/rfc7-client-route-liveness.md). -Para abrir el puerto 44880 puede actualizar IP tables de la siguiente manera: +Para abrir el puerto 44880 podrías actualizar las tablas IP de la siguiente manera:
@@ -79,7 +86,7 @@ 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 +nota los flags `-i doublezero0`, `-o doublezero0` que restringen esta regla solo a la interfaz DoubleZero O UFW de la siguiente manera: @@ -92,25 +99,25 @@ 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 +nota los flags `in on doublezero0`, `out on doublezero0` que restringen esta regla solo a la interfaz DoubleZero -## 3. Atestar la Propiedad del Validador +## 3. Atestiguar la Propiedad del Validador
-Con su Entorno DoubleZero configurado, es hora de atestar la Propiedad de su Validador. +Con tu Entorno DoubleZero configurado, ahora es momento de atestiguar la Propiedad de tu Validador. -El ID DoubleZero que creó en la [configuración](setup.md) de su validador primario debe usarse en todas las máquinas de respaldo. +El DoubleZero ID que creaste en la [configuración](setup.md) de tu 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. +El ID en tu 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: +Para lograr esto, primero verificarás que la máquina desde la que estás ejecutando los comandos es tu **Validador Primario** con: ``` doublezero-solana passport find-validator -u mainnet-beta ``` -Esto verifica que el validador esté registrado en el gossip y aparezca en el cronograma de líderes. +Esto verifica que el validador está registrado en el gossip y aparece en el programa de líderes. Salida esperada: @@ -127,14 +134,28 @@ In Leader scheduler !!! 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. + Para registrar una sola máquina, excluye 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: +Ahora, en todas las máquinas de respaldo en las que pretendes ejecutar tu **Validador Primario**, ejecuta lo siguiente: ``` doublezero-solana passport find-validator -u mainnet-beta ``` -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. +Salida esperada: + +``` +Connected to Solana: mainnet + +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 programa de líderes al momento de la creación del pase. + +Ahora ejecutarás este comando en **todas las máquinas de respaldo** en las que planeas usar la cuenta de voto e identidad de tu **Validador Primario**.
@@ -143,7 +164,7 @@ Esta salida es esperada. El nodo de respaldo no puede estar en el cronograma de ### 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: +Ejecuta el siguiente comando en la máquina del **Validador Primario**. Esta es la máquina en la que tienes stake activo, que está en el programa de líderes con tu ID de validador primario en el gossip de Solana en la máquina desde la que estás ejecutando el comando: ``` doublezero-solana passport prepare-validator-access -u mainnet-beta \ @@ -152,17 +173,53 @@ doublezero-solana passport prepare-validator-access -u mainnet-beta \ --backup-validator-ids ValidatorIdentity222222222222222222222222222,ValidatorIdentity33333333333333333333333333,ValidatorIdentity444444444444444444444444444> ``` -Note la salida al final de este comando. Es la estructura para el siguiente paso. + +Salida de ejemplo: + +``` +DoubleZero Passport - Prepare Validator Access Request +Connected to Solana: mainnet-beta + +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 + +``` +Nota la salida al final de este comando. Es la estructura para el siguiente paso. -## 4. Generar Firma +## 4. Generar la Firma
-Al final del último paso, recibimos una salida preformateada para `solana sign-offchain-message`. +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**. +De la salida anterior ejecutaremos este comando en la máquina del **Validador Primario**. ``` solana sign-offchain-message \ @@ -182,12 +239,13 @@ Desde la salida anterior ejecutaremos este comando en la máquina del **Validado
-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. +Usa el comando `request-validator-access` para crear una cuenta en Solana para la solicitud de conexión. El agente DoubleZero Sentinel 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. +Usa el ID de nodo, DoubleZeroID y la firma. !!! note inline end - 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. + En este ejemplo usamos `-k /home/user/.config/solana/id.json` para encontrar la Identidad del validador. Usa la ubicación apropiada para tu despliegue local. ``` doublezero-solana passport request-validator-access -k -u mainnet-beta \ @@ -198,27 +256,27 @@ doublezero-solana passport request-validator-access -k -u main **Salida:** -Esta salida puede usarse para ver la transacción en un explorador Solana. Asegúrese de cambiar el explorador a mainnet. Esta verificación es opcional. +Esta salida se puede usar para ver la transacción en un explorador de Solana. Asegúrate de cambiar el explorador a mainnet. Esta verificación es opcional. ```bash 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. +Si tiene éxito, DoubleZero registrará el primario con sus respaldos. Ahora puedes conmutar 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 +## 6. Conectar 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. +En el servidor, con el usuario que se conectará a DoubleZero, ejecuta el comando `connect` para establecer la conexión con DoubleZero. ``` doublezero connect ibrl ``` -Debería ver una salida que indique el aprovisionamiento, como: +Deberías ver una salida indicando el aprovisionamiento, como: ``` DoubleZero Service Provisioning @@ -231,9 +289,9 @@ Public IP detected: 137.184.101.183 - If you want to use a different IP, you can 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". +Espera un minuto para que el túnel GRE termine de configurarse. Hasta que el túnel GRE termine de configurarse, la salida de tu estado puede devolver "down" o "Unknown" -Verifique su conexión: +Verifica tu conexión: ```bash doublezero status @@ -241,22 +299,32 @@ doublezero status **Salida:** !!! note inline end - Examine esta salida. Note que `Tunnel src` y `DoubleZero IP` coinciden con la dirección IPv4 pública de su máquina. + Examina esta salida. Observa que el `Tunnel src` y la `DoubleZero IP` coinciden con la dirección IPv4 pública de tu máquina. + ```bash 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 | mainnet-beta ``` -Un estado de `up` significa que está conectado correctamente. +Un estado de `up` significa que estás conectado exitosamente. -Podrá ver las rutas propagadas por otros usuarios en DoubleZero ejecutando: +Podrás 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 +### Siguiente Paso: Publicación de Shreds vía Multicast -Si ha completado esta configuración y planea publicar shreds mediante multicast, continúe a la [siguiente página](Validator%20Multicast%20Connection.md). +Si has completado esta configuración y planeas publicar shreds vía multicast, continúa a la [siguiente página](Validator%20Multicast%20Connection.md). \ No newline at end of file diff --git a/docs/DZ Mainnet-beta Connection.fr.md b/docs/DZ Mainnet-beta Connection.fr.md index e950441..13943f3 100644 --- a/docs/DZ Mainnet-beta Connection.fr.md +++ b/docs/DZ Mainnet-beta Connection.fr.md @@ -1,60 +1,53 @@ -# Connexion Validateur Mainnet-Beta en Mode IBRL -!!! warning "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." +--- +description: Connecter un validateur Solana Mainnet-Beta et jusqu'à trois machines de secours à DoubleZero en mode IBRL, incluant la preuve d'identité et la demande de connexion. +--- -!!! warning "En me connectant à DoubleZero, j'accepte les [Conditions d'Utilisation de DoubleZero](https://doublezero.xyz/terms-protocol)" +# Connexion d'un validateur Mainnet-Beta en mode IBRL +!!! warning "En me connectant à DoubleZero, j'accepte les [Conditions d'utilisation de DoubleZero](https://doublezero.xyz/terms-protocol)" -### Connexion à Mainnet-Beta en Mode IBRL +### Connexion au Mainnet-Beta en mode IBRL !!! Note inline end Le mode IBRL ne nécessite pas de redémarrer les clients validateurs, car il utilise votre adresse IP publique existante. -Les validateurs Solana Mainnet complèteront la connexion au Mainnet-beta DoubleZero, qui est décrite sur cette page. +Les validateurs Solana Mainnet effectueront la connexion au Mainnet-beta de DoubleZero, dont les détails sont présentés sur cette page. -Chaque validateur Solana possède sa propre **keypair d'identité** ; à partir de celle-ci, extrayez la clé publique connue sous le nom d'**ID de nœud**. Il s'agit de l'empreinte unique du validateur sur le réseau Solana. +Chaque validateur Solana possède sa propre **paire de clés d'identité** ; à partir de celle-ci, extrayez la clé publique connue sous le nom d'**ID de nœud**. C'est l'empreinte unique du validateur sur le réseau Solana. -Avec le DoubleZeroID et l'ID de nœud identifiés, vous prouverez la propriété de votre machine. Cela se fait en créant un message incluant le DoubleZeroID signé avec la clé d'identité du validateur. La signature cryptographique résultante sert de preuve vérifiable que vous contrôlez le validateur. +Une fois le DoubleZeroID et l'ID de nœud identifiés, vous prouverez la propriété de votre machine. Cela se fait en créant un message qui inclut le DoubleZeroID signé avec la clé d'identité du validateur. La signature cryptographique résultante sert de preuve vérifiable que vous contrôlez le validateur. -Enfin, vous soumettrez une **demande de connexion à DoubleZero**. Cette demande communique : *« Voici mon identité, voici la preuve de propriété, et voici comment j'entends me connecter. »* DoubleZero valide ces informations, accepte la preuve et provisionne l'accès réseau pour le validateur sur DoubleZero. +Enfin, vous soumettrez une **demande de connexion à DoubleZero**. Cette demande communique : *« Voici mon identité, voici la preuve de propriété, et voici comment je souhaite me connecter. »* DoubleZero valide ces informations, accepte la preuve et provisionne l'accès réseau pour le validateur sur DoubleZero. -Ce guide permet à 1 Validateur Principal de s'enregistrer lui-même, et jusqu'à 3 machines de sauvegarde/basculement en même temps. +Ce guide permet à 1 validateur principal de s'enregistrer, ainsi que jusqu'à 3 machines de secours/basculement en même temps. ## Prérequis -- CLI Solana installée et dans $PATH -- Pour les validateurs : Permission d'accéder au fichier keypair d'identité du validateur (p. ex., validator-keypair.json) sous l'utilisateur sol -- Pour les validateurs : Vérifier que la clé d'identité du validateur Solana connecté possède au moins 1 SOL -- Les règles de pare-feu permettent les connexions sortantes pour DoubleZero et Solana RPC selon les besoins, y compris GRE (ip proto 47) et BGP (169.254.0.0/16 sur tcp/179) +- Solana CLI installé et dans le $PATH +- Pour les validateurs : permission d'accès au fichier de la paire de clés d'identité du validateur (par ex., validator-keypair.json) sous l'utilisateur sol +- Pour les validateurs : vérifier que la clé d'identité du validateur Solana connecté dispose d'au moins 1 SOL +- Les règles de pare-feu autorisent les connexions sortantes pour DoubleZero et Solana RPC selon les besoins, y compris + GRE (ip proto 47) et BGP (169.254.0.0/16 sur tcp/179) !!! info - L'ID Validateur sera vérifié par rapport au gossip Solana pour déterminer l'IP cible. L'IP cible et le DoubleZero ID seront ensuite utilisés lors de l'ouverture d'un tunnel GRE entre votre machine et le DoubleZero Device cible. + L'ID du validateur sera vérifié par rapport au gossip Solana pour déterminer l'IP cible. L'IP cible et l'ID DoubleZero seront ensuite utilisés lors de l'ouverture d'un tunnel GRE entre votre machine et le dispositif DoubleZero cible. - À considérer : Dans le cas où vous avez un ID factice et un ID principal sur la même IP, seul l'ID principal sera utilisé lors de l'enregistrement de la machine. En effet, l'ID factice n'apparaîtra pas dans le gossip et ne pourra donc pas être utilisé pour vérifier l'IP de la machine cible. + À noter : dans le cas où vous avez un ID temporaire et un ID principal sur la même IP, seul l'ID principal sera utilisé pour l'enregistrement de la machine. En effet, l'ID temporaire n'apparaîtra pas dans le gossip et ne pourra donc pas être utilisé pour vérifier l'IP de la machine cible. -## 1. Configuration de l'Environnement +## 1. Confirmer le réseau client -Veuillez suivre les instructions de [configuration](setup.md) avant de procéder. +Veuillez suivre les instructions de [configuration](setup.md) avant de continuer. Installez les paquets **Mainnet-Beta** — Testnet et Mainnet-Beta utilisent des dépôts de paquets différents. -La dernière étape de la configuration consistait à se déconnecter du réseau. Cela garantit qu'un seul tunnel est ouvert sur votre machine vers DoubleZero, et que ce tunnel est sur le bon réseau. +La dernière étape de la configuration consistait à se déconnecter du réseau. Cela permet de s'assurer qu'un seul tunnel est ouvert sur votre machine vers DoubleZero, et que ce tunnel est sur le bon réseau. -
+Confirmez que le client est sur mainnet-beta : -Pour configurer la CLI Client DoubleZero (`doublezero`) et le daemon (`doublezerod`) afin de se connecter au **mainnet-beta DoubleZero** : ```bash -DESIRED_DOUBLEZERO_ENV=mainnet-beta \ - && 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" +doublezero status ``` -Vous devriez voir la sortie suivante : -` -✅ doublezerod configured for environment mainnet-beta -` +La colonne `Network` devrait afficher `mainnet-beta`. Si elle affiche `testnet`, ou si vous avez installé le mauvais paquet, utilisez le basculement par copier-coller dans [dépannage](troubleshooting.md#issue-wrong-doublezero-environment). Après environ 30 secondes, vous verrez les dispositifs DoubleZero disponibles : @@ -76,10 +69,7 @@ Exemple de sortie (Mainnet-Beta) 9LFtjDzohKvCBzSquQD4YtL3HwuvkKBDE7KSzb8ztV2b | dz-mtl11-sw01 | 134.195.161.10 | 9.88ms | 10.01ms | 9.95ms | true 9M7FfYYyjM4wGinKPofZRNmQFcCjCKRbXscGBUiXvXnG | dz-tor1-sw01 | 209.42.165.10 | 14.52ms | 14.53ms | 14.52ms | true ``` -La sortie du testnet sera identique dans sa structure, mais avec moins de dispositifs. - - -
+La sortie Testnet sera identique en structure, mais avec moins de dispositifs. ## 2. Ouvrir le port 44880 @@ -96,9 +86,9 @@ sudo iptables -A OUTPUT -o doublezero0 -p udp --dport 44880 -j ACCEPT
-notez les flags `-i doublezero0`, `-o doublezero0` qui restreignent cette règle uniquement à l'interface DoubleZero +notez les options `-i doublezero0`, `-o doublezero0` qui restreignent cette règle uniquement à l'interface DoubleZero -Ou UFW comme suit : +Ou avec UFW comme suit :
@@ -109,25 +99,25 @@ sudo ufw allow out on doublezero0 to any port 44880 proto udp
-notez les flags `in on doublezero0`, `out on doublezero0` qui restreignent cette règle uniquement à l'interface DoubleZero +notez les options `in on doublezero0`, `out on doublezero0` qui restreignent cette règle uniquement à l'interface DoubleZero -## 3. Attester la Propriété du Validateur +## 3. Attester la propriété du validateur
-Avec votre environnement DoubleZero configuré, il est maintenant temps d'attester la propriété de votre Validateur. +Avec votre environnement DoubleZero configuré, il est maintenant temps d'attester de votre propriété du validateur. -Le DoubleZero ID que vous avez créé lors de la [configuration](setup.md) de votre validateur principal doit être utilisé sur toutes les machines de sauvegarde. +L'ID DoubleZero que vous avez créé lors de la [configuration](setup.md) de votre validateur principal doit être utilisé sur toutes les machines de secours. -L'ID sur votre machine principale peut être trouvé avec `doublezero address`. Le même ID doit être dans `~/.config/doublezero/id.json` sur toutes les machines du cluster. +L'ID sur votre machine principale peut être trouvé avec `doublezero address`. Le même ID doit se trouver dans `~/.config/doublezero/id.json` sur toutes les machines du cluster. -Pour accomplir cela, vous vérifierez d'abord que la machine sur laquelle vous exécutez les commandes est votre **Validateur Principal** avec : +Pour ce faire, vous vérifierez d'abord que la machine sur laquelle vous exécutez les commandes est votre **validateur principal** avec : ``` doublezero-solana passport find-validator -u mainnet-beta ``` -Cela vérifie que le validateur est enregistré dans le gossip et apparaît dans le planning des leaders. +Cela vérifie que le validateur est enregistré dans le gossip et apparaît dans le calendrier des leaders. Sortie attendue : @@ -144,9 +134,9 @@ In Leader scheduler !!! info Le même workflow est utilisé pour une ou plusieurs machines. - Pour enregistrer une seule machine, excluez les arguments "--backup-validator-ids" ou "backup_ids=" de toutes les commandes de cette page. + Pour enregistrer une seule machine, excluez les arguments "--backup-validator-ids" ou "backup_ids=" de toutes les commandes sur cette page. -Maintenant, sur toutes les machines de sauvegarde sur lesquelles vous avez l'intention d'exécuter votre **Validateur Principal**, exécutez ce qui suit : +Maintenant, sur toutes les machines de secours sur lesquelles vous avez l'intention d'exécuter votre **validateur principal**, exécutez la commande suivante : ``` doublezero-solana passport find-validator -u mainnet-beta ``` @@ -163,18 +153,18 @@ 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. ``` -Cette sortie est attendue. Le nœud de sauvegarde ne peut pas être dans le planning des leaders au moment de la création du pass. +Cette sortie est attendue. Le nœud de secours ne peut pas être dans le calendrier des leaders au moment de la création du pass. -Vous allez maintenant exécuter cette commande sur **toutes les machines de sauvegarde** sur lesquelles vous prévoyez d'utiliser le compte de vote et l'identité de votre **Validateur Principal**. +Vous allez maintenant exécuter cette commande sur **toutes les machines de secours** sur lesquelles vous prévoyez d'utiliser le compte de vote et l'identité de votre **validateur principal**.
-### Préparer la Connexion +### Préparer la connexion -Exécutez la commande suivante sur la machine du **Validateur Principal**. C'est la machine sur laquelle vous avez une mise en jeu active, qui est dans le planning des leaders avec votre ID de validateur principal dans le gossip Solana sur la machine depuis laquelle vous exécutez la commande : +Exécutez la commande suivante sur la machine du **validateur principal**. C'est la machine sur laquelle vous avez du stake actif, qui est dans le calendrier des leaders avec l'ID de votre validateur principal dans le gossip Solana sur la machine depuis laquelle vous exécutez la commande : ``` doublezero-solana passport prepare-validator-access -u mainnet-beta \ @@ -223,13 +213,13 @@ Notez la sortie à la fin de cette commande. C'est la structure pour l'étape su
-## 4. Générer la Signature +## 4. Générer la signature
-À la fin de la dernière étape, nous avons reçu une sortie pré-formatée pour `solana sign-offchain-message` +À la fin de l'étape précédente, nous avons reçu une sortie pré-formatée pour `solana sign-offchain-message` -À partir de la sortie ci-dessus, nous allons exécuter cette commande sur la machine du **Validateur Principal**. +À partir de la sortie ci-dessus, nous allons exécuter cette commande sur la machine du **validateur principal**. ``` solana sign-offchain-message \ @@ -245,11 +235,11 @@ Notez la sortie à la fin de cette commande. C'est la structure pour l'étape su
-## 5. Initier une Demande de Connexion dans DoubleZero +## 5. Initier une demande de connexion dans DoubleZero
-Utilisez la commande `request-validator-access` pour créer un compte sur Solana pour la demande de connexion. L'agent DoubleZero Sentinel détecte le nouveau compte, valide son identité et sa signature, et crée le pass d'accès dans DoubleZero pour que le serveur puisse établir une connexion. +Utilisez la commande `request-validator-access` pour créer un compte sur Solana pour la demande de connexion. L'agent DoubleZero Sentinel détecte le nouveau compte, valide son identité et sa signature, et crée le pass d'accès dans DoubleZero afin que le serveur puisse établir une connexion. Utilisez l'ID de nœud, le DoubleZeroID et la signature. @@ -266,17 +256,17 @@ doublezero-solana passport request-validator-access -k -u main **Sortie :** -Cette sortie peut être utilisée pour voir la transaction sur un explorateur Solana. Assurez-vous de changer l'explorateur sur mainnet. Cette vérification est optionnelle. +Cette sortie peut être utilisée pour voir la transaction sur un explorateur Solana. Assurez-vous de changer l'explorateur vers mainnet. Cette vérification est optionnelle. ```bash Request Solana validator access: Transaction22222222VaB8FMqM2wEBXyV5THpKRXWrPtDQxmTjHJHiAWteVYTsc7Gjz4hdXxvYoZXGeHkrEayp ``` -En cas de succès, DoubleZero enregistrera le principal avec ses sauvegardes. Vous pouvez maintenant basculer entre les IP enregistrées dans le pass d'accès. DoubleZero maintiendra automatiquement la connectivité lors du basculement vers les nœuds de sauvegarde enregistrés de cette manière. +En cas de succès, DoubleZero enregistrera le validateur principal avec ses machines de secours. Vous pouvez désormais basculer entre les IP enregistrées dans le pass d'accès. DoubleZero maintiendra automatiquement la connectivité lors du basculement vers les nœuds de secours enregistrés de cette manière.
-## 6. Se Connecter en Mode IBRL +## 6. Se connecter en mode IBRL
@@ -286,7 +276,7 @@ Sur le serveur, avec l'utilisateur qui se connectera à DoubleZero, exécutez la doublezero connect ibrl ``` -Vous devriez voir une sortie indiquant le provisionnement, telle que : +Vous devriez voir une sortie indiquant le provisionnement, comme : ``` DoubleZero Service Provisioning @@ -299,7 +289,7 @@ Public IP detected: 137.184.101.183 - If you want to use a different IP, you can Service provisioned with status: ok ✅ User Provisioned ``` -Attendez une minute que le tunnel GRE finisse de s'établir. Jusqu'à ce que le tunnel GRE soit configuré, votre sortie de statut peut indiquer "down" ou "Unknown" +Attendez une minute que le tunnel GRE finisse de se configurer. Tant que le tunnel GRE n'est pas configuré, la sortie de votre statut peut renvoyer "down" ou "Unknown" Vérifiez votre connexion : @@ -335,6 +325,6 @@ default via 149.28.38.1 dev enp1s0 proto dhcp src 149.28.38.64 metric 100
-### Prochaine Étape : Publication de Shreds via Multicast +### Étape suivante : Publication des Shreds via Multicast -Si vous avez terminé cette configuration et prévoyez de publier des shreds via multicast, passez à la [page suivante](Validator%20Multicast%20Connection.md). +Si vous avez terminé cette configuration et prévoyez de publier des shreds via multicast, passez à la [page suivante](Validator%20Multicast%20Connection.md). \ No newline at end of file diff --git a/docs/DZ Mainnet-beta Connection.it.md b/docs/DZ Mainnet-beta Connection.it.md index 6d204d8..55afd45 100644 --- a/docs/DZ Mainnet-beta Connection.it.md +++ b/docs/DZ Mainnet-beta Connection.it.md @@ -1,67 +1,60 @@ -# Connessione Validatore Mainnet-Beta in Modalità IBRL -!!! warning "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." +--- +description: Connetti un validatore Solana Mainnet-Beta e fino a tre backup a DoubleZero in modalità IBRL, inclusa la prova di identità e la richiesta di connessione. +--- -!!! warning "Connettendomi a DoubleZero accetto i [Termini di Servizio DoubleZero](https://doublezero.xyz/terms-protocol)" +# Connessione Validatore Mainnet-Beta in Modalità IBRL +!!! warning "Connettendomi a DoubleZero accetto i [Termini di Servizio di DoubleZero](https://doublezero.xyz/terms-protocol)" ### Connessione a Mainnet-Beta in Modalità IBRL !!! Note inline end - La modalità IBRL non richiede il riavvio dei client validatori, perché utilizza il tuo indirizzo IP pubblico esistente. + La modalità IBRL non richiede il riavvio dei client del validatore, poiché utilizza il tuo indirizzo IP pubblico esistente. -I validatori Solana Mainnet completeranno la connessione a DoubleZero Mainnet-beta, che è dettagliata su questa pagina. +I Validatori Solana Mainnet completeranno la connessione a DoubleZero Mainnet-beta, come descritto in questa pagina. -Ogni validatore Solana ha il proprio **keypair di identità**; da questo, estrai la chiave pubblica nota come **node ID**. Questa è l'impronta digitale univoca del validatore sulla rete Solana. +Ogni validatore Solana ha il proprio **keypair di identità**; da questo, si estrae la chiave pubblica nota come **node ID**. Questo è l'identificativo univoco del validatore sulla rete Solana. -Con il DoubleZeroID e il node ID identificati, dimostrerai la proprietà della tua macchina. Questo viene fatto creando un messaggio che include il DoubleZeroID firmato con la chiave di identità del validatore. La firma crittografica risultante serve come prova verificabile che controlli il validatore. +Con il DoubleZeroID e il node ID identificati, dovrai dimostrare la proprietà della tua macchina. Questo viene fatto creando un messaggio che include il DoubleZeroID firmato con la chiave di identità del validatore. La firma crittografica risultante serve come prova verificabile che controlli il validatore. -Infine, invierai una **richiesta di connessione a DoubleZero**. Questa richiesta comunica: *"Ecco la mia identità, ecco la prova di proprietà, ed ecco come intendo connettermi."* DoubleZero valida queste informazioni, accetta la prova e fornisce l'accesso alla rete per il validatore su DoubleZero. +Infine, invierai una **richiesta di connessione a DoubleZero**. Questa richiesta comunica: *"Ecco la mia identità, ecco la prova di proprietà, ed ecco come intendo connettermi."* DoubleZero valida queste informazioni, accetta la prova e predispone l'accesso alla rete per il validatore su DoubleZero. -Questa guida consente a 1 Validatore Primario di registrarsi, e fino a 3 macchine di backup/failover contemporaneamente. +Questa guida permette a 1 Validatore Primario di registrarsi, e fino a 3 macchine di backup/failover contemporaneamente. ## Prerequisiti - Solana CLI installata e nel $PATH -- Per i validatori: Permesso di accesso al file keypair di identità del validatore (es. validator-keypair.json) sotto l'utente sol -- Per i validatori: Verifica che la chiave Identity del validatore Solana che si connette abbia almeno 1 SOL -- Le regole firewall permettono le connessioni in uscita per DoubleZero e Solana RPC come necessario, inclusi GRE (ip proto 47) e BGP (169.254.0.0/16 su tcp/179) +- Per i validatori: Permesso di accesso al file keypair di identità del validatore (es., validator-keypair.json) sotto l'utente sol +- Per i validatori: Verificare che la chiave di identità del validatore Solana da connettere abbia almeno 1 SOL +- Le regole del firewall permettono connessioni in uscita per DoubleZero e Solana RPC come necessario, inclusi + GRE (ip proto 47) e BGP (169.254.0.0/16 su tcp/179) !!! info - L'ID Validatore verrà verificato con Solana gossip per determinare l'IP target. L'IP target e il DoubleZero ID verranno poi utilizzati per aprire un tunnel GRE tra la tua macchina e il DoubleZero Device target. + Il Validator ID verrà controllato rispetto al gossip di Solana per determinare l'IP di destinazione. L'IP di destinazione e il DoubleZero ID verranno poi utilizzati per aprire un tunnel GRE tra la tua macchina e il dispositivo DoubleZero di destinazione. - Considera: Nel caso in cui tu abbia un ID junk e un ID Primario allo stesso IP, solo l'ID Primario verrà usato nella registrazione della macchina. Questo perché l'ID junk non apparirà nel gossip, e quindi non può essere usato per verificare l'IP della macchina target. + Considera: Nel caso in cui tu abbia un ID fittizio e un ID Primario sullo stesso IP, solo l'ID Primario verrà utilizzato nella registrazione della macchina. Questo perché l'ID fittizio non apparirà nel gossip e quindi non può essere usato per verificare l'IP della macchina di destinazione. -## 1. Configurazione dell'Ambiente +## 1. Confermare la rete del client -Segui le istruzioni di [setup](setup.md) prima di procedere. +Segui le istruzioni di [setup](setup.md) prima di procedere. Installa i pacchetti **Mainnet-Beta** — Testnet e Mainnet-Beta utilizzano repository di pacchetti diversi. -L'ultimo passo del setup era disconnettersi dalla rete. Questo serve a garantire che sia aperto solo un tunnel sulla tua macchina verso DoubleZero, e che quel tunnel sia sulla rete corretta. +L'ultimo passaggio del setup era la disconnessione dalla rete. Questo per garantire che sulla tua macchina sia aperto un solo tunnel verso DoubleZero, e che quel tunnel sia sulla rete corretta. -
+Conferma che il client sia su mainnet-beta: -Per configurare la CLI DoubleZero Client (`doublezero`) e il daemon (`doublezerod`) per connettersi al **mainnet-beta DoubleZero**: ```bash -DESIRED_DOUBLEZERO_ENV=mainnet-beta \ - && 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" +doublezero status ``` -Dovresti vedere il seguente output: -` -✅ doublezerod configured for environment mainnet-beta -` +La colonna `Network` dovrebbe essere `mainnet-beta`. Se è `testnet`, o hai installato il pacchetto sbagliato, usa il cambio copia-incolla nella sezione [risoluzione problemi](troubleshooting.md#issue-wrong-doublezero-environment). Dopo circa 30 secondi vedrai i dispositivi DoubleZero disponibili: ```bash doublezero latency ``` -Esempio di output (Mainnet-Beta) +Output di esempio (Mainnet-Beta) ```bash pubkey | code | ip | min | max | avg | reachable 2hPMFJHh5BPX42ygBvuYYJfCv9q7g3rRR3ZRsUgtaqUi | dz-ny7-sw01 | 137.239.213.162 | 1.74ms | 1.92ms | 1.84ms | true @@ -76,16 +69,13 @@ Esempio di output (Mainnet-Beta) 9LFtjDzohKvCBzSquQD4YtL3HwuvkKBDE7KSzb8ztV2b | dz-mtl11-sw01 | 134.195.161.10 | 9.88ms | 10.01ms | 9.95ms | true 9M7FfYYyjM4wGinKPofZRNmQFcCjCKRbXscGBUiXvXnG | dz-tor1-sw01 | 209.42.165.10 | 14.52ms | 14.53ms | 14.52ms | true ``` -L'output del Testnet sarà identico nella struttura, ma con meno dispositivi. - - -
+L'output di Testnet sarà identico nella struttura, ma con meno dispositivi. -## 2. Apri la porta 44880 +## 2. Aprire la porta 44880 Gli utenti devono aprire la porta 44880 per utilizzare alcune [funzionalità di routing](https://github.com/malbeclabs/doublezero/blob/main/rfcs/rfc7-client-route-liveness.md). -Per aprire la porta 44880 puoi aggiornare le IP tables come: +Per aprire la porta 44880 puoi aggiornare le IP tables in questo modo:
@@ -96,9 +86,9 @@ sudo iptables -A OUTPUT -o doublezero0 -p udp --dport 44880 -j ACCEPT
-nota i flag `-i doublezero0`, `-o doublezero0` che limitano questa regola solo all'interfaccia DoubleZero +nota i flag `-i doublezero0`, `-o doublezero0` che limitano questa regola alla sola interfaccia DoubleZero -O UFW come: +Oppure UFW in questo modo:
@@ -109,25 +99,25 @@ sudo ufw allow out on doublezero0 to any port 44880 proto udp
-nota i flag `in on doublezero0`, `out on doublezero0` che limitano questa regola solo all'interfaccia DoubleZero +nota i flag `in on doublezero0`, `out on doublezero0` che limitano questa regola alla sola interfaccia DoubleZero -## 3. Attesta la Proprietà del Validatore +## 3. Attestare la Proprietà del Validatore
-Con il tuo ambiente DoubleZero impostato, è ora il momento di attestare la proprietà del tuo Validatore. +Con il tuo Ambiente DoubleZero configurato, è ora il momento di attestare la Proprietà del tuo Validatore. -Il DoubleZero ID creato nel [setup](setup.md) del tuo validatore primario deve essere utilizzato su tutte le macchine di backup. +Il DoubleZero ID che hai creato nel [setup](setup.md) del tuo validatore primario deve essere utilizzato su tutte le macchine di backup. -L'ID sulla tua macchina primaria può essere trovato con `doublezero address`. Lo stesso ID deve essere in `~/.config/doublezero/id.json` su tutte le macchine del cluster. +L'ID sulla tua macchina primaria può essere trovato con `doublezero address`. Lo stesso ID deve trovarsi in `~/.config/doublezero/id.json` su tutte le macchine del cluster. -Per fare questo verificherai prima che la macchina da cui stai eseguendo i comandi sia il tuo **Validatore Primario** con: +Per fare ciò, verificherai prima che la macchina da cui stai eseguendo i comandi sia il tuo **Validatore Primario** con: ``` doublezero-solana passport find-validator -u mainnet-beta ``` -Questo verifica che il validatore sia registrato nel gossip e appaia nel programma leader. +Questo verifica che il validatore sia registrato nel gossip e appaia nella schedule dei leader. Output atteso: @@ -144,7 +134,7 @@ In Leader scheduler !!! info Lo stesso flusso di lavoro viene utilizzato per una o più macchine. - Per registrare una macchina, escludi gli argomenti "--backup-validator-ids" o "backup_ids=" da qualsiasi comando in questa pagina. + Per registrare una sola macchina, escludi gli argomenti "--backup-validator-ids" o "backup_ids=" da qualsiasi comando in questa pagina. Ora, su tutte le macchine di backup su cui intendi eseguire il tuo **Validatore Primario**, esegui il seguente comando: ``` @@ -163,18 +153,18 @@ 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. ``` -Questo output è atteso. Il nodo di backup non può essere nel programma leader al momento della creazione del pass. +Questo output è atteso. Il nodo di backup non può essere nella schedule dei leader al momento della creazione del pass. -Eseguirai ora questo comando su **tutte le macchine di backup** su cui intendi utilizzare l'account di voto e l'identità del tuo **Validatore Primario**. +Ora eseguirai questo comando su **tutte le macchine di backup** su cui prevedi di utilizzare l'account di voto e l'identità del tuo **Validatore Primario**.
-### Prepara la Connessione +### Preparare la Connessione -Esegui il seguente comando sulla macchina del **Validatore Primario**. Questa è la macchina su cui hai stake attivo, che è nel programma leader con il tuo ID validatore primario nel gossip Solana sulla macchina da cui stai eseguendo il comando: +Esegui il seguente comando sulla macchina del **Validatore Primario**. Questa è la macchina su cui hai stake attivo, che è nella schedule dei leader con il tuo ID del validatore primario nel gossip di Solana sulla macchina da cui stai eseguendo il comando: ``` doublezero-solana passport prepare-validator-access -u mainnet-beta \ @@ -184,7 +174,7 @@ doublezero-solana passport prepare-validator-access -u mainnet-beta \ ``` -Esempio di output: +Output di esempio: ``` DoubleZero Passport - Prepare Validator Access Request @@ -219,17 +209,17 @@ Backup validator 🖥️ 🛡️: -k ``` -Nota l'output alla fine di questo comando. È la struttura per il passo successivo. +Nota l'output alla fine di questo comando. È la struttura per il passaggio successivo.
-## 4. Genera la Firma +## 4. Generare la Firma
-Alla fine dell'ultimo passo, abbiamo ricevuto un output pre-formattato per `solana sign-offchain-message` +Alla fine dell'ultimo passaggio, abbiamo ricevuto un output pre-formattato per `solana sign-offchain-message` -Dall'output sopra eseguiremo questo comando sulla macchina del **Validatore Primario**. +Dall'output precedente eseguiremo questo comando sulla macchina del **Validatore Primario**. ``` solana sign-offchain-message \ @@ -245,17 +235,17 @@ Dall'output sopra eseguiremo questo comando sulla macchina del **Validatore Prim
-## 5. Avvia una Richiesta di Connessione in DoubleZero +## 5. Avviare una Richiesta di Connessione in DoubleZero
-Usa il comando `request-validator-access` per creare un account su Solana per la richiesta di connessione. L'agente DoubleZero Sentinel rileva il nuovo account, valida la sua identità e firma, e crea il pass di accesso in DoubleZero in modo che il server possa stabilire una connessione. +Usa il comando `request-validator-access` per creare un account su Solana per la richiesta di connessione. L'agente DoubleZero Sentinel rileva il nuovo account, ne valida l'identità e la firma, e crea il pass di accesso in DoubleZero affinché il server possa stabilire una connessione. Usa il node ID, il DoubleZeroID e la firma. !!! note inline end - In questo esempio usiamo `-k /home/user/.config/solana/id.json` per trovare l'Identità del validatore. Usa la posizione appropriata per il tuo deployment locale. + In questo esempio usiamo `-k /home/user/.config/solana/id.json` per trovare l'Identity del validatore. Usa il percorso appropriato per il tuo deployment locale. ``` doublezero-solana passport request-validator-access -k -u mainnet-beta \ @@ -266,17 +256,17 @@ doublezero-solana passport request-validator-access -k -u main **Output:** -Questo output può essere usato per vedere la transazione su un explorer Solana. Assicurati di cambiare l'explorer su mainnet. Questa verifica è facoltativa. +Questo output può essere usato per visualizzare la transazione su un explorer Solana. Assicurati di cambiare l'explorer su mainnet. Questa verifica è opzionale. ```bash Request Solana validator access: Transaction22222222VaB8FMqM2wEBXyV5THpKRXWrPtDQxmTjHJHiAWteVYTsc7Gjz4hdXxvYoZXGeHkrEayp ``` -Se ha successo, DoubleZero registrerà il primario con i suoi backup. Ora puoi fare failover tra gli IP registrati nel pass di accesso. DoubleZero manterrà automaticamente la connettività quando passi ai nodi di backup registrati in questo modo. +Se la procedura ha successo, DoubleZero registrerà il primario con i suoi backup. Ora puoi effettuare il failover tra gli IP registrati nel pass di accesso. DoubleZero manterrà automaticamente la connettività quando si passa ai nodi di backup registrati in questo modo.
-## 6. Connettiti in Modalità IBRL +## 6. Connettersi in Modalità IBRL
@@ -299,7 +289,7 @@ Public IP detected: 137.184.101.183 - If you want to use a different IP, you can Service provisioned with status: ok ✅ User Provisioned ``` -Attendi un minuto per il completamento del tunnel GRE. Finché il tunnel GRE non è completato, l'output dello stato potrebbe restituire "down" o "Unknown" +Attendi un minuto affinché il tunnel GRE completi la configurazione. Fino a quando il tunnel GRE non sarà completamente configurato, l'output dello stato potrebbe restituire "down" o "Unknown" Verifica la tua connessione: @@ -310,6 +300,7 @@ doublezero status **Output:** !!! note inline end Esamina questo output. Nota che il `Tunnel src` e il `DoubleZero IP` corrispondono all'indirizzo IPv4 pubblico sulla tua macchina. + ```bash Tunnel status | Last Session Update | Tunnel Name | Tunnel src | Tunnel dst | Doublezero IP | User Type | Current Device | Lowest Latency Device | Metro | Network @@ -334,6 +325,6 @@ default via 149.28.38.1 dev enp1s0 proto dhcp src 149.28.38.64 metric 100
-### Passo Successivo: Pubblicazione degli Shred via Multicast +### Prossimo Passo: Pubblicazione degli Shred tramite Multicast -Se hai completato questa configurazione e prevedi di pubblicare shred via multicast, procedi alla [pagina successiva](Validator%20Multicast%20Connection.md). +Se hai completato questa configurazione e prevedi di pubblicare shred tramite multicast, procedi alla [pagina successiva](Validator%20Multicast%20Connection.md). \ No newline at end of file diff --git a/docs/DZ Mainnet-beta Connection.ja.md b/docs/DZ Mainnet-beta Connection.ja.md index eb7b275..7e8936f 100644 --- a/docs/DZ Mainnet-beta Connection.ja.md +++ b/docs/DZ Mainnet-beta Connection.ja.md @@ -1,67 +1,60 @@ -# IBRLモードでのバリデーターメインネットベータ接続 -!!! warning "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." +--- +description: Solana Mainnet-Beta バリデーターと最大3台のバックアップを IBRL モードで DoubleZero に接続する方法(ID証明と接続リクエストを含む)。 +--- -!!! warning "DoubleZeroに接続することで、[DoubleZeroサービス利用規約](https://doublezero.xyz/terms-protocol)に同意します" +# バリデーター Mainnet-Beta 接続(IBRL モード) +!!! warning "DoubleZero に接続することで、[DoubleZero 利用規約](https://doublezero.xyz/terms-protocol)に同意したものとみなされます" -### IBRLモードでのメインネットベータ接続 +### Mainnet-Beta への IBRL モード接続 !!! Note inline end - IBRLモードは既存のパブリックIPアドレスを使用するため、バリデータークライアントの再起動が不要です。 + IBRL モードでは、既存のパブリック IP アドレスを使用するため、バリデータークライアントの再起動は不要です。 -SolanaメインネットバリデーターはDoubleZeroメインネットベータへの接続を完了します。詳細はこのページに記載されています。 +Solana Mainnet バリデーターは、このページで詳述する DoubleZero Mainnet-beta への接続を完了します。 -各Solanaバリデーターには独自の**アイデンティティキーペア**があります。そこから**ノードID**として知られる公開鍵を抽出します。これはSolanaネットワーク上のバリデーターの一意のフィンガープリントです。 +各 Solana バリデーターは固有の **identity keypair** を持っています。ここから **ノード ID** として知られる公開鍵を抽出します。これは Solana ネットワーク上でのバリデーターの一意な識別子です。 -DoubleZeroIDとノードIDが特定されると、マシンの所有権を証明します。これは、DoubleZeroIDを含むメッセージをバリデーターのアイデンティティキーで署名することによって行われます。生成された暗号署名は、バリデーターを制御していることの検証可能な証明として機能します。 +DoubleZeroID とノード ID を特定したら、マシンの所有権を証明します。これは、バリデーターの identity key で署名された DoubleZeroID を含むメッセージを作成することで行います。生成された暗号署名は、バリデーターを管理していることの検証可能な証明として機能します。 -最後に、**DoubleZeroへの接続リクエストを送信**します。このリクエストは「*こちらが私のアイデンティティ、こちらが所有権の証明、そしてこちらが接続方法です。*」というメッセージを伝えます。DoubleZeroはこの情報を検証し、証明を受け入れ、DoubleZero上のバリデーターのネットワークアクセスをプロビジョニングします。 +最後に、**DoubleZero への接続リクエスト** を送信します。このリクエストは次のことを伝えます:*「これが私の ID であり、これが所有権の証明であり、これが接続方法です。」* DoubleZero はこの情報を検証し、証明を受け入れ、DoubleZero 上でバリデーターのネットワークアクセスをプロビジョニングします。 -このガイドでは、1台のプライマリバリデーターが自身を登録し、同時に最大3台のバックアップ/フェイルオーバーマシンを登録できます。 +このガイドでは、1台のプライマリバリデーターの登録と、同時に最大3台のバックアップ/フェイルオーバーマシンの登録が可能です。 ## 前提条件 -- Solana CLIがインストールされ、$PATHに設定されていること -- バリデーターの場合:solユーザー下のバリデーターアイデンティティキーペアファイル(例:validator-keypair.json)にアクセスする権限 -- バリデーターの場合:接続するSolanaバリデーターのアイデンティティキーに少なくとも1 SOLがあることを確認 -- ファイアウォールルールがDoubleZeroとSolana RPCのアウトバウンド接続を許可していること(GRE(ipプロト47)とBGP(169.254.0.0/16のtcp/179)を含む) +- Solana CLI がインストールされ、$PATH に設定されていること +- バリデーターの場合:sol ユーザーでバリデーター identity keypair ファイル(例:validator-keypair.json)にアクセスする権限があること +- バリデーターの場合:接続する Solana バリデーターの Identity key に少なくとも 1 SOL があることを確認すること +- ファイアウォールルールで、DoubleZero および Solana RPC に必要なアウトバウンド接続が許可されていること。 + GRE (ip proto 47) および BGP (169.254.0.0/16 on tcp/179) を含む !!! info - バリデーターIDはSolanaゴシップに対して確認され、ターゲットIPが決定されます。ターゲットIPとDoubleZero IDは、マシンとターゲットDoubleZeroデバイス間のGREトンネルを開く際に使用されます。 + バリデーター ID は Solana gossip と照合され、ターゲット IP が決定されます。ターゲット IP と DoubleZero ID は、マシンとターゲット DoubleZero デバイス間の GRE トンネルを開く際に使用されます。 - 注意:同じIPにジャンクIDとプライマリIDがある場合、マシンの登録にはプライマリIDのみが使用されます。これはジャンクIDがゴシップに表示されず、ターゲットマシンのIPを確認するために使用できないためです。 + 注意:同じ IP にジャンク ID とプライマリ ID がある場合、マシンの登録にはプライマリ ID のみが使用されます。これは、ジャンク ID が gossip に表示されないため、ターゲットマシンの IP の検証に使用できないためです。 -## 1. 環境設定 +## 1. クライアントネットワークの確認 -続行する前に[セットアップ](setup.md)手順に従ってください。 +先に進む前に、[セットアップ](setup.md)の手順に従ってください。**Mainnet-Beta** パッケージをインストールしてください — Testnet と Mainnet-Beta は異なるパッケージリポジトリを使用します。 -セットアップの最後のステップはネットワークから切断することでした。これにより、マシン上のDoubleZeroへのトンネルが1つだけ開いており、そのトンネルが正しいネットワーク上にあることを確認します。 +セットアップの最後のステップはネットワークからの切断でした。これは、マシン上で DoubleZero へのトンネルが1つだけ開かれ、そのトンネルが正しいネットワーク上にあることを確認するためです。 -
+クライアントが mainnet-beta 上にあることを確認します: -DoubleZeroクライアントCLI(`doublezero`)とデーモン(`doublezerod`)を**DoubleZeroメインネットベータ**に接続するように設定するには: ```bash -DESIRED_DOUBLEZERO_ENV=mainnet-beta \ - && 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" +doublezero status ``` -次の出力が表示されるはずです: -` -✅ doublezerod configured for environment mainnet-beta -` +`Network` 列が `mainnet-beta` であることを確認してください。`testnet` の場合、または誤ったパッケージをインストールした場合は、[トラブルシューティング](troubleshooting.md#issue-wrong-doublezero-environment)のコピーペースト切り替え手順を使用してください。 -約30秒後に利用可能なDoubleZeroデバイスが表示されます: +約30秒後に、利用可能な DoubleZero デバイスが表示されます: ```bash doublezero latency ``` -メインネットベータの出力例: +出力例(Mainnet-Beta) ```bash pubkey | code | ip | min | max | avg | reachable 2hPMFJHh5BPX42ygBvuYYJfCv9q7g3rRR3ZRsUgtaqUi | dz-ny7-sw01 | 137.239.213.162 | 1.74ms | 1.92ms | 1.84ms | true @@ -76,15 +69,13 @@ doublezero latency 9LFtjDzohKvCBzSquQD4YtL3HwuvkKBDE7KSzb8ztV2b | dz-mtl11-sw01 | 134.195.161.10 | 9.88ms | 10.01ms | 9.95ms | true 9M7FfYYyjM4wGinKPofZRNmQFcCjCKRbXscGBUiXvXnG | dz-tor1-sw01 | 209.42.165.10 | 14.52ms | 14.53ms | 14.52ms | true ``` -テストネットの出力は構造が同じですが、デバイス数が少なくなります。 - -
+Testnet の出力も構造は同じですが、デバイス数が少なくなります。 -## 2. ポート44880を開く +## 2. ポート 44880 の開放 -一部の[ルーティング機能](https://github.com/malbeclabs/doublezero/blob/main/rfcs/rfc7-client-route-liveness.md)を利用するには、ユーザーはポート44880を開く必要があります。 +一部の[ルーティング機能](https://github.com/malbeclabs/doublezero/blob/main/rfcs/rfc7-client-route-liveness.md)を利用するには、ポート 44880 を開放する必要があります。 -ポート44880を開くには、例えば次のようにIPテーブルを更新できます: +ポート 44880 を開放するには、IP テーブルを以下のように更新します:
@@ -95,9 +86,9 @@ sudo iptables -A OUTPUT -o doublezero0 -p udp --dport 44880 -j ACCEPT
-このルールをDoubleZeroインターフェースのみに制限する`-i doublezero0`、`-o doublezero0`フラグに注意してください。 +`-i doublezero0`、`-o doublezero0` フラグにより、このルールは DoubleZero インターフェースにのみ制限されることに注意してください。 -またはUFWの場合: +または UFW を使用する場合:
@@ -108,25 +99,25 @@ sudo ufw allow out on doublezero0 to any port 44880 proto udp
-このルールをDoubleZeroインターフェースのみに制限する`in on doublezero0`、`out on doublezero0`フラグに注意してください。 +`in on doublezero0`、`out on doublezero0` フラグにより、このルールは DoubleZero インターフェースにのみ制限されることに注意してください。 ## 3. バリデーター所有権の証明
-DoubleZero環境が設定されたので、バリデーター所有権の証明を行います。 +DoubleZero 環境が設定されたので、バリデーターの所有権を証明します。 -プライマリバリデーターの[セットアップ](setup.md)で作成したDoubleZero IDをすべてのバックアップマシンで使用する必要があります。 +プライマリバリデーターの[セットアップ](setup.md)で作成した DoubleZero ID は、すべてのバックアップマシンで使用する必要があります。 -プライマリマシンのIDは`doublezero address`で確認できます。同じIDがクラスター内のすべてのマシンの`~/.config/doublezero/id.json`に必要です。 +プライマリマシンの ID は `doublezero address` で確認できます。同じ ID がクラスター内のすべてのマシンの `~/.config/doublezero/id.json` に存在している必要があります。 -これを実現するために、まずコマンドを実行しているマシンが**プライマリバリデーター**であることを次のコマンドで確認します: +これを行うには、まずコマンドを実行しているマシンが**プライマリバリデーター**であることを確認します: ``` doublezero-solana passport find-validator -u mainnet-beta ``` -これにより、バリデーターがゴシップに登録され、リーダースケジュールに表示されることを確認します。 +これにより、バリデーターが gossip に登録されており、リーダースケジュールに表示されていることが検証されます。 期待される出力: @@ -142,8 +133,8 @@ In Leader scheduler ``` !!! info - 同じワークフローが1台でも複数台のマシンでも使用されます。 - 1台のマシンを登録する場合は、このページのコマンドから"--backup-validator-ids"または"backup_ids="引数を除外してください。 + 1台でも複数台でも同じワークフローを使用します。 + 1台のマシンのみを登録する場合は、このページのすべてのコマンドから引数 "--backup-validator-ids" または "backup_ids=" を除外してください。 次に、**プライマリバリデーター**を実行する予定のすべてのバックアップマシンで以下を実行します: ``` @@ -162,9 +153,9 @@ 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. ``` -この出力は正常です。バックアップノードはパス作成時にリーダースケジュールに含まれることができません。 +この出力は想定通りです。バックアップノードはパス作成時にリーダースケジュールに含まれていてはなりません。 -次に、**プライマリバリデーター**の投票アカウントとアイデンティティを使用する予定の**すべてのバックアップマシン**でこのコマンドを実行します。 +**プライマリバリデーター**の投票アカウントと identity を使用する予定の**すべてのバックアップマシン**でこのコマンドを実行してください。
@@ -173,7 +164,7 @@ In Not in Leader scheduler ### 接続の準備 -**プライマリバリデーター**マシンで次のコマンドを実行します。これはコマンドを実行しているマシンのSolanaゴシップに、プライマリバリデーターIDを持つアクティブなステークがあり、リーダースケジュールに含まれているマシンです: +**プライマリバリデーター**マシンで以下のコマンドを実行します。これは、アクティブなステークを持ち、リーダースケジュールに含まれ、コマンドを実行しているマシン上の solana gossip にプライマリバリデーター ID が存在するマシンです: ``` doublezero-solana passport prepare-validator-access -u mainnet-beta \ @@ -218,7 +209,7 @@ Backup validator 🖥️ 🛡️: -k ``` -このコマンドの最後の出力に注意してください。次のステップの構造になっています。 +このコマンドの最後に出力される内容に注目してください。これが次のステップの構造になります。 @@ -226,9 +217,9 @@ Backup validator 🖥️ 🛡️:
-前のステップの最後に、`solana sign-offchain-message`のための事前フォーマットされた出力を受け取りました。 +前のステップの最後に、`solana sign-offchain-message` のフォーマット済み出力を受け取りました。 -上記の出力から**プライマリバリデーター**マシンでこのコマンドを実行します。 +上記の出力を使用して、**プライマリバリデーター**マシンでこのコマンドを実行します。 ``` solana sign-offchain-message \ @@ -244,17 +235,17 @@ Backup validator 🖥️ 🛡️:
-## 5. DoubleZeroでの接続リクエストの開始 +## 5. DoubleZero への接続リクエストの開始
-`request-validator-access`コマンドを使用して、接続リクエストのためにSolana上にアカウントを作成します。DoubleZero Sentinelエージェントが新しいアカウントを検出し、アイデンティティと署名を検証し、サーバーが接続を確立できるようにDoubleZeroにアクセスパスを作成します。 +`request-validator-access` コマンドを使用して、接続リクエスト用のアカウントを Solana 上に作成します。DoubleZero Sentinel エージェントが新しいアカウントを検出し、ID と署名を検証し、サーバーが接続を確立できるように DoubleZero 内にアクセスパスを作成します。 -ノードID、DoubleZeroID、署名を使用します。 +ノード ID、DoubleZeroID、および署名を使用します。 !!! note inline end - この例では`-k /home/user/.config/solana/id.json`を使用してバリデーターアイデンティティを見つけます。ローカルデプロイメントの適切な場所を使用してください。 + この例では、バリデーター Identity を見つけるために `-k /home/user/.config/solana/id.json` を使用しています。ローカルデプロイメントに適切なパスを使用してください。 ``` doublezero-solana passport request-validator-access -k -u mainnet-beta \ @@ -265,27 +256,27 @@ doublezero-solana passport request-validator-access -k -u main **出力:** -この出力はSolanaエクスプローラーでトランザクションを確認するために使用できます。エクスプローラーをメインネットに変更することを忘れずに。この確認はオプションです。 +この出力は、Solana エクスプローラーでトランザクションを確認するために使用できます。エクスプローラーを mainnet に切り替えてください。この検証は任意です。 ```bash Request Solana validator access: Transaction22222222VaB8FMqM2wEBXyV5THpKRXWrPtDQxmTjHJHiAWteVYTsc7Gjz4hdXxvYoZXGeHkrEayp ``` -成功した場合、DoubleZeroはプライマリをバックアップとともに登録します。アクセスパスに登録されたIPの間でフェイルオーバーできるようになります。DoubleZeroはこのように登録されたバックアップノードへの切り替え時に接続を自動的に維持します。 +成功すると、DoubleZero はプライマリとそのバックアップを登録します。アクセスパスに登録された IP 間でフェイルオーバーが可能になります。この方法で登録されたバックアップノードに切り替える際、DoubleZero は自動的に接続を維持します。
-## 6. IBRLモードでの接続 +## 6. IBRL モードでの接続
-DoubleZeroに接続するユーザーで、サーバー上で`connect`コマンドを実行してDoubleZeroへの接続を確立します。 +サーバー上で、DoubleZero に接続するユーザーとして `connect` コマンドを実行し、DoubleZero への接続を確立します。 ``` doublezero connect ibrl ``` -以下のようなプロビジョニングを示す出力が表示されます: +以下のようなプロビジョニングを示す出力が表示されるはずです: ``` DoubleZero Service Provisioning @@ -298,7 +289,7 @@ Public IP detected: 137.184.101.183 - If you want to use a different IP, you can Service provisioned with status: ok ✅ User Provisioned ``` -GREトンネルのセットアップが完了するまで1分待ちます。GREトンネルのセットアップが完了するまで、ステータス出力が「down」または「Unknown」を返す場合があります。 +GRE トンネルのセットアップが完了するまで1分間お待ちください。GRE トンネルのセットアップが完了するまで、ステータス出力が "down" または "Unknown" を返す場合があります。 接続を確認します: @@ -308,15 +299,16 @@ doublezero status **出力:** !!! note inline end - この出力を確認してください。`Tunnel src`と`DoubleZero IP`がマシンのパブリックIPv4アドレスと一致していることに注意してください。 + この出力を確認してください。`Tunnel src` と `DoubleZero IP` がマシンのパブリック IPv4 アドレスと一致していることに注目してください。 + ```bash 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 | mainnet-beta ``` -`up`のステータスは正常に接続されていることを意味します。 +ステータスが `up` であれば、正常に接続されています。 -次のコマンドを実行することでDoubleZero上の他のユーザーによって伝搬されたルートを確認できます: +DoubleZero 上の他のユーザーによって伝播されたルートを以下のコマンドで確認できます: ``` ip route @@ -333,6 +325,6 @@ default via 149.28.38.1 dev enp1s0 proto dhcp src 149.28.38.64 metric 100
-### 次のステップ:マルチキャストによるシュレッドの公開 +### 次のステップ:マルチキャストによるシュレッドの配信 -このセットアップを完了してマルチキャストでシュレッドを公開する予定の場合は、[次のページ](Validator%20Multicast%20Connection.md)に進んでください。 +このセットアップが完了し、マルチキャストによるシュレッドの配信を計画している場合は、[次のページ](Validator%20Multicast%20Connection.md)に進んでください。 \ No newline at end of file diff --git a/docs/DZ Mainnet-beta Connection.ko.md b/docs/DZ Mainnet-beta Connection.ko.md index 8ec26b2..c32c209 100644 --- a/docs/DZ Mainnet-beta Connection.ko.md +++ b/docs/DZ Mainnet-beta Connection.ko.md @@ -1,62 +1,55 @@ -# IBRL 모드 검증자 메인넷-베타 연결 -!!! warning "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." +--- +description: Solana 메인넷-베타 검증자와 최대 3개의 백업을 IBRL 모드로 DoubleZero에 연결하며, 신원 증명 및 연결 요청을 포함합니다. +--- +# 검증자 메인넷-베타 IBRL 모드 연결 !!! warning "DoubleZero에 연결함으로써 [DoubleZero 서비스 약관](https://doublezero.xyz/terms-protocol)에 동의합니다" -### IBRL 모드로 메인넷-베타에 연결 +### 메인넷-베타에 IBRL 모드로 연결하기 !!! Note inline end - IBRL 모드는 기존 공개 IP 주소를 사용하므로 검증자 클라이언트를 재시작할 필요가 없습니다. + IBRL 모드는 기존 공용 IP 주소를 사용하므로 검증자 클라이언트를 재시작할 필요가 없습니다. -Solana 메인넷 검증자는 이 페이지에 자세히 설명된 DoubleZero 메인넷-베타 연결을 완료합니다. +Solana 메인넷 검증자는 이 페이지에서 자세히 설명하는 DoubleZero 메인넷-베타에 대한 연결을 완료합니다. -각 Solana 검증자에는 고유한 **신원 키쌍**이 있으며, 이로부터 **노드 ID**로 알려진 공개 키를 추출합니다. 이것이 Solana 네트워크에서 검증자의 고유 지문입니다. +각 Solana 검증자는 고유한 **신원 키쌍**을 가지고 있습니다. 여기서 **노드 ID**로 알려진 공개 키를 추출합니다. 이것이 Solana 네트워크에서 검증자의 고유 식별자입니다. -DoubleZeroID와 노드 ID가 확인되면 기계의 소유권을 증명해야 합니다. 이는 검증자의 신원 키로 서명된 DoubleZeroID를 포함하는 메시지를 생성하여 수행됩니다. 결과적인 암호화 서명은 검증자를 제어한다는 검증 가능한 증거로 사용됩니다. +DoubleZeroID와 노드 ID가 확인되면, 머신의 소유권을 증명합니다. 이는 검증자의 신원 키로 서명된 DoubleZeroID를 포함하는 메시지를 생성함으로써 수행됩니다. 생성된 암호화 서명은 검증자를 제어하고 있다는 검증 가능한 증명 역할을 합니다. -마지막으로 **DoubleZero에 연결 요청을 제출**합니다. 이 요청은 다음을 전달합니다: *"제 신원이 여기 있고, 소유권 증거가 여기 있으며, 연결 방법이 여기 있습니다."* DoubleZero는 이 정보를 검증하고 증거를 수락하며 DoubleZero에서 검증자의 네트워크 액세스를 프로비저닝합니다. +마지막으로, **DoubleZero에 연결 요청**을 제출합니다. 이 요청은 다음을 전달합니다: *"여기에 내 신원이 있고, 여기에 소유권 증명이 있으며, 여기에 내가 연결하려는 방법이 있습니다."* DoubleZero는 이 정보를 검증하고, 증명을 수락하며, DoubleZero에서 검증자의 네트워크 접근을 프로비저닝합니다. -이 가이드를 통해 1개의 기본 검증자가 자신을 등록하고 동시에 최대 3개의 백업/장애 조치 기계를 등록할 수 있습니다. +이 가이드는 1개의 기본 검증자를 등록하고, 동시에 최대 3개의 백업/장애 조치 머신을 등록할 수 있습니다. -## 사전 요구사항 +## 사전 요구 사항 -- Solana CLI 설치 및 $PATH 등록 -- 검증자의 경우: sol 사용자 하에 검증자 신원 키쌍 파일(예: validator-keypair.json)에 대한 액세스 권한 -- 검증자의 경우: 연결할 Solana 검증자의 신원 키에 최소 1 SOL이 있는지 확인 -- 방화벽 규칙이 DoubleZero 및 Solana RPC에 대한 아웃바운드 연결을 허용해야 함 (GRE(ip proto 47) 및 BGP(169.254.0.0/16의 tcp/179) 포함) +- Solana CLI가 설치되어 있고 $PATH에 등록되어 있어야 합니다 +- 검증자의 경우: sol 사용자 하에서 검증자 신원 키쌍 파일(예: validator-keypair.json)에 대한 접근 권한 +- 검증자의 경우: 연결하려는 Solana 검증자의 신원 키에 최소 1 SOL이 있는지 확인 +- 방화벽 규칙이 DoubleZero 및 Solana RPC에 필요한 아웃바운드 연결을 허용해야 하며, + GRE (ip proto 47) 및 BGP (169.254.0.0/16 on tcp/179) 포함 !!! info - 검증자 ID는 Solana 가십에 대해 확인되어 대상 IP를 결정합니다. 대상 IP와 DoubleZero ID는 기계와 대상 DoubleZero 장치 간에 GRE 터널을 열 때 사용됩니다. + 검증자 ID는 Solana 가십을 통해 대상 IP를 결정하기 위해 확인됩니다. 대상 IP와 DoubleZero ID는 머신과 대상 DoubleZero 장치 간의 GRE 터널을 열 때 사용됩니다. - 고려사항: 동일한 IP에 정크 ID와 기본 ID가 있는 경우 기본 ID만 기계 등록에 사용됩니다. 정크 ID는 가십에 나타나지 않으므로 대상 기계의 IP를 확인하는 데 사용할 수 없습니다. + 참고: 동일한 IP에 임시 ID와 기본 ID가 있는 경우, 기본 ID만 머신 등록에 사용됩니다. 이는 임시 ID가 가십에 나타나지 않으므로 대상 머신의 IP를 확인하는 데 사용할 수 없기 때문입니다. -## 1. 환경 구성 +## 1. 클라이언트 네트워크 확인 -진행하기 전에 [설정](setup.md) 지침을 따르세요. +진행하기 전에 [설정](setup.md) 지침을 따르십시오. **메인넷-베타** 패키지를 설치하십시오 — 테스트넷과 메인넷-베타는 다른 패키지 저장소를 사용합니다. -설정의 마지막 단계는 네트워크에서 연결을 해제하는 것이었습니다. 이는 기계에 DoubleZero에 대한 터널이 하나만 열려 있고 해당 터널이 올바른 네트워크에 있도록 하기 위한 것입니다. +설정의 마지막 단계는 네트워크 연결을 해제하는 것이었습니다. 이는 머신에서 DoubleZero로의 터널이 하나만 열려 있고, 해당 터널이 올바른 네트워크에 있는지 확인하기 위함입니다. -
+클라이언트가 mainnet-beta에 있는지 확인합니다: -**DoubleZero 메인넷-베타**에 연결하도록 DoubleZero 클라이언트 CLI(`doublezero`) 및 데몬(`doublezerod`)을 구성하려면: ```bash -DESIRED_DOUBLEZERO_ENV=mainnet-beta \ - && 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" +doublezero status ``` -다음 출력이 표시되어야 합니다: -` -✅ doublezerod configured for environment mainnet-beta -` +`Network` 열이 `mainnet-beta`여야 합니다. `testnet`이거나 잘못된 패키지를 설치한 경우, [문제 해결](troubleshooting.md#issue-wrong-doublezero-environment)의 복사-붙여넣기 전환을 사용하십시오. -약 30초 후 DoubleZero 장치를 볼 수 있습니다: +약 30초 후 사용 가능한 DoubleZero 장치를 볼 수 있습니다: ```bash doublezero latency @@ -77,13 +70,10 @@ doublezero latency 9M7FfYYyjM4wGinKPofZRNmQFcCjCKRbXscGBUiXvXnG | dz-tor1-sw01 | 209.42.165.10 | 14.52ms | 14.53ms | 14.52ms | true ``` 테스트넷 출력은 구조가 동일하지만 장치 수가 더 적습니다. - - -
## 2. 포트 44880 열기 -사용자는 일부 [라우팅 기능](https://github.com/malbeclabs/doublezero/blob/main/rfcs/rfc7-client-route-liveness.md)을 활용하기 위해 포트 44880을 열어야 합니다. +일부 [라우팅 기능](https://github.com/malbeclabs/doublezero/blob/main/rfcs/rfc7-client-route-liveness.md)을 활용하려면 포트 44880을 열어야 합니다. 포트 44880을 열려면 다음과 같이 IP 테이블을 업데이트할 수 있습니다: @@ -96,9 +86,9 @@ sudo iptables -A OUTPUT -o doublezero0 -p udp --dport 44880 -j ACCEPT -이 규칙을 DoubleZero 인터페이스로만 제한하는 `-i doublezero0`, `-o doublezero0` 플래그에 주의하세요. +이 규칙을 DoubleZero 인터페이스에만 제한하는 `-i doublezero0`, `-o doublezero0` 플래그에 유의하십시오 -또는 UFW를 사용할 수 있습니다: +또는 다음과 같이 UFW를 사용할 수 있습니다:
@@ -109,25 +99,25 @@ sudo ufw allow out on doublezero0 to any port 44880 proto udp
-이 규칙을 DoubleZero 인터페이스로만 제한하는 `in on doublezero0`, `out on doublezero0` 플래그에 주의하세요. +이 규칙을 DoubleZero 인터페이스에만 제한하는 `in on doublezero0`, `out on doublezero0` 플래그에 유의하십시오 ## 3. 검증자 소유권 증명
-DoubleZero 환경이 설정되었으면 이제 검증자 소유권을 증명할 차례입니다. +DoubleZero 환경이 설정되었으므로, 이제 검증자 소유권을 증명할 차례입니다. -기본 검증자의 [설정](setup.md)에서 생성한 DoubleZero ID는 모든 백업 기계에서 사용해야 합니다. +기본 검증자의 [설정](setup.md)에서 생성한 DoubleZero ID는 모든 백업 머신에서 사용해야 합니다. -기본 기계의 ID는 `doublezero address`로 찾을 수 있습니다. 동일한 ID가 클러스터의 모든 기계의 `~/.config/doublezero/id.json`에 있어야 합니다. +기본 머신의 ID는 `doublezero address`로 확인할 수 있습니다. 동일한 ID가 클러스터의 모든 머신에서 `~/.config/doublezero/id.json`에 있어야 합니다. -이를 위해 먼저 명령을 실행 중인 기계가 **기본 검증자**인지 다음 명령으로 확인합니다: +이를 수행하려면 먼저 명령을 실행하는 머신이 **기본 검증자**인지 다음으로 확인합니다: ``` doublezero-solana passport find-validator -u mainnet-beta ``` -이는 검증자가 가십에 등록되어 있고 리더 스케줄에 나타나는지 확인합니다. +이것은 검증자가 가십에 등록되어 있고 리더 스케줄에 나타나는지 확인합니다. 예상 출력: @@ -143,10 +133,10 @@ In Leader scheduler ``` !!! info - 동일한 워크플로우가 하나 또는 여러 기계에 사용됩니다. - 하나의 기계를 등록하려면 모든 명령에서 "--backup-validator-ids" 또는 "backup_ids=" 인수를 제외하세요. + 하나 또는 여러 머신에 대해 동일한 워크플로가 사용됩니다. + 하나의 머신만 등록하려면 이 페이지의 모든 명령에서 "--backup-validator-ids" 또는 "backup_ids=" 인수를 제외하십시오. -이제 **기본 검증자**를 실행할 모든 백업 기계에서 다음을 실행합니다: +이제 **기본 검증자**를 실행할 예정인 모든 백업 머신에서 다음을 실행합니다: ``` doublezero-solana passport find-validator -u mainnet-beta ``` @@ -163,9 +153,9 @@ 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. ``` -이 출력은 예상된 것입니다. 백업 노드는 패스 생성 시 리더 스케줄에 있을 수 없습니다. +이 출력은 예상된 것입니다. 백업 노드는 패스 생성 시점에 리더 스케줄에 있을 수 없습니다. -이제 **기본 검증자** 투표 계정과 신원을 사용할 계획인 **모든 백업 기계**에서 이 명령을 실행합니다. +이제 **기본 검증자** 투표 계정과 신원을 사용할 예정인 **모든 백업 머신**에서 이 명령을 실행합니다.
@@ -174,7 +164,7 @@ In Not in Leader scheduler ### 연결 준비 -**기본 검증자** 기계에서 다음 명령을 실행합니다. 이는 활성 지분이 있고, 리더 스케줄에 있으며, 명령을 실행 중인 기계의 Solana 가십에 기본 검증자 ID가 있는 기계입니다: +**기본 검증자** 머신에서 다음 명령을 실행합니다. 이것은 활성 스테이크가 있고, 리더 스케줄에 있으며, 명령을 실행하는 머신의 solana 가십에 기본 검증자 ID가 있는 머신입니다: ``` doublezero-solana passport prepare-validator-access -u mainnet-beta \ @@ -219,7 +209,7 @@ Backup validator 🖥️ 🛡️: -k ``` -이 명령의 끝에 있는 출력에 주목하세요. 이것이 다음 단계의 구조입니다. +이 명령의 마지막 출력을 확인하십시오. 이것이 다음 단계의 구조입니다. @@ -227,9 +217,9 @@ Backup validator 🖥️ 🛡️:
-마지막 단계에서 `solana sign-offchain-message`에 대한 미리 형식화된 출력을 받았습니다. +마지막 단계에서 `solana sign-offchain-message`에 대한 사전 형식화된 출력을 받았습니다. -위 출력에서 **기본 검증자** 기계에서 이 명령을 실행합니다. +위의 출력에서 **기본 검증자** 머신에서 이 명령을 실행합니다. ``` solana sign-offchain-message \ @@ -249,13 +239,13 @@ Backup validator 🖥️ 🛡️:
-`request-validator-access` 명령을 사용하여 연결 요청을 위한 Solana 계정을 생성합니다. DoubleZero Sentinel 에이전트가 새 계정을 감지하고 신원과 서명을 검증한 후 서버가 연결을 설정할 수 있도록 DoubleZero에 액세스 패스를 생성합니다. +`request-validator-access` 명령을 사용하여 연결 요청을 위한 Solana 계정을 생성합니다. DoubleZero Sentinel 에이전트가 새 계정을 감지하고, 신원과 서명을 검증한 후, DoubleZero에서 접근 패스를 생성하여 서버가 연결을 설정할 수 있도록 합니다. 노드 ID, DoubleZeroID, 서명을 사용합니다. !!! note inline end - 이 예시에서는 검증자 신원을 찾기 위해 `-k /home/user/.config/solana/id.json`을 사용합니다. 로컬 배포에 적합한 위치를 사용하세요. + 이 예시에서는 검증자 신원을 찾기 위해 `-k /home/user/.config/solana/id.json`을 사용합니다. 로컬 배포에 적합한 경로를 사용하십시오. ``` doublezero-solana passport request-validator-access -k -u mainnet-beta \ @@ -266,13 +256,13 @@ doublezero-solana passport request-validator-access -k -u main **출력:** -이 출력은 Solana 탐색기에서 트랜잭션을 확인하는 데 사용할 수 있습니다. 탐색기를 메인넷으로 변경해야 합니다. 이 확인은 선택 사항입니다. +이 출력은 Solana 탐색기에서 트랜잭션을 확인하는 데 사용할 수 있습니다. 탐색기를 메인넷으로 변경해야 합니다. 이 검증은 선택 사항입니다. ```bash Request Solana validator access: Transaction22222222VaB8FMqM2wEBXyV5THpKRXWrPtDQxmTjHJHiAWteVYTsc7Gjz4hdXxvYoZXGeHkrEayp ``` -성공하면 DoubleZero가 기본을 백업과 함께 등록합니다. 이제 액세스 패스에 등록된 IP 간에 장애 조치할 수 있습니다. DoubleZero는 이 방식으로 등록된 백업 노드로 전환할 때 자동으로 연결을 유지합니다. +성공하면 DoubleZero가 기본 검증자와 백업을 등록합니다. 이제 접근 패스에 등록된 IP 간에 장애 조치가 가능합니다. DoubleZero는 이 방식으로 등록된 백업 노드로 전환할 때 자동으로 연결을 유지합니다.
@@ -280,13 +270,13 @@ Request Solana validator access: Transaction22222222VaB8FMqM2wEBXyV5THpKRXWrPtDQ
-서버에서 DoubleZero에 연결할 사용자로 `connect` 명령을 실행하여 DoubleZero에 연결을 설정하세요. +서버에서 DoubleZero에 연결할 사용자로 `connect` 명령을 실행하여 DoubleZero에 대한 연결을 설정합니다. ``` doublezero connect ibrl ``` -다음과 같은 프로비저닝을 나타내는 출력이 표시되어야 합니다: +다음과 같은 프로비저닝 진행 출력을 볼 수 있습니다: ``` DoubleZero Service Provisioning @@ -299,9 +289,9 @@ Public IP detected: 137.184.101.183 - If you want to use a different IP, you can Service provisioned with status: ok ✅ User Provisioned ``` -GRE 터널이 완료될 때까지 1분 기다리세요. 터널이 완료될 때까지 상태 출력이 "down" 또는 "Unknown"을 반환할 수 있습니다. +GRE 터널 설정이 완료될 때까지 1분간 기다리십시오. GRE 터널 설정이 완료되기 전까지 상태 출력이 "down" 또는 "Unknown"을 반환할 수 있습니다. -연결을 확인하세요: +연결을 확인합니다: ```bash doublezero status @@ -309,15 +299,16 @@ doublezero status **출력:** !!! note inline end - 이 출력을 확인하세요. `Tunnel src`와 `DoubleZero IP`가 기계의 공개 IPv4 주소와 일치하는지 주목하세요. + 이 출력을 확인하십시오. `Tunnel src`와 `DoubleZero IP`가 머신의 공용 IPv4 주소와 일치하는 것에 주목하십시오. + ```bash 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 | mainnet-beta ``` -`up` 상태는 성공적으로 연결되었음을 의미합니다. +상태가 `up`이면 성공적으로 연결된 것입니다. -다음을 실행하여 DoubleZero의 다른 사용자가 전파한 경로를 볼 수 있습니다: +다음을 실행하여 DoubleZero의 다른 사용자가 전파한 라우트를 확인할 수 있습니다: ``` ip route @@ -334,6 +325,6 @@ default via 149.28.38.1 dev enp1s0 proto dhcp src 149.28.38.64 metric 100
-### 다음 단계: 멀티캐스트를 통한 Shred 발행 +### 다음 단계: 멀티캐스트를 통한 슈레드 퍼블리싱 -이 설정을 완료하고 멀티캐스트를 통한 Shred 발행을 계획하고 있다면 [다음 페이지](Validator%20Multicast%20Connection.md)로 진행하세요. +이 설정을 완료했고 멀티캐스트를 통해 슈레드를 퍼블리싱할 계획이라면, [다음 페이지](Validator%20Multicast%20Connection.md)로 진행하십시오. \ No newline at end of file diff --git a/docs/DZ Mainnet-beta Connection.md b/docs/DZ Mainnet-beta Connection.md index 1572917..ef38411 100644 --- a/docs/DZ Mainnet-beta Connection.md +++ b/docs/DZ Mainnet-beta Connection.md @@ -35,29 +35,19 @@ This guide allows for 1 Primary Validator to register itself, and up to 3 backup Consider: In the case where you have a junk ID and Primary ID on at the same IP, only the Primary ID will be used in registration of the machine. This is because the junk ID will not appear in gossip, and therefore cannot be used to verify the IP of the target machine. -## 1. Environment Configuration +## 1. Confirm the client network -Please follow the [setup](setup.md) instructions before proceeding. +Please follow the [setup](setup.md) instructions before proceeding. Install the **Mainnet-Beta** packages — Testnet and Mainnet-Beta use different package repos. The last step in setup was to disconnect from the network. This is to ensure that only one tunnel is open on your machine to DoubleZero, and that tunnel is on the correct network. -
+Confirm the client is on mainnet-beta: -To configure the DoubleZero Client CLI (`doublezero`) and daemon (`doublezerod`) to connect to **DoubleZero mainnet-beta**: ```bash -DESIRED_DOUBLEZERO_ENV=mainnet-beta \ - && 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" +doublezero status ``` -You should see the following output: -` -✅ doublezerod configured for environment mainnet-beta -` +The `Network` column should be `mainnet-beta`. If it is `testnet`, or you installed the wrong package, use the copy-paste switch in [troubleshooting](troubleshooting.md#issue-wrong-doublezero-environment). After about 30 seconds you will see the DoubleZero devices available: @@ -80,9 +70,6 @@ Example output (Mainnet-Beta) 9M7FfYYyjM4wGinKPofZRNmQFcCjCKRbXscGBUiXvXnG | dz-tor1-sw01 | 209.42.165.10 | 14.52ms | 14.53ms | 14.52ms | true ``` Testnet output will be identical in structure, but with fewer devices. - - -
## 2. Open port 44880 diff --git a/docs/DZ Mainnet-beta Connection.pt.md b/docs/DZ Mainnet-beta Connection.pt.md index 16fddaa..854f7ef 100644 --- a/docs/DZ Mainnet-beta Connection.pt.md +++ b/docs/DZ Mainnet-beta Connection.pt.md @@ -1,74 +1,81 @@ -# Conexão do Validador ao Mainnet-Beta no Modo IBRL -!!! warning "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." +--- +description: Conecte um validador Solana Mainnet-Beta e até três backups ao DoubleZero no modo IBRL, incluindo prova de identidade e a solicitação de conexão. +--- -!!! warning "Ao conectar ao DoubleZero, concordo com os [Termos de Serviço do DoubleZero](https://doublezero.xyz/terms-protocol)" +# Conexão de Validador Mainnet-Beta no Modo IBRL +!!! warning "Ao conectar-se ao DoubleZero, eu concordo com os [Termos de Serviço do DoubleZero](https://doublezero.xyz/terms-protocol)" ### Conectando ao Mainnet-Beta no Modo IBRL !!! Note inline end - O modo IBRL não requer reinicialização dos clientes validadores, pois usa seu endereço IP público existente. + O modo IBRL não requer reiniciar os clientes do validador, pois utiliza seu endereço IP público existente. -Os Validadores Mainnet da Solana completarão a conexão ao DoubleZero Mainnet-beta, detalhada nesta página. +Validadores Solana Mainnet completarão a conexão ao DoubleZero Mainnet-beta, que é 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. +Cada validador Solana possui seu próprio **par de chaves de identidade**; a partir dele, extraia a chave pública conhecida como **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. +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 assinada 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. +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 o 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) +- Solana CLI instalado e no $PATH +- Para validadores: Permissão para acessar o arquivo do par de chaves de identidade do validador (ex.: validator-keypair.json) sob o usuário sol +- Para validadores: Verificar se a chave de Identidade do validador Solana sendo conectado possui pelo menos 1 SOL +- 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 em 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. + O ID do Validador será verificado contra o gossip da Solana para determinar o IP de destino. O IP de destino e o DoubleZero ID serão então usados ao abrir um túnel GRE entre sua máquina e o Dispositivo DoubleZero de destino. - 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. + Considere: No caso em que você tem um ID descartável 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 descartável não aparecerá no gossip e, portanto, não pode ser usado para verificar o IP da máquina de destino. -## 1. Configuração do Ambiente +## 1. Confirmar a rede do cliente -Siga as instruções de [configuração](setup.md) antes de continuar. +Por favor, siga as instruções de [configuração](setup.md) antes de prosseguir. Instale os pacotes do **Mainnet-Beta** — Testnet e Mainnet-Beta usam repositórios de pacotes diferentes. 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. -
+Confirme que o cliente está no mainnet-beta: -Para configurar o CLI do DoubleZero (`doublezero`) e o daemon (`doublezerod`) para se conectar ao **DoubleZero mainnet-beta**: ```bash -DESIRED_DOUBLEZERO_ENV=mainnet-beta \ - && 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" +doublezero status ``` -Você deve ver a seguinte saída: -` -✅ doublezerod configured for environment mainnet-beta -` +A coluna `Network` deve ser `mainnet-beta`. Se for `testnet`, ou se você instalou o pacote errado, use a opção de troca por copiar e colar em [solução de problemas](troubleshooting.md#issue-wrong-doublezero-environment). -Após aproximadamente 30 segundos, você verá os dispositivos DoubleZero disponíveis: +Após cerca de 30 segundos você verá os dispositivos DoubleZero disponíveis: ```bash doublezero latency ``` - -
+Exemplo de saída (Mainnet-Beta) +```bash + pubkey | code | ip | min | max | avg | reachable + 2hPMFJHh5BPX42ygBvuYYJfCv9q7g3rRR3ZRsUgtaqUi | dz-ny7-sw01 | 137.239.213.162 | 1.74ms | 1.92ms | 1.84ms | true + ETdwWpdQ7fXDHH5ea8feMmWxnZZvSKi4xDvuEGcpEvq3 | dz-ny5-sw01 | 137.239.213.170 | 1.88ms | 4.39ms | 2.72ms | true + 8J691gPwzy9FzUZQ4SmC6jJcY7By8kZXfbJwRfQ8ns31 | nyc002-dz002 | 38.122.35.137 | 2.45ms | 3.30ms | 2.74ms | true + 8gisbwJnNhMNEWz587cAJMtSSFuWeNFtiufPuBTVqF2Z | dz-ny7-sw02 | 142.215.184.122 | 1.88ms | 5.13ms | 3.02ms | true + uzyg9iYw2FEbtdTHaDb5HoeEWYAPRPQgvsgyd873qPS | nyc001-dz002 | 4.42.212.122 | 3.17ms | 3.63ms | 3.33ms | true + FEML4XsDPN3WfmyFAXzE2xzyYqSB9kFCRrMik8JqN6kT | nyc001-dz001 | 38.104.167.29 | 2.33ms | 5.46ms | 3.39ms | true + 9oKLaL6Hwno5TyAFutTbbkNrzxm1fw9fhzkiUHgsxgGx | dz-dc10-sw01 | 137.239.200.186 | 6.84ms | 7.01ms | 6.91ms | true + DESzDP8GkSTpQLkrUegLkt4S2ynGfZX5bTDzZf3sEE58 | was001-dz002 | 38.88.214.133 | 7.39ms | 7.44ms | 7.41ms | true + HHNCpqB7CwHVLxAiB1S86ko6gJRzLCtw78K1tc7ZpT5P | was001-dz001 | 66.198.11.74 | 7.67ms | 7.85ms | 7.76ms | true + 9LFtjDzohKvCBzSquQD4YtL3HwuvkKBDE7KSzb8ztV2b | dz-mtl11-sw01 | 134.195.161.10 | 9.88ms | 10.01ms | 9.95ms | true + 9M7FfYYyjM4wGinKPofZRNmQFcCjCKRbXscGBUiXvXnG | dz-tor1-sw01 | 209.42.165.10 | 14.52ms | 14.53ms | 14.52ms | true +``` +A saída do Testnet será idêntica em estrutura, mas com menos dispositivos. ## 2. Abrir a porta 44880 Os usuários precisam abrir a porta 44880 para utilizar alguns [recursos de roteamento](https://github.com/malbeclabs/doublezero/blob/main/rfcs/rfc7-client-route-liveness.md). -Para abrir a porta 44880 você pode atualizar as regras do iptables da seguinte forma: +Para abrir a porta 44880 você pode atualizar as tabelas IP como:
@@ -79,9 +86,9 @@ 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 +observe as flags `-i doublezero0`, `-o doublezero0` que restringem esta regra apenas à interface DoubleZero -Ou UFW da seguinte forma: +Ou UFW como:
@@ -92,19 +99,19 @@ 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 +observe as flags `in on doublezero0`, `out on doublezero0` que restringem esta regra apenas à interface DoubleZero -## 3. Atestar a Propriedade do Validador +## 3. Atestar Propriedade do Validador
-Com seu Ambiente DoubleZero configurado, é hora de atestar a Propriedade do seu Validador. +Com seu Ambiente DoubleZero configurado, agora é hora de atestar a Propriedade do seu Validador. -O ID DoubleZero que você criou na [configuração](setup.md) do seu validador primário deve ser usado em todas as máquinas de backup. +O DoubleZero ID que você criou na [configuração](setup.md) 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: +Para realizar isso, você primeiro verificará se a máquina na qual está executando os comandos é seu **Validador Primário** com: ``` doublezero-solana passport find-validator -u mainnet-beta @@ -126,16 +133,30 @@ In Leader scheduler ``` !!! 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. + O mesmo fluxo de trabalho é usado para uma ou várias máquinas. + Para registrar uma máquina, exclua os argumentos "--backup-validator-ids" ou "backup_ids=" de quaisquer comandos nesta página. -Agora, em todas as máquinas de backup nas quais você planeja executar seu **Validador Primário**, execute o seguinte: +Agora, em todas as máquinas de backup nas quais você pretende executar seu **Validador Primário**, execute o seguinte: ``` doublezero-solana passport find-validator -u mainnet-beta ``` +Saída esperada: + +``` +Connected to Solana: mainnet + +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 saída é esperada. O nó de backup não pode estar no cronograma de líderes no momento da criação do passe. +Agora você executará este comando em **todas as máquinas de backup** nas quais planeja usar a conta de voto e a identidade do seu **Validador Primário**. +
@@ -143,7 +164,7 @@ Esta saída é esperada. O nó de backup não pode estar no cronograma de líder ### 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: +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 o ID do seu validador primário no solana gossip na máquina da qual você está executando o comando: ``` doublezero-solana passport prepare-validator-access -u mainnet-beta \ @@ -152,6 +173,42 @@ doublezero-solana passport prepare-validator-access -u mainnet-beta \ --backup-validator-ids ValidatorIdentity222222222222222222222222222,ValidatorIdentity33333333333333333333333333,ValidatorIdentity444444444444444444444444444> ``` + +Exemplo de saída: + +``` +DoubleZero Passport - Prepare Validator Access Request +Connected to Solana: mainnet-beta + +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 + +``` Observe a saída no final deste comando. É a estrutura para o próximo passo.
@@ -160,9 +217,9 @@ Observe a saída no final deste comando. É a estrutura para o próximo passo.
-No final do último passo, recebemos uma saída pré-formatada para `solana sign-offchain-message`. +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**. +A partir da saída acima, executaremos este comando na máquina do **Validador Primário**. ``` solana sign-offchain-message \ @@ -182,9 +239,10 @@ Da saída anterior executaremos este comando na máquina do **Validador Primári
-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 comando `request-validator-access` para criar uma conta na Solana para a solicitação de conexão. O agente DoubleZero Sentinel 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. +Use o node ID, DoubleZeroID e a assinatura. !!! note inline end 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. @@ -198,13 +256,13 @@ doublezero-solana passport request-validator-access -k -u main **Saída:** -Esta saída pode ser usada para ver a transação em um explorador Solana. Certifique-se de mudar o explorador para mainnet. Esta verificação é opcional. +Esta saída pode ser usada para ver a transação em um explorador Solana. Certifique-se de alterar o explorador para mainnet. Esta verificação é opcional. ```bash 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. +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 alternar para nós de backup registrados desta forma.
@@ -218,7 +276,7 @@ No servidor, com o usuário que se conectará ao DoubleZero, execute o comando ` doublezero connect ibrl ``` -Você deve ver uma saída indicando o provisionamento, como: +Você deverá ver uma saída indicando o provisionamento, como: ``` DoubleZero Service Provisioning @@ -231,7 +289,7 @@ Public IP detected: 137.184.101.183 - If you want to use a different IP, you can Service provisioned with status: ok ✅ User Provisioned ``` -Aguarde um minuto para o túnel GRE terminar de ser configurado. Até que o túnel GRE esteja configurado, sua saída de status pode retornar "down" ou "Unknown". +Aguarde um minuto para o túnel GRE terminar a configuração. Até que o túnel GRE termine a configuração, sua saída de status pode retornar "down" ou "Unknown" Verifique sua conexão: @@ -241,7 +299,8 @@ doublezero status **Saída:** !!! note inline end - Examine esta saída. Observe que `Tunnel src` e `DoubleZero IP` correspondem ao endereço IPv4 público da sua máquina. + Examine esta saída. Observe que o `Tunnel src` e o `DoubleZero IP` correspondem ao endereço IPv4 público na sua máquina. + ```bash Tunnel status | Last Session Update | Tunnel Name | Tunnel src | Tunnel dst | Doublezero IP | User Type | Current Device | Lowest Latency Device | Metro | Network @@ -255,8 +314,17 @@ Você poderá visualizar as rotas propagadas por outros usuários no DoubleZero 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](Validator%20Multicast%20Connection.md). +Se você completou esta configuração e planeja publicar shreds via multicast, prossiga para a [próxima página](Validator%20Multicast%20Connection.md). \ No newline at end of file diff --git a/docs/DZ Mainnet-beta Connection.zh.md b/docs/DZ Mainnet-beta Connection.zh.md index a627164..77d7810 100644 --- a/docs/DZ Mainnet-beta Connection.zh.md +++ b/docs/DZ Mainnet-beta Connection.zh.md @@ -1,67 +1,60 @@ -# 验证器以IBRL模式连接主网Beta -!!! warning "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." +--- +description: 将 Solana 主网测试版(Mainnet-Beta)验证器及最多三台备份机器以 IBRL 模式连接到 DoubleZero,包括身份证明和连接请求。 +--- -!!! warning "通过连接到DoubleZero,我同意[DoubleZero服务条款](https://doublezero.xyz/terms-protocol)" +# 验证器主网测试版 IBRL 模式连接 +!!! warning "连接到 DoubleZero 即表示我同意 [DoubleZero 服务条款](https://doublezero.xyz/terms-protocol)" -### 以IBRL模式连接到主网Beta +### 以 IBRL 模式连接到主网测试版 !!! Note inline end - IBRL模式不需要重启验证器客户端,因为它使用您现有的公共IP地址。 + IBRL 模式不需要重启验证器客户端,因为它使用您现有的公共 IP 地址。 -Solana主网验证器将完成到DoubleZero主网Beta的连接,详情请见本页面。 +Solana 主网验证器将完成与 DoubleZero 主网测试版的连接,本页面将详细说明此过程。 -每个Solana验证器都有其自己的**身份密钥对**;从中提取称为**节点ID**的公钥。这是验证器在Solana网络上的唯一指纹。 +每个 Solana 验证器都有自己的**身份密钥对**;从中可以提取公钥,即**节点 ID**。这是验证器在 Solana 网络上的唯一标识。 -确认DoubleZero ID和节点ID后,您将证明您对机器的所有权。这通过创建包含使用验证器身份密钥签名的DoubleZero ID的消息来完成。由此产生的加密签名作为您控制该验证器的可验证证明。 +确定 DoubleZeroID 和节点 ID 后,您需要证明对机器的所有权。这通过创建一条包含 DoubleZeroID 并使用验证器身份密钥签名的消息来完成。生成的加密签名可作为您控制该验证器的可验证证明。 -最后,您将向DoubleZero提交**连接请求**。此请求传达:*"这是我的身份,这是所有权证明,这是我打算如何连接。"* DoubleZero验证此信息,接受证明,并为DoubleZero上的验证器配置网络访问。 +最后,您将向 DoubleZero 提交**连接请求**。该请求传达的信息是:*"这是我的身份,这是所有权证明,这是我打算如何连接。"* DoubleZero 验证此信息,接受证明,并为该验证器在 DoubleZero 上配置网络访问权限。 -本指南允许1个主验证器注册自身,以及同时注册最多3台备份/故障转移机器。 +本指南允许 1 个主验证器注册自身,并同时注册最多 3 台备份/故障转移机器。 ## 前提条件 -- Solana CLI已安装并在$PATH中 -- 对于验证器:有权访问sol用户下的验证器身份密钥对文件(如validator-keypair.json) -- 对于验证器:验证正在连接的Solana验证器的身份密钥上至少有1 SOL -- 防火墙规则允许DoubleZero和Solana RPC所需的出站连接,包括GRE(ip proto 47)和BGP(169.254.0.0/16上的tcp/179) +- 已安装 Solana CLI 并加入 $PATH +- 对于验证器:具有访问验证器身份密钥对文件(例如 validator-keypair.json)的权限,需在 sol 用户下 +- 对于验证器:验证被连接的 Solana 验证器的身份密钥上至少有 1 SOL +- 防火墙规则允许 DoubleZero 和 Solana RPC 所需的出站连接,包括 + GRE(IP 协议 47)和 BGP(169.254.0.0/16 上的 tcp/179) !!! info - 验证器ID将与Solana gossip进行核对以确定目标IP。然后将使用目标IP和DoubleZero ID在您的机器和目标DoubleZero设备之间建立GRE隧道。 + 验证器 ID 将与 Solana gossip 进行比对以确定目标 IP。目标 IP 和 DoubleZero ID 将用于在您的机器与目标 DoubleZero 设备之间建立 GRE 隧道。 - 注意:如果您在同一IP上同时有垃圾ID和主ID,只有主ID将用于机器注册。这是因为垃圾ID不会出现在gossip中,因此无法用于验证目标机器的IP。 + 注意:如果您在同一 IP 上同时拥有临时 ID 和主 ID,则仅主 ID 会用于机器注册。这是因为临时 ID 不会出现在 gossip 中,因此无法用于验证目标机器的 IP。 -## 1. 环境配置 +## 1. 确认客户端网络 -请在继续之前按照[设置](setup.md)说明操作。 +请在继续之前按照[设置](setup.md)说明操作。安装 **Mainnet-Beta** 软件包 — Testnet 和 Mainnet-Beta 使用不同的软件包仓库。 -设置的最后一步是断开与网络的连接。这是为了确保您的机器上只有一个到DoubleZero的隧道处于开放状态,并且该隧道在正确的网络上。 +设置的最后一步是断开网络连接。这是为了确保您的机器上只有一条通往 DoubleZero 的隧道处于打开状态,并且该隧道连接到正确的网络。 -
+确认客户端在 mainnet-beta 上: -要配置DoubleZero客户端CLI(`doublezero`)和守护程序(`doublezerod`)连接到**DoubleZero主网Beta**: ```bash -DESIRED_DOUBLEZERO_ENV=mainnet-beta \ - && 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" +doublezero status ``` -您应该看到以下输出: -` -✅ doublezerod configured for environment mainnet-beta -` +`Network` 列应显示 `mainnet-beta`。如果显示 `testnet`,或者您安装了错误的软件包,请使用[故障排除](troubleshooting.md#issue-wrong-doublezero-environment)中的一键切换方法。 -大约30秒后,您将看到可用的DoubleZero设备: +大约 30 秒后,您将看到可用的 DoubleZero 设备: ```bash doublezero latency ``` -示例输出(主网Beta) +示例输出(Mainnet-Beta) ```bash pubkey | code | ip | min | max | avg | reachable 2hPMFJHh5BPX42ygBvuYYJfCv9q7g3rRR3ZRsUgtaqUi | dz-ny7-sw01 | 137.239.213.162 | 1.74ms | 1.92ms | 1.84ms | true @@ -76,16 +69,13 @@ doublezero latency 9LFtjDzohKvCBzSquQD4YtL3HwuvkKBDE7KSzb8ztV2b | dz-mtl11-sw01 | 134.195.161.10 | 9.88ms | 10.01ms | 9.95ms | true 9M7FfYYyjM4wGinKPofZRNmQFcCjCKRbXscGBUiXvXnG | dz-tor1-sw01 | 209.42.165.10 | 14.52ms | 14.53ms | 14.52ms | true ``` -测试网输出结构相同,但设备较少。 - - -
+Testnet 输出结构相同,但设备数量较少。 -## 2. 开放44880端口 +## 2. 开放端口 44880 -用户需要开放44880端口以使用某些[路由功能](https://github.com/malbeclabs/doublezero/blob/main/rfcs/rfc7-client-route-liveness.md)。 +用户需要开放端口 44880 以使用某些[路由功能](https://github.com/malbeclabs/doublezero/blob/main/rfcs/rfc7-client-route-liveness.md)。 -要开放44880端口,您可以更新IP表,例如: +要开放端口 44880,您可以更新 IP tables,例如:
@@ -96,9 +86,9 @@ sudo iptables -A OUTPUT -o doublezero0 -p udp --dport 44880 -j ACCEPT
-注意`-i doublezero0`、`-o doublezero0`标志,这些标志将此规则限制为仅DoubleZero接口。 +注意 `-i doublezero0`、`-o doublezero0` 标志将此规则限制为仅适用于 DoubleZero 接口 -或UFW,例如: +或者使用 UFW,例如:
@@ -109,25 +99,25 @@ sudo ufw allow out on doublezero0 to any port 44880 proto udp
-注意`in on doublezero0`、`out on doublezero0`标志,这些标志将此规则限制为仅DoubleZero接口。 +注意 `in on doublezero0`、`out on doublezero0` 标志将此规则限制为仅适用于 DoubleZero 接口 -## 3. 证明验证器所有权 +## 3. 验证验证器所有权
-设置好DoubleZero环境后,现在是证明您的验证器所有权的时候了。 +设置好 DoubleZero 环境后,现在是验证您的验证器所有权的时候了。 -您在主验证器[设置](setup.md)中创建的DoubleZero ID必须用于所有备份机器。 +您在主验证器[设置](setup.md)中创建的 DoubleZero ID 必须在所有备份机器上使用。 -您主机器上的ID可以通过`doublezero address`找到。相同的ID必须在集群中所有机器的`~/.config/doublezero/id.json`中。 +主机器上的 ID 可以通过 `doublezero address` 查看。相同的 ID 必须存在于集群中所有机器的 `~/.config/doublezero/id.json` 中。 -为了实现这一点,您首先需要通过以下命令验证您正在运行命令的机器是您的**主验证器**: +为此,您首先需要验证运行命令的机器是您的**主验证器**: ``` doublezero-solana passport find-validator -u mainnet-beta ``` -这验证了验证器已在gossip中注册并出现在领导者时间表中。 +这将验证验证器已在 gossip 中注册并出现在出块调度表中。 预期输出: @@ -143,8 +133,8 @@ In Leader scheduler ``` !!! info - 无论是一台还是多台机器,工作流程相同。 - 要注册一台机器,请从本页上的任何命令中排除参数"--backup-validator-ids"或"backup_ids="。 + 单台机器和多台机器使用相同的工作流程。 + 如果只注册一台机器,请在本页面的所有命令中排除参数 "--backup-validator-ids" 或 "backup_ids="。 现在,在您打算运行**主验证器**的所有备份机器上执行以下命令: ``` @@ -163,9 +153,9 @@ 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. ``` -此输出是预期的。备份节点在通行证创建时不能在领导者时间表中。 +此输出是预期的。备份节点在创建通行证时不能在出块调度表中。 -现在您将在您计划使用**主验证器**投票账户和身份的**所有备份机器**上运行此命令。 +现在,您需要在所有计划使用**主验证器**投票账户和身份的**备份机器**上运行此命令。
@@ -174,7 +164,7 @@ In Not in Leader scheduler ### 准备连接 -在**主验证器**机器上运行以下命令。这是您拥有活跃质押的机器,该机器在您正在运行命令的机器上Solana gossip中以您的主验证器ID在领导者时间表中: +在**主验证器**机器上运行以下命令。这是您拥有活跃质押的机器,在出块调度表中,您的主验证器 ID 在运行命令的机器上的 solana gossip 中: ``` doublezero-solana passport prepare-validator-access -u mainnet-beta \ @@ -219,7 +209,7 @@ Backup validator 🖥️ 🛡️: -k ``` -注意此命令末尾的输出。这是下一步的结构。 +请注意此命令末尾的输出。它是下一步的命令结构。 @@ -227,9 +217,9 @@ Backup validator 🖥️ 🛡️:
-在上一步结束时,我们收到了`solana sign-offchain-message`的预格式化输出。 +在上一步的最后,我们收到了 `solana sign-offchain-message` 的预格式化输出。 -从上述输出中,我们将在**主验证器**机器上运行此命令。 +根据上述输出,我们将在**主验证器**机器上运行此命令。 ``` solana sign-offchain-message \ @@ -245,17 +235,17 @@ Backup validator 🖥️ 🛡️:
-## 5. 在DoubleZero中发起连接请求 +## 5. 在 DoubleZero 中发起连接请求
-使用`request-validator-access`命令在Solana上为连接请求创建账户。DoubleZero Sentinel代理检测新账户,验证其身份和签名,并在DoubleZero中创建访问通行证,使服务器能够建立连接。 +使用 `request-validator-access` 命令在 Solana 上创建一个用于连接请求的账户。DoubleZero Sentinel 代理检测到新账户后,会验证其身份和签名,并在 DoubleZero 中创建访问通行证,以便服务器建立连接。 -使用节点ID、DoubleZero ID和签名。 +使用节点 ID、DoubleZeroID 和签名。 !!! note inline end - 在此示例中,我们使用`-k /home/user/.config/solana/id.json`来查找验证器身份。请使用适合您本地部署的位置。 + 在本示例中,我们使用 `-k /home/user/.config/solana/id.json` 来查找验证器身份。请根据您的本地部署使用适当的路径。 ``` doublezero-solana passport request-validator-access -k -u mainnet-beta \ @@ -266,27 +256,27 @@ doublezero-solana passport request-validator-access -k -u main **输出:** -此输出可用于在Solana浏览器中查看交易。确保将浏览器切换到主网。此验证是可选的。 +此输出可用于在 Solana 浏览器上查看交易。请确保将浏览器切换到 mainnet。此验证为可选步骤。 ```bash Request Solana validator access: Transaction22222222VaB8FMqM2wEBXyV5THpKRXWrPtDQxmTjHJHiAWteVYTsc7Gjz4hdXxvYoZXGeHkrEayp ``` -如果成功,DoubleZero将注册主验证器及其备份。您现在可以在访问通行证中注册的IP之间进行故障转移。以这种方式注册备份节点时,DoubleZero将自动维护连接。 +如果成功,DoubleZero 将注册主验证器及其备份机器。您现在可以在访问通行证中注册的 IP 之间进行故障转移。当切换到以此方式注册的备份节点时,DoubleZero 将自动保持连接。
-## 6. 以IBRL模式连接 +## 6. 以 IBRL 模式连接
-在服务器上,使用将连接到DoubleZero的用户,运行`connect`命令建立到DoubleZero的连接。 +在服务器上,使用将要连接到 DoubleZero 的用户,运行 `connect` 命令建立与 DoubleZero 的连接。 ``` doublezero connect ibrl ``` -您应该看到表示配置的输出,例如: +您应该会看到指示配置过程的输出,例如: ``` DoubleZero Service Provisioning @@ -299,7 +289,7 @@ Public IP detected: 137.184.101.183 - If you want to use a different IP, you can Service provisioned with status: ok ✅ User Provisioned ``` -等待一分钟让GRE隧道完成设置。在GRE隧道完成设置之前,您的状态输出可能返回"down"或"Unknown"。 +等待一分钟让 GRE 隧道完成设置。在 GRE 隧道设置完成之前,您的状态输出可能返回 "down" 或 "Unknown"。 验证您的连接: @@ -309,15 +299,16 @@ doublezero status **输出:** !!! note inline end - 检查此输出。注意`Tunnel src`和`DoubleZero IP`与您机器上的公共IPv4地址匹配。 + 查看此输出。注意 `Tunnel src` 和 `DoubleZero IP` 与您机器上的公共 IPv4 地址匹配。 + ```bash 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 | mainnet-beta ``` -状态`up`表示您已成功连接。 +状态为 `up` 表示您已成功连接。 -您可以通过运行以下命令查看DoubleZero上其他用户传播的路由: +您可以通过运行以下命令查看 DoubleZero 上其他用户传播的路由: ``` ip route @@ -334,6 +325,6 @@ default via 149.28.38.1 dev enp1s0 proto dhcp src 149.28.38.64 metric 100
-### 下一步:通过多播发布碎片 +### 下一步:通过组播发布 Shreds -如果您已完成此设置并计划通过多播发布碎片,请继续访问[下一页](Validator%20Multicast%20Connection.md)。 +如果您已完成此设置并计划通过组播发布 shreds,请继续阅读[下一页](Validator%20Multicast%20Connection.md)。 \ No newline at end of file diff --git a/docs/DZ Testnet Connection.es.md b/docs/DZ Testnet Connection.es.md index 96cffec..b7fbb63 100644 --- a/docs/DZ Testnet Connection.es.md +++ b/docs/DZ Testnet Connection.es.md @@ -1,111 +1,111 @@ -# Conexión de Validador a Testnet en modo IBRL -!!! warning "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." +--- +description: Conectar un validador de Solana Testnet a DoubleZero en modo IBRL, incluyendo el acuerdo de evaluación de testnet y los pasos de conexión. +--- -??? warning "Al conectarme a DoubleZero testnet acepto los términos del Acuerdo de Evaluación establecido aquí (haga clic para expandir)" +# Conexión de Validador a Testnet en Modo IBRL +??? warning "Al conectarme a la testnet de DoubleZero, acepto los términos del Acuerdo de Evaluación establecidos 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: + Al acceder o utilizar 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 DoubleZero Foundation ("**DZF**") le proporcionará + a usted ("**Usuario**" o "**usted**") acceso a la Solución en base de + evaluación. En consideración de las promesas mutuas contenidas en el presente, 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.1 "**Información Confidencial**" significa toda y cualquier información divulgada por cualquiera de las partes a la otra que sea designada como confidencial, o que de otro modo deba entenderse como confidencial, incluyendo pero no limitándose a, la Solución, planes de productos, planes de negocios, secretos comerciales, tecnología, o cualquier 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. + 1.2 "**Solución**" significa la versión testnet de la infraestructura de red de alto rendimiento DoubleZero para proyectos web3 ("**Testnet**") y el servicio de filtrado en el borde relacionado con ancho de banda integrado ("**Servicio de Información**"), el Software DZ (definido a continuación), todos y cualesquiera materiales proporcionados por DZF relacionados con el Software DZ ("**Documentación**"), y otros materiales que DZF proporcione 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.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, intransferible y limitado de la Solución para permitir al Usuario evaluar únicamente el Servicio de Información. Con respecto a cualquier software que comprenda la Solución ("**Software DZ**"), DZF por la presente 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 como lo contempla 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.2 ^^Restricciones^^. El Usuario puede utilizar la Solución de acuerdo con este Acuerdo desde la Fecha de Vigencia hasta que sea terminado por DZF (el "**Período de Evaluación**"). El Usuario entiende que cualquier derecho de uso de la Solución más allá del Período de Evaluación estará sujeto a un acuerdo comercial separado entre las partes con respecto al mismo, incluyendo el pago de tarifas. El Usuario no deberá, y no permitirá a ningún tercero: (i) modificar o crear trabajos derivados basados en la Solución o cualquier porción de la misma; (ii) reproducir la Solución excepto como lo permite expresamente este Acuerdo; (iii) sublicenciar, distribuir, vender, prestar, alquilar, arrendar, transferir, u otorgar derechos sobre la totalidad o cualquier parte de la Solución o proporcionar acceso a la Solución a terceros, en base a un bureau de servicios o de otro modo, excepto como una 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) utilizar la Solución de manera diferente a lo establecido 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. + 2.3 ^^Propiedad^^. DZF retiene todos los derechos, títulos e intereses, incluyendo 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. + 3 RETROALIMENTACIÓN. + DZF puede solicitar periódicamente que el Usuario proporcione, y el Usuario acepta proporcionar a DZF, retroalimentación sobre el uso, operación y funcionalidad de la Solución ("Retroalimentación"). El Usuario por la presente otorga a DZF un derecho y licencia no exclusivo, mundial, perpetuo, irrevocable, libre de regalías, totalmente pagado, totalmente sublicenciable y transferible para usar e incorporar la Retroalimentación en cualquier producto y servicio, para fabricar, usar, vender, ofrecer a la venta, importar y explotar de otro modo dichos productos y servicios, y para usar, copiar, distribuir y explotar de otro modo la Retroalimentación sin restricción. - 4. PLAZO Y RESCISIÓN. + 4. PLAZO Y TERMINACIÓ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 ^^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 terminar este Acuerdo inmediatamente por conveniencia, por cualquier motivo o sin motivo, mediante notificación escrita a la otra parte (correo electrónico es 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. + 4.1 ^^Efectos de la Terminación^^. Tras la terminación de este Acuerdo por cualquier motivo: (i) los derechos otorgados al Usuario en virtud del presente terminarán inmediatamente; (ii) el Usuario deberá discontinuar inmediatamente 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 deberá devolver o destruir prontamente 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. + Cada parte acepta que utilizará la Información Confidencial de la otra parte únicamente para cumplir sus obligaciones y ejercer sus derechos bajo este Acuerdo y no divulgará, ni permitirá que se divulgue, la misma, excepto como se permita de otro modo 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 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 información que: (a) sea o se vuelva generalmente conocida o públicamente disponible sin culpa de la parte receptora; (b) fuera debidamente conocida por la parte receptora, sin restricción, antes de la divulgación por la parte divulgadora; (c) fuera debidamente divulgada a la parte receptora, sin restricción, por otra persona con la autoridad legal para hacerlo; o (d) sea desarrollada independientemente por la parte receptora sin uso o referencia a la Información Confidencial de la parte divulgadora. Cada parte acepta ejercer la debida diligencia en la protección de la Información Confidencial de la otra parte contra el uso y divulgación no autorizados. En caso de incumplimiento real o amenazado de las disposiciones de esta Sección o de las licencias contenidas en el presente, la parte no incumplidora tendrá derecho a buscar medidas cautelares inmediatas y otros recursos equitativos, sin renunciar a otros derechos o recursos disponibles. El Usuario es responsable de mantener la Solución y la confidencialidad de cualquier contraseña, frase semilla o código que proporcione acceso a la Solución como Información Confidencial de DZF. Nada en el presente limita o restringe el derecho o la capacidad de DZF de utilizar datos sobre el rendimiento, disponibilidad, uso, integridad y seguridad de la Solución. Si cualquiera de las partes incumple, o amenaza con incumplir las disposiciones de esta Sección 5, cada parte acepta que la parte no incumplidora no tendrá un recurso adecuado en derecho y por lo tanto tiene derecho a medidas cautelares inmediatas y otros recursos equitativos, sin fianza y sin necesidad de demostrar daños monetarios reales. - 6. DESCARGO DE GARANTÍAS; LIMITACIÓN DE RESPONSABILIDAD. + 6. DESCARGO DE GARANTÍA; 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.1 ^^DESCARGO DE GARANTÍA^^. LA SOLUCIÓN SE PROPORCIONA "TAL CUAL" SIN GARANTÍA DE NINGÚN TIPO. DZF NO OTORGA GARANTÍAS, YA SEAN EXPRESAS, IMPLÍCITAS, LEGALES 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. + EXCEPTO POR INCUMPLIMIENTO 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 BENEFICIOS 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, EXTRACONTRACTUAL O DE OTRO TIPO, 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, EXTRACONTRACTUAL O DE OTRO TIPO. **LAS LIMITACIONES ANTERIORES SE APLICARÁN SIN PERJUICIO DEL INCUMPLIMIENTO DEL PROPÓSITO ESENCIAL DE CUALQUIER RECURSO LIMITADO CONTENIDO EN EL PRESENTE.** LAS PARTES ACUERDAN QUE LAS LIMITACIONES ANTERIORES REPRESENTAN UNA ASIGNACIÓN RAZONABLE DEL RIESGO BAJO ESTE ACUERDO. 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. + Este Acuerdo y todos los asuntos que surjan de o se relacionen con este Acuerdo se regirán, interpretarán y construirán de acuerdo con las leyes de las Islas Caimán. En caso de que surja una controversia, disputa o reclamación de o en relación con este Acuerdo ("Disputa"), la parte relevante, según corresponda, deberá dar un aviso de 30 días de dicha Disputa a las otras partes (el "Aviso de Disputa"). En caso de que la Disputa no se resuelva al vencimiento de los 30 días posteriores a la notificación del Aviso de Disputa, la parte relevante podrá iniciar procedimientos de arbitraje según se establece en el presente. En caso de que la Disputa permanezca al vencimiento de los 30 días posteriores a la notificación del Aviso de Disputa, la Disputa se resolverá mediante arbitraje administrado por el Centro Internacional de Mediación y Arbitraje de las Islas Caimán (CI-MAC) de acuerdo con las Reglas de Arbitraje de CI-MAC (las "Reglas de Arbitraje") vigentes a la fecha de este Acuerdo, cuyas Reglas de Arbitraje se consideran incorporadas por referencia a esta cláusula, y regidas por la Ley de Arbitraje (según sea enmendada). El arbitraje tendrá su sede en George Town, Gran Caimán, Islas Caimán y se regirá por la ley de las Islas Caimán. El idioma del arbitraje será el inglés. El arbitraje será determinado por un árbitro único que será designado de acuerdo con las Reglas de Arbitraje. Cualquier laudo o decisión del árbitro será por escrito y será definitivo y vinculante para las partes sin derecho de apelación, y el reconocimiento de cualquier laudo así obtenido podrá ser registrado o ejecutado por cualquier tribunal con jurisdicción al respecto. No se podrá iniciar ninguna acción legal o en equidad basada en cualquier reclamación que surja de o esté relacionada con este Acuerdo en ningún tribunal de ninguna jurisdicción. Si cualquier litigio o arbitraje es necesario para hacer cumplir los términos de este Acuerdo, la parte prevaleciente tendrá derecho a que sus honorarios de abogados sean pagados por la otra parte. Cada parte renuncia a cualquier derecho que pueda tener para invocar la doctrina de forum non conveniens, para alegar que no está sujeta a la jurisdicción de dicho arbitraje o tribunales, o para objetar la sede en la medida en que cualquier procedimiento se inicie de conformidad con el presente. 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). + Este Acuerdo no puede ser transferido ni cedido por el Usuario sin el consentimiento previo por escrito de DZF. DZF puede ceder libremente este Acuerdo. Todas las notificaciones que deban enviarse en virtud del presente se enviarán por correo electrónico (a DZF: legal@doublezero.xyz) y se considerarán recibidas el día siguiente al envío (con confirmación de transmisión). Si alguna disposición de este Acuerdo se considera inválida o inaplicable, las disposiciones restantes de este Acuerdo permanecerán en pleno vigor y efecto. La renuncia por cualquiera de las partes a cualquier incumplimiento de este Acuerdo no constituirá una renuncia a cualquier otro incumplimiento posterior. Ninguna de las partes será responsable por cualquier retraso o falta de cumplimiento debido a actos de fuerza mayor, terremotos, escasez de suministros, dificultades de transporte, disputas laborales, disturbios, guerra, incendio, epidemias y sucesos similares fuera de su control, ya sean previsibles o no. Este Acuerdo junto con cualquier anexo constituye el acuerdo completo entre las partes y sustituye a todos los acuerdos o representaciones anteriores o contemporáneos, escritos u orales, relativos al objeto del presente. Este Acuerdo no puede ser modificado ni enmendado excepto por escrito firmado por un representante debidamente autorizado de cada parte. -### Conexión a Testnet en modo IBRL +### Conexión a Testnet en Modo IBRL !!! Note inline end - El modo IBRL no requiere reiniciar los clientes de validadores, ya que usa su dirección IP pública existente. + El modo IBRL no requiere reiniciar los clientes del validador, porque utiliza 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. +Los Validadores de Solana Testnet completarán la conexión a la Testnet de DoubleZero, lo cual 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. +Cada validador de Solana tiene su propio **par de claves de identidad**; a partir de este, se extrae la clave pública conocida como el **ID de nodo**. Esta es la huella digital única del validador en la red de 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. +Con el DoubleZeroID y el ID de nodo identificados, demostrarás la propiedad de tu máquina. Esto se realiza 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 controlas 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. +Finalmente, enviarás una **solicitud de conexión a DoubleZero**. Esta solicitud comunica: *"Aquí está mi identidad, aquí está la prueba de propiedad, y así es como pretendo conectarme."* DoubleZero valida esta información, acepta la prueba y aprovisiona el 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. +Esta guía permite registrar 1 Validador Primario y hasta 3 máquinas de respaldo/conmutación por error 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) +- Solana CLI instalado y en $PATH +- Para validadores: Permiso para acceder al archivo del par de claves de identidad del validador (por ejemplo, validator-keypair.json) bajo el usuario sol +- Para validadores: Verificar que la clave de Identidad del validador de Solana que se va a conectar tenga 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. + El ID del Validador se verificará contra el gossip de Solana para determinar la IP de destino. La IP de destino y el DoubleZero ID se utilizarán al abrir un túnel GRE entre su máquina y el Dispositivo DoubleZero de destino. - 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. + Considere: En el caso donde tenga un ID basura y un ID Primario en la misma IP, solo el ID Primario se utilizará en el registro de la máquina. Esto se debe a que el ID basura no aparecerá en gossip y, por lo tanto, no puede usarse para verificar la IP de la máquina de destino. -## 1. Configuración del Entorno +## 1. Confirmar la red del cliente -Siga las instrucciones de [configuración](setup.md) antes de continuar. +Por favor siga las instrucciones de [configuración](setup.md) antes de continuar. Instale los paquetes de **Testnet** — Testnet y Mainnet-Beta utilizan diferentes repositorios de paquetes. 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. -
+Confirme que el cliente está en testnet: -Para configurar el CLI DoubleZero (`doublezero`) y el daemon (`doublezerod`) para conectarse a **DoubleZero testnet**: ```bash -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 +doublezero status ``` +La columna `Network` debería mostrar `testnet`. Si muestra `mainnet-beta`, o si instaló el paquete incorrecto, use el cambio de copiar y pegar en [solución de problemas](troubleshooting.md#issue-wrong-doublezero-environment). + Después de aproximadamente 30 segundos verá los dispositivos DoubleZero disponibles: ```bash doublezero latency ``` -Ejemplo de salida (testnet) +Salida de ejemplo (testnet) ```bash doublezero latency pubkey | code | ip | min | max | avg | reachable @@ -119,17 +119,13 @@ doublezero latency 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. - - - +La salida de Mainnet será idéntica en 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](https://github.com/malbeclabs/doublezero/blob/main/rfcs/rfc7-client-route-liveness.md). -Para abrir el puerto 44880 puede actualizar IP tables de la siguiente manera: +Para abrir el puerto 44880 puede actualizar las tablas IP de la siguiente manera:
@@ -140,9 +136,9 @@ 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 +observe los flags `-i doublezero0`, `-o doublezero0` que restringen esta regla únicamente a la interfaz de DoubleZero -O UFW de la siguiente manera: +O con UFW de la siguiente manera:
@@ -153,25 +149,25 @@ 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 +observe los flags `in on doublezero0`, `out on doublezero0` que restringen esta regla únicamente a la interfaz de DoubleZero -## 3. Atestar la Propiedad del Validador +## 3. Atestiguar la Propiedad del Validador
-Con su Entorno DoubleZero configurado, es hora de atestar la Propiedad de su Validador. +Con su Entorno DoubleZero configurado, ahora es momento de atestiguar la Propiedad de su Validador. -El ID DoubleZero que creó en la [configuración](setup.md) de su validador primario debe usarse en todas las máquinas de respaldo. +El DoubleZero ID que creó en la [configuración](setup.md) 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: +Para lograr esto, primero verificará que la máquina desde la que está ejecutando los comandos es 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. +Esto verifica que el validador esté registrado en gossip y aparezca en el programa de líderes. Salida esperada: @@ -186,10 +182,10 @@ 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. + El mismo flujo de trabajo se utiliza para una o varias máquinas. + Para registrar una sola 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: +Ahora, en todas las máquinas de respaldo en las que pretenda ejecutar su **Validador Primario**, ejecute lo siguiente: ``` doublezero-solana passport find-validator -ut @@ -207,9 +203,9 @@ 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. +Esta salida es esperada. El nodo de respaldo no puede estar en el programa 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**. +Ahora ejecutará este comando en **todas las máquinas de respaldo** en las que planee usar la cuenta de voto y la identidad de su **Validador Primario**.
@@ -218,7 +214,7 @@ Ahora ejecutará este comando en **todas las máquinas de respaldo** que planea ### 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: +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 programa de líderes con su ID de validador primario en el gossip de solana en la máquina desde la que está ejecutando el comando: ``` doublezero-solana passport prepare-validator-access -ut \ @@ -228,7 +224,7 @@ doublezero-solana passport prepare-validator-access -ut \ ``` -Ejemplo de salida: +Salida de ejemplo: ``` DoubleZero Passport - Prepare Validator Access Request @@ -263,17 +259,17 @@ Backup validator 🖥️ 🛡️: -k ``` -Note la salida al final de este comando. Es la estructura para el siguiente paso. +Observe la salida al final de este comando. Es la estructura para el siguiente paso. -## 4. Generar Firma +## 4. Generar la Firma
-Al final del último paso, recibimos una salida preformateada para `solana sign-offchain-message`. +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**. +De la salida anterior ejecutaremos este comando en la máquina del **Validador Primario**. ``` solana sign-offchain-message \ @@ -293,90 +289,10 @@ Desde la salida anterior ejecutaremos este comando en la máquina del **Validado
-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 inline end - 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 -ut \ ---primary-validator-id ValidatorIdentity111111111111111111111111111 \ ---backup-validator-ids ValidatorIdentity222222222222222222222222222,ValidatorIdentity33333333333333333333333333,ValidatorIdentity444444444444444444444444444 \ ---signature Signature111111rrNykTByK2DgJET3U6MdjSa7xgFivS9AHyhdSG6AbYTeczUNJSjYPwBGqpmNGkoWk9NvS3W7 --doublezero-address YourDoubleZeroAddress11111111111111111111111111111 -``` - -**Salida:** +Use el comando `request-validator-access` para crear una cuenta en Solana para la solicitud de conexión. El agente DoubleZero Sentinel 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. -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. -```bash -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 -``` +Use el ID de nodo, el DoubleZeroID y la firma. -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: - -```bash -doublezero status -``` - -**Salida:** !!! note inline end - Examine esta salida. Note que `Tunnel src` y `DoubleZero IP` coinciden con la dirección IPv4 pública de su máquina. - -```bash - 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](Validator%20Multicast%20Connection.md). + En este ejemplo usamos `-k /home/user/. \ No newline at end of file diff --git a/docs/DZ Testnet Connection.fr.md b/docs/DZ Testnet Connection.fr.md index 3dd79fa..8a3cfb7 100644 --- a/docs/DZ Testnet Connection.fr.md +++ b/docs/DZ Testnet Connection.fr.md @@ -1,104 +1,104 @@ -# Connexion Validateur Testnet en Mode IBRL -!!! warning "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." - -??? warning "En me connectant au testnet DoubleZero, j'accepte les termes du Contrat d'Évaluation définis ici (cliquer pour développer)" - Testnet DoubleZero - Contrat d'Évaluation - - En accédant ou en utilisant la Solution (définie ci-dessous), vous acceptez à compter de la première date d'un tel accès (la «**Date d'Effet**») que le présent Contrat d'Évaluation (le «**Contrat**») définit les termes et conditions selon lesquels la DoubleZero Foundation («**DZF**») vous fournira («**Utilisateur**» ou «**vous**») l'accès à la Solution sur une base d'évaluation. En contrepartie des promesses mutuelles contenues dans les présentes, vous acceptez ce qui suit : +--- +description: Connecter un validateur Solana Testnet à DoubleZero en mode IBRL, incluant l'accord d'évaluation testnet et les étapes de connexion. +--- + +# Connexion d'un validateur au Testnet en mode IBRL +??? warning "En me connectant au testnet DoubleZero, j'accepte les termes de l'Accord d'Évaluation énoncés ici (cliquez pour développer)" + DoubleZero Testnet + Accord d'Évaluation + + En accédant ou en utilisant la Solution (définie ci-dessous), vous acceptez à compter de + la première date d'un tel accès (la « **Date d'Effet** ») que le présent + Accord d'Évaluation (l'« **Accord** ») établit les termes et + conditions selon lesquels DoubleZero Foundation (« **DZF** ») vous fournira + (« **Utilisateur** » ou « **vous** ») l'accès à la Solution sur une base d'évaluation. + En contrepartie des promesses mutuelles contenues dans les présentes, vous acceptez + ce qui suit : 1. DÉFINITIONS. - 1.1 «**Informations Confidentielles**» désigne toutes les informations divulguées par l'une ou l'autre partie à l'autre qui sont désignées comme confidentielles, ou qui devraient autrement être comprises comme confidentielles, incluant mais sans s'y limiter, la Solution, les plans de produits, les plans d'affaires, les secrets commerciaux, la technologie ou toute autre information propriétaire. + 1.1 « **Informations Confidentielles** » désigne toute information divulguée par l'une des parties à l'autre qui est désignée comme confidentielle, ou qui devrait autrement être considérée comme confidentielle, y compris, mais sans s'y limiter, la Solution, les plans produits, les plans d'affaires, les secrets commerciaux, la technologie, ou toute autre information propriétaire. - 1.2 «**Solution**» désigne la version testnet de l'infrastructure réseau haute performance DoubleZero pour les projets web3 («**Testnet**») et le service de filtration en périphérie associé avec bande passante intégrée («**Service d'Information**»), le Logiciel DZ (défini ci-dessous), tous les matériaux fournis par DZF relatifs au Logiciel DZ («**Documentation**») et autres matériaux que DZF fournit à l'Utilisateur dans les présentes. + 1.2 « **Solution** » désigne la version testnet de l'infrastructure réseau haute performance DoubleZero pour les projets web3 (« **Testnet** ») et le service de filtrage en périphérie associé avec bande passante intégrée (« **Service d'Information** »), le Logiciel DZ (défini ci-dessous), tout matériel fourni par DZF relatif au Logiciel DZ (« **Documentation** »), et tout autre matériel que DZF fournit à l'Utilisateur en vertu des présentes. 2. ACCÈS. - 2.1 ^^Accès à la Solution^^. Sous réserve des termes et conditions du présent Contrat, DZF fournira à l'Utilisateur l'accès à la Solution via Internet. L'accès de l'Utilisateur est un usage limité, non exclusif et non transférable de la Solution pour permettre à l'Utilisateur d'évaluer le Service d'Information uniquement. En ce qui concerne tout logiciel constituant la Solution («**Logiciel DZ**»), DZF accorde par les présentes à l'Utilisateur une licence limitée et révocable, pendant la Période d'Évaluation, pour copier, télécharger, faire un nombre raisonnable de copies, exécuter et déployer (le cas échéant) ce Logiciel DZ uniquement comme prévu par la Documentation. + 2.1 ^^Accès à la Solution^^. Sous réserve des termes et conditions du présent Accord, DZF fournira à l'Utilisateur l'accès à la Solution via Internet. L'accès de l'Utilisateur est un droit non exclusif, non transférable et limité d'utilisation de la Solution permettant à l'Utilisateur d'évaluer le Service d'Information uniquement. En ce qui concerne tout logiciel composant la Solution (« **Logiciel DZ** »), DZF accorde par les présentes à l'Utilisateur une licence limitée et révocable, pendant la Période d'Évaluation, pour copier, télécharger, réaliser un nombre raisonnable de copies, exécuter et déployer (le cas échéant) ledit Logiciel DZ uniquement tel que prévu par la Documentation. - 2.2 ^^Restrictions^^. L'Utilisateur peut utiliser la Solution conformément au présent Contrat à compter de la Date d'Effet jusqu'à résiliation par DZF (la «**Période d'Évaluation**»). L'Utilisateur comprend que tout droit d'utiliser la Solution au-delà de la Période d'Évaluation sera soumis à un accord commercial séparé entre les parties à cet égard, incluant le paiement de frais. L'Utilisateur ne doit pas, et ne doit pas permettre à un tiers de : (i) modifier ou créer des œuvres dérivées basées sur la Solution ou une partie de celle-ci ; (ii) reproduire la Solution sauf dans la mesure expressément autorisée par le présent Contrat ; (iii) sous-licencier, distribuer, vendre, prêter, louer, transférer ou accorder des droits dans ou sur tout ou partie de la Solution ou fournir un accès à la Solution à des tiers, sur la base d'un bureau de service ou autrement, sauf en tant qu'offre des Services d'Information via ou en relation avec la plateforme ou le produit de l'Utilisateur et non de manière autonome ; ou (iv) utiliser la Solution autrement que tel que prévu dans les présentes. + 2.2 ^^Restrictions^^. L'Utilisateur peut utiliser la Solution conformément au présent Accord à compter de la Date d'Effet jusqu'à la résiliation par DZF (la « **Période d'Évaluation** »). L'Utilisateur comprend que tout droit d'utilisation de la Solution au-delà de la Période d'Évaluation sera soumis à un accord commercial distinct entre les parties à cet égard, incluant le paiement de frais. L'Utilisateur ne devra pas, et ne permettra à aucun tiers de : (i) modifier ou créer des œuvres dérivées basées sur la Solution ou toute portion de celle-ci ; (ii) reproduire la Solution sauf dans les cas expressément autorisés par le présent Accord ; (iii) sous-licencier, distribuer, vendre, prêter, louer, céder ou accorder des droits sur tout ou partie de la Solution ou fournir l'accès à la Solution à des tiers, sur la base d'un bureau de services ou autrement, sauf en tant qu'offre des Services d'Information à travers ou en relation avec la plateforme ou le produit de l'Utilisateur et non sur une base autonome ; ou (iv) utiliser la Solution autrement que prévu dans les présentes. - 2.3 ^^Propriété^^. DZF conserve tous les droits, titres et intérêts, y compris les droits de propriété intellectuelle, dans et sur la Solution. + 2.3 ^^Propriété^^. DZF conserve tous les droits, titres et intérêts, y compris les droits de propriété intellectuelle, relatifs à la Solution. - 3 RETOUR D'EXPÉRIENCE. - DZF peut périodiquement demander à l'Utilisateur de fournir, et l'Utilisateur accepte de fournir à DZF, des retours d'expérience concernant l'utilisation, le fonctionnement et la fonctionnalité de la Solution («Retours d'Expérience»). L'Utilisateur accorde par les présentes à DZF un droit et une licence non exclusifs, mondiaux, perpétuels, irrévocables, libres de redevances, entièrement payés, entièrement sous-licenciables et transférables pour utiliser et incorporer les Retours d'Expérience dans tout produit et service, pour fabriquer, utiliser, vendre, offrir à la vente, importer et autrement exploiter ces produits et services, et autrement utiliser, copier, distribuer et autrement exploiter les Retours d'Expérience sans restriction. + 3 RETOURS D'EXPÉRIENCE. + DZF peut périodiquement demander à l'Utilisateur de fournir, et l'Utilisateur accepte de fournir à DZF, des retours d'expérience concernant l'utilisation, le fonctionnement et les fonctionnalités de la Solution (« Retours d'expérience »). L'Utilisateur accorde par les présentes à DZF un droit et une licence non exclusifs, mondiaux, perpétuels, irrévocables, libres de redevances, entièrement payés, entièrement sous-licenciables et transférables pour utiliser et incorporer les Retours d'expérience dans tout produit et service, pour fabriquer, utiliser, vendre, offrir à la vente, importer et exploiter autrement ces produits et services, et pour utiliser, copier, distribuer et exploiter autrement les Retours d'expérience sans restriction. 4. DURÉE ET RÉSILIATION. - 4.1 ^^Durée^^. Le présent Contrat prendra effet à compter de la Date d'Effet et restera en vigueur pendant toute la Période d'Évaluation. L'une ou l'autre partie peut résilier le présent Contrat immédiatement pour des raisons de commodité, pour quelque raison ou sans raison que ce soit, moyennant un préavis écrit à l'autre partie (l'e-mail étant suffisant). + 4.1 ^^Durée^^. Le présent Accord prendra effet à la Date d'Effet et restera pleinement en vigueur pendant la Période d'Évaluation. Chaque partie peut résilier le présent Accord immédiatement pour convenance, pour quelque raison que ce soit ou sans raison, sur notification écrite à l'autre partie (un courriel suffisant). - 4.1 ^^Effets de la Résiliation^^. À la résiliation du présent Contrat pour quelque raison que ce soit : (i) les droits accordés à l'Utilisateur dans les présentes prendront fin immédiatement ; (ii) l'Utilisateur cessera immédiatement toute utilisation de la Solution et retournera ou détruira toute Documentation et tout Logiciel DZ sous son contrôle ; (iii) chaque partie retournera ou détruira promptement toutes les Informations Confidentielles et biens de l'autre partie ; et (iv) les Sections 2.2, 2.3, 3, 4.2 et 5 à 8 survivront. + 4.1 ^^Effets de la Résiliation^^. En cas de résiliation du présent Accord pour quelque raison que ce soit : (i) les droits accordés à l'Utilisateur en vertu des présentes prendront fin immédiatement ; (ii) l'Utilisateur cessera immédiatement toute utilisation de la Solution et restituera ou détruira toute Documentation et tout Logiciel DZ sous son contrôle ; (iii) chaque partie restituera ou détruira rapidement toutes les Informations Confidentielles et les biens de l'autre partie ; et (iv) les Sections 2.2, 2.3, 3, 4.2 et 5 à 8 survivront. 5. CONFIDENTIALITÉ. - Chaque partie accepte qu'elle utilisera les Informations Confidentielles de l'autre partie uniquement pour exécuter ses obligations et exercer ses droits en vertu du présent Contrat et qu'elle ne divulguera pas, ni ne permettra la divulgation de celles-ci, sauf dans la mesure autorisée par les présentes. Cependant, l'une ou l'autre partie peut divulguer des Informations Confidentielles à son personnel, ses avocats et autres représentants qui ont besoin d'en connaître et sont liés par des obligations de confidentialité au moins aussi protectrices que celles énoncées dans le présent Contrat ; et tel que requis par la loi (auquel cas la partie réceptrice fournira à la partie divulgatrice un préavis avant de procéder à une telle divulgation et l'occasion de contester cette divulgation, et minimisera cette divulgation dans la mesure permise par la loi applicable). Les obligations de confidentialité énoncées dans cette Section 5 ne s'appliqueront pas aux informations qui : (a) sont ou deviennent généralement connues ou accessibles au public sans faute de la partie réceptrice ; (b) étaient dûment connues de la partie réceptrice, sans restriction, avant la divulgation par la partie divulgatrice ; (c) ont été dûment divulguées à la partie réceptrice, sans restriction, par une autre personne ayant l'autorité légale de le faire ; ou (d) sont développées indépendamment par la partie réceptrice sans utiliser ni référencer les Informations Confidentielles de la partie divulgatrice. Chaque partie accepte d'exercer la diligence raisonnable pour protéger les Informations Confidentielles de l'autre partie contre toute utilisation et divulgation non autorisées. En cas de violation réelle ou menacée des dispositions de cette Section ou des licences contenues dans les présentes, la partie non violante aura droit à une injonction immédiate et à tout autre recours équitable, sans renoncer à tout autre droit ou recours dont elle dispose. L'Utilisateur est responsable du maintien de la Solution et du secret de tout mot de passe, phrase de passe ou code donnant accès à la Solution en tant qu'Informations Confidentielles de DZF. Rien dans les présentes ne limite ou ne restreint le droit ou la capacité de DZF d'utiliser les données relatives aux performances, à la disponibilité, à l'utilisation, à l'intégrité et à la sécurité de la Solution. Si l'une ou l'autre partie viole, ou menace de violer les dispositions de cette Section 5, chaque partie accepte que la partie non violante n'aura aucun recours adéquat en droit et est donc en droit d'une injonction immédiate et d'autres mesures équitables, sans cautionnement et sans nécessité de démontrer des dommages monétaires réels. + Chaque partie accepte qu'elle utilisera les Informations Confidentielles de l'autre partie uniquement pour exécuter ses obligations et exercer ses droits en vertu du présent Accord et qu'elle ne les divulguera pas, ni ne permettra leur divulgation, sauf autorisation contraire prévue aux présentes. Toutefois, chaque partie peut divulguer des Informations Confidentielles à son personnel, ses avocats et autres représentants ayant un besoin de savoir et liés par des obligations de confidentialité au moins aussi protectrices que celles énoncées dans le présent Accord ; et tel que requis par la loi (auquel cas la partie réceptrice fournira à la partie divulgatrice un préavis et la possibilité de contester une telle divulgation, et minimisera cette divulgation dans la mesure permise par la loi applicable). Les obligations de confidentialité de la présente Section 5 ne s'appliqueront pas aux informations qui : (a) sont ou deviennent généralement connues ou publiquement disponibles sans faute de la partie réceptrice ; (b) étaient dûment connues de la partie réceptrice, sans restriction, avant la divulgation par la partie divulgatrice ; (c) ont été dûment divulguées à la partie réceptrice, sans restriction, par une autre personne ayant l'autorité légale de le faire ; ou (d) sont développées indépendamment par la partie réceptrice sans utilisation ni référence aux Informations Confidentielles de la partie divulgatrice. Chaque partie accepte d'exercer une diligence raisonnable pour protéger les Informations Confidentielles de l'autre partie contre toute utilisation et divulgation non autorisées. En cas de violation réelle ou menacée des dispositions de la présente Section ou des licences contenues dans les présentes, la partie non contrevenante sera en droit de demander une injonction immédiate et tout autre recours en équité, sans renoncer à aucun autre droit ou recours dont elle dispose. L'Utilisateur est responsable du maintien de la Solution et du secret de tout mot de passe, phrase de récupération ou code donnant accès à la Solution en tant qu'Informations Confidentielles de DZF. Rien dans les présentes ne limite ni ne restreint le droit ou la capacité de DZF d'utiliser des données relatives à la performance, la disponibilité, l'utilisation, l'intégrité et la sécurité de la Solution. Si l'une des parties viole ou menace de violer les dispositions de la présente Section 5, chaque partie convient que la partie non contrevenante n'aura aucun recours adéquat en droit et est donc en droit d'obtenir une injonction immédiate et tout autre recours en équité, sans caution et sans nécessité de démontrer des dommages pécuniaires réels. 6. EXCLUSION DE GARANTIE ; LIMITATION DE RESPONSABILITÉ. - 6.1 ^^EXCLUSION DE GARANTIE^^. LA SOLUTION EST FOURNIE « EN L'ÉTAT » SANS AUCUNE GARANTIE D'AUCUNE SORTE. DZF NE FOURNIT AUCUNE GARANTIE, QU'ELLE SOIT EXPRESSE, IMPLICITE, LÉGALE OU AUTRE EN CE QUI CONCERNE LA SOLUTION ET LA DOCUMENTATION, Y COMPRIS LEUR ÉTAT, LEUR CONFORMITÉ À TOUTE REPRÉSENTATION OU DESCRIPTION, ET DZF EXCLUT SPÉCIFIQUEMENT TOUTES LES GARANTIES IMPLICITES DE QUALITÉ MARCHANDE, D'ADÉQUATION À UN USAGE PARTICULIER, DE TITRE ET DE NON-CONTREFAÇON. + 6.1 ^^EXCLUSION DE GARANTIE^^. LA SOLUTION EST FOURNIE « EN L'ÉTAT » SANS GARANTIE D'AUCUNE SORTE. DZF NE FAIT AUCUNE GARANTIE, QU'ELLE SOIT EXPRESSE, IMPLICITE, LÉGALE OU AUTRE, CONCERNANT LA SOLUTION ET LA DOCUMENTATION, Y COMPRIS LEUR ÉTAT, LEUR CONFORMITÉ À TOUTE REPRÉSENTATION OU DESCRIPTION, ET DZF EXCLUT EXPRESSÉMENT TOUTES LES GARANTIES IMPLICITES DE QUALITÉ MARCHANDE, D'ADÉQUATION À UN USAGE PARTICULIER, DE TITRE ET DE NON-CONTREFAÇON. 6.2 ^^LIMITATION DE RESPONSABILITÉ^^. - SAUF POUR UNE VIOLATION DES SECTIONS 2.1, 2.2 ET 5, EN AUCUN CAS L'UNE OU L'AUTRE PARTIE NE SERA RESPONSABLE ENVERS L'AUTRE POUR DES DOMMAGES INDIRECTS, ACCESSOIRES, SPÉCIAUX OU AUTRES DOMMAGES CONSÉCUTIFS, Y COMPRIS SANS LIMITATION LES DOMMAGES POUR PERTE DE BÉNÉFICES OU D'UTILISATION OU DE PERTE DE DONNÉES, SUBIS PAR VOUS OU PAR UN TIERS, DÉCOULANT DE OU LIÉS AU PRÉSENT CONTRAT QU'IL S'AGISSE D'UNE ACTION CONTRACTUELLE, DÉLICTUELLE OU AUTRE, MÊME SI L'AUTRE PARTIE A ÉTÉ INFORMÉE DE LA POSSIBILITÉ DE TELS DOMMAGES. EN AUCUN CAS LA RESPONSABILITÉ GLOBALE DE DZF DÉCOULANT DE OU LIÉE AU PRÉSENT CONTRAT N'EXCÉDERA CENT DOLLARS (\$100), QU'IL S'AGISSE D'UNE ACTION CONTRACTUELLE, DÉLICTUELLE OU AUTRE. **LES LIMITATIONS CI-DESSUS S'APPLIQUERONT NONOBSTANT L'ÉCHEC DE L'OBJECTIF ESSENTIEL DE TOUT RECOURS LIMITÉ PRÉVU AUX PRÉSENTES.** LES PARTIES CONVIENNENT QUE LES LIMITATIONS CI-DESSUS REPRÉSENTENT UNE RÉPARTITION RAISONNABLE DES RISQUES EN VERTU DU PRÉSENT CONTRAT. + SAUF EN CAS DE VIOLATION DES SECTIONS 2.1, 2.2 ET 5, EN AUCUN CAS L'UNE DES PARTIES NE SERA RESPONSABLE ENVERS L'AUTRE POUR DES DOMMAGES INDIRECTS, ACCESSOIRES, SPÉCIAUX OU AUTRES DOMMAGES CONSÉCUTIFS, Y COMPRIS, SANS LIMITATION, LES DOMMAGES POUR PERTE DE PROFITS OU D'UTILISATION OU PERTE DE DONNÉES, ENCOURUS PAR VOUS OU TOUT TIERS, DÉCOULANT DE OU LIÉS AU PRÉSENT ACCORD, QUE CE SOIT DANS UNE ACTION CONTRACTUELLE, DÉLICTUELLE OU AUTRE, MÊME SI L'AUTRE PARTIE A ÉTÉ INFORMÉE DE LA POSSIBILITÉ DE TELS DOMMAGES. EN AUCUN CAS LA RESPONSABILITÉ GLOBALE DE DZF DÉCOULANT DE OU LIÉE AU PRÉSENT ACCORD NE DÉPASSERA CENT DOLLARS (\$100), QUE CE SOIT DANS UNE ACTION CONTRACTUELLE, DÉLICTUELLE OU AUTRE. **LES LIMITATIONS PRÉCÉDENTES S'APPLIQUERONT NONOBSTANT L'ÉCHEC DE L'OBJECTIF ESSENTIEL DE TOUT RECOURS LIMITÉ PRÉVU AUX PRÉSENTES.** LES PARTIES CONVIENNENT QUE LES LIMITATIONS PRÉCÉDENTES REPRÉSENTENT UNE RÉPARTITION RAISONNABLE DES RISQUES EN VERTU DU PRÉSENT ACCORD. 7. DROIT APPLICABLE. - Le présent Contrat et toutes les questions découlant de ou liées au présent Contrat seront régis, interprétés et construits conformément aux lois des Îles Caïmans. Si une controverse, un différend ou une réclamation survient de ou en relation avec le présent Contrat («Différend»), la partie concernée, selon le cas, doit donner un préavis de 30 jours d'un tel Différend à l'autre partie (le «Avis de Différend»). Si le Différend n'est pas résolu à l'expiration de 30 jours après la signification de l'Avis de Différend, la partie concernée peut engager une procédure d'arbitrage comme prévu dans les présentes. Si le Différend persiste à l'expiration de 30 jours après la signification de l'Avis de Différend, le Différend sera réglé par arbitrage administré par le Centre International de Médiation et d'Arbitrage des Caïmans (CI-MAC) conformément aux Règles d'Arbitrage CI-MAC en vigueur à la date du présent Contrat, lesquelles Règles d'Arbitrage sont réputées être incorporées par référence à cette clause, et régies par la Loi sur l'Arbitrage (telle que modifiée). L'arbitrage aura son siège à George Town, Grand Caïman, Îles Caïmans et sera régi par le droit des Îles Caïmans. La langue de l'arbitrage sera l'anglais. L'arbitrage sera déterminé par un arbitre unique à nommer conformément aux Règles d'Arbitrage. Toute sentence ou décision rendue par l'arbitre sera rédigée par écrit et sera définitive et contraignante pour les parties sans aucun droit d'appel, et le jugement sur toute sentence ainsi obtenu pourra être saisi ou exécuté par tout tribunal compétent. Aucune action en justice ou en équité basée sur une réclamation découlant de ou liée au présent Contrat ne sera intentée devant un tribunal d'une quelconque juridiction. Si un litige ou un arbitrage est nécessaire pour faire respecter les termes du présent Contrat, la partie qui obtient gain de cause aura droit au remboursement de ses honoraires d'avocat par l'autre partie. Chaque partie renonce à tout droit qu'elle pourrait avoir d'invoquer la doctrine du forum non conveniens, d'affirmer qu'elle n'est pas soumise à la compétence de cet arbitrage ou de ces tribunaux ou de s'opposer au lieu dans la mesure où toute procédure est engagée conformément aux présentes. + Le présent Accord et toutes les questions en découlant ou s'y rapportant seront régis, interprétés et construits conformément au droit des Îles Caïmans. En cas de controverse, différend ou réclamation découlant de ou en relation avec le présent Accord (« Différend »), la partie concernée, selon le cas, devra donner un préavis de 30 jours dudit Différend aux autres parties (l'« Avis de Différend »). Si le Différend n'est pas résolu à l'expiration des 30 jours suivant la signification de l'Avis de Différend, la partie concernée peut engager une procédure d'arbitrage telle que prévue aux présentes. Si le Différend persiste à l'expiration des 30 jours suivant la signification de l'Avis de Différend, le Différend sera réglé par arbitrage administré par le Cayman International Mediation & Arbitration Centre (CI-MAC) conformément aux Règles d'Arbitrage CI-MAC (les « Règles d'Arbitrage ») en vigueur à la date du présent Accord, lesquelles Règles d'Arbitrage sont réputées incorporées par référence à la présente clause, et régies par l'Arbitration Act (tel que modifié). Le siège de l'arbitrage sera à George Town, Grand Cayman, Îles Caïmans et sera régi par le droit des Îles Caïmans. La langue de l'arbitrage sera l'anglais. L'arbitrage sera déterminé par un arbitre unique à désigner conformément aux Règles d'Arbitrage. Toute sentence ou décision rendue par l'arbitre sera écrite et sera définitive et contraignante pour les parties sans droit d'appel, et le jugement sur toute sentence ainsi obtenue pourra être enregistré ou exécuté par tout tribunal compétent. Aucune action en droit ou en équité fondée sur une réclamation découlant de ou liée au présent Accord ne sera intentée devant un tribunal de quelque juridiction que ce soit. Si un litige ou un arbitrage est nécessaire pour faire respecter les termes du présent Accord, la partie qui obtient gain de cause aura le droit de se faire rembourser ses frais d'avocat par l'autre partie. Chaque partie renonce à tout droit qu'elle pourrait avoir d'invoquer la doctrine du forum non conveniens, d'affirmer qu'elle n'est pas soumise à la juridiction de cet arbitrage ou de ces tribunaux, ou de s'opposer au lieu dans la mesure où une procédure est engagée conformément aux présentes. 8. DISPOSITIONS GÉNÉRALES. - Le présent Contrat ne peut être transféré ou cédé par l'Utilisateur sans le consentement écrit préalable de DZF. DZF peut librement céder le présent Contrat. Tous les avis devant être envoyés dans les présentes seront envoyés par e-mail (à DZF : legal@doublezero.xyz) et seront considérés comme reçus le lendemain de l'envoi (avec confirmation de transmission). Si une disposition du présent Contrat est jugée invalide ou inapplicable, les dispositions restantes du présent Contrat resteront en vigueur. La renonciation par l'une ou l'autre partie à tout défaut ou violation du présent Contrat ne constituera pas une renonciation à tout autre défaut ou violation ultérieur. Aucune des parties ne sera responsable d'un retard ou d'un manquement dans l'exécution dû à des cas de force majeure, des tremblements de terre, des pénuries d'approvisionnement, des difficultés de transport, des conflits du travail, des émeutes, des guerres, des incendies, des épidémies et des événements similaires échappant à son contrôle, qu'ils soient ou non prévisibles. Le présent Contrat ainsi que toutes les pièces jointes constituent l'accord complet entre les parties et remplacent tous les accords ou représentations antérieurs ou contemporains, écrits ou oraux, concernant l'objet des présentes. Le présent Contrat ne peut être modifié ou amendé que par écrit signé par un représentant dûment autorisé de chaque partie. + Le présent Accord ne peut être transféré ou cédé par l'Utilisateur sans le consentement écrit préalable de DZF. DZF peut librement céder le présent Accord. Toutes les notifications requises en vertu des présentes seront envoyées par courriel (à DZF : legal@doublezero.xyz) et réputées reçues le jour suivant l'envoi (avec confirmation de transmission). Si une disposition du présent Accord est jugée invalide ou inapplicable, les dispositions restantes du présent Accord resteront pleinement en vigueur. La renonciation par l'une des parties à tout manquement ou violation du présent Accord ne constitue pas une renonciation à tout autre manquement ou violation ultérieur. Aucune des parties ne sera responsable de tout retard ou manquement dans l'exécution dû à des cas de force majeure, tremblements de terre, pénuries d'approvisionnement, difficultés de transport, conflits sociaux, émeutes, guerres, incendies, épidémies et événements similaires échappant à son contrôle, qu'ils soient prévisibles ou non. Le présent Accord, ainsi que toute pièce jointe, constitue l'accord complet entre les parties et remplace tout accord ou représentation antérieur ou contemporain, écrit ou oral, concernant l'objet des présentes. Le présent Accord ne peut être modifié ou amendé que par écrit et signé par un représentant dûment autorisé de chaque partie. -### Connexion au Testnet en Mode IBRL +### Connexion au Testnet en mode IBRL !!! Note inline end - Le mode IBRL ne nécessite pas de redémarrer les clients validateurs, car il utilise votre adresse IP publique existante. + Le mode IBRL ne nécessite pas le redémarrage des clients validateurs, car il utilise votre adresse IP publique existante. -Les validateurs Solana Testnet complèteront la connexion au Testnet DoubleZero, qui est décrite sur cette page. +Les validateurs Solana Testnet complèteront la connexion au Testnet DoubleZero, ce qui est détaillé sur cette page. -Chaque validateur Solana possède sa propre **keypair d'identité** ; à partir de celle-ci, extrayez la clé publique connue sous le nom d'**ID de nœud**. Il s'agit de l'empreinte unique du validateur sur le réseau Solana. +Chaque validateur Solana possède son propre **keypair d'identité** ; à partir de celui-ci, extrayez la clé publique connue sous le nom de **node ID**. C'est l'empreinte unique du validateur sur le réseau Solana. -Avec le DoubleZeroID et l'ID de nœud identifiés, vous prouverez la propriété de votre machine. Cela se fait en créant un message incluant le DoubleZeroID signé avec la clé d'identité du validateur. La signature cryptographique résultante sert de preuve vérifiable que vous contrôlez le validateur. +Une fois le DoubleZeroID et le node ID identifiés, vous prouverez la propriété de votre machine. Cela se fait en créant un message qui inclut le DoubleZeroID signé avec la clé d'identité du validateur. La signature cryptographique résultante sert de preuve vérifiable que vous contrôlez le validateur. -Enfin, vous soumettrez une **demande de connexion à DoubleZero**. Cette demande communique : *« Voici mon identité, voici la preuve de propriété, et voici comment j'entends me connecter. »* DoubleZero valide ces informations, accepte la preuve et provisionne l'accès réseau pour le validateur sur DoubleZero. +Enfin, vous soumettrez une **demande de connexion à DoubleZero**. Cette demande communique : *« Voici mon identité, voici la preuve de propriété, et voici comment je souhaite me connecter. »* DoubleZero valide ces informations, accepte la preuve et provisionne l'accès réseau pour le validateur sur DoubleZero. -Ce guide permet à 1 Validateur Principal de s'enregistrer lui-même, et jusqu'à 3 machines de sauvegarde/basculement en même temps. +Ce guide permet d'enregistrer 1 validateur principal et jusqu'à 3 machines de secours/basculement en même temps. ## Prérequis -- CLI Solana installée et dans $PATH -- Pour les validateurs : Permission d'accéder au fichier keypair d'identité du validateur (p. ex., validator-keypair.json) sous l'utilisateur sol -- Pour les validateurs : Vérifier que la clé d'identité du validateur Solana connecté possède au moins 1 SOL -- Les règles de pare-feu permettent les connexions sortantes pour DoubleZero et Solana RPC selon les besoins, y compris GRE (ip proto 47) et BGP (169.254.0.0/16 sur tcp/179) +- Solana CLI installé et dans le $PATH +- Pour les validateurs : Permission d'accès au fichier keypair d'identité du validateur (par ex., validator-keypair.json) sous l'utilisateur sol +- Pour les validateurs : Vérifier que la clé d'identité du validateur Solana connecté dispose d'au moins 1 SOL +- Les règles de pare-feu autorisent les connexions sortantes pour DoubleZero et Solana RPC selon les besoins, y compris + GRE (ip proto 47) et BGP (169.254.0.0/16 sur tcp/179) !!! info - L'ID Validateur sera vérifié par rapport au gossip Solana pour déterminer l'IP cible. L'IP cible et le DoubleZero ID seront ensuite utilisés lors de l'ouverture d'un tunnel GRE entre votre machine et le DoubleZero Device cible. + Le Validator ID sera vérifié via le gossip Solana pour déterminer l'IP cible. L'IP cible et le DoubleZero ID seront ensuite utilisés lors de l'ouverture d'un tunnel GRE entre votre machine et le dispositif DoubleZero cible. - À considérer : Dans le cas où vous avez un ID factice et un ID principal sur la même IP, seul l'ID principal sera utilisé lors de l'enregistrement de la machine. En effet, l'ID factice n'apparaîtra pas dans le gossip et ne pourra donc pas être utilisé pour vérifier l'IP de la machine cible. + À noter : Dans le cas où vous avez un ID factice et un ID principal sur la même IP, seul l'ID principal sera utilisé lors de l'enregistrement de la machine. Cela s'explique par le fait que l'ID factice n'apparaîtra pas dans le gossip et ne pourra donc pas être utilisé pour vérifier l'IP de la machine cible. -## 1. Configuration de l'Environnement +## 1. Confirmer le réseau client -Veuillez suivre les instructions de [configuration](setup.md) avant de procéder. +Veuillez suivre les instructions de [configuration](setup.md) avant de continuer. Installez les paquets **Testnet** — Testnet et Mainnet-Beta utilisent des dépôts de paquets différents. -La dernière étape de la configuration consistait à se déconnecter du réseau. Cela garantit qu'un seul tunnel est ouvert sur votre machine vers DoubleZero, et que ce tunnel est sur le bon réseau. +La dernière étape de la configuration consistait à se déconnecter du réseau. Ceci afin de s'assurer qu'un seul tunnel est ouvert sur votre machine vers DoubleZero, et que ce tunnel est sur le bon réseau. -
+Confirmez que le client est sur testnet : -Pour configurer la CLI Client DoubleZero (`doublezero`) et le daemon (`doublezerod`) afin de se connecter au **testnet DoubleZero** : ```bash -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" -``` -Vous devriez voir la sortie suivante : -``` -✅ doublezerod configured for environment testnet +doublezero status ``` +La colonne `Network` devrait afficher `testnet`. Si elle affiche `mainnet-beta`, ou si vous avez installé le mauvais paquet, utilisez le commutateur copier-coller dans [dépannage](troubleshooting.md#issue-wrong-doublezero-environment). + Après environ 30 secondes, vous verrez les dispositifs DoubleZero disponibles : @@ -119,11 +119,7 @@ doublezero latency 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 sortie du mainnet sera identique dans sa structure, mais avec beaucoup plus de dispositifs disponibles. - - - +La sortie mainnet sera identique dans sa structure, mais avec beaucoup plus de dispositifs disponibles. ## 2. Ouvrir le port 44880 @@ -140,7 +136,7 @@ sudo iptables -A OUTPUT -o doublezero0 -p udp --dport 44880 -j ACCEPT
-notez les flags `-i doublezero0`, `-o doublezero0` qui restreignent cette règle uniquement à l'interface DoubleZero +notez les options `-i doublezero0`, `-o doublezero0` qui limitent cette règle à l'interface DoubleZero uniquement Ou UFW comme suit : @@ -153,25 +149,25 @@ sudo ufw allow out on doublezero0 to any port 44880 proto udp -notez les flags `in on doublezero0`, `out on doublezero0` qui restreignent cette règle uniquement à l'interface DoubleZero +notez les options `in on doublezero0`, `out on doublezero0` qui limitent cette règle à l'interface DoubleZero uniquement -## 3. Attester la Propriété du Validateur +## 3. Attester la propriété du validateur
-Avec votre environnement DoubleZero configuré, il est maintenant temps d'attester la propriété de votre Validateur. +Avec votre environnement DoubleZero configuré, il est maintenant temps d'attester de la propriété de votre validateur. -Le DoubleZero ID que vous avez créé lors de la [configuration](setup.md) de votre validateur principal doit être utilisé sur toutes les machines de sauvegarde. +Le DoubleZero ID que vous avez créé lors de la [configuration](setup.md) de votre validateur principal doit être utilisé sur toutes les machines de secours. -L'ID sur votre machine principale peut être trouvé avec `doublezero address`. Le même ID doit être dans `~/.config/doublezero/id.json` sur toutes les machines du cluster. +L'ID sur votre machine principale peut être trouvé avec `doublezero address`. Le même ID doit se trouver dans `~/.config/doublezero/id.json` sur toutes les machines du cluster. -Pour accomplir cela, vous vérifierez d'abord que la machine sur laquelle vous exécutez les commandes est votre **Validateur Principal** avec : +Pour ce faire, vous vérifierez d'abord que la machine depuis laquelle vous exécutez les commandes est votre **validateur principal** avec : ``` doublezero-solana passport find-validator -ut ``` -Cela vérifie que le validateur est enregistré dans le gossip et apparaît dans le planning des leaders. +Cela vérifie que le validateur est enregistré dans le gossip et apparaît dans le calendrier des leaders. Sortie attendue : @@ -186,10 +182,10 @@ In Leader scheduler ✅ This validator can connect as a primary in DoubleZero 🖥️ 💎. It is a leader scheduled validator. ``` !!! info - Le même workflow est utilisé pour une ou plusieurs machines. + Le même flux de travail est utilisé pour une ou plusieurs machines. Pour enregistrer une seule machine, excluez les arguments "--backup-validator-ids" ou "backup_ids=" de toutes les commandes de cette page. -Maintenant, sur toutes les machines de sauvegarde sur lesquelles vous avez l'intention d'exécuter votre **Validateur Principal**, exécutez ce qui suit : +Maintenant, sur toutes les machines de secours sur lesquelles vous prévoyez d'exécuter votre **validateur principal**, exécutez la commande suivante : ``` doublezero-solana passport find-validator -ut @@ -207,18 +203,18 @@ 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. ``` -Cette sortie est attendue. Le nœud de sauvegarde ne peut pas être dans le planning des leaders au moment de la création du pass. +Cette sortie est attendue. Le nœud de secours ne peut pas être dans le calendrier des leaders au moment de la création du pass. -Vous allez maintenant exécuter cette commande sur **toutes les machines de sauvegarde** sur lesquelles vous prévoyez d'utiliser le compte de vote et l'identité de votre **Validateur Principal**. +Vous allez maintenant exécuter cette commande sur **toutes les machines de secours** sur lesquelles vous prévoyez d'utiliser le compte de vote et l'identité de votre **validateur principal**.
-### Préparer la Connexion +### Préparer la connexion -Exécutez la commande suivante sur la machine du **Validateur Principal**. C'est la machine sur laquelle vous avez une mise en jeu active, qui est dans le planning des leaders avec votre ID de validateur principal dans le gossip Solana sur la machine depuis laquelle vous exécutez la commande : +Exécutez la commande suivante sur la machine du **validateur principal**. Il s'agit de la machine sur laquelle vous avez du stake actif, qui est dans le calendrier des leaders avec l'ID de votre validateur principal dans le gossip Solana sur la machine depuis laquelle vous exécutez la commande : ``` doublezero-solana passport prepare-validator-access -ut \ @@ -267,13 +263,13 @@ Notez la sortie à la fin de cette commande. C'est la structure pour l'étape su
-## 4. Générer la Signature +## 4. Générer la signature
À la fin de la dernière étape, nous avons reçu une sortie pré-formatée pour `solana sign-offchain-message` -À partir de la sortie ci-dessus, nous allons exécuter cette commande sur la machine du **Validateur Principal**. +À partir de la sortie ci-dessus, nous exécuterons cette commande sur la machine du **validateur principal**. ``` solana sign-offchain-message \ @@ -284,101 +280,4 @@ Notez la sortie à la fin de cette commande. C'est la structure pour l'étape su **Sortie :** ``` - Signature111111rrNykTByK2DgJET3U6MdjSa7xgFivS9AHyhdSG6AbYTeczUNJSjYPwBGqpmNGkoWk9NvS3W7 -``` - -
- -## 5. Initier une Demande de Connexion dans DoubleZero - -
- -Utilisez la commande `request-validator-access` pour créer un compte sur Solana pour la demande de connexion. L'agent DoubleZero Sentinel détecte le nouveau compte, valide son identité et sa signature, et crée le pass d'accès dans DoubleZero pour que le serveur puisse établir une connexion. - - -Utilisez l'ID de nœud, le DoubleZeroID et la signature. - -!!! note inline end - Dans cet exemple, nous utilisons `-k /home/user/.config/solana/id.json` pour trouver l'identité du validateur. Utilisez l'emplacement approprié pour votre déploiement local. - -``` -doublezero-solana passport request-validator-access -k -ut \ ---primary-validator-id ValidatorIdentity111111111111111111111111111 \ ---backup-validator-ids ValidatorIdentity222222222222222222222222222,ValidatorIdentity33333333333333333333333333,ValidatorIdentity444444444444444444444444444 \ ---signature Signature111111rrNykTByK2DgJET3U6MdjSa7xgFivS9AHyhdSG6AbYTeczUNJSjYPwBGqpmNGkoWk9NvS3W7 --doublezero-address YourDoubleZeroAddress11111111111111111111111111111 -``` - -**Sortie :** - -Cette sortie peut être utilisée pour voir la transaction sur un explorateur Solana. Assurez-vous de changer l'explorateur sur testnet. Cette vérification est optionnelle. - -```bash -Request Solana validator access: Transaction22222222VaB8FMqM2wEBXyV5THpKRXWrPtDQxmTjHJHiAWteVYTsc7Gjz4hdXxvYoZXGeHkrEayp -``` - -En cas de succès, DoubleZero enregistrera le principal avec ses sauvegardes. Vous pouvez maintenant basculer entre les IP enregistrées dans le pass d'accès. DoubleZero maintiendra automatiquement la connectivité lors du basculement vers les nœuds de sauvegarde enregistrés de cette manière. - -
- -## 6. Se Connecter en Mode IBRL - -
- -Sur le serveur, avec l'utilisateur qui se connectera à DoubleZero, exécutez la commande `connect` pour établir la connexion à DoubleZero. - -``` -doublezero connect ibrl -``` - -Vous devriez voir une sortie indiquant le provisionnement, telle que : - -``` -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 -``` -Attendez une minute que le tunnel GRE finisse de s'établir. Jusqu'à ce que le tunnel GRE soit configuré, votre sortie de statut peut indiquer "down" ou "Unknown" - -Vérifiez votre connexion : - -```bash -doublezero status -``` - -**Sortie :** -!!! note inline end - Examinez cette sortie. Notez que le `Tunnel src` et le `DoubleZero IP` correspondent à l'adresse IPv4 publique de votre machine. - - -```bash - 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 statut `up` signifie que vous êtes connecté avec succès. - -Vous pourrez voir les routes propagées par d'autres utilisateurs sur DoubleZero en exécutant : - -``` -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 -... -``` - -
- -### Prochaine Étape : Publication de Shreds via Multicast - -Si vous avez terminé cette configuration et prévoyez de publier des shreds via multicast, passez à la [page suivante](Validator%20Multicast%20Connection.md). + Signature111111rrNykT \ No newline at end of file diff --git a/docs/DZ Testnet Connection.it.md b/docs/DZ Testnet Connection.it.md index 5aab605..ed6e5cc 100644 --- a/docs/DZ Testnet Connection.it.md +++ b/docs/DZ Testnet Connection.it.md @@ -1,107 +1,111 @@ -# Connessione Validatore Testnet in Modalità IBRL -!!! warning "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." +--- +description: Connetti un validatore Solana Testnet a DoubleZero in modalità IBRL, incluso l'accordo di valutazione per testnet e i passaggi per la connessione. +--- -??? warning "Connettendomi al testnet DoubleZero accetto i termini del Contratto di Valutazione indicati qui (clicca per espandere)" +# Connessione Validatore Testnet in Modalità IBRL +??? warning "Collegandomi alla testnet di DoubleZero accetto i termini dell'Accordo di Valutazione qui stabilito (clicca per espandere)" DoubleZero Testnet - Contratto di Valutazione + Accordo di Valutazione - Accedendo o utilizzando la Soluzione (definita di seguito), accetti a partire dalla prima data di tale accesso (la "**Data di Efficacia**") che il presente Contratto di Valutazione (il "**Contratto**") stabilisce i termini e le condizioni in base ai quali DoubleZero Foundation ("**DZF**") ti fornirà ("**Utente**" o "**tu**") l'accesso alla Soluzione su base di valutazione. In considerazione delle reciproche promesse contenute nel presente, accetti quanto segue: + Accedendo o utilizzando la Soluzione (come definita di seguito), accetti a partire dalla + prima data di tale accesso (la "**Data di Efficacia**") che questo + Accordo di Valutazione (l'"**Accordo**") stabilisce i termini e + le condizioni in base ai quali DoubleZero Foundation ("**DZF**") fornirà + a te ("**Utente**" o "**tu**") l'accesso alla Soluzione su base di + valutazione. In considerazione delle reciproche promesse qui contenute, accetti + quanto segue: 1. DEFINIZIONI. - 1.1 "**Informazioni Riservate**" indica qualsiasi informazione divulgata da una parte all'altra che sia designata come riservata, o che dovrebbe altrimenti essere intesa come riservata, incluse, ma non limitate a, la Soluzione, piani di prodotto, piani aziendali, segreti commerciali, tecnologia o qualsiasi altra informazione proprietaria. + 1.1 "**Informazioni Riservate**" indica qualsiasi informazione divulgata da una parte all'altra che sia designata come riservata, o che dovrebbe altrimenti essere intesa come riservata, incluse ma non limitate a, la Soluzione, piani di prodotto, piani aziendali, segreti commerciali, tecnologia, o qualsiasi altra informazione proprietaria. - 1.2 "**Soluzione**" indica la versione testnet dell'infrastruttura di rete ad alte prestazioni DoubleZero per progetti web3 ("**Testnet**") e il relativo servizio di filtraggio al margine con larghezza di banda integrata ("**Servizio Informativo**"), il Software DZ (definito di seguito), tutti i materiali forniti da DZF relativi al Software DZ ("**Documentazione**") e altri materiali che DZF fornisce all'Utente ai sensi del presente. + 1.2 "**Soluzione**" indica la versione testnet dell'infrastruttura di rete ad alte prestazioni DoubleZero per progetti web3 ("**Testnet**") e il relativo servizio di filtraggio perimetrale con larghezza di banda integrata ("**Servizio Informativo**"), il Software DZ (come definito di seguito), qualsiasi materiale fornito da DZF relativo al Software DZ ("**Documentazione**"), e altri materiali che DZF fornisce all'Utente ai sensi del presente accordo. - 2. ACCESSO. + 2. ACCESSO. - 2.1 ^^Accesso alla Soluzione^^. Subordinatamente ai termini e alle condizioni del presente Contratto, DZF fornirà all'Utente l'accesso alla Soluzione tramite Internet. L'accesso dell'Utente è un uso limitato, non esclusivo e non trasferibile della Soluzione per consentire all'Utente di valutare il Servizio Informativo. Con riferimento a qualsiasi software che comprende la Soluzione ("**Software DZ**"), DZF concede all'Utente una licenza limitata, revocabile, durante il Periodo di Valutazione, per copiare, scaricare, fare un numero ragionevole di copie, eseguire e distribuire (ove applicabile) tale Software DZ esclusivamente come previsto dalla Documentazione. + 2.1 ^^Accesso alla Soluzione^^. Fatti salvi i termini e le condizioni del presente Accordo, DZF fornirà all'Utente l'accesso alla Soluzione tramite Internet. L'accesso dell'Utente è un uso non esclusivo, non trasferibile e limitato della Soluzione per consentire all'Utente di valutare esclusivamente il Servizio Informativo. Per quanto riguarda qualsiasi software che compone la Soluzione ("**Software DZ**"), DZF concede all'Utente una licenza limitata e revocabile, durante il Periodo di Valutazione, per copiare, scaricare, effettuare un numero ragionevole di copie, eseguire e implementare (se applicabile) tale Software DZ esclusivamente come previsto dalla Documentazione. - 2.2 ^^Restrizioni^^. L'Utente può utilizzare la Soluzione in conformità al presente Contratto dalla Data di Efficacia fino alla risoluzione da parte di DZF (il "**Periodo di Valutazione**"). L'Utente comprende che qualsiasi diritto di utilizzare la Soluzione oltre il Periodo di Valutazione sarà soggetto a un accordo commerciale separato tra le parti al riguardo, incluso il pagamento di commissioni. L'Utente non dovrà, e non dovrà consentire a terzi di: (i) modificare o creare opere derivate basate sulla Soluzione o su qualsiasi sua parte; (ii) riprodurre la Soluzione salvo quanto espressamente consentito dal presente Contratto; (iii) sublicenziare, distribuire, vendere, prestare, affittare, trasferire o concedere diritti sulla Soluzione o fornire accesso alla Soluzione a terzi, su base di service bureau o altrimenti; o (iv) utilizzare la Soluzione diversamente da quanto previsto nel presente. + 2.2 ^^Restrizioni^^. L'Utente può utilizzare la Soluzione in conformità con il presente Accordo dalla Data di Efficacia fino alla risoluzione da parte di DZF (il "**Periodo di Valutazione**"). L'Utente comprende che qualsiasi diritto di utilizzo della Soluzione oltre il Periodo di Valutazione sarà soggetto a un separato accordo commerciale tra le parti a tal riguardo, incluso il pagamento di corrispettivi. L'Utente non dovrà, e non permetterà a terzi di: (i) modificare o creare opere derivate basate sulla Soluzione o su qualsiasi sua parte; (ii) riprodurre la Soluzione salvo quanto espressamente consentito dal presente Accordo; (iii) sublicenziare, distribuire, vendere, prestare, noleggiare, dare in locazione, trasferire o concedere diritti su tutta o parte della Soluzione o fornire accesso alla Soluzione a terzi, su base di service bureau o in altro modo, salvo come offerta dei Servizi Informativi attraverso o in connessione con la piattaforma o il prodotto dell'Utente e non su base autonoma; o (iv) utilizzare la Soluzione in modo diverso da quanto previsto nel presente documento. - 2.3 ^^Proprietà^^. DZF conserva tutti i diritti, titoli e interessi, inclusi i diritti di proprietà intellettuale, nella e sulla Soluzione. + 2.3 ^^Proprietà^^. DZF conserva tutti i diritti, titoli e interessi, inclusi i diritti di proprietà intellettuale, sulla Soluzione. - 3. FEEDBACK. - DZF può periodicamente richiedere che l'Utente fornisca, e l'Utente accetta di fornire a DZF, feedback sull'uso, il funzionamento e la funzionalità della Soluzione ("Feedback"). L'Utente concede a DZF un diritto e una licenza non esclusivi, mondiali, perpetui, irrevocabili, esenti da royalty, completamente pagati, completamente sublicenziabili e trasferibili per utilizzare e incorporare il Feedback in qualsiasi prodotto e servizio, per produrre, usare, vendere, offrire in vendita, importare e altrimenti sfruttare tali prodotti e servizi, e per altrimenti usare, copiare, distribuire e sfruttare il Feedback senza restrizioni. + 3 FEEDBACK. + DZF può periodicamente richiedere che l'Utente fornisca, e l'Utente accetta di fornire a DZF, feedback riguardanti l'uso, il funzionamento e le funzionalità della Soluzione ("Feedback"). L'Utente concede a DZF un diritto e una licenza non esclusivi, mondiali, perpetui, irrevocabili, esenti da royalty, interamente pagati, interamente sublicenziabili e trasferibili per utilizzare e incorporare il Feedback in qualsiasi prodotto e servizio, per realizzare, utilizzare, vendere, offrire in vendita, importare e altrimenti sfruttare tali prodotti e servizi, e per altrimenti utilizzare, copiare, distribuire e sfruttare il Feedback senza restrizioni. 4. DURATA E RISOLUZIONE. - 4.1 ^^Durata^^. Il presente Contratto avrà inizio alla Data di Efficacia e rimarrà in piena vigenza ed efficacia per il Periodo di Valutazione. Entrambe le parti possono risolvere il presente Contratto immediatamente per convenienza, per qualsiasi motivo o senza motivo, mediante notifica scritta all'altra parte (l'e-mail è sufficiente). + 4.1 ^^Durata^^. Il presente Accordo entrerà in vigore dalla Data di Efficacia e rimarrà pienamente in vigore per il Periodo di Valutazione. Ciascuna parte può risolvere immediatamente il presente Accordo per convenienza, per qualsiasi motivo o senza motivo, previa comunicazione scritta all'altra parte (e-mail sufficiente). - 4.1 ^^Effetti della Risoluzione^^. Alla risoluzione del presente Contratto per qualsiasi motivo: (i) i diritti concessi all'Utente ai sensi del presente cesseranno immediatamente; (ii) l'Utente dovrà immediatamente interrompere qualsiasi uso della Soluzione e restituire o distruggere tutta la Documentazione e qualsiasi Software DZ sotto il suo controllo; (iii) ciascuna parte dovrà prontamente restituire o distruggere tutte le Informazioni Riservate e la proprietà dell'altra parte; e (iv) le Sezioni 2.2, 2.3, 3, 4.2 e da 5 a 8 sopravvivranno. + 4.1 ^^Effetti della Risoluzione^^. In caso di risoluzione del presente Accordo per qualsiasi motivo: (i) i diritti concessi all'Utente ai sensi del presente Accordo cesseranno immediatamente; (ii) l'Utente dovrà immediatamente interrompere qualsiasi utilizzo della Soluzione e dovrà restituire o distruggere tutta la Documentazione e qualsiasi Software DZ sotto il suo controllo; (iii) ciascuna parte dovrà prontamente restituire o distruggere tutte le Informazioni Riservate e le proprietà dell'altra parte; e (iv) le Sezioni 2.2, 2.3, 3, 4.2 e da 5 a 8 sopravvivranno. 5. RISERVATEZZA. - Ciascuna parte accetta di utilizzare le Informazioni Riservate dell'altra parte esclusivamente per adempiere ai propri obblighi ed esercitare i propri diritti ai sensi del presente Contratto e non divulgherà, né permetterà la divulgazione, delle stesse, salvo quanto altrimenti consentito nel presente. Tuttavia, ciascuna parte può divulgare le Informazioni Riservate al proprio personale, avvocati e altri rappresentanti che abbiano necessità di conoscerle e siano vincolati da obblighi di riservatezza non meno protettivi di quelli stabiliti nel presente Contratto; e come richiesto dalla legge. + Ciascuna parte conviene che utilizzerà le Informazioni Riservate dell'altra parte esclusivamente per adempiere ai propri obblighi ed esercitare i propri diritti ai sensi del presente Accordo e non divulgherà, né permetterà la divulgazione delle stesse, salvo quanto altrimenti consentito nel presente documento. Tuttavia, ciascuna parte può divulgare le Informazioni Riservate al proprio personale, avvocati e altri rappresentanti che abbiano necessità di conoscerle e siano vincolati da obblighi di riservatezza non meno protettivi di quelli stabiliti nel presente Accordo; e come richiesto dalla legge (nel qual caso la parte ricevente fornirà alla parte divulgante preavviso e opportunità di contestare tale divulgazione, e limiterà tale divulgazione nella misura consentita dalla legge applicabile). Gli obblighi di riservatezza nella presente Sezione 5 non si applicheranno alle informazioni che: (a) sono o diventano generalmente note o pubblicamente disponibili senza colpa della parte ricevente; (b) erano debitamente note alla parte ricevente, senza restrizioni, prima della divulgazione da parte della parte divulgante; (c) sono state debitamente divulgate alla parte ricevente, senza restrizioni, da un'altra persona con l'autorità legale per farlo; o (d) sono sviluppate indipendentemente dalla parte ricevente senza uso o riferimento alle Informazioni Riservate della parte divulgante. Ciascuna parte si impegna a esercitare la dovuta diligenza nella protezione delle Informazioni Riservate dell'altra parte da uso e divulgazione non autorizzati. In caso di violazione effettiva o minacciata delle disposizioni della presente Sezione o delle licenze qui contenute, la parte non inadempiente avrà diritto di richiedere un provvedimento inibitorio immediato e altri rimedi equitativi, senza rinunciare ad altri diritti o rimedi a sua disposizione. L'Utente è responsabile della manutenzione della Soluzione e della segretezza di qualsiasi password, frase seed o codice che fornisca accesso alla Soluzione come Informazione Riservata di DZF. Nulla nel presente documento limita o restringe il diritto o la capacità di DZF di utilizzare dati riguardanti le prestazioni, la disponibilità, l'utilizzo, l'integrità e la sicurezza della Soluzione. Se una delle parti viola, o minaccia di violare le disposizioni della presente Sezione 5, ciascuna parte conviene che la parte non inadempiente non avrà un rimedio adeguato in diritto e ha pertanto diritto a un provvedimento inibitorio immediato e altri rimedi equitativi, senza cauzione e senza la necessità di dimostrare danni monetari effettivi. - 6. ESCLUSIONE DI GARANZIE; LIMITAZIONE DI RESPONSABILITÀ. + 6. ESCLUSIONE DI GARANZIA; LIMITAZIONE DI RESPONSABILITÀ. - 6.1 ^^ESCLUSIONE DI GARANZIE^^. LA SOLUZIONE VIENE FORNITA "COSÌ COM'È" SENZA GARANZIE DI ALCUN TIPO. DZF NON FORNISCE GARANZIE, ESPRESSE, IMPLICITE, LEGALI O DI ALTRO TIPO CON RIFERIMENTO ALLA SOLUZIONE E ALLA DOCUMENTAZIONE. + 6.1 ^^ESCLUSIONE DI GARANZIA^^. LA SOLUZIONE È FORNITA "COSÌ COM'È" SENZA GARANZIA DI ALCUN TIPO. DZF NON RILASCIA ALCUNA GARANZIA, ESPRESSA, IMPLICITA, LEGALE O DI ALTRO TIPO IN RELAZIONE ALLA SOLUZIONE E ALLA DOCUMENTAZIONE INCLUSE LE LORO CONDIZIONI, CONFORMITÀ A QUALSIASI RAPPRESENTAZIONE O DESCRIZIONE, E DZF ESCLUDE SPECIFICAMENTE TUTTE LE GARANZIE IMPLICITE DI COMMERCIABILITÀ, IDONEITÀ A UNO SCOPO PARTICOLARE, TITOLO E NON VIOLAZIONE. 6.2 ^^LIMITAZIONE DI RESPONSABILITÀ^^. - SALVO PER UNA VIOLAZIONE DELLE SEZIONI 2.1, 2.2 E 5, IN NESSUN CASO ALCUNA PARTE SARÀ RESPONSABILE NEI CONFRONTI DELL'ALTRA PER DANNI INDIRETTI, INCIDENTALI, SPECIALI O ALTRI DANNI CONSEQUENZIALI. IN NESSUN CASO LA RESPONSABILITÀ AGGREGATA DI DZF SUPERERÀ CENTO DOLLARI (\$100). + SALVO PER VIOLAZIONE DELLE SEZIONI 2.1, 2.2 E 5, IN NESSUN CASO NESSUNA DELLE PARTI SARÀ RESPONSABILE NEI CONFRONTI DELL'ALTRA PER DANNI INDIRETTI, INCIDENTALI, SPECIALI O ALTRI DANNI CONSEQUENZIALI, INCLUSI SENZA LIMITAZIONE DANNI PER PERDITA DI PROFITTI O USO O PERDITA DI DATI, SOSTENUTI DA TE O DA QUALSIASI TERZO, DERIVANTI DA O CORRELATI AL PRESENTE ACCORDO SIA IN UN'AZIONE CONTRATTUALE, EXTRACONTRATTUALE O DI ALTRO TIPO, ANCHE SE L'ALTRA PARTE È STATA INFORMATA DELLA POSSIBILITÀ DI TALI DANNI. IN NESSUN CASO LA RESPONSABILITÀ COMPLESSIVA DI DZF DERIVANTE DA O CORRELATA AL PRESENTE ACCORDO SUPERERÀ CENTO DOLLARI (\$100), SIA IN UN'AZIONE CONTRATTUALE, EXTRACONTRATTUALE O DI ALTRO TIPO. **LE SUDDETTE LIMITAZIONI SI APPLICHERANNO NONOSTANTE IL FALLIMENTO DELLO SCOPO ESSENZIALE DI QUALSIASI RIMEDIO LIMITATO PREVISTO DAL PRESENTE DOCUMENTO.** LE PARTI CONVENGONO CHE LE SUDDETTE LIMITAZIONI RAPPRESENTANO UNA RAGIONEVOLE ALLOCAZIONE DEL RISCHIO AI SENSI DEL PRESENTE ACCORDO. 7. LEGGE APPLICABILE. - Il presente Contratto e tutte le questioni derivanti da o relative al presente Contratto saranno regolati, interpretati e costruiti in conformità alle leggi delle Isole Cayman. Le eventuali controversie saranno risolte tramite arbitrato amministrato dal Cayman International Mediation & Arbitration Centre (CI-MAC). + Il presente Accordo e tutte le questioni derivanti da o relative al presente Accordo saranno disciplinati, interpretati e costruiti in conformità con le leggi delle Isole Cayman. Qualora una controversia, disputa o reclamo sorga da o in relazione al presente Accordo ("Controversia"), la parte interessata, come appropriato, deve dare 30 giorni di preavviso di tale Controversia alle altre parti (l'"Avviso di Controversia"). Qualora la Controversia non sia risolta alla scadenza di 30 giorni dalla notifica dell'Avviso di Controversia, la parte interessata può avviare un procedimento arbitrale come qui previsto. Qualora la Controversia permanga alla scadenza di 30 giorni dalla notifica dell'Avviso di Controversia, la Controversia sarà risolta mediante arbitrato amministrato dal Cayman International Mediation & Arbitration Centre (CI-MAC) in conformità con le Regole Arbitrali CI-MAC (le "Regole Arbitrali") in vigore alla data del presente Accordo, le quali Regole Arbitrali si intendono incorporate per riferimento alla presente clausola, e disciplinato dall'Arbitration Act (come modificato). La sede dell'arbitrato sarà George Town, Grand Cayman, Isole Cayman e sarà disciplinato dalla legge delle Isole Cayman. La lingua dell'arbitrato sarà l'inglese. L'arbitrato sarà determinato da un arbitro unico da nominare in conformità con le Regole Arbitrali. Qualsiasi lodo o decisione dell'arbitro sarà redatto per iscritto e sarà definitivo e vincolante per le parti senza alcun diritto di appello, e il giudizio su qualsiasi lodo così ottenuto potrà essere inserito o eseguito da qualsiasi tribunale competente. Nessuna azione legale o in equità basata su qualsiasi pretesa derivante da o correlata al presente Accordo potrà essere intentata presso qualsiasi tribunale di qualsiasi giurisdizione. Se qualsiasi contenzioso o arbitrato è necessario per far rispettare i termini del presente Accordo, la parte vincitrice avrà diritto al rimborso delle spese legali da parte dell'altra parte. Ciascuna parte rinuncia a qualsiasi diritto che possa avere di invocare la dottrina del forum non conveniens, di sostenere di non essere soggetta alla giurisdizione di tale arbitrato o tribunali o di opporsi alla sede nella misura in cui qualsiasi procedimento sia avviato in conformità con il presente documento. 8. DISPOSIZIONI GENERALI. - Il presente Contratto non può essere trasferito o ceduto dall'Utente senza il previo consenso scritto di DZF. DZF può liberamente cedere il presente Contratto. Il presente Contratto, insieme a eventuali allegati, costituisce l'accordo completo tra le parti. + Il presente Accordo non può essere trasferito o ceduto dall'Utente senza il previo consenso scritto di DZF. DZF può cedere liberamente il presente Accordo. Tutte le comunicazioni che devono essere inviate ai sensi del presente documento saranno inviate via e-mail (a DZF: legal@doublezero.xyz) e si considereranno ricevute il giorno successivo all'invio (con conferma di trasmissione). Se una qualsiasi disposizione del presente Accordo è ritenuta invalida o inapplicabile, le restanti disposizioni del presente Accordo rimarranno pienamente in vigore. La rinuncia da parte di una delle parti a qualsiasi inadempienza o violazione del presente Accordo non costituirà rinuncia a qualsiasi altra o successiva inadempienza o violazione. Nessuna delle parti sarà responsabile per qualsiasi ritardo o mancata esecuzione dovuta a cause di forza maggiore, terremoti, carenza di forniture, difficoltà di trasporto, controversie sindacali, sommosse, guerre, incendi, epidemie e eventi simili al di fuori del suo controllo, prevedibili o meno. Il presente Accordo insieme a qualsiasi allegato costituisce l'accordo completo tra le parti e sostituisce tutti gli accordi o le rappresentazioni precedenti o contemporanei, scritti o orali, relativi all'oggetto del presente documento. Il presente Accordo non può essere modificato o emendato se non per iscritto e firmato da un rappresentante debitamente autorizzato di ciascuna parte. -### Connessione al Testnet in Modalità IBRL +### Connessione alla Testnet in Modalità IBRL !!! Note inline end - La modalità IBRL non richiede il riavvio dei client validatori, perché utilizza il tuo indirizzo IP pubblico esistente. + La modalità IBRL non richiede il riavvio dei client del validatore, poiché utilizza il tuo indirizzo IP pubblico esistente. -I validatori Solana Testnet completeranno la connessione al Testnet DoubleZero, che è dettagliata su questa pagina. +I Validatori Solana Testnet completeranno la connessione alla Testnet di DoubleZero, come descritto in dettaglio in questa pagina. -Ogni validatore Solana ha il proprio **keypair di identità**; da questo, estrai la chiave pubblica nota come **node ID**. Questa è l'impronta digitale univoca del validatore sulla rete Solana. +Ogni validatore Solana ha il proprio **keypair di identità**; da questo, si estrae la chiave pubblica nota come **node ID**. Questa è l'impronta univoca del validatore sulla rete Solana. -Con il DoubleZeroID e il node ID identificati, dimostrerai la proprietà della tua macchina. Questo viene fatto creando un messaggio che include il DoubleZeroID firmato con la chiave di identità del validatore. La firma crittografica risultante serve come prova verificabile che controlli il validatore. +Con il DoubleZeroID e il node ID identificati, dovrai dimostrare la proprietà della tua macchina. Questo viene fatto creando un messaggio che include il DoubleZeroID firmato con la chiave di identità del validatore. La firma crittografica risultante serve come prova verificabile che controlli il validatore. -Infine, invierai una **richiesta di connessione a DoubleZero**. Questa richiesta comunica: *"Ecco la mia identità, ecco la prova di proprietà, ed ecco come intendo connettermi."* DoubleZero valida queste informazioni, accetta la prova e fornisce l'accesso alla rete per il validatore su DoubleZero. +Infine, invierai una **richiesta di connessione a DoubleZero**. Questa richiesta comunica: *"Ecco la mia identità, ecco la prova di proprietà, ed ecco come intendo connettermi."* DoubleZero valida queste informazioni, accetta la prova e predispone l'accesso alla rete per il validatore su DoubleZero. -Questa guida consente a 1 Validatore Primario di registrarsi, e fino a 3 macchine di backup/failover contemporaneamente. +Questa guida consente a 1 Validatore Primario di registrarsi e fino a 3 macchine di backup/failover contemporaneamente. ## Prerequisiti - Solana CLI installata e nel $PATH -- Per i validatori: Permesso di accesso al file keypair di identità del validatore (es. validator-keypair.json) sotto l'utente sol -- Per i validatori: Verifica che la chiave Identity del validatore Solana che si connette abbia almeno 1 SOL -- Le regole firewall permettono le connessioni in uscita per DoubleZero e Solana RPC come necessario, inclusi GRE (ip proto 47) e BGP (169.254.0.0/16 su tcp/179) +- Per i validatori: Permesso di accesso al file del keypair di identità del validatore (es. validator-keypair.json) sotto l'utente sol +- Per i validatori: Verificare che la chiave di identità del validatore Solana che si sta collegando abbia almeno 1 SOL +- Le regole del firewall consentono connessioni in uscita per DoubleZero e Solana RPC secondo necessità, inclusi + GRE (ip proto 47) e BGP (169.254.0.0/16 su tcp/179) !!! info - L'ID Validatore verrà verificato con Solana gossip per determinare l'IP target. L'IP target e il DoubleZero ID verranno poi utilizzati per aprire un tunnel GRE tra la tua macchina e il DoubleZero Device target. + Il Validator ID verrà verificato rispetto al gossip di Solana per determinare l'IP di destinazione. L'IP di destinazione e il DoubleZero ID verranno quindi utilizzati per l'apertura di un tunnel GRE tra la tua macchina e il Dispositivo DoubleZero di destinazione. + + Nota: Nel caso in cui tu abbia un ID spazzatura e un ID Primario sullo stesso IP, solo l'ID Primario verrà utilizzato nella registrazione della macchina. Questo perché l'ID spazzatura non apparirà nel gossip e quindi non può essere utilizzato per verificare l'IP della macchina di destinazione. + +## 1. Confermare la rete del client -## 1. Configurazione dell'Ambiente +Segui le istruzioni di [configurazione](setup.md) prima di procedere. Installa i pacchetti **Testnet** — Testnet e Mainnet-Beta utilizzano repository di pacchetti diversi. -Segui le istruzioni di [setup](setup.md) prima di procedere. +L'ultimo passaggio della configurazione era disconnettersi dalla rete. Questo per garantire che solo un tunnel sia aperto sulla tua macchina verso DoubleZero, e che quel tunnel sia sulla rete corretta. -
+Conferma che il client sia su testnet: -Per configurare la CLI DoubleZero Client (`doublezero`) e il daemon (`doublezerod`) per connettersi al **testnet DoubleZero**: ```bash -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" -``` -Dovresti vedere il seguente output: -``` -✅ doublezerod configured for environment testnet +doublezero status ``` +La colonna `Network` dovrebbe mostrare `testnet`. Se mostra `mainnet-beta`, o hai installato il pacchetto sbagliato, usa il cambio rapido copia-incolla nella sezione [risoluzione problemi](troubleshooting.md#issue-wrong-doublezero-environment). + Dopo circa 30 secondi vedrai i dispositivi DoubleZero disponibili: ```bash doublezero latency ``` -Esempio di output (testnet) +Output di esempio (testnet) ```bash doublezero latency pubkey | code | ip | min | max | avg | reachable @@ -115,16 +119,14 @@ doublezero latency 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 ``` -
-L'output del Mainnet sarà identico nella struttura, ma con molti più dispositivi disponibili. - - +L'output di Mainnet sarà identico nella struttura, ma con molti più dispositivi disponibili. - -## 2. Apri la porta 44880 +## 2. Aprire la porta 44880 Gli utenti devono aprire la porta 44880 per utilizzare alcune [funzionalità di routing](https://github.com/malbeclabs/doublezero/blob/main/rfcs/rfc7-client-route-liveness.md). +Per aprire la porta 44880 puoi aggiornare le tabelle IP in questo modo: +
``` @@ -134,9 +136,9 @@ sudo iptables -A OUTPUT -o doublezero0 -p udp --dport 44880 -j ACCEPT
-nota i flag `-i doublezero0`, `-o doublezero0` che limitano questa regola solo all'interfaccia DoubleZero +nota i flag `-i doublezero0`, `-o doublezero0` che limitano questa regola esclusivamente all'interfaccia DoubleZero -O UFW: +Oppure UFW in questo modo:
@@ -147,19 +149,27 @@ sudo ufw allow out on doublezero0 to any port 44880 proto udp
-nota i flag `in on doublezero0`, `out on doublezero0` che limitano questa regola solo all'interfaccia DoubleZero +nota i flag `in on doublezero0`, `out on doublezero0` che limitano questa regola esclusivamente all'interfaccia DoubleZero -## 3. Attesta la Proprietà del Validatore +## 3. Attestare la Proprietà del Validatore
-In ordine per fare questo verificherai prima che la macchina da cui stai eseguendo i comandi sia il tuo **Validatore Primario** con: +Con il tuo Ambiente DoubleZero configurato, è ora il momento di attestare la Proprietà del tuo Validatore. + +Il DoubleZero ID che hai creato nella [configurazione](setup.md) del tuo validatore primario deve essere utilizzato su tutte le macchine di backup. + +L'ID sulla tua macchina primaria può essere trovato con `doublezero address`. Lo stesso ID deve essere presente in `~/.config/doublezero/id.json` su tutte le macchine del cluster. + +Per fare questo, prima verificherai che la macchina da cui stai eseguendo i comandi sia il tuo **Validatore Primario** con: ``` doublezero-solana passport find-validator -ut ``` -Output atteso: +Questo verifica che il validatore sia registrato nel gossip e compaia nello schedule dei leader. + +Output previsto: ``` Connected to Solana: testnet @@ -171,14 +181,17 @@ 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 + Lo stesso flusso di lavoro viene utilizzato per una o più macchine. + Per registrare una sola macchina, escludi gli argomenti "--backup-validator-ids" o "backup_ids=" da qualsiasi comando in questa pagina. -Ora, su tutte le macchine di backup: +Ora, su tutte le macchine di backup su cui intendi eseguire il tuo **Validatore Primario**, esegui il seguente comando: ``` doublezero-solana passport find-validator -ut ``` -Output atteso: +Output previsto: ``` Connected to Solana: testnet @@ -190,13 +203,18 @@ 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. ``` +Questo output è previsto. Il nodo di backup non può essere nello schedule dei leader al momento della creazione del pass. + +Eseguirai ora questo comando su **tutte le macchine di backup** che prevedi di utilizzare con il tuo account di voto e l'identità del **Validatore Primario**.
-### Prepara la Connessione +### Preparare la Connessione + +Esegui il seguente comando sulla macchina del **Validatore Primario**. Questa è la macchina su cui hai stake attivo, che è nello schedule dei leader con il tuo ID del validatore primario nel gossip di Solana sulla macchina da cui stai eseguendo il comando: ``` doublezero-solana passport prepare-validator-access -ut \ @@ -205,80 +223,68 @@ doublezero-solana passport prepare-validator-access -ut \ --backup-validator-ids ValidatorIdentity222222222222222222222222222,ValidatorIdentity33333333333333333333333333,ValidatorIdentity444444444444444444444444444> ``` -
-## 4. Genera la Firma +Output di esempio: -
- -``` - solana sign-offchain-message \ - service_key=YourDoubleZeroAddress11111111111111111111111111111,backup_ids=ValidatorIdentity222222222222222222222222222,ValidatorIdentity33333333333333333333333333,ValidatorIdentity444444444444444444444444444 \ - -k ``` +DoubleZero Passport - Prepare Validator Access Request +Connected to Solana: testnet -**Output:** +Primary validator 🖥️ 💎: + ID: ValidatorIdentity111111111111111111111111111 + Gossip: ✅ OK 11.11.11.111) + Leader scheduler: ✅ OK (Stake: 1,050,000.00 SOL) -``` - Signature111111rrNykTByK2DgJET3U6MdjSa7xgFivS9AHyhdSG6AbYTeczUNJSjYPwBGqpmNGkoWk9NvS3W7 -``` +Backup validator 🖥️ 🛡️: + ID: ValidatorIdentity222222222222222222222222222 + Gossip: ✅ OK (22.22.22.222) + Leader scheduler: ✅ OK (not a leader scheduled validator) -
-## 5. Avvia una Richiesta di Connessione in DoubleZero +Backup validator 🖥️ 🛡️: + ID: ValidatorIdentity333333333333333333333333333 + Gossip: ✅ OK (33.33.33.333) + Leader scheduler: ✅ OK (not a leader scheduled validator) -
-``` -doublezero-solana passport request-validator-access -k -ut \ ---primary-validator-id ValidatorIdentity111111111111111111111111111 \ ---backup-validator-ids ValidatorIdentity222222222222222222222222222,ValidatorIdentity33333333333333333333333333,ValidatorIdentity444444444444444444444444444 \ ---signature Signature111111rrNykTByK2DgJET3U6MdjSa7xgFivS9AHyhdSG6AbYTeczUNJSjYPwBGqpmNGkoWk9NvS3W7 --doublezero-address YourDoubleZeroAddress11111111111111111111111111111 -``` + Backup validator 🖥️ 🛡️: + ID: ValidatorIdentity444444444444444444444444444 + Gossip: ✅ OK (33.33.33.333) + Leader scheduler: ✅ OK (not a leader scheduled validator) -**Output:** + 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 -```bash -Request Solana validator access: Transaction22222222VaB8FMqM2wEBXyV5THpKRXWrPtDQxmTjHJHiAWteVYTsc7Gjz4hdXxvYoZXGeHkrEayp ``` +Prendi nota dell'output alla fine di questo comando. È la struttura per il passaggio successivo.
-## 6. Connettiti in Modalità IBRL +## 4. Generare la Firma -
+
-``` -doublezero connect ibrl -``` +Alla fine dell'ultimo passaggio, abbiamo ricevuto un output pre-formattato per `solana sign-offchain-message` -Dovresti vedere un output che indica il provisioning, come: +Dall'output sopra, eseguiremo questo comando sulla macchina del **Validatore Primario**. ``` -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 + solana sign-offchain-message \ + service_key=YourDoubleZeroAddress11111111111111111111111111111,backup_ids=ValidatorIdentity222222222222222222222222222,ValidatorIdentity33333333333333333333333333,ValidatorIdentity444444444444444444444444444 \ + -k ``` -Verifica la tua connessione: +**Output:** -```bash -doublezero status ``` - -```bash - 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 + Signature111111rrNykTByK2DgJET3U6MdjSa7xgFivS9AHyhdSG6AbYTeczUNJSjYPwBGqpmNGkoWk9NvS3W7 ```
-### Passo Successivo: Pubblicazione degli Shred via Multicast +## 5. Avviare una Richiesta di Connessione in DoubleZero -Se hai completato questa configurazione e prevedi di pubblicare shred via multicast, procedi alla [pagina successiva](Validator%20Multicast%20Connection.md). +
\ No newline at end of file diff --git a/docs/DZ Testnet Connection.ja.md b/docs/DZ Testnet Connection.ja.md index 3a6fa1c..8e478b0 100644 --- a/docs/DZ Testnet Connection.ja.md +++ b/docs/DZ Testnet Connection.ja.md @@ -1,111 +1,109 @@ -# IBRLモードでのバリデーターテストネット接続 -!!! warning "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." +--- +description: IBRLモードでSolanaテストネットバリデーターをDoubleZeroに接続する手順(テストネット評価契約および接続手順を含む)。 +--- -??? warning "DoubleZeroテストネットに接続することで、こちらに記載の評価契約の条件に同意します(クリックして展開)" - DoubleZeroテストネット +# IBRLモードでのバリデーターテストネット接続 +??? warning "DoubleZeroテストネットに接続することにより、ここに記載された評価契約の条件に同意します(クリックして展開)" + DoubleZero Testnet 評価契約 - 本ソリューション(以下に定義)へのアクセスまたは使用により、当該アクセスの最初の日付時点(「**発効日**」)で、この評価契約(「**本契約**」)が、DoubleZero Foundation(「**DZF**」)が評価ベースでソリューションへのアクセスを提供する条件を定めることに同意するものとします。本契約中の相互の約束を約因として、以下に同意します: + ソリューション(以下に定義)にアクセスまたは使用することにより、お客様は当該アクセスの + 最初の日(以下「**発効日**」)をもって、本評価契約(以下「**本契約**」)が + DoubleZero Foundation(以下「**DZF**」)がお客様(以下「**ユーザー**」または + 「**お客様**」)に対して評価目的でソリューションへのアクセスを提供する際の + 条件を定めるものであることに同意するものとします。本契約に含まれる相互の約束を対価として、 + お客様は以下に同意するものとします: - 1. 定義。 + 1. 定義 - 1.1「**機密情報**」とは、一方の当事者が他方に開示した情報で、機密として指定されたもの、またはソリューション、製品計画、事業計画、企業秘密、技術、またはその他の独自情報を含むがこれらに限定されない、機密であると理解されるべきすべての情報を意味します。 + 1.1 「**秘密情報**」とは、一方の当事者から他方の当事者に開示された、秘密として指定された、またはその他秘密として理解されるべきすべての情報を意味し、ソリューション、製品計画、事業計画、企業秘密、技術、またはその他の専有情報を含みますが、これらに限定されません。 - 1.2「**ソリューション**」とは、web3プロジェクト向けDoubleZero高性能ネットワークインフラのテストネット版(「**テストネット**」)および統合帯域幅を持つ関連エッジフィルタリングサービス(「**情報サービス**」)、DZソフトウェア(以下に定義)、DZソフトウェアに関連するDZFが提供するすべての資料(「**ドキュメント**」)、およびDZFがここでユーザーに提供するその他の資料を意味します。 + 1.2 「**ソリューション**」とは、web3プロジェクト向けDoubleZero高性能ネットワークインフラストラクチャのテストネットバージョン(以下「**テストネット**」)および統合帯域幅付き関連エッジフィルタリングサービス(以下「**情報サービス**」)、DZソフトウェア(以下に定義)、DZソフトウェアに関してDZFが提供するすべての資料(以下「**ドキュメント**」)、およびDZFが本契約に基づきユーザーに提供するその他の資料を意味します。 - 2. アクセス。 + 2. アクセス - 2.1 ^^ソリューションへのアクセス^^。本契約の条件に従い、DZFはインターネットを通じてユーザーにソリューションへのアクセスを提供します。ユーザーのアクセスは、情報サービスのみを評価するためのソリューションの非独占的、非譲渡可能、限定的な使用です。ソリューションを構成するソフトウェア(「**DZソフトウェア**」)に関して、DZFはここで評価期間中、ドキュメントで想定される範囲でのみ、DZソフトウェアをコピー、ダウンロード、合理的な数のコピーを作成、実行、デプロイ(該当する場合)するための限定的で取り消し可能なライセンスをユーザーに付与します。 + 2.1 ^^ソリューションへのアクセス^^。 本契約の条件に従い、DZFはインターネットを通じてユーザーにソリューションへのアクセスを提供します。ユーザーのアクセスは、ユーザーが情報サービスのみを評価するためのソリューションの非独占的、譲渡不可の限定的な使用です。ソリューションを構成するソフトウェア(以下「**DZソフトウェア**」)に関して、DZFはユーザーに対し、評価期間中、ドキュメントに想定される範囲でのみ、当該DZソフトウェアのコピー、ダウンロード、合理的な数のコピーの作成、実行、およびデプロイ(該当する場合)を行うための限定的、取消可能なライセンスを付与します。 - 2.2 ^^制限^^。ユーザーは、発効日からDZFによって終了されるまで(「**評価期間**」)本契約に従いソリューションを使用できます。ユーザーは、評価期間を超えたソリューションの使用権は、手数料の支払いを含む当事者間の別途の商業契約に従うことを理解します。ユーザーは、第三者を許可した場合も含め、次のことを行ってはなりません:(i)ソリューションまたはその一部に基づいて改変や派生作品を作成すること;(ii)本契約で明示的に許可される場合を除き、ソリューションを複製すること;(iii)ソリューションのすべてまたは一部をサブライセンス、配布、販売、貸し出し、賃貸、リース、転送、または権利を付与すること、またはサービスビューロー等として第三者にアクセスを提供すること(ただし、スタンドアロンベースでなく、ユーザーのプラットフォームまたは製品を通じてまたは関連して情報サービスを提供する場合を除く);または(iv)ここに規定された以外の方法でソリューションを使用すること。 + 2.2 ^^制限事項^^。ユーザーは、発効日からDZFにより終了されるまで(以下「**評価期間**」)、本契約に従ってソリューションを使用することができます。ユーザーは、評価期間を超えてソリューションを使用する権利は、料金の支払いを含む、当事者間の別個の商業契約に従うものであることを理解します。ユーザーは、以下のことを行ってはならず、また第三者にこれを許可してはなりません:(i) ソリューションまたはその一部に基づく派生作品を修正または作成すること、(ii) 本契約で明示的に許可された場合を除き、ソリューションを複製すること、(iii) サービスビューローベースまたはその他の方法で、ソリューションの全部または一部をサブライセンス、配布、販売、貸与、賃貸、リース、譲渡、またはソリューションに対する権利を付与すること、あるいは第三者にソリューションへのアクセスを提供すること(ただし、ユーザーのプラットフォームまたは製品を通じて、またはそれに関連して情報サービスを提供する場合は除き、スタンドアロンベースでは不可)、または(iv) 本契約に規定された以外の方法でソリューションを使用すること。 - 2.3 ^^所有権^^。DZFはソリューションに関するすべての権利、権原、利益(知的財産権を含む)を保持します。 + 2.3 ^^所有権^^。 DZFは、ソリューションに対する知的財産権を含むすべての権利、権原、および利益を保持します。 - 3. フィードバック。 - DZFは定期的にユーザーにソリューションの使用、運用、機能に関するフィードバック(「フィードバック」)の提供を要求する場合があり、ユーザーはDZFにフィードバックを提供することに同意します。ユーザーはここで、フィードバックを製品やサービスに使用・組み込み、そのような製品やサービスを製造、使用、販売、販売の申し出、輸入などし、フィードバックを制限なく使用、コピー、配布、その他の方法で利用するための非独占的、世界的、永続的、取り消し不能、ロイヤルティフリー、完全に支払い済み、完全にサブライセンス可能かつ譲渡可能な権利とライセンスをDZFに付与します。 + 3 フィードバック + DZFは定期的にユーザーにソリューションの使用、運用、および機能に関するフィードバック(以下「フィードバック」)の提供を要求する場合があり、ユーザーはDZFにフィードバックを提供することに同意します。ユーザーはここに、DZFに対し、フィードバックを任意の製品およびサービスに使用および組み込み、当該製品およびサービスを製造、使用、販売、販売の申し出、輸入、およびその他の方法で利用し、またフィードバックを制限なくその他の方法で使用、コピー、配布、および利用するための非独占的、全世界的、永続的、取消不能、ロイヤリティフリー、全額支払済み、完全にサブライセンス可能かつ譲渡可能な権利およびライセンスを付与します。 - 4. 期間と終了。 + 4. 期間および終了 - 4.1 ^^期間^^。本契約は発効日から開始し、評価期間中有効です。いずれの当事者も、任意の理由または理由なしに、他方の当事者への書面による通知(電子メールで十分)により、本契約をいつでも終了できます。 + 4.1 ^^期間^^。 本契約は発効日をもって開始され、評価期間中完全に有効であり続けます。いずれの当事者も、理由の有無を問わず、他方の当事者への書面による通知(電子メールで足りる)をもって、本契約を直ちに便宜上終了することができます。 - 4.1 ^^終了の効力^^。理由を問わず本契約が終了した場合:(i)ユーザーに付与された権利は直ちに終了します;(ii)ユーザーはソリューションの使用を直ちに中止し、管理下にあるすべてのドキュメントとDZソフトウェアを返却または廃棄します;(iii)各当事者は他方の当事者のすべての機密情報と財産を速やかに返却または廃棄します;(iv)第2.2条、第2.3条、第3条、第4.2条、第5条から第8条が存続します。 + 4.1 ^^終了の効果^^。 いかなる理由であれ本契約が終了した場合:(i) 本契約に基づきユーザーに付与された権利は直ちに終了します。(ii) ユーザーはソリューションの使用を直ちに中止し、管理下にあるすべてのドキュメントおよびDZソフトウェアを返却または破棄するものとします。(iii) 各当事者は、相手方のすべての秘密情報および財産を速やかに返却または破棄するものとします。(iv) 第2.2条、第2.3条、第3条、第4.2条、および第5条から第8条は存続するものとします。 - 5. 機密保持。 - 各当事者は、他方の機密情報を本契約に基づく義務の履行と権利の行使のみに使用し、ここで許可される場合を除き、同情報を開示または開示を許可しないことに同意します。ただし、いずれの当事者も、知る必要があり本契約と同等以上の機密保持義務に拘束される自社の人員、弁護士、その他の代表者に機密情報を開示できます;また法律で要求される場合(この場合、受信当事者は開示前に開示当事者に事前通知と異議申立の機会を提供し、適用法の範囲で開示を最小限に抑えます)。第5条の機密保持義務は次の情報には適用されません:(a)受信当事者の過失なしに一般に知られるかまたは公開されるようになった情報;(b)開示当事者による開示前に受信当事者が制限なく適切に知っていた情報;(c)そうする法的権限を持つ別の人から受信当事者に制限なく適切に開示された情報;または(d)開示当事者の機密情報を使用または参照せずに受信当事者が独自に開発した情報。各当事者は、他方の機密情報を無許可の使用および開示から保護するために適切な注意を払うことに同意します。本条または本契約のライセンスの実際のまたは脅威となる違反が発生した場合、違反していない当事者は、利用可能な他の権利または救済を放棄することなく、即時の差し止めおよびその他の衡平法上の救済を求める権利を持ちます。 + 5. 秘密保持 + 各当事者は、相手方の秘密情報を本契約に基づく義務の履行および権利の行使のためにのみ使用し、本契約で別途許可された場合を除き、これを開示または開示を許可しないことに同意します。ただし、いずれの当事者も、知る必要があり、本契約に定めるものと同等以上の保護的な秘密保持義務に拘束される人員、弁護士、およびその他の代理人に秘密情報を開示することができます。また、法律により要求される場合(この場合、受領当事者は開示当事者に事前通知および当該開示に異議を申し立てる機会を提供し、適用法で許可される範囲で当該開示を最小限に抑えるものとします)にも開示することができます。本第5条の秘密保持義務は、以下の情報には適用されません:(a) 受領当事者の過失によらず一般に知られるまたは公に入手可能になった情報、(b) 開示当事者による開示前に制限なく受領当事者に正当に知られていた情報、(c) そうする法的権限を有する他の者により制限なく受領当事者に正当に開示された情報、または(d) 開示当事者の秘密情報の使用またはそれへの参照なしに受領当事者が独自に開発した情報。各当事者は、相手方の秘密情報の不正使用および開示からの保護において相当の注意を払うことに同意します。本条または本契約に含まれるライセンスの規定に対する現実のまたは差し迫った違反が発生した場合、違反していない当事者は、他の権利または救済を放棄することなく、即座の差止命令およびその他の衡平法上の救済を求める権利を有します。ユーザーは、ソリューションおよびソリューションへのアクセスを提供するパスワード、シードフレーズ、またはコードの秘密保持をDZFの秘密情報として維持する責任を負います。本契約のいかなる内容も、ソリューションのパフォーマンス、可用性、使用状況、完全性、およびセキュリティに関するデータを使用するDZFの権利または能力を制限しません。いずれかの当事者が本第5条の規定に違反し、または違反するおそれがある場合、各当事者は、違反していない当事者が法律上適切な救済を得られないことに同意し、したがって保証金なしに、かつ実際の金銭的損害を示す必要なく、即座の差止命令およびその他の衡平法上の救済を受ける権利を有します。 - 6. 保証免責;責任制限。 + 6. 保証の免責事項;責任の制限 - 6.1 ^^保証免責^^。ソリューションは「現状のまま」(AS IS)で提供され、いかなる種類の保証もありません。DZFは、その状態、表明または説明への適合性を含むソリューションとドキュメントに関して、明示的、黙示的、法定またはその他のいかなる保証もなされず、DZFは特に商品性、特定目的への適合性、権原、および非侵害の黙示的保証をすべて否認します。 + 6.1 ^^保証の免責事項^^。 ソリューションは、いかなる種類の保証もなく「現状のまま」提供されます。DZFは、ソリューションおよびドキュメントに関して、その状態、表明または説明への適合性を含め、明示的、黙示的、法定、またはその他のいかなる保証も行わず、DZFは商品性、特定目的への適合性、権原、および非侵害に関するすべての黙示的保証を明示的に否認します。 - 6.2 ^^責任制限^^。 - 第2.1条、第2.2条、および第5条の違反を除き、いかなる場合においても、いずれの当事者も他方に対して、本契約から生じるまたは本契約に関連する契約、不法行為またはその他の訴訟において、相手方がそのような損害の可能性について通知を受けていた場合でも、利益の損失、使用または損失のデータを含むがこれに限定されない間接的、付随的、特別またはその他の結果的損害について責任を負いません。いかなる場合においても、本契約から生じるまたは本契約に関連するDZFの総責任は、契約、不法行為またはその他の訴訟において100ドルを超えません。**上記の制限は、ここに記載されたいかなる限定的救済の本質的目的の不履行にもかかわらず適用されます。**当事者は、上記の制限が本契約に基づくリスクの合理的な配分を表すことに同意します。 + 6.2 ^^責任の制限^^。 + 第2.1条、第2.2条、および第5条の違反を除き、いかなる場合においても、いずれの当事者も、契約、不法行為、またはその他の訴訟において、本契約に起因するまたは関連する、利益もしくは使用の損失またはデータの損失を含む(これらに限定されない)間接的、付随的、特別、またはその他の結果的損害について、たとえ相手方がかかる損害の可能性について助言を受けていた場合であっても、お客様またはいかなる第三者に対しても責任を負わないものとします。いかなる場合においても、本契約に起因するまたは関連するDZFの累計責任は、契約、不法行為、またはその他の訴訟を問わず、100ドル(\$100)を超えないものとします。**上記の制限は、本契約における限定的救済の本質的目的の不達成にかかわらず適用されるものとします。**当事者は、上記の制限が本契約に基づくリスクの合理的な配分を表すことに同意します。 - 7. 準拠法。 - 本契約および本契約から生じるまたは本契約に関するすべての事項は、ケイマン諸島の法律に従って統治、解釈、および構成されます。本契約に関連して論争、紛争または請求(「紛争」)が生じた場合、関係する当事者は適宜他の当事者に当該紛争の30日前の通知(「紛争の通知」)を提供する必要があります。紛争の通知から30日の期限切れまでに紛争が解決されない場合、関係する当事者はここに規定する仲裁手続きを開始できます。紛争の通知から30日の期限切れ後も紛争が残る場合、紛争はケイマン国際調停・仲裁センター(CI-MAC)によって、発効日時点で有効なCI-MAC仲裁規則(「仲裁規則」)に従って管理される仲裁によって解決され、仲裁規則はここで参照により組み込まれ、仲裁法(改正)によって統治されます。仲裁はケイマン諸島グランドケイマン、ジョージタウンを所在地とし、ケイマン諸島法によって統治されます。仲裁の言語は英語です。仲裁は仲裁規則に従って任命される単独仲裁人によって決定されます。仲裁人によるいかなる裁定や決定も書面によるものとし、上訴の権利なしに当事者間で最終的かつ拘束力を持ち、取得された裁定に基づく判決は管轄権を有するいかなる裁判所でも執行できます。本契約から生じるまたは本契約に関連するいかなる請求に基づく法的または衡平法上の訴訟も、いかなる管轄区域の裁判所にも提起できません。 + 7. 準拠法 + 本契約および本契約に起因するまたは関連するすべての事項は、ケイマン諸島の法律に準拠し、解釈されるものとします。本契約に起因するまたは関連して紛争、論争、または請求が発生した場合(以下「紛争」)、該当する当事者は適切に、他方の当事者に対し30日前の紛争の通知(以下「紛争通知」)を行わなければなりません。紛争通知の送達後30日の満了時に紛争が解決されない場合、該当する当事者は本契約に規定される仲裁手続きを開始することができます。紛争通知の送達後30日の満了時に紛争が残っている場合、紛争はケイマン国際調停仲裁センター(CI-MAC)により、本契約の日付時点で有効なCI-MAC仲裁規則(以下「仲裁規則」)に従って管理される仲裁により解決されるものとし、当該仲裁規則は本条への参照により組み込まれるものとみなされ、仲裁法(改正を含む)に準拠します。仲裁はケイマン諸島グランドケイマン、ジョージタウンを仲裁地とし、ケイマン諸島法に準拠するものとします。仲裁の言語は英語とします。仲裁は仲裁規則に従って任命される単独の仲裁人により決定されるものとします。仲裁人により下された裁定または決定は書面によるものとし、上訴権なく当事者に対して最終的かつ拘束力を有するものとし、かかる裁定に基づく判決は管轄権を有する裁判所に提出または執行することができます。本契約に起因するまたは関連する請求に基づく法律上または衡平法上の訴訟は、いかなる管轄区域の裁判所においても提起されないものとします。本契約の条件を執行するために訴訟または仲裁が必要な場合、勝訴当事者は相手方に弁護士費用を支払わせる権利を有するものとします。各当事者は、不便な法廷地の法理を主張する権利、かかる仲裁または裁判所の管轄権に服さないと主張する権利、または本契約に従って手続きが提起される範囲で管轄地に異議を申し立てる権利を放棄します。 - 8. 一般規定。 - 本契約はDZFの事前書面による同意なしにユーザーによって移転または譲渡できません。DZFは本契約を自由に譲渡できます。ここで送付が必要なすべての通知は電子メールで送付され(DZF宛:legal@doublezero.xyz)、送付翌日に受信されたとみなされます(送信確認済み)。本契約のいずれかの規定が無効または執行不能と判断された場合、本契約の残りの規定は完全に有効です。いずれかの当事者によるデフォルトまたは本契約の違反の放棄は、他のまたはその後のデフォルトまたは違反の放棄を構成しません。いずれの当事者も、予見可能かどうかにかかわらず、天災、地震、物資不足、輸送困難、労働争議、暴動、戦争、火災、疫病、およびその管理を超える類似の事象による履行の遅延または失敗について責任を負いません。本契約はすべての添付と共に、当事者間の完全な合意を構成し、ここに記載された主題に関するすべての以前または同時の合意または表明(書面または口頭)に優先します。本契約は、各当事者の正式に授権された代表者が署名した書面によってのみ修正または変更できます。 + 8. 一般条項 + 本契約は、DZFの事前の書面による同意なく、ユーザーが譲渡することはできません。DZFは本契約を自由に譲渡することができます。本契約に基づき送付が必要なすべての通知は電子メールにより送付されるものとし(DZF宛:legal@doublezero.xyz)、送付の翌日に受領されたものとみなされます(送信確認あり)。本契約のいずれかの規定が無効または執行不能と判断された場合、本契約の残りの規定は完全に有効であり続けるものとします。いずれかの当事者による本契約の債務不履行または違反の放棄は、他のまたはその後の債務不履行または違反の放棄を構成しないものとします。いずれの当事者も、天災、地震、物資不足、輸送困難、労働争議、暴動、戦争、火災、伝染病、および予見可能であるか否かを問わず、自己の管理を超えた類似の事象による遅延または履行の不能について責任を負わないものとします。本契約は、添付書類とともに、当事者間の完全な合意を構成し、本契約の主題に関する先行するまたは同時のすべての合意または表明(書面または口頭)に取って代わります。本契約は、各当事者の正当に権限を与えられた代表者が署名した書面によらなければ、修正または変更することはできません。 -### IBRLモードでのテストネット接続 +### IBRLモードでのテストネットへの接続 !!! Note inline end - IBRLモードは既存のパブリックIPアドレスを使用するため、バリデータークライアントの再起動が不要です。 + IBRLモードでは、既存のパブリックIPアドレスを使用するため、バリデータークライアントの再起動は必要ありません。 -SolanaテストネットバリデーターはDoubleZeroテストネットへの接続を完了します。詳細はこのページに記載されています。 +SolanaテストネットバリデーターはDoubleZeroテストネットへの接続を完了します。手順はこのページに詳述されています。 -各Solanaバリデーターには独自の**アイデンティティキーペア**があります。そこから**ノードID**として知られる公開鍵を抽出します。これはSolanaネットワーク上のバリデーターの一意のフィンガープリントです。 +各Solanaバリデーターには固有の**アイデンティティキーペア**があります。ここから、**ノードID**として知られる公開鍵を抽出します。これはSolanaネットワーク上のバリデーターの一意の識別子です。 -DoubleZeroIDとノードIDが特定されると、マシンの所有権を証明します。これは、DoubleZeroIDを含むメッセージをバリデーターのアイデンティティキーで署名することによって行われます。生成された暗号署名は、バリデーターを制御していることの検証可能な証明として機能します。 +DoubleZeroIDとノードIDを特定した後、マシンの所有権を証明します。これは、バリデーターのアイデンティティキーで署名されたDoubleZeroIDを含むメッセージを作成することで行います。結果として得られる暗号署名は、バリデーターを管理していることの検証可能な証明として機能します。 -最後に、**DoubleZeroへの接続リクエストを送信**します。このリクエストは「*こちらが私のアイデンティティ、こちらが所有権の証明、そしてこちらが接続方法です。*」というメッセージを伝えます。DoubleZeroはこの情報を検証し、証明を受け入れ、DoubleZero上のバリデーターのネットワークアクセスをプロビジョニングします。 +最後に、**DoubleZeroへの接続リクエスト**を送信します。このリクエストは次のことを伝えます:*「これが私のアイデンティティです。これが所有権の証明です。そしてこれが私の接続方法です。」* DoubleZeroはこの情報を検証し、証明を受け入れ、DoubleZero上でバリデーターのネットワークアクセスをプロビジョニングします。 -このガイドでは、1台のプライマリバリデーターが自身を登録し、同時に最大3台のバックアップ/フェイルオーバーマシンを登録できます。 +このガイドでは、1台のプライマリバリデーターの登録と、同時に最大3台のバックアップ/フェイルオーバーマシンの登録が可能です。 ## 前提条件 -- Solana CLIがインストールされ、$PATHに設定されていること -- バリデーターの場合:solユーザー下のバリデーターアイデンティティキーペアファイル(例:validator-keypair.json)にアクセスする権限 -- バリデーターの場合:接続するSolanaバリデーターのアイデンティティキーに少なくとも1 SOLがあることを確認 -- ファイアウォールルールがDoubleZeroとSolana RPCのアウトバウンド接続を許可していること(GRE(ipプロト47)とBGP(169.254.0.0/16のtcp/179)を含む) +- Solana CLIがインストールされ、$PATHに含まれていること +- バリデーターの場合:solユーザーの下でバリデーターアイデンティティキーペアファイル(例:validator-keypair.json)へのアクセス権限があること +- バリデーターの場合:接続するSolanaバリデーターのアイデンティティキーに少なくとも1 SOLがあることを確認すること +- ファイアウォールルールが、DoubleZeroおよびSolana RPCに必要なアウトバウンド接続を許可していること(GRE(ip proto 47)およびBGP(169.254.0.0/16のtcp/179)を含む) !!! info - バリデーターIDはSolanaゴシップに対して確認され、ターゲットIPが決定されます。ターゲットIPとDoubleZero IDは、マシンとターゲットDoubleZeroデバイス間のGREトンネルを開く際に使用されます。 + バリデーターIDはSolanaゴシップと照合され、ターゲットIPが決定されます。ターゲットIPとDoubleZero IDは、マシンとターゲットDoubleZeroデバイス間のGREトンネルを開く際に使用されます。 - 注意:同じIPにジャンクIDとプライマリIDがある場合、マシンの登録にはプライマリIDのみが使用されます。これはジャンクIDがゴシップに表示されず、ターゲットマシンのIPを確認するために使用できないためです。 + 注意:ジャンクIDとプライマリIDが同じIPにある場合、マシンの登録にはプライマリIDのみが使用されます。これは、ジャンクIDがゴシップに表示されないため、ターゲットマシンのIPを検証するために使用できないためです。 -## 1. 環境設定 +## 1. クライアントネットワークの確認 -続行する前に[セットアップ](setup.md)手順に従ってください。 +続行する前に、[セットアップ](setup.md)の手順に従ってください。**テストネット**パッケージをインストールしてください — テストネットとMainnet-Betaでは異なるパッケージリポジトリを使用します。 -セットアップの最後のステップはネットワークから切断することでした。これにより、マシン上のDoubleZeroへのトンネルが1つだけ開いており、そのトンネルが正しいネットワーク上にあることを確認します。 +セットアップの最後のステップはネットワークからの切断でした。これは、マシン上でDoubleZeroへのトンネルが1つだけ開いていること、およびそのトンネルが正しいネットワーク上にあることを確認するためです。 -
+クライアントがテストネット上にあることを確認します: -DoubleZeroクライアントCLI(`doublezero`)とデーモン(`doublezerod`)を**DoubleZeroテストネット**に接続するように設定するには: ```bash -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 +doublezero status ``` -約30秒後に利用可能なDoubleZeroデバイスが表示されます: +`Network`列が`testnet`であることを確認してください。`mainnet-beta`になっている場合、または間違ったパッケージをインストールした場合は、[トラブルシューティング](troubleshooting.md#issue-wrong-doublezero-environment)のコピー&ペースト切り替えを使用してください。 + +約30秒後に、利用可能なDoubleZeroデバイスが表示されます: ```bash doublezero latency ``` -テストネットの出力例: +出力例(テストネット) ```bash doublezero latency pubkey | code | ip | min | max | avg | reachable @@ -119,15 +117,13 @@ doublezero latency 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 ``` -
-メインネットの出力は構造が同じですが、利用可能なデバイスが多くなります。 - +メインネットの出力は構造的には同じですが、利用可能なデバイスの数がはるかに多くなります。 -## 2. ポート44880を開く +## 2. ポート44880を開放する -一部の[ルーティング機能](https://github.com/malbeclabs/doublezero/blob/main/rfcs/rfc7-client-route-liveness.md)を利用するには、ユーザーはポート44880を開く必要があります。 +ユーザーはいくつかの[ルーティング機能](https://github.com/malbeclabs/doublezero/blob/main/rfcs/rfc7-client-route-liveness.md)を利用するためにポート44880を開放する必要があります。 -ポート44880を開くには、例えば次のようにIPテーブルを更新できます: +ポート44880を開放するには、以下のようにIPテーブルを更新します:
@@ -138,9 +134,9 @@ sudo iptables -A OUTPUT -o doublezero0 -p udp --dport 44880 -j ACCEPT
-このルールをDoubleZeroインターフェースのみに制限する`-i doublezero0`、`-o doublezero0`フラグに注意してください。 +`-i doublezero0`、`-o doublezero0`フラグにより、このルールがDoubleZeroインターフェースにのみ制限されることに注意してください -またはUFWの場合: +またはUFWを使用する場合:
@@ -151,25 +147,25 @@ sudo ufw allow out on doublezero0 to any port 44880 proto udp
-このルールをDoubleZeroインターフェースのみに制限する`in on doublezero0`、`out on doublezero0`フラグに注意してください。 +`in on doublezero0`、`out on doublezero0`フラグにより、このルールがDoubleZeroインターフェースにのみ制限されることに注意してください ## 3. バリデーター所有権の証明
-DoubleZero環境が設定されたので、バリデーター所有権の証明を行います。 +DoubleZero環境の設定が完了したら、バリデーターの所有権を証明します。 -プライマリバリデーターの[セットアップ](setup.md)で作成したDoubleZero IDをすべてのバックアップマシンで使用する必要があります。 +プライマリバリデーターの[セットアップ](setup.md)で作成したDoubleZero IDは、すべてのバックアップマシンで使用する必要があります。 -プライマリマシンのIDは`doublezero address`で確認できます。同じIDがクラスター内のすべてのマシンの`~/.config/doublezero/id.json`に必要です。 +プライマリマシン上のIDは`doublezero address`で確認できます。同じIDがクラスター内のすべてのマシンの`~/.config/doublezero/id.json`に存在する必要があります。 -これを実現するために、まずコマンドを実行しているマシンが**プライマリバリデーター**であることを次のコマンドで確認します: +これを実行するには、まずコマンドを実行しているマシンが**プライマリバリデーター**であることを確認します: ``` doublezero-solana passport find-validator -ut ``` -これにより、バリデーターがゴシップに登録され、リーダースケジュールに表示されることを確認します。 +これにより、バリデーターがゴシップに登録されており、リーダースケジュールに表示されていることが確認されます。 期待される出力: @@ -184,8 +180,8 @@ In Leader scheduler ✅ This validator can connect as a primary in DoubleZero 🖥️ 💎. It is a leader scheduled validator. ``` !!! info - 同じワークフローが1台でも複数台のマシンでも使用されます。 - 1台のマシンを登録する場合は、このページのコマンドから"--backup-validator-ids"または"backup_ids="引数を除外してください。 + 1台でも複数台でも同じワークフローが使用されます。 + 1台のマシンを登録する場合は、このページのコマンドから引数"--backup-validator-ids"または"backup_ids="を除外してください。 次に、**プライマリバリデーター**を実行する予定のすべてのバックアップマシンで以下を実行します: @@ -205,9 +201,9 @@ 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. ``` -この出力は正常です。バックアップノードはパス作成時にリーダースケジュールに含まれることができません。 +この出力は想定通りです。バックアップノードはパス作成時にリーダースケジュールに含まれることはできません。 -次に、**プライマリバリデーター**の投票アカウントとアイデンティティを使用する予定の**すべてのバックアップマシン**でこのコマンドを実行します。 +**プライマリバリデーター**の投票アカウントとアイデンティティを使用する予定の**すべてのバックアップマシン**でこのコマンドを実行します。
@@ -216,166 +212,8 @@ In Not in Leader scheduler ### 接続の準備 -**プライマリバリデーター**マシンで次のコマンドを実行します。これはコマンドを実行しているマシンのSolanaゴシップに、プライマリバリデーターIDを持つアクティブなステークがあり、リーダースケジュールに含まれているマシンです: +**プライマリバリデーター**マシンで以下のコマンドを実行します。これは、アクティブなステークがあり、リーダースケジュールに含まれ、コマンドを実行しているマシン上のSolanaゴシップにプライマリバリデーターIDがあるマシンです: ``` doublezero-solana passport prepare-validator-access -ut \ - --doublezero-address YourDoubleZeroAddress11111111111111111111111111111 \ - --primary-validator-id ValidatorIdentity111111111111111111111111111 \ - --backup-validator-ids ValidatorIdentity222222222222222222222222222,ValidatorIdentity33333333333333333333333333,ValidatorIdentity444444444444444444444444444> -``` - - -出力例: - -``` -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 - -``` -このコマンドの最後の出力に注意してください。次のステップの構造になっています。 - -
- -## 4. 署名の生成 - -
- -前のステップの最後に、`solana sign-offchain-message`のための事前フォーマットされた出力を受け取りました。 - -上記の出力から**プライマリバリデーター**マシンでこのコマンドを実行します。 - -``` - solana sign-offchain-message \ - service_key=YourDoubleZeroAddress11111111111111111111111111111,backup_ids=ValidatorIdentity222222222222222222222222222,ValidatorIdentity33333333333333333333333333,ValidatorIdentity444444444444444444444444444 \ - -k -``` - -**出力:** - -``` - Signature111111rrNykTByK2DgJET3U6MdjSa7xgFivS9AHyhdSG6AbYTeczUNJSjYPwBGqpmNGkoWk9NvS3W7 -``` - -
- -## 5. DoubleZeroでの接続リクエストの開始 - -
- -`request-validator-access`コマンドを使用して、接続リクエストのためにSolana上にアカウントを作成します。DoubleZero Sentinelエージェントが新しいアカウントを検出し、アイデンティティと署名を検証し、サーバーが接続を確立できるようにDoubleZeroにアクセスパスを作成します。 - - -ノードID、DoubleZeroID、署名を使用します。 - -!!! note inline end - この例では`-k /home/user/.config/solana/id.json`を使用してバリデーターアイデンティティを見つけます。ローカルデプロイメントの適切な場所を使用してください。 - -``` -doublezero-solana passport request-validator-access -k -ut \ ---primary-validator-id ValidatorIdentity111111111111111111111111111 \ ---backup-validator-ids ValidatorIdentity222222222222222222222222222,ValidatorIdentity33333333333333333333333333,ValidatorIdentity444444444444444444444444444 \ ---signature Signature111111rrNykTByK2DgJET3U6MdjSa7xgFivS9AHyhdSG6AbYTeczUNJSjYPwBGqpmNGkoWk9NvS3W7 --doublezero-address YourDoubleZeroAddress11111111111111111111111111111 -``` - -**出力:** - -この出力はSolanaエクスプローラーでトランザクションを確認するために使用できます。エクスプローラーをテストネットに変更することを忘れずに。この確認はオプションです。 - -```bash -Request Solana validator access: Transaction22222222VaB8FMqM2wEBXyV5THpKRXWrPtDQxmTjHJHiAWteVYTsc7Gjz4hdXxvYoZXGeHkrEayp -``` - -成功した場合、DoubleZeroはプライマリをバックアップとともに登録します。アクセスパスに登録されたIPの間でフェイルオーバーできるようになります。DoubleZeroはこのように登録されたバックアップノードへの切り替え時に接続を自動的に維持します。 - -
- -## 6. IBRLモードでの接続 - -
- -DoubleZeroに接続するユーザーで、サーバー上で`connect`コマンドを実行してDoubleZeroへの接続を確立します。 - -``` -doublezero connect ibrl -``` - -以下のようなプロビジョニングを示す出力が表示されます: - -``` -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 -``` -GREトンネルのセットアップが完了するまで1分待ちます。GREトンネルのセットアップが完了するまで、ステータス出力が「down」または「Unknown」を返す場合があります。 - -接続を確認します: - -```bash -doublezero status -``` - -**出力:** -!!! note inline end - この出力を確認してください。`Tunnel src`と`DoubleZero IP`がマシンのパブリックIPv4アドレスと一致していることに注意してください。 - -```bash - 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`のステータスは正常に接続されていることを意味します。 - -次のコマンドを実行することでDoubleZero上の他のユーザーによって伝搬されたルートを確認できます: - -``` -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 -... -``` - -
- -### 次のステップ:マルチキャストによるシュレッドの公開 - -このセットアップを完了してマルチキャストでシュレッドを公開する予定の場合は、[次のページ](Validator%20Multicast%20Connection.md)に進んでください。 + --doubl \ No newline at end of file diff --git a/docs/DZ Testnet Connection.ko.md b/docs/DZ Testnet Connection.ko.md index df8ad0e..2accee0 100644 --- a/docs/DZ Testnet Connection.ko.md +++ b/docs/DZ Testnet Connection.ko.md @@ -1,111 +1,109 @@ -# IBRL 모드 검증자 테스트넷 연결 -!!! warning "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." +--- +description: IBRL 모드에서 Solana 테스트넷 밸리데이터를 DoubleZero에 연결하는 방법으로, 테스트넷 평가 계약 및 연결 절차를 포함합니다. +--- +# IBRL 모드에서의 밸리데이터 테스트넷 연결 ??? warning "DoubleZero 테스트넷에 연결함으로써 여기에 명시된 평가 계약 조건에 동의합니다 (클릭하여 확장)" DoubleZero 테스트넷 평가 계약 - 본 솔루션(아래 정의)에 액세스하거나 사용함으로써 귀하는 첫 번째 액세스 날짜("**발효일**")로부터 본 평가 계약("**계약**")이 DoubleZero Foundation("**DZF**")이 평가 기준으로 솔루션에 대한 액세스를 제공하는 조건을 규정함에 동의합니다. 상호 약속의 대가로 귀하는 다음에 동의합니다: + 솔루션(아래 정의)에 접근하거나 사용함으로써, 귀하는 최초 접근일(이하 + "**발효일**")부터 본 평가 계약(이하 "**본 계약**")이 + DoubleZero Foundation(이하 "**DZF**")이 귀하(이하 "**사용자**" 또는 + "**귀하**")에게 평가 목적으로 솔루션에 대한 접근을 제공하는 + 조건을 규정함에 동의합니다. 상호 약속을 고려하여, 귀하는 + 다음과 같이 동의합니다: 1. 정의. - 1.1 "**기밀 정보**"는 기밀로 지정되었거나 솔루션, 제품 계획, 사업 계획, 영업 비밀, 기술 또는 기타 독점 정보를 포함하되 이에 국한되지 않는 기타 기밀로 이해되어야 하는 일방 당사자가 타방 당사자에게 공개한 모든 정보를 의미합니다. + 1.1 "**기밀 정보**"란 일방 당사자가 타방 당사자에게 공개하는 모든 정보로서 기밀로 지정되거나, 기밀로 이해되어야 하는 정보를 의미하며, 솔루션, 제품 계획, 사업 계획, 영업 비밀, 기술 또는 기타 독점 정보를 포함하되 이에 국한되지 않습니다. - 1.2 "**솔루션**"은 web3 프로젝트를 위한 DoubleZero 고성능 네트워크 인프라의 테스트넷 버전("**테스트넷**") 및 통합 대역폭이 있는 관련 엣지 필터링 서비스("**정보 서비스**"), DZ 소프트웨어(아래 정의), DZ 소프트웨어와 관련하여 DZF가 제공하는 모든 자료("**문서**"), 및 DZF가 여기서 사용자에게 제공하는 기타 자료를 의미합니다. + 1.2 "**솔루션**" 이란 web3 프로젝트를 위한 DoubleZero 고성능 네트워크 인프라의 테스트넷 버전(이하 "**테스트넷**")과 통합 대역폭을 갖춘 관련 엣지 필터링 서비스(이하 "**정보 서비스**"), DZ 소프트웨어(아래 정의), DZF가 DZ 소프트웨어와 관련하여 제공하는 모든 자료(이하 "**문서**"), 그리고 DZF가 본 계약에 따라 사용자에게 제공하는 기타 자료를 의미합니다. - 2. 액세스. + 2. 접근. - 2.1 ^^솔루션 액세스^^. 본 계약의 조건에 따라 DZF는 인터넷을 통해 사용자에게 솔루션 액세스를 제공합니다. 사용자의 액세스는 사용자가 정보 서비스를 평가할 수 있도록 하기 위한 솔루션의 비독점적, 비양도 가능한, 제한적 사용입니다. 솔루션을 구성하는 소프트웨어("**DZ 소프트웨어**")와 관련하여 DZF는 평가 기간 동안 사용자에게 문서에서 예상한 대로만 해당 DZ 소프트웨어를 복사, 다운로드, 합리적인 수의 사본 작성, 실행 및 배포(해당하는 경우)할 수 있는 제한적, 취소 가능한 라이선스를 부여합니다. + 2.1 ^^솔루션에 대한 접근^^. 본 계약의 조건에 따라, DZF는 인터넷을 통해 사용자에게 솔루션에 대한 접근을 제공합니다. 사용자의 접근은 정보 서비스를 평가하기 위한 목적에 한정된 비독점적, 양도 불가능한 제한적 솔루션 사용입니다. 솔루션을 구성하는 소프트웨어(이하 "**DZ 소프트웨어**")와 관련하여, DZF는 평가 기간 동안 사용자에게 해당 DZ 소프트웨어를 문서에서 규정한 바에 따라서만 복사, 다운로드, 합리적인 수의 사본 제작, 실행 및 배포(해당되는 경우)할 수 있는 제한적이고 철회 가능한 라이선스를 부여합니다. - 2.2 ^^제한^^. 사용자는 발효일부터 DZF가 종료할 때까지("**평가 기간**") 본 계약에 따라 솔루션을 사용할 수 있습니다. 사용자는 평가 기간 이후의 솔루션 사용 권리가 수수료 지불을 포함하여 당사자 간의 별도 상업 계약에 따를 것임을 이해합니다. 사용자는 다음을 하지 않아야 하며 제3자가 하도록 허용해서도 안 됩니다: (i) 솔루션 또는 그 일부를 기반으로 수정하거나 파생 저작물을 생성하는 것; (ii) 본 계약에서 명시적으로 허용된 경우를 제외하고 솔루션을 복제하는 것; (iii) 솔루션의 전부 또는 일부에 대한 권리를 서비스 기관 기준으로 또는 기타 방식으로 제3자에게 제공하는 것 (단, 독립적으로가 아닌 사용자의 플랫폼 또는 제품을 통해 또는 그와 관련하여 정보 서비스를 제공하는 경우는 제외); 또는 (iv) 여기에 제공된 것 이외의 방식으로 솔루션을 사용하는 것. + 2.2 ^^제한 사항^^. 사용자는 발효일부터 DZF가 종료할 때까지(이하 "**평가 기간**") 본 계약에 따라 솔루션을 사용할 수 있습니다. 사용자는 평가 기간 이후 솔루션 사용 권한이 수수료 지불을 포함한 별도의 상업 계약에 따를 것임을 이해합니다. 사용자는 다음 행위를 하거나 제3자가 하도록 허용해서는 안 됩니다: (i) 솔루션 또는 그 일부를 기반으로 파생 저작물을 수정하거나 생성하는 행위; (ii) 본 계약에서 명시적으로 허용한 경우를 제외한 솔루션 복제; (iii) 사용자의 플랫폼이나 제품을 통하거나 이와 연계하여 정보 서비스를 제공하는 경우를 제외하고, 서비스 뷰로 기반이든 기타 방식이든 솔루션의 전부 또는 일부를 재라이선스, 배포, 판매, 대여, 임대, 양도하거나 권리를 부여하거나 제3자에게 솔루션에 대한 접근을 독립적으로 제공하는 행위; 또는 (iv) 본 계약에 규정된 것 이외의 방식으로 솔루션을 사용하는 행위. - 2.3 ^^소유권^^. DZF는 솔루션에 대한 모든 권리, 소유권 및 이익(지적 재산권 포함)을 보유합니다. + 2.3 ^^소유권^^. DZF는 솔루션에 대한 지적재산권을 포함한 모든 권리, 소유권 및 이익을 보유합니다. 3 피드백. - DZF는 주기적으로 사용자에게 솔루션의 사용, 운영 및 기능에 관한 피드백("피드백")을 제공하도록 요청할 수 있으며 사용자는 DZF에 이를 제공하기로 동의합니다. 사용자는 DZF에 피드백을 제품 및 서비스에 사용하고 통합할 수 있는 비독점적, 전 세계적, 영구적, 취소 불가능한, 로열티 없는, 완전히 지불된, 완전히 서브라이선스 가능하고 양도 가능한 권리와 라이선스를 부여합니다. + DZF는 주기적으로 사용자에게 솔루션의 사용, 운영 및 기능에 관한 피드백("피드백")을 요청할 수 있으며, 사용자는 DZF에 이를 제공하는 데 동의합니다. 사용자는 DZF에게 피드백을 모든 제품 및 서비스에 사용하고 통합할 수 있는 비독점적, 전 세계적, 영구적, 취소 불가능한, 로열티 없는, 전액 지불 완료된, 완전히 재라이선스 및 양도 가능한 권리와 라이선스를 부여하며, 이러한 제품 및 서비스를 제작, 사용, 판매, 판매 제안, 수입 및 기타 방식으로 활용하고, 피드백을 제한 없이 사용, 복사, 배포 및 기타 방식으로 활용할 수 있도록 합니다. - 4. 기간 및 해지. + 4. 기간 및 종료. - 4.1 ^^기간^^. 본 계약은 발효일부터 시작하여 평가 기간 동안 완전한 효력을 유지합니다. 어느 당사자든 서면 통지(이메일로 충분)를 통해 상대방에게 어떤 이유로든 즉시 본 계약을 해지할 수 있습니다. + 4.1 ^^기간^^. 본 계약은 발효일부터 시작되며 평가 기간 동안 완전한 효력을 유지합니다. 어느 일방 당사자든 편의에 따라 이유 여부에 관계없이 타방 당사자에게 서면 통지(이메일 가능)함으로써 즉시 본 계약을 종료할 수 있습니다. - 4.1 ^^해지의 효과^^. 어떤 이유로든 본 계약이 해지되면: (i) 사용자에게 부여된 권리가 즉시 종료됩니다; (ii) 사용자는 솔루션 사용을 즉시 중단하고 그 통제 하에 있는 모든 문서 및 DZ 소프트웨어를 반환하거나 폐기해야 합니다; (iii) 각 당사자는 상대방의 모든 기밀 정보와 재산을 즉시 반환하거나 폐기해야 합니다; (iv) 섹션 2.2, 2.3, 3, 4.2, 5~8은 존속합니다. + 4.1 ^^종료의 효과^^. 어떤 사유로든 본 계약이 종료되면: (i) 본 계약에 따라 사용자에게 부여된 권리는 즉시 종료됩니다; (ii) 사용자는 솔루션의 모든 사용을 즉시 중단하고 보유 중인 모든 문서 및 DZ 소프트웨어를 반환하거나 파기해야 합니다; (iii) 각 당사자는 타방 당사자의 모든 기밀 정보와 자산을 신속히 반환하거나 파기해야 합니다; 그리고 (iv) 제2.2조, 제2.3조, 제3조, 제4.2조 및 제5조부터 제8조까지는 존속합니다. 5. 기밀 유지. - 각 당사자는 본 계약 하에서 의무를 이행하고 권리를 행사하기 위해서만 상대방의 기밀 정보를 사용하고 본 계약에서 달리 허용된 경우를 제외하고는 이를 공개하거나 공개되도록 허용하지 않기로 동의합니다. 다만, 어느 당사자든 알아야 할 필요가 있고 본 계약에 규정된 것보다 덜 보호적이지 않은 기밀 유지 의무에 구속되는 직원, 변호사 및 기타 대리인에게 기밀 정보를 공개할 수 있습니다; 법에서 요구하는 경우(수신 당사자는 공개 당사자에게 사전 통지를 제공하고 그러한 공개에 이의를 제기할 기회를 제공하며 적용 가능한 법이 허용하는 한 공개를 최소화합니다). 본 섹션 5의 기밀 유지 의무는 다음에는 적용되지 않습니다: (a) 수신 당사자의 과실 없이 일반적으로 알려지거나 공개적으로 이용 가능한 정보; (b) 공개 당사자의 공개 전에 수신 당사자에게 제한 없이 적절히 알려진 정보; (c) 법적 권한을 가진 다른 사람에 의해 제한 없이 수신 당사자에게 적절히 공개된 정보; (d) 공개 당사자의 기밀 정보를 사용하거나 참조하지 않고 수신 당사자가 독립적으로 개발한 정보. 각 당사자는 상대방의 기밀 정보를 무단 사용 및 공개로부터 보호하는 데 상당한 주의를 기울이기로 동의합니다. + 각 당사자는 타방 당사자의 기밀 정보를 본 계약에 따른 의무 이행과 권리 행사를 위해서만 사용하며, 본 계약에서 달리 허용하는 경우를 제외하고 이를 공개하거나 공개되도록 허용하지 않을 것에 동의합니다. 다만, 어느 당사자든 알 필요가 있고 본 계약에 규정된 것과 동등 이상의 기밀 유지 의무에 구속되는 직원, 변호사 및 기타 대리인에게 기밀 정보를 공개할 수 있으며; 법률에 의해 요구되는 경우(이 경우 수령 당사자는 공개 당사자에게 사전 통지 및 해당 공개에 대해 이의를 제기할 기회를 제공하고, 관련 법률이 허용하는 범위 내에서 공개를 최소화해야 합니다) 공개할 수 있습니다. 본 제5조의 기밀 유지 의무는 다음 정보에는 적용되지 않습니다: (a) 수령 당사자의 과실 없이 일반적으로 알려지거나 공개적으로 이용 가능하게 된 정보; (b) 공개 당사자의 공개 이전에 수령 당사자가 제한 없이 적법하게 알고 있던 정보; (c) 법적 권한을 가진 다른 사람이 제한 없이 수령 당사자에게 적법하게 공개한 정보; 또는 (d) 공개 당사자의 기밀 정보를 사용하거나 참조하지 않고 수령 당사자가 독립적으로 개발한 정보. 각 당사자는 타방 당사자의 기밀 정보를 무단 사용 및 공개로부터 보호하기 위해 상당한 주의를 기울일 것에 동의합니다. 본 조항 또는 본 계약에 포함된 라이선스의 실제 또는 우려되는 위반이 발생한 경우, 비위반 당사자는 다른 권리나 구제 수단을 포기하지 않고 즉각적인 금지 명령 및 기타 형평법상 구제를 구할 수 있습니다. 사용자는 솔루션 및 솔루션에 대한 접근을 제공하는 비밀번호, 시드 구문 또는 코드의 비밀을 DZF의 기밀 정보로서 유지할 책임이 있습니다. 본 계약의 어떤 조항도 솔루션의 성능, 가용성, 사용량, 무결성 및 보안에 관한 데이터를 사용할 DZF의 권리나 능력을 제한하거나 제약하지 않습니다. 어느 일방 당사자가 본 제5조의 조항을 위반하거나 위반하겠다고 위협하는 경우, 각 당사자는 비위반 당사자가 법률상 적절한 구제 수단이 없으며 따라서 보증금 없이 그리고 실제 금전적 손해를 입증할 필요 없이 즉각적인 금지 명령 및 기타 형평법상 구제를 받을 권리가 있음에 동의합니다. 6. 보증 면책; 책임 제한. - 6.1 ^^보증 면책^^. 솔루션은 어떠한 종류의 보증도 없이 "있는 그대로" 제공됩니다. DZF는 솔루션 및 문서에 대해 명시적, 묵시적, 법적 또는 기타 보증을 제공하지 않으며 상품성, 특정 목적 적합성, 소유권 및 비침해에 대한 모든 묵시적 보증을 특별히 부인합니다. + 6.1 ^^보증 면책^^. 솔루션은 어떠한 종류의 보증도 없이 "있는 그대로" 제공됩니다. DZF는 솔루션 및 문서와 관련하여 그 상태, 표현이나 설명과의 적합성을 포함하여 명시적, 묵시적, 법정 또는 기타 어떠한 보증도 하지 않으며, DZF는 상품성, 특정 목적 적합성, 소유권 및 비침해에 대한 모든 묵시적 보증을 명시적으로 부인합니다. 6.2 ^^책임 제한^^. - 섹션 2.1, 2.2, 5 위반의 경우를 제외하고, 어떠한 경우에도 어느 당사자도 이익 손실 또는 사용 손실 또는 데이터 손실에 대한 손해배상을 포함하되 이에 국한되지 않는 간접적, 부수적, 특별 또는 기타 결과적 손해에 대해 계약 행위, 불법 행위 또는 기타의 경우에 상대방에 대해 책임을 지지 않습니다. 어떠한 경우에도 DZF의 총 책임은 계약 행위, 불법 행위 또는 기타의 경우에 $100를 초과하지 않습니다. + 제2.1조, 제2.2조 및 제5조의 위반을 제외하고, 어떠한 경우에도 어느 일방 당사자는 타방 당사자에게 간접적, 부수적, 특별 또는 기타 결과적 손해에 대해 책임을 지지 않으며, 이는 이익 손실, 사용 손실 또는 데이터 손실에 대한 손해를 포함하되 이에 국한되지 않고, 본 계약과 관련하여 또는 이로부터 발생하는 계약, 불법행위 또는 기타 소송에서 귀하 또는 제3자가 입은 손해이며, 타방 당사자가 그러한 손해의 가능성을 사전에 고지받았더라도 마찬가지입니다. 어떠한 경우에도 본 계약과 관련하여 또는 이로부터 발생하는 DZF의 총 책임은 계약, 불법행위 또는 기타 소송 여부에 관계없이 100달러(\$100)를 초과하지 않습니다. **전술한 제한은 본 계약의 제한적 구제의 본질적 목적이 달성되지 못하는 경우에도 적용됩니다.** 양 당사자는 전술한 제한이 본 계약에 따른 위험의 합리적 배분을 나타냄에 동의합니다. 7. 준거법. - 본 계약 및 본 계약과 관련하여 발생하는 모든 사항은 케이맨 제도의 법률에 따라 관리, 해석 및 구성됩니다. 본 계약과 관련하여 분쟁이 발생하는 경우, 해당 당사자는 상대방 당사자에게 30일의 분쟁 통지를 해야 합니다. 분쟁이 해결되지 않는 경우, 케이맨 제도 조정 및 중재 센터(CI-MAC)에 의해 관리되는 중재로 분쟁을 해결합니다. 중재는 케이맨 제도 조지 타운에서 진행되며 케이맨 제도 법률이 적용됩니다. 중재 언어는 영어입니다. + 본 계약 및 본 계약과 관련하여 발생하는 모든 사항은 케이맨 제도 법률에 따라 규율, 해석 및 구성됩니다. 본 계약과 관련하여 또는 이로부터 논쟁, 분쟁 또는 청구(이하 "분쟁")가 발생하는 경우, 해당 당사자는 타방 당사자에게 해당 분쟁에 대한 30일간의 통지(이하 "분쟁 통지")를 제공해야 합니다. 분쟁 통지 송달 후 30일이 경과하여도 분쟁이 해결되지 않은 경우, 해당 당사자는 본 계약에 규정된 바에 따라 중재 절차를 개시할 수 있습니다. 분쟁 통지 송달 후 30일이 경과하여도 분쟁이 남아 있는 경우, 분쟁은 본 계약 체결일 현재 유효한 CI-MAC 중재 규칙(이하 "중재 규칙")에 따라 케이맨 국제 중재 및 조정 센터(CI-MAC)가 관리하는 중재에 의해 해결되며, 해당 중재 규칙은 본 조항에 참조로 통합된 것으로 간주되고 중재법(개정법 포함)에 의해 규율됩니다. 중재 장소는 케이맨 제도 그랜드 케이맨 조지타운이며 케이맨 제도 법률에 의해 규율됩니다. 중재 언어는 영어입니다. 중재는 중재 규칙에 따라 선임되는 단독 중재인이 결정합니다. 중재인이 내린 판정이나 결정은 서면으로 작성되어야 하며, 항소권 없이 당사자들에 대해 최종적이고 구속력을 가지며, 이에 따라 획득한 판정에 대한 판결은 관할권을 가진 모든 법원에서 등록되거나 집행될 수 있습니다. 본 계약과 관련하여 또는 이로부터 발생하는 청구에 기반한 법률상 또는 형평법상의 소송은 어떠한 관할 법원에서도 제기되어서는 안 됩니다. 본 계약의 조건을 집행하기 위해 소송이나 중재가 필요한 경우, 승소 당사자는 타방 당사자로부터 변호사 비용을 지급받을 권리가 있습니다. 각 당사자는 불편한 법정지 원칙을 주장하거나, 해당 중재 또는 법원의 관할권에 구속되지 않는다고 주장하거나, 본 계약에 따라 제기된 절차의 범위 내에서 관할지에 이의를 제기할 권리를 포기합니다. 8. 일반 조항. - 본 계약은 DZF의 사전 서면 동의 없이 사용자가 양도하거나 이전할 수 없습니다. DZF는 본 계약을 자유롭게 양도할 수 있습니다. 본 계약에 따라 보내야 하는 모든 통지는 이메일로 전송되어야 하며(DZF: legal@doublezero.xyz) 전송 다음 날에 수신된 것으로 간주됩니다. 본 계약의 어느 조항이 무효 또는 집행 불가능한 것으로 판명되는 경우 본 계약의 나머지 조항은 완전한 효력을 유지합니다. + 본 계약은 DZF의 사전 서면 동의 없이 사용자가 양도하거나 이전할 수 없습니다. DZF는 본 계약을 자유롭게 양도할 수 있습니다. 본 계약에 따라 발송이 필요한 모든 통지는 이메일(DZF: legal@doublezero.xyz)로 발송되어야 하며, 발송 다음 날 수령된 것으로 간주됩니다(전송 확인 필요). 본 계약의 어떤 조항이 무효이거나 집행 불가능한 것으로 판명되더라도, 본 계약의 나머지 조항은 완전한 효력을 유지합니다. 어느 일방 당사자가 본 계약의 불이행이나 위반을 면제하더라도, 이는 다른 또는 후속 불이행이나 위반에 대한 면제를 구성하지 않습니다. 어느 당사자도 예견 가능 여부에 관계없이 천재지변, 지진, 물자 부족, 운송 장애, 노동 분쟁, 폭동, 전쟁, 화재, 전염병 및 통제할 수 없는 유사한 사건으로 인한 이행 지연이나 불이행에 대해 책임을 지지 않습니다. 본 계약은 첨부 문서와 함께 당사자 간의 완전한 합의를 구성하며, 본 계약의 주제에 관한 모든 이전 또는 동시 합의나 표현(서면 또는 구두)을 대체합니다. 본 계약은 각 당사자의 정당한 권한을 가진 대리인이 서명한 서면에 의해서만 수정 또는 변경될 수 있습니다. -### IBRL 모드로 테스트넷에 연결 +### 테스트넷 IBRL 모드 연결 !!! Note inline end - IBRL 모드는 기존 공개 IP 주소를 사용하므로 검증자 클라이언트를 재시작할 필요가 없습니다. + IBRL 모드는 기존 공인 IP 주소를 사용하므로 밸리데이터 클라이언트를 재시작할 필요가 없습니다. -Solana 테스트넷 검증자는 이 페이지에 자세히 설명된 DoubleZero 테스트넷 연결을 완료합니다. +Solana 테스트넷 밸리데이터는 이 페이지에서 설명하는 DoubleZero 테스트넷 연결을 완료합니다. -각 Solana 검증자에는 고유한 **신원 키쌍**이 있으며, 이로부터 **노드 ID**로 알려진 공개 키를 추출합니다. 이것이 Solana 네트워크에서 검증자의 고유 지문입니다. +각 Solana 밸리데이터는 고유한 **아이덴티티 키페어**를 가지고 있으며, 여기서 **노드 ID**라고 알려진 공개 키를 추출합니다. 이것은 Solana 네트워크에서 밸리데이터의 고유한 식별자입니다. -DoubleZeroID와 노드 ID가 확인되면 기계의 소유권을 증명해야 합니다. 이는 검증자의 신원 키로 서명된 DoubleZeroID를 포함하는 메시지를 생성하여 수행됩니다. 결과적인 암호화 서명은 검증자를 제어한다는 검증 가능한 증거로 사용됩니다. +DoubleZeroID와 노드 ID가 확인되면, 머신의 소유권을 증명합니다. 이는 밸리데이터의 아이덴티티 키로 서명된 DoubleZeroID를 포함하는 메시지를 생성하여 수행됩니다. 결과로 얻어지는 암호학적 서명은 귀하가 해당 밸리데이터를 제어하고 있다는 검증 가능한 증거로 사용됩니다. -마지막으로 **DoubleZero에 연결 요청을 제출**합니다. 이 요청은 다음을 전달합니다: *"제 신원이 여기 있고, 소유권 증거가 여기 있으며, 연결 방법이 여기 있습니다."* DoubleZero는 이 정보를 검증하고 증거를 수락하며 DoubleZero에서 검증자의 네트워크 액세스를 프로비저닝합니다. +마지막으로, **DoubleZero에 연결 요청**을 제출합니다. 이 요청은 다음을 전달합니다: *"여기 제 아이덴티티가 있고, 소유권 증명이 있으며, 연결 방법은 이렇습니다."* DoubleZero는 이 정보를 검증하고, 증명을 수락하고, DoubleZero에서 밸리데이터의 네트워크 접근을 프로비저닝합니다. -이 가이드를 통해 1개의 기본 검증자가 자신을 등록하고 동시에 최대 3개의 백업/장애 조치 기계를 등록할 수 있습니다. +이 가이드에서는 1개의 프라이머리 밸리데이터를 등록하고, 동시에 최대 3개의 백업/페일오버 머신을 등록할 수 있습니다. -## 사전 요구사항 +## 사전 요구 사항 -- Solana CLI 설치 및 $PATH 등록 -- 검증자의 경우: sol 사용자 하에 검증자 신원 키쌍 파일(예: validator-keypair.json)에 대한 액세스 권한 -- 검증자의 경우: 연결할 Solana 검증자의 신원 키에 최소 1 SOL이 있는지 확인 -- 방화벽 규칙이 DoubleZero 및 Solana RPC에 대한 아웃바운드 연결을 허용해야 함 (GRE(ip proto 47) 및 BGP(169.254.0.0/16의 tcp/179) 포함) +- Solana CLI가 설치되어 있고 $PATH에 등록되어 있어야 합니다 +- 밸리데이터의 경우: sol 사용자 하에서 밸리데이터 아이덴티티 키페어 파일(예: validator-keypair.json)에 대한 접근 권한이 필요합니다 +- 밸리데이터의 경우: 연결하려는 Solana 밸리데이터의 아이덴티티 키에 최소 1 SOL이 있는지 확인합니다 +- DoubleZero 및 Solana RPC에 필요한 아웃바운드 연결을 허용하는 방화벽 규칙이 설정되어 있어야 하며, GRE (ip proto 47) 및 BGP (169.254.0.0/16 on tcp/179)를 포함합니다 !!! info - 검증자 ID는 Solana 가십에 대해 확인되어 대상 IP를 결정합니다. 대상 IP와 DoubleZero ID는 기계와 대상 DoubleZero 장치 간에 GRE 터널을 열 때 사용됩니다. + 밸리데이터 ID는 Solana gossip과 대조하여 대상 IP를 결정합니다. 대상 IP와 DoubleZero ID는 귀하의 머신과 대상 DoubleZero 장치 간의 GRE 터널을 개설할 때 사용됩니다. - 고려사항: 동일한 IP에 정크 ID와 기본 ID가 있는 경우 기본 ID만 기계 등록에 사용됩니다. 정크 ID는 가십에 나타나지 않으므로 대상 기계의 IP를 확인하는 데 사용할 수 없습니다. + 참고: 동일한 IP에 임시 ID와 프라이머리 ID가 있는 경우, 머신 등록 시 프라이머리 ID만 사용됩니다. 이는 임시 ID가 gossip에 나타나지 않아 대상 머신의 IP를 확인하는 데 사용할 수 없기 때문입니다. -## 1. 환경 구성 +## 1. 클라이언트 네트워크 확인 -진행하기 전에 [설정](setup.md) 지침을 따르세요. +진행하기 전에 [설정](setup.md) 지침을 따르십시오. **테스트넷** 패키지를 설치하십시오 — 테스트넷과 메인넷-베타는 서로 다른 패키지 저장소를 사용합니다. -설정의 마지막 단계는 네트워크에서 연결을 해제하는 것이었습니다. 이는 기계에 DoubleZero에 대한 터널이 하나만 열려 있고 해당 터널이 올바른 네트워크에 있도록 하기 위한 것입니다. +설정의 마지막 단계는 네트워크 연결을 해제하는 것이었습니다. 이는 머신에서 DoubleZero로의 터널이 하나만 열려 있고, 해당 터널이 올바른 네트워크에 연결되어 있는지 확인하기 위함입니다. -
+클라이언트가 테스트넷에 있는지 확인합니다: -**DoubleZero 테스트넷**에 연결하도록 DoubleZero 클라이언트 CLI(`doublezero`) 및 데몬(`doublezerod`)을 구성하려면: ```bash -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 +doublezero status ``` -약 30초 후 DoubleZero 장치를 볼 수 있습니다: +`Network` 열이 `testnet`이어야 합니다. `mainnet-beta`이거나 잘못된 패키지를 설치한 경우, [문제 해결](troubleshooting.md#issue-wrong-doublezero-environment)의 복사-붙여넣기 전환을 사용하십시오. + +약 30초 후 사용 가능한 DoubleZero 장치를 확인할 수 있습니다: ```bash doublezero latency ``` -예시 출력 (테스트넷) +예제 출력 (테스트넷) ```bash doublezero latency pubkey | code | ip | min | max | avg | reachable @@ -119,265 +117,6 @@ doublezero latency 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 ``` -
-메인넷 출력은 구조가 동일하지만 더 많은 장치가 있습니다. - - - - -## 2. 포트 44880 열기 - -사용자는 일부 [라우팅 기능](https://github.com/malbeclabs/doublezero/blob/main/rfcs/rfc7-client-route-liveness.md)을 활용하기 위해 포트 44880을 열어야 합니다. - -포트 44880을 열려면 다음과 같이 IP 테이블을 업데이트할 수 있습니다: - -
- -``` -sudo iptables -A INPUT -i doublezero0 -p udp --dport 44880 -j ACCEPT -sudo iptables -A OUTPUT -o doublezero0 -p udp --dport 44880 -j ACCEPT -``` - -
- -이 규칙을 DoubleZero 인터페이스로만 제한하는 `-i doublezero0`, `-o doublezero0` 플래그에 주의하세요. - -또는 UFW를 사용할 수 있습니다: - -
- -``` -sudo ufw allow in on doublezero0 to any port 44880 proto udp -sudo ufw allow out on doublezero0 to any port 44880 proto udp -``` - -
- -이 규칙을 DoubleZero 인터페이스로만 제한하는 `in on doublezero0`, `out on doublezero0` 플래그에 주의하세요. - -## 3. 검증자 소유권 증명 - -
- -DoubleZero 환경이 설정되었으면 이제 검증자 소유권을 증명할 차례입니다. - -기본 검증자의 [설정](setup.md)에서 생성한 DoubleZero ID는 모든 백업 기계에서 사용해야 합니다. - -기본 기계의 ID는 `doublezero address`로 찾을 수 있습니다. 동일한 ID가 클러스터의 모든 기계의 `~/.config/doublezero/id.json`에 있어야 합니다. - -이를 위해 먼저 명령을 실행 중인 기계가 **기본 검증자**인지 다음 명령으로 확인합니다: - -``` -doublezero-solana passport find-validator -ut -``` - -이는 검증자가 가십에 등록되어 있고 리더 스케줄에 나타나는지 확인합니다. - -예상 출력: - -``` -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 - 동일한 워크플로우가 하나 또는 여러 기계에 사용됩니다. - 하나의 기계를 등록하려면 모든 명령에서 "--backup-validator-ids" 또는 "backup_ids=" 인수를 제외하세요. - -이제 **기본 검증자**를 실행할 모든 백업 기계에서 다음을 실행합니다: - -``` -doublezero-solana passport find-validator -ut -``` - -예상 출력: - -``` -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. -``` -이 출력은 예상된 것입니다. 백업 노드는 패스 생성 시 리더 스케줄에 있을 수 없습니다. - -이제 **기본 검증자** 투표 계정과 신원을 사용할 계획인 **모든 백업 기계**에서 이 명령을 실행합니다. - -
- - -
- -### 연결 준비 - -**기본 검증자** 기계에서 다음 명령을 실행합니다. 이는 활성 지분이 있고, 리더 스케줄에 있으며, 명령을 실행 중인 기계의 Solana 가십에 기본 검증자 ID가 있는 기계입니다: - -``` -doublezero-solana passport prepare-validator-access -ut \ - --doublezero-address YourDoubleZeroAddress11111111111111111111111111111 \ - --primary-validator-id ValidatorIdentity111111111111111111111111111 \ - --backup-validator-ids ValidatorIdentity222222222222222222222222222,ValidatorIdentity33333333333333333333333333,ValidatorIdentity444444444444444444444444444> -``` - - -예시 출력: - -``` -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 - -``` -이 명령의 끝에 있는 출력에 주목하세요. 이것이 다음 단계의 구조입니다. - -
- -## 4. 서명 생성 - -
- -마지막 단계에서 `solana sign-offchain-message`에 대한 미리 형식화된 출력을 받았습니다. - -위 출력에서 **기본 검증자** 기계에서 이 명령을 실행합니다. - -``` - solana sign-offchain-message \ - service_key=YourDoubleZeroAddress11111111111111111111111111111,backup_ids=ValidatorIdentity222222222222222222222222222,ValidatorIdentity33333333333333333333333333,ValidatorIdentity444444444444444444444444444 \ - -k -``` - -**출력:** - -``` - Signature111111rrNykTByK2DgJET3U6MdjSa7xgFivS9AHyhdSG6AbYTeczUNJSjYPwBGqpmNGkoWk9NvS3W7 -``` - -
- -## 5. DoubleZero에서 연결 요청 시작 - -
- -`request-validator-access` 명령을 사용하여 연결 요청을 위한 Solana 계정을 생성합니다. DoubleZero Sentinel 에이전트가 새 계정을 감지하고 신원과 서명을 검증한 후 서버가 연결을 설정할 수 있도록 DoubleZero에 액세스 패스를 생성합니다. - - -노드 ID, DoubleZeroID, 서명을 사용합니다. - -!!! note inline end - 이 예시에서는 검증자 신원을 찾기 위해 `-k /home/user/.config/solana/id.json`을 사용합니다. 로컬 배포에 적합한 위치를 사용하세요. - -``` -doublezero-solana passport request-validator-access -k -ut \ ---primary-validator-id ValidatorIdentity111111111111111111111111111 \ ---backup-validator-ids ValidatorIdentity222222222222222222222222222,ValidatorIdentity33333333333333333333333333,ValidatorIdentity444444444444444444444444444 \ ---signature Signature111111rrNykTByK2DgJET3U6MdjSa7xgFivS9AHyhdSG6AbYTeczUNJSjYPwBGqpmNGkoWk9NvS3W7 --doublezero-address YourDoubleZeroAddress11111111111111111111111111111 -``` - -**출력:** - -이 출력은 Solana 탐색기에서 트랜잭션을 확인하는 데 사용할 수 있습니다. 탐색기를 테스트넷으로 변경해야 합니다. 이 확인은 선택 사항입니다. - -```bash -Request Solana validator access: Transaction22222222VaB8FMqM2wEBXyV5THpKRXWrPtDQxmTjHJHiAWteVYTsc7Gjz4hdXxvYoZXGeHkrEayp -``` - -성공하면 DoubleZero가 기본을 백업과 함께 등록합니다. 이제 액세스 패스에 등록된 IP 간에 장애 조치할 수 있습니다. DoubleZero는 이 방식으로 등록된 백업 노드로 전환할 때 자동으로 연결을 유지합니다. - -
- -## 6. IBRL 모드로 연결 - -
- -서버에서 DoubleZero에 연결할 사용자로 `connect` 명령을 실행하여 DoubleZero에 연결을 설정하세요. - -``` -doublezero connect ibrl -``` - -다음과 같은 프로비저닝을 나타내는 출력이 표시되어야 합니다: - -``` -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 -``` -GRE 터널이 완료될 때까지 1분 기다리세요. 터널이 완료될 때까지 상태 출력이 "down" 또는 "Unknown"을 반환할 수 있습니다. - -연결을 확인하세요: - -```bash -doublezero status -``` - -**출력:** -!!! note inline end - 이 출력을 확인하세요. `Tunnel src`와 `DoubleZero IP`가 기계의 공개 IPv4 주소와 일치하는지 주목하세요. - -```bash - 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` 상태는 성공적으로 연결되었음을 의미합니다. - -다음을 실행하여 DoubleZero의 다른 사용자가 전파한 경로를 볼 수 있습니다: - -``` -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 -... -``` - -
- -### 다음 단계: 멀티캐스트를 통한 Shred 발행 +메인넷 출력도 구조는 동일하지만, 사용 가능한 장치가 훨씬 더 많습니다. -이 설정을 완료하고 멀티캐스트를 통한 Shred 발행을 계획하고 있다면 [다음 페이지](Validator%20Multicast%20Connection.md)로 진행하세요. +## 2 \ No newline at end of file diff --git a/docs/DZ Testnet Connection.md b/docs/DZ Testnet Connection.md index d7b844c..05a3ee2 100644 --- a/docs/DZ Testnet Connection.md +++ b/docs/DZ Testnet Connection.md @@ -85,29 +85,20 @@ This guide allows for 1 Primary Validator to register itself, and up to 3 backup Consider: In the case where you have a junk ID and Primary ID on at the same IP, only the Primary ID will be used in registration of the machine. This is because the junk ID will not appear in gossip, and therefore cannot be used to verify the IP of the target machine. -## 1. Environment Configuration +## 1. Confirm the client network -Please follow the [setup](setup.md) instructions before proceeding. +Please follow the [setup](setup.md) instructions before proceeding. Install the **Testnet** packages — Testnet and Mainnet-Beta use different package repos. The last step in setup was to disconnect from the network. This is to ensure that only one tunnel is open on your machine to DoubleZero, and that tunnel is on the correct network. -
+Confirm the client is on testnet: -To configure the DoubleZero Client CLI (`doublezero`) and daemon (`doublezerod`) to connect to **DoubleZero testnet**: ```bash -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" -``` -You should see the following output: -``` -✅ doublezerod configured for environment testnet +doublezero status ``` +The `Network` column should be `testnet`. If it is `mainnet-beta`, or you installed the wrong package, use the copy-paste switch in [troubleshooting](troubleshooting.md#issue-wrong-doublezero-environment). + After about 30 seconds you will see the DoubleZero devices available: @@ -128,11 +119,7 @@ doublezero latency 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 ``` -
Mainnet output will be identical in structure, but with many more available devices. - - - ## 2. Open port 44880 diff --git a/docs/DZ Testnet Connection.pt.md b/docs/DZ Testnet Connection.pt.md index 46702ad..79b8464 100644 --- a/docs/DZ Testnet Connection.pt.md +++ b/docs/DZ Testnet Connection.pt.md @@ -1,117 +1,111 @@ -# Conexão do Validador ao Testnet no Modo IBRL -!!! warning "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." +--- +description: Conecte um validador Solana Testnet ao DoubleZero no modo IBRL, incluindo o acordo de avaliação da testnet e os passos de conexão. +--- -??? warning "Ao conectar ao testnet DoubleZero, concordo com os termos do Acordo de Avaliação estabelecido aqui (clique para expandir)" - Testnet DoubleZero +# Conexão de Validador à Testnet no Modo IBRL +??? warning "Ao conectar-me à testnet DoubleZero, concordo com os termos do Acordo de Avaliação estabelecidos aqui (clique para expandir)" + DoubleZero Testnet 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 + 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 + a você ("**Usuário**" ou "**você**") acesso à Solução em caráter 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.1 "**Informação Confidencial**" significa toda e qualquer informação divulgada por qualquer das partes à outra que seja designada como confidencial, ou que de outra forma deva ser entendida como confidencial, incluindo, mas não se limitando a, a Solução, planos de produto, planos de negócios, segredos comerciais, tecnologia ou qualquer outra informação proprietária. - 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. + 1.2 "**Solução**" significa a versão testnet da infraestrutura de rede de alto desempenho DoubleZero para projetos web3 ("**Testnet**") e o serviço de filtragem de borda relacionado com largura de banda integrada ("**Serviço de Informação**"), o Software DZ (definido abaixo), quaisquer e todos os materiais fornecidos pela DZF relativos ao Software DZ ("**Documentação**"), e outros materiais que a DZF forneça ao Usuário nos termos deste instrumento. 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.1 ^^Acesso à Solução^^. Sujeito aos termos e condições deste Acordo, a DZF fornecerá ao Usuário acesso à Solução através da 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 componha 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.2 ^^Restrições^^. O Usuário pode usar a Solução de acordo com este Acordo a partir da Data de Vigência até a rescisão pela DZF (o "**Período de Avaliação**"). O Usuário entende que quaisquer direitos de uso da Solução além do Período de Avaliação estarão sujeitos a um acordo comercial separado entre as partes a esse respeito, incluindo o pagamento de taxas. O Usuário não deverá, e não permitirá que terceiros: (i) modifiquem ou criem quaisquer trabalhos derivados baseados 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 regime de bureau de serviços ou de outra forma, exceto como oferta dos Serviços de Informação através de 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 forma diferente da prevista neste instrumento. - 2.3 ^^Propriedade^^. A DZF retém todos os direitos, títulos e interesses, incluindo direitos de propriedade intelectual, sobre e na Solução. + 2.3 ^^Propriedade^^. A DZF retém todos os direitos, títulos e interesses, incluindo direitos de propriedade intelectual, sobre a 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. + 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, livres de 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 para de outra forma usar, copiar, distribuir e explorar o Feedback sem restrições. 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 ^^Prazo^^. Este Acordo terá início 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 escrita à 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. + 4.1 ^^Efeitos da Rescisão^^. Após a rescisão deste Acordo por qualquer motivo: (i) os direitos concedidos ao Usuário neste instrumento serão imediatamente encerrados; (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 propriedade 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. + 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á, ou permitirá que sejam divulgadas, as mesmas, exceto conforme permitido neste instrumento. No entanto, qualquer das partes pode divulgar Informações Confidenciais a seu pessoal, advogados e outros representantes que tenham necessidade de conhecimento 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 extensão 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 devidamente conhecidas pela parte receptora, sem restrição, antes da divulgação pela parte divulgadora; (c) foram devidamente divulgadas à parte receptora, sem restrição, por outra pessoa com autoridade legal para fazê-lo; ou (d) são desenvolvidas independentemente pela parte receptora sem uso ou referência às Informações Confidenciais da parte divulgadora. Cada parte concorda em exercer o devido cuidado na proteção das Informações Confidenciais da outra parte contra uso e divulgação não autorizados. Em caso de violação real ou ameaçada das disposições desta Seção ou das licenças aqui contidas, a parte não violadora terá direito a buscar medida cautelar imediata e outras medidas equitativas, sem renunciar a quaisquer outros direitos ou recursos disponíveis. O Usuário é responsável por manter a Solução e o sigilo de quaisquer senhas, frases-semente ou códigos que forneçam acesso à Solução como Informação Confidencial da DZF. Nada neste instrumento limita ou restringe o direito ou capacidade da DZF de usar dados relativos ao desempenho, disponibilidade, uso, integridade e segurança da Solução. Se qualquer das partes violar ou ameaçar violar as disposições desta Seção 5, cada parte concorda que a parte não violadora não terá recurso adequado em lei e, portanto, tem direito a medida cautelar imediata e outras medidas equitativas, sem fiança e sem a necessidade de demonstrar danos monetários reais. 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.1 ^^ISENÇÃO DE GARANTIA^^. A SOLUÇÃO É FORNECIDA "COMO ESTÁ" SEM GARANTIA DE QUALQUER TIPO. A DZF NÃO FAZ GARANTIAS, 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 RENUNCIA A TODAS AS GARANTIAS IMPLÍCITAS DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UM PROPÓSITO 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. + 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 AÇÃO CONTRATUAL, EXTRACONTRATUAL 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 CONTRATUAL, EXTRACONTRATUAL OU DE OUTRA FORMA. **AS LIMITAÇÕES ANTERIORES SERÃO APLICÁVEIS NÃO OBSTANTE A FALHA DO PROPÓSITO ESSENCIAL DE QUALQUER RECURSO LIMITADO NESTE INSTRUMENTO.** AS PARTES CONCORDAM QUE AS LIMITAÇÕES ANTERIORES REPRESENTAM UMA ALOCAÇÃO RAZOÁVEL DE RISCO SOB ESTE ACORDO. 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. + Este Acordo e todas as questões decorrentes ou relacionadas a este Acordo serão regidos, interpretados e construídos de acordo com as leis das Ilhas Cayman. Caso surja uma controvérsia, disputa ou reclamação decorrente de ou em relação a este Acordo ("Disputa"), a parte relevante, conforme apropriado, deve dar aviso de 30 dias de tal Disputa à outra parte (a "Notificação de Disputa"). Caso a Disputa não seja resolvida ao término de 30 dias após o envio da Notificação de Disputa, a parte relevante pode iniciar procedimentos de arbitragem conforme previsto neste instrumento. Caso a Disputa permaneça ao término de 30 dias após o envio da Notificação de Disputa, a Disputa será resolvida por arbitragem administrada pelo Cayman International Mediation & Arbitration Centre (CI-MAC) de acordo com as Regras de Arbitragem do CI-MAC (as "Regras de Arbitragem") em vigor na data deste Acordo, cujas Regras de Arbitragem são consideradas incorporadas por referência a esta cláusula, e regidas pela Lei de Arbitragem (conforme alterada). A arbitragem terá sede em George Town, Grand Cayman, Ilhas Cayman e será regida pela lei das Ilhas Cayman. O idioma da arbitragem será o inglês. A arbitragem será determinada por um único árbitro a ser nomeado de acordo com as Regras de Arbitragem. Qualquer sentença ou decisão proferida pelo árbitro deverá ser por escrito e será final e vinculante para as partes sem qualquer direito de recurso, e o julgamento sobre qualquer sentença assim obtida poderá ser registrado ou executado por qualquer tribunal com jurisdição competente. Nenhuma ação judicial ou em equidade baseada em qualquer reivindicação decorrente de ou relacionada a este Acordo será instaurada em qualquer tribunal de qualquer jurisdição. Se qualquer litígio ou arbitragem for necessário para fazer cumprir os termos deste Acordo, a parte vencedora terá direito ao pagamento de seus honorários advocatícios pela outra parte. Cada parte renuncia a qualquer direito que possa ter de invocar a doutrina de forum non conveniens, de alegar que não está sujeita à jurisdição de tal arbitragem ou tribunais, ou de objetar ao foro na medida em que qualquer procedimento seja instaurado de acordo com este instrumento. 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. + 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. Todas as notificações que devam ser enviadas nos termos deste instrumento serão enviadas por e-mail (para a DZF: legal@doublezero.xyz) e consideradas recebidas no dia seguinte ao envio (com confirmação de transmissão). Se qualquer disposição deste Acordo for considerada inválida ou inexequível, as demais disposições deste Acordo permanecerão em pleno vigor e efeito. A renúncia por qualquer das partes a qualquer inadimplência ou violação deste Acordo não constituirá renúncia a qualquer outra inadimplência ou violação subsequente. Nenhuma das partes será responsável por qualquer atraso ou falha no cumprimento devido a caso fortuito, terremotos, escassez de suprimentos, dificuldades de transporte, conflitos trabalhistas, tumultos, guerra, incêndio, epidemias e ocorrências similares além de seu controle, sejam ou não previsíveis. 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 objeto aqui tratado. Este Acordo não pode ser modificado ou alterado exceto por escrito assinado por um representante devidamente autorizado de cada parte. -### Conectando ao Testnet no Modo IBRL +### Conectando à Testnet no Modo IBRL !!! Note inline end - O modo IBRL não requer reinicialização dos clientes validadores, pois usa seu endereço IP público existente. + O modo IBRL não requer reiniciar os clientes validadores, pois utiliza 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. +Validadores Solana Testnet completarão a conexão à Testnet DoubleZero, conforme detalhado 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. +Cada validador Solana possui seu próprio **par de chaves de identidade**; a partir dele, extraia a chave pública conhecida como **ID do nó**. 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. +Com o DoubleZeroID e o ID do nó identificados, você comprovará a propriedade da sua máquina. Isso é feito criando uma mensagem que inclui o DoubleZeroID assinada 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. +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 o 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. +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) +- Solana CLI instalado e no $PATH +- Para validadores: Permissão para acessar o arquivo do par de chaves de identidade do validador (ex.: validator-keypair.json) sob o usuário sol +- Para validadores: Verifique se a chave de Identidade do validador Solana sendo conectado possui pelo menos 1 SOL +- As regras de firewall permitem conexões de saída para o DoubleZero e Solana RPC conforme necessário, incluindo + GRE (ip proto 47) e BGP (169.254.0.0/16 em 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. + O ID do Validador será verificado no gossip da Solana para determinar o IP de destino. O IP de destino e o ID DoubleZero serão então usados ao abrir um túnel GRE entre sua máquina e o Dispositivo DoubleZero de destino. - 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. + Considere: No caso em que você tenha um ID descartável 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 descartável não aparecerá no gossip e, portanto, não pode ser usado para verificar o IP da máquina de destino. -## 1. Configuração do Ambiente +## 1. Confirmar a rede do cliente -Siga as instruções de [configuração](setup.md) antes de continuar. +Por favor, siga as instruções de [configuração](setup.md) antes de prosseguir. Instale os pacotes **Testnet** — Testnet e Mainnet-Beta usam repositórios de pacotes diferentes. -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. +O último passo na configuração foi desconectar-se 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. -
+Confirme que o cliente está na testnet: -Para configurar o CLI do DoubleZero (`doublezero`) e o daemon (`doublezerod`) para se conectar ao **testnet DoubleZero**: ```bash -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" -``` -Você deve ver a seguinte saída: -``` -✅ doublezerod configured for environment testnet +doublezero status ``` -Após aproximadamente 30 segundos, você verá os dispositivos DoubleZero disponíveis: +A coluna `Network` deve mostrar `testnet`. Se estiver `mainnet-beta`, ou se você instalou o pacote errado, use a opção de troca por copiar e colar em [solução de problemas](troubleshooting.md#issue-wrong-doublezero-environment). + +Após cerca de 30 segundos, você verá os dispositivos DoubleZero disponíveis: ```bash doublezero latency ``` -Exemplo de saída (testnet) +Saída de exemplo (testnet) ```bash doublezero latency pubkey | code | ip | min | max | avg | reachable @@ -125,17 +119,13 @@ doublezero latency 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. - - - +A saída da 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](https://github.com/malbeclabs/doublezero/blob/main/rfcs/rfc7-client-route-liveness.md). -Para abrir a porta 44880, você pode atualizar as regras do iptables da seguinte forma: +Para abrir a porta 44880, você pode atualizar as tabelas IP da seguinte forma:
@@ -148,7 +138,7 @@ 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: +Ou UFW como:
@@ -165,19 +155,19 @@ observe os flags `in on doublezero0`, `out on doublezero0` que restringem esta r
-Com seu Ambiente DoubleZero configurado, é hora de atestar a Propriedade do seu Validador. +Com seu Ambiente DoubleZero configurado, agora é hora de atestar a Propriedade do seu Validador. O ID DoubleZero que você criou na [configuração](setup.md) 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: +Para realizar isso, você primeiro verificará se a máquina de onde 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. +Isso verifica se o validador está registrado no gossip e aparece no cronograma de líderes. Saída esperada: @@ -192,10 +182,10 @@ 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. + O mesmo fluxo de trabalho é usado para uma ou várias máquinas. + Para registrar uma máquina, exclua os argumentos "--backup-validator-ids" ou "backup_ids=" de quaisquer comandos nesta página. -Agora, em todas as máquinas de backup nas quais você planeja executar seu **Validador Primário**, execute o seguinte: +Agora, em todas as máquinas de backup nas quais você pretende executar seu **Validador Primário**, execute o seguinte: ``` doublezero-solana passport find-validator -ut @@ -215,7 +205,7 @@ In Not in Leader scheduler ``` Esta saída é esperada. O nó de backup não pode estar no cronograma de líderes no momento da criação do passe. -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**. +Agora você executará este comando em **todas as máquinas de backup** nas quais planeja usar a conta de voto e a identidade do seu **Validador Primário**.
@@ -224,7 +214,7 @@ Você agora executará este comando em **todas as máquinas de backup** nas quai ### 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: +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 o ID do seu validador primário no gossip da Solana, na máquina de onde você está executando o comando: ``` doublezero-solana passport prepare-validator-access -ut \ @@ -234,7 +224,7 @@ doublezero-solana passport prepare-validator-access -ut \ ``` -Exemplo de saída: +Saída de exemplo: ``` DoubleZero Passport - Prepare Validator Access Request @@ -277,9 +267,9 @@ Observe a saída no final deste comando. É a estrutura para o próximo passo.
-No final do último passo, recebemos uma saída pré-formatada para `solana sign-offchain-message`. +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**. +A partir da saída acima, executaremos este comando na máquina do **Validador Primário**. ``` solana sign-offchain-message \ @@ -299,9 +289,10 @@ Da saída anterior, executaremos este comando na máquina do **Validador Primár
-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 comando `request-validator-access` para criar uma conta na Solana para a solicitação de conexão. O agente DoubleZero Sentinel 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. + +Use o ID do nó, o DoubleZeroID e a assinatura. !!! note inline end 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. @@ -309,80 +300,4 @@ Use o node ID, o DoubleZeroID e a assinatura. ``` doublezero-solana passport request-validator-access -k -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. - -```bash -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 -``` -Aguarde um minuto para o túnel GRE terminar de ser configurado. Até que o túnel GRE esteja configurado, sua saída de status pode retornar "down" ou "Unknown". - -Verifique sua conexão: - -```bash -doublezero status -``` - -**Saída:** -!!! note inline end - Examine esta saída. Observe que `Tunnel src` e `DoubleZero IP` correspondem ao endereço IPv4 público da sua máquina. - -```bash - 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 -``` -Um status de `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](Validator%20Multicast%20Connection.md). +--backup-validator-ids ValidatorIdentity222222222222222222222222222 \ No newline at end of file diff --git a/docs/DZ Testnet Connection.zh.md b/docs/DZ Testnet Connection.zh.md index 1271b74..e8b67ad 100644 --- a/docs/DZ Testnet Connection.zh.md +++ b/docs/DZ Testnet Connection.zh.md @@ -1,105 +1,102 @@ -# 验证器以IBRL模式连接测试网 -!!! warning "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." +--- +description: 将 Solana 测试网验证器以 IBRL 模式连接到 DoubleZero,包括测试网评估协议和连接步骤。 +--- -??? warning "通过连接到DoubleZero测试网,我同意此处规定的评估协议条款(点击展开)" - DoubleZero测试网 +# 以 IBRL 模式连接验证器测试网 +??? warning "连接到 DoubleZero 测试网即表示我同意此处列出的评估协议条款(点击展开)" + DoubleZero 测试网 评估协议 - 通过访问或使用解决方案(定义如下),您同意自首次访问之日("**生效日期**")起,本评估协议("**协议**")规定了DoubleZero基金会("**DZF**")将以评估为基础向您("**用户**"或"**您**")提供解决方案访问权的条款和条件。出于相互承诺的对价,您同意如下: + 通过访问或使用解决方案(定义见下文),您同意自首次访问之日起("**生效日期**"),本 + 评估协议("**协议**")规定了 DoubleZero Foundation("**DZF**")向 + 您("**用户**"或"**您**")提供解决方案评估访问权的条款和 + 条件。鉴于双方的相互承诺,您同意如下: 1. 定义。 - 1.1 "**保密信息**"指任何一方向另一方披露的、被指定为保密的、或本应被理解为保密的所有信息,包括但不限于解决方案、产品计划、商业计划、商业机密、技术或任何其他专有信息。 + 1.1 "**保密信息**" 是指任何一方向另一方披露的被标记为保密的,或在其他情况下应被理解为保密的任何及所有信息,包括但不限于解决方案、产品计划、商业计划、商业秘密、技术或任何其他专有信息。 - 1.2 "**解决方案**"指用于web3项目的DoubleZero高性能网络基础设施的测试网版本("**测试网**")及相关的集成带宽边缘过滤服务("**信息服务**")、DZ软件(定义如下)、DZF提供的与DZ软件相关的所有材料("**文档**"),以及DZF在此提供给用户的其他材料。 + 1.2 "**解决方案**" 是指 DoubleZero 面向 web3 项目的高性能网络基础设施的测试网版本("**测试网**")及相关的集成带宽边缘过滤服务("**信息服务**")、DZ 软件(定义见下文)、DZF 提供的与 DZ 软件相关的任何及所有材料("**文档**"),以及 DZF 根据本协议向用户提供的其他材料。 - 2. 访问。 + 2. 访问。 - 2.1 ^^访问解决方案^^。在本协议条款和条件的约束下,DZF将通过互联网向用户提供对解决方案的访问。用户的访问是对解决方案的非独占、不可转让的有限使用,仅供用户评估信息服务。关于构成解决方案的任何软件("**DZ软件**"),DZF特此在评估期内授予用户有限的、可撤销的许可,仅按文档的规定复制、下载、制作合理数量的副本、运行和部署(如适用)该DZ软件。 + 2.1 ^^解决方案访问^^。 根据本协议的条款和条件,DZF 将通过互联网向用户提供解决方案的访问权限。用户的访问权是非独占的、不可转让的、有限使用解决方案的权利,仅用于使用户评估信息服务。对于构成解决方案的任何软件("**DZ 软件**"),DZF 特此授予用户在评估期内有限的、可撤销的许可,以仅按文档所述方式复制、下载、制作合理数量的副本、运行和部署(如适用)此类 DZ 软件。 - 2.2 ^^限制^^。用户可从生效日期起至DZF终止("**评估期**")期间,按照本协议使用解决方案。用户理解,在评估期之后使用解决方案的任何权利将须服从双方之间关于此的单独商业协议,包括支付费用。用户不得,也不得允许任何第三方:(i)修改解决方案或其任何部分,或基于解决方案或其任何部分创建任何衍生作品;(ii)除本协议明确允许外复制解决方案;(iii)以服务局的形式或以其他方式,向第三方转许可、分发、出售、借出、出租、租赁、转让或授予解决方案全部或任何部分的任何权利,或向第三方提供对解决方案的访问权,除非是通过或与用户平台或产品相关联的信息服务产品,且非独立基础上;或(iv)以本协议规定以外的方式使用解决方案。 + 2.2 ^^限制^^。 用户可根据本协议从生效日期起使用解决方案,直至 DZF 终止("**评估期**")。用户理解,评估期后使用解决方案的任何权利将受双方之间另行签订的商业协议约束,包括费用的支付。用户不得且不得允许任何第三方:(i) 基于解决方案或其任何部分修改或创建任何衍生作品;(ii) 除本协议明确允许外,复制解决方案;(iii) 再许可、分发、出售、出借、出租、租赁、转让或授予解决方案全部或任何部分的任何权利,或以服务局方式或其他方式向第三方提供解决方案的访问权限,但通过或结合用户的平台或产品(而非以独立方式)提供信息服务除外;或 (iv) 以本协议规定以外的方式使用解决方案。 - 2.3 ^^所有权^^。DZF保留解决方案的所有权利、所有权和利益,包括知识产权。 + 2.3 ^^所有权^^。 DZF 保留解决方案的所有权利、所有权和利益,包括知识产权。 - 3. 反馈。 - DZF可能定期要求用户提供,用户同意向DZF提供关于解决方案使用、操作和功能的反馈("反馈")。用户特此授予DZF非独占、全球范围、永久、不可撤销、免版税、全额付清、可完全转许可和可转让的权利和许可,将反馈用于和纳入任何产品和服务,制造、使用、出售、要约出售、进口和以其他方式利用此类产品和服务,以及以其他方式使用、复制、分发和以其他方式利用反馈而不受限制。 + 3 反馈。 + DZF 可能定期要求用户提供,且用户同意向 DZF 提供有关解决方案使用、运行和功能的反馈("反馈")。用户特此授予 DZF 非独占的、全球性的、永久的、不可撤销的、免版税的、全额付清的、可完全再许可和可转让的权利和许可,以使用反馈并将其纳入任何产品和服务中,制造、使用、销售、要约销售、进口和以其他方式利用此类产品和服务,以及以其他方式不受限制地使用、复制、分发和利用反馈。 4. 期限和终止。 - 4.1 ^^期限^^。本协议自生效日期起生效,并在整个评估期内保持完全效力。任何一方均可出于任何原因或无原因,通过书面通知另一方(电子邮件即可)立即以便利为由终止本协议。 + 4.1 ^^期限^^。 本协议自生效日期起生效,并在评估期内保持完全效力。任何一方均可因便利原因,无论有无理由,在向另一方发出书面通知(电子邮件即可)后立即终止本协议。 - 4.1 ^^终止的效果^^。本协议因任何原因终止后:(i)授予用户的权利将立即终止;(ii)用户应立即停止使用解决方案,并退还或销毁其控制下的所有文档和任何DZ软件;(iii)各方应立即退还或销毁另一方的所有保密信息和财产;以及(iv)第2.2、2.3、3、4.2条和第5至8条将继续有效。 + 4.1 ^^终止的效果^^。 因任何原因终止本协议时:(i) 授予用户的权利将立即终止;(ii) 用户应立即停止使用解决方案,并应归还或销毁其控制下的所有文档和任何 DZ 软件;(iii) 各方应立即归还或销毁对方的所有保密信息和财产;以及 (iv) 第 2.2、2.3、3、4.2 和第 5 至第 8 条将继续有效。 5. 保密。 - 各方同意,它将仅使用另一方的保密信息履行其在本协议下的义务和行使其权利,且不得披露或允许披露相同信息,除非本协议另有允许。但是,任何一方可向有知情需要且受不低于本协议规定的保密义务约束的其人员、律师和其他代表披露保密信息;以及在法律要求时(在此情况下,接收方将在披露前通知披露方,并提供对此类披露提出异议的机会,且将在适用法律允许的范围内将此类披露最小化)。第5条的保密义务不适用于以下信息:(a)非因接收方的过错而成为或变得普遍已知或公开可获得的信息;(b)在披露方披露之前,接收方已在无限制情况下适当知晓的信息;(c)有合法授权的其他人士在无限制情况下适当向接收方披露的信息;或(d)接收方未使用或参考披露方的保密信息而独立开发的信息。各方同意在保护另一方的保密信息免受未经授权的使用和披露方面尽职尽责。如果本条款或本协议所含许可的条款实际或威胁遭受违反,非违约方将有权寻求即时禁令救济和其他衡平法救济,而不放弃其可获得的任何其他权利或救济。用户负责维护解决方案的安全以及任何提供对解决方案访问权的密码、助记词或代码作为DZF保密信息的保密性。此处任何内容均不限制或限制DZF使用有关解决方案性能、可用性、使用情况、完整性和安全性数据的权利或能力。如果任何一方违反或威胁违反第5条的规定,各方同意非违约方将没有充分的法律救济,因此有权获得即时禁令和其他衡平法救济,无需保证金,也无需证明实际金钱损害。 + 各方同意仅为履行本协议项下的义务和行使其权利而使用对方的保密信息,且不会披露或允许披露该等信息,除非本协议另有允许。但是,任何一方均可向其有知悉需要且受不低于本协议规定的保密义务约束的人员、律师和其他代表披露保密信息;以及法律要求的情况下(在此情况下,接收方将提前通知披露方并提供对此类披露提出异议的机会,并将在适用法律允许的范围内最大限度地减少此类披露)。本第 5 条中的保密义务不适用于以下信息:(a) 非因接收方过错而成为公知或公开可用的信息;(b) 接收方在披露方披露前已适当知悉且不受限制的信息;(c) 由具有法律授权的其他人适当地、不受限制地向接收方披露的信息;或 (d) 接收方未使用或参考披露方的保密信息而独立开发的信息。各方同意对保护对方的保密信息免遭未经授权的使用和披露尽到合理注意义务。在实际违反或可能违反本条款或本协议所含许可的情况下,非违约方有权寻求即时禁令和其他衡平法救济,且不放弃其可用的任何其他权利或救济。用户有责任维护解决方案以及作为 DZF 保密信息的提供解决方案访问权限的任何密码、助记词或代码的保密性。本协议不限制或约束 DZF 使用有关解决方案性能、可用性、使用情况、完整性和安全性数据的权利或能力。如果任何一方违反或威胁违反本第 5 条的规定,各方同意非违约方将没有充分的法律救济,因此有权获得即时禁令和其他衡平法救济,无需保证金且无需证明实际金钱损失。 6. 保证免责声明;责任限制。 - 6.1 ^^保证免责声明^^。解决方案按"原样"提供,不附任何形式的保证。DZF不做任何明示、默示、法定或其他形式的保证,包括解决方案和文档的状况、符合任何陈述或描述,DZF特别声明不承担所有关于适销性、特定用途适用性、所有权和不侵权的默示保证。 + 6.1 ^^保证免责声明^^。 解决方案按"原样"提供,不附带任何形式的保证。DZF 不就解决方案和文档作出任何明示、暗示、法定或其他方面的保证,包括其状况、是否符合任何陈述或描述,且 DZF 明确否认所有关于适销性、特定用途适用性、所有权和不侵权的暗示保证。 6.2 ^^责任限制^^。 - 除第2.1、2.2和5条的违反外,在任何情况下,任何一方均不对另一方因本协议引起的或与本协议相关的间接、附带、特殊或其他间接损害负责,包括但不限于利润损失或使用损失或数据损失,无论是合同诉讼、侵权行为还是其他情况,即使另一方已被告知可能发生此类损害。在任何情况下,DZF因本协议引起的或与本协议相关的总责任不得超过一百美元($100),无论是合同行为、侵权行为还是其他情况。**上述限制将不顾本协议中任何有限救济的基本目的失败而适用。**双方同意,上述限制代表本协议下合理的风险分配。 + 除违反第 2.1、2.2 和第 5 条外,在任何情况下,任何一方均不对另一方承担间接的、附带的、特殊的或其他后果性的损害赔偿责任,包括但不限于您或任何第三方因本协议引起或与本协议相关的利润损失或使用损失或数据丢失所遭受的损害,无论是基于合同、侵权或其他诉讼,即使另一方已被告知此类损害的可能性。在任何情况下,DZF 因本协议引起或与本协议相关的累计责任不得超过一百美元(\$100),无论是基于合同、侵权或其他诉讼。**前述限制将适用,即使本协议中任何有限救济的基本目的未能实现。** 双方同意前述限制代表了本协议项下的合理风险分配。 7. 适用法律。 - 本协议及因本协议引起或与本协议相关的所有事项应受开曼群岛法律的管辖、解释和构建。如果因本协议产生或与本协议有关的争议、纠纷或索赔("争议"),相关方应视情况向其他各方发出30天的争议通知("争议通知")。如果争议在争议通知送达后30天届满时仍未解决,相关方可按照本协议的规定启动仲裁程序。如果争议在争议通知送达后30天届满时仍未解决,争议应通过开曼国际调解与仲裁中心(CI-MAC)按照本协议签署之日有效的CI-MAC仲裁规则("仲裁规则")进行仲裁解决,该仲裁规则视为通过引用并入本条款,并受《仲裁法》(经修订)管辖。仲裁地点应在开曼群岛大开曼的乔治敦,并受开曼群岛法律管辖。仲裁语言应为英语。仲裁应由根据仲裁规则指定的独任仲裁员裁定。仲裁员做出的任何裁决或决定应以书面形式作出,并对各方最终具有约束力,不得上诉,对任何此类裁决的判决可在任何有管辖权的法院执行。不得在任何司法管辖区的任何法院提出基于本协议引起或与本协议相关的任何索赔的法律诉讼或衡平法诉讼。如果需要诉诸法律或仲裁来执行本协议的条款,胜诉方将有权由另一方支付其律师费。各方放弃其可能拥有的主张不方便法院原则的任何权利、主张其不受此类仲裁或法院管辖的任何权利,或在按照本协议提起诉讼的范围内对地点提出异议的权利。 + 本协议以及因本协议引起或与之相关的所有事项应受开曼群岛法律管辖、解释和构建。如因本协议引起或与之相关的争议、纠纷或索赔("争议"),相关方应在适当情况下向其他各方发出 30 天的争议通知("争议通知")。如果争议在争议通知送达后 30 天届满时仍未解决,相关方可按本协议规定启动仲裁程序。如果争议在争议通知送达后 30 天届满时仍然存在,争议应由开曼国际调解和仲裁中心(CI-MAC)根据本协议签订之日有效的 CI-MAC 仲裁规则("仲裁规则")管理的仲裁解决,该仲裁规则被视为通过引用纳入本条款,并受《仲裁法》(经修订)管辖。仲裁地应为开曼群岛大开曼乔治城,受开曼群岛法律管辖。仲裁语言应为英语。仲裁应由按照仲裁规则指定的独任仲裁员裁决。仲裁员作出的任何裁决或决定应以书面形式作出,且对双方具有终局约束力,不得上诉,且根据所获裁决可在任何有管辖权的法院登记或执行。不得在任何管辖区的任何法院提起基于因本协议引起或与之相关的索赔的法律或衡平法诉讼。如果需要通过诉讼或仲裁来执行本协议的条款,胜诉方有权要求败诉方支付其律师费。各方放弃其可能拥有的主张不方便法院原则的任何权利,放弃主张其不受此类仲裁或法院管辖的任何权利,或在按照本协议提起任何程序的范围内反对管辖地的任何权利。 8. 一般条款。 - 未经DZF事先书面同意,用户不得转让或转移本协议。DZF可自由转让本协议。本协议规定的所有通知应通过电子邮件发送(发送给DZF:legal@doublezero.xyz),并视为发送后次日收到(已确认传输)。如果本协议的任何条款被认定为无效或不可执行,本协议的其余条款将继续完全有效。任何一方对本协议的任何违约或违反的放弃不构成对任何其他或后续违约或违反的放弃。任何一方均不对因不可抗力事件、地震、物资短缺、运输困难、劳资纠纷、骚乱、战争、火灾、流行病以及其控制范围之外的类似情况(无论是否可预见)导致的任何延迟或履行失败负责。本协议连同任何附件构成双方之间关于本协议主题的完整协议,并取代所有之前或同期的协议或陈述,无论是书面的还是口头的。本协议不得以书面形式修改或修订,除非经各方授权代表签署。 + 未经 DZF 事先书面同意,用户不得转让或分配本协议。DZF 可自由转让本协议。本协议项下要求发送的所有通知应通过电子邮件发送(发送至 DZF:legal@doublezero.xyz),并视为在发送后次日收到(经确认传输)。如果本协议的任何条款被认定为无效或不可执行,本协议的其余条款仍将保持完全效力。任何一方对本协议任何违约或违反的放弃不构成对任何其他或后续违约或违反的放弃。任何一方均不对因不可抗力、地震、供应短缺、运输困难、劳资纠纷、暴乱、战争、火灾、流行病以及超出其控制范围的类似事件(无论是否可预见)导致的任何延迟或履行失败承担责任。本协议连同任何附件构成双方之间的完整协议,取代之前或同期关于本协议主题的所有协议或陈述(无论书面或口头)。本协议不得修改或修订,除非经双方正式授权代表书面签署。 -### 以IBRL模式连接到测试网 +### 以 IBRL 模式连接到测试网 !!! Note inline end - IBRL模式不需要重启验证器客户端,因为它使用您现有的公共IP地址。 + IBRL 模式不需要重启验证器客户端,因为它使用您现有的公共 IP 地址。 -Solana测试网验证器将完成到DoubleZero测试网的连接,详情请见本页面。 +Solana 测试网验证器将完成到 DoubleZero 测试网的连接,本页面将对此进行详细说明。 -每个Solana验证器都有其自己的**身份密钥对**;从中提取称为**节点ID**的公钥。这是验证器在Solana网络上的唯一指纹。 +每个 Solana 验证器都有自己的**身份密钥对**;从中提取的公钥称为**节点 ID**。这是验证器在 Solana 网络上的唯一标识。 -确认DoubleZero ID和节点ID后,您将证明您对机器的所有权。这通过创建包含使用验证器身份密钥签名的DoubleZero ID的消息来完成。由此产生的加密签名作为您控制该验证器的可验证证明。 +在确定 DoubleZeroID 和节点 ID 后,您将证明对机器的所有权。这是通过创建一条包含 DoubleZeroID 的消息并使用验证器的身份密钥进行签名来完成的。生成的加密签名可作为您控制该验证器的可验证证明。 -最后,您将向DoubleZero提交**连接请求**。此请求传达:*"这是我的身份,这是所有权证明,这是我打算如何连接。"* DoubleZero验证此信息,接受证明,并为DoubleZero上的验证器配置网络访问。 +最后,您将向 DoubleZero 提交一个**连接请求**。此请求传达的信息是:*"这是我的身份,这是所有权证明,这是我打算如何连接。"* DoubleZero 会验证此信息、接受证明,并在 DoubleZero 上为验证器配置网络访问。 -本指南允许1个主验证器注册自身,以及同时注册最多3台备份/故障转移机器。 +本指南允许注册 1 个主验证器,同时最多注册 3 台备份/故障转移机器。 ## 前提条件 -- Solana CLI已安装并在$PATH中 -- 对于验证器:有权访问sol用户下的验证器身份密钥对文件(如validator-keypair.json) -- 对于验证器:验证正在连接的Solana验证器的身份密钥上至少有1 SOL -- 防火墙规则允许DoubleZero和Solana RPC所需的出站连接,包括GRE(ip proto 47)和BGP(169.254.0.0/16上的tcp/179) +- 已安装 Solana CLI 并添加到 $PATH +- 对于验证器:拥有访问验证器身份密钥对文件(例如 validator-keypair.json)的权限(在 sol 用户下) +- 对于验证器:验证被连接的 Solana 验证器的身份密钥上至少有 1 SOL +- 防火墙规则允许 DoubleZero 和 Solana RPC 所需的出站连接,包括 + GRE (ip proto 47) 和 BGP (169.254.0.0/16 on tcp/179) !!! info - 验证器ID将与Solana gossip进行核对以确定目标IP。然后将使用目标IP和DoubleZero ID在您的机器和目标DoubleZero设备之间建立GRE隧道。 + 验证器 ID 将通过 Solana gossip 进行检查以确定目标 IP。然后,目标 IP 和 DoubleZero ID 将在您的机器与目标 DoubleZero 设备之间建立 GRE 隧道时使用。 - 注意:如果您在同一IP上同时有垃圾ID和主ID,只有主ID将用于机器注册。这是因为垃圾ID不会出现在gossip中,因此无法用于验证目标机器的IP。 + 请注意:如果您在同一 IP 上同时拥有一个临时 ID 和主 ID,则只有主 ID 会用于机器注册。这是因为临时 ID 不会出现在 gossip 中,因此无法用于验证目标机器的 IP。 -## 1. 环境配置 +## 1. 确认客户端网络 -请在继续之前按照[设置](setup.md)说明操作。 +请在继续之前按照[设置](setup.md)说明进行操作。安装**测试网**软件包 — 测试网和主网 Beta 使用不同的软件包仓库。 -设置的最后一步是断开与网络的连接。这是为了确保您的机器上只有一个到DoubleZero的隧道处于开放状态,并且该隧道在正确的网络上。 +设置的最后一步是断开网络连接。这是为了确保您的机器上只有一个到 DoubleZero 的隧道处于打开状态,且该隧道连接到正确的网络。 -
+确认客户端在测试网上: -要配置DoubleZero客户端CLI(`doublezero`)和守护程序(`doublezerod`)连接到**DoubleZero测试网**: ```bash -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 +doublezero status ``` -大约30秒后,您将看到可用的DoubleZero设备: +`Network` 列应显示 `testnet`。如果显示为 `mainnet-beta`,或者您安装了错误的软件包,请使用[故障排除](troubleshooting.md#issue-wrong-doublezero-environment)中的一键切换方法。 + +大约 30 秒后,您将看到可用的 DoubleZero 设备: ```bash @@ -119,17 +116,13 @@ doublezero latency 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 ``` -
-主网输出结构相同,但可用设备更多。 - - +主网输出的结构相同,但可用设备会多得多。 +## 2. 开放端口 44880 -## 2. 开放44880端口 +用户需要开放端口 44880 以使用一些[路由功能](https://github.com/malbeclabs/doublezero/blob/main/rfcs/rfc7-client-route-liveness.md)。 -用户需要开放44880端口以使用某些[路由功能](https://github.com/malbeclabs/doublezero/blob/main/rfcs/rfc7-client-route-liveness.md)。 - -要开放44880端口,您可以更新IP表,例如: +要开放端口 44880,您可以更新 IP tables,例如:
@@ -140,9 +133,9 @@ sudo iptables -A OUTPUT -o doublezero0 -p udp --dport 44880 -j ACCEPT
-注意`-i doublezero0`、`-o doublezero0`标志,这些标志将此规则限制为仅DoubleZero接口。 +注意 `-i doublezero0`、`-o doublezero0` 参数,它们将此规则限制为仅适用于 DoubleZero 接口 -或UFW,例如: +或者使用 UFW,例如:
@@ -153,25 +146,25 @@ sudo ufw allow out on doublezero0 to any port 44880 proto udp
-注意`in on doublezero0`、`out on doublezero0`标志,这些标志将此规则限制为仅DoubleZero接口。 +注意 `in on doublezero0`、`out on doublezero0` 参数,它们将此规则限制为仅适用于 DoubleZero 接口 ## 3. 证明验证器所有权
-设置好DoubleZero环境后,现在是证明您的验证器所有权的时候了。 +设置好 DoubleZero 环境后,现在可以证明您的验证器所有权。 -您在主验证器[设置](setup.md)中创建的DoubleZero ID必须用于所有备份机器。 +您在主验证器[设置](setup.md)中创建的 DoubleZero ID 必须在所有备份机器上使用。 -您主机器上的ID可以通过`doublezero address`找到。相同的ID必须在集群中所有机器的`~/.config/doublezero/id.json`中。 +主机器上的 ID 可以通过 `doublezero address` 找到。所有集群中的机器上的 `~/.config/doublezero/id.json` 中必须包含相同的 ID。 -为了实现这一点,您首先需要通过以下命令验证您正在运行命令的机器是您的**主验证器**: +为此,您首先需要验证运行命令的机器是否为您的**主验证器**: ``` doublezero-solana passport find-validator -ut ``` -这验证了验证器已在gossip中注册并出现在领导者时间表中。 +这将验证验证器已在 gossip 中注册并出现在出块计划中。 预期输出: @@ -186,8 +179,8 @@ In Leader scheduler ✅ This validator can connect as a primary in DoubleZero 🖥️ 💎. It is a leader scheduled validator. ``` !!! info - 无论是一台还是多台机器,工作流程相同。 - 要注册一台机器,请从本页上的任何命令中排除参数"--backup-validator-ids"或"backup_ids="。 + 同一工作流程适用于一台或多台机器。 + 要仅注册一台机器,请从本页面的任何命令中排除参数 "--backup-validator-ids" 或 "backup_ids="。 现在,在您打算运行**主验证器**的所有备份机器上执行以下命令: @@ -207,9 +200,9 @@ 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. ``` -此输出是预期的。备份节点在通行证创建时不能在领导者时间表中。 +此输出是预期的。备份节点在创建通行证时不能在出块计划中。 -现在您将在您计划使用**主验证器**投票账户和身份的**所有备份机器**上运行此命令。 +您现在将在所有计划使用**主验证器**投票账户和身份的**备份机器**上运行此命令。
@@ -218,7 +211,7 @@ In Not in Leader scheduler ### 准备连接 -在**主验证器**机器上运行以下命令。这是您拥有活跃质押的机器,该机器在您正在运行命令的机器上Solana gossip中以您的主验证器ID在领导者时间表中: +在**主验证器**机器上运行以下命令。这是您拥有活跃质押、在出块计划中、主验证器 ID 在 solana gossip 中显示的机器: ``` doublezero-solana passport prepare-validator-access -ut \ @@ -263,7 +256,7 @@ Backup validator 🖥️ 🛡️: -k ``` -注意此命令末尾的输出。这是下一步的结构。 +请注意此命令末尾的输出。它是下一步的命令结构。
@@ -271,9 +264,9 @@ Backup validator 🖥️ 🛡️:
-在上一步结束时,我们收到了`solana sign-offchain-message`的预格式化输出。 +在上一步的末尾,我们收到了预格式化的 `solana sign-offchain-message` 输出 -从上述输出中,我们将在**主验证器**机器上运行此命令。 +根据上述输出,我们将在**主验证器**机器上运行此命令。 ``` solana sign-offchain-message \ @@ -289,17 +282,17 @@ Backup validator 🖥️ 🛡️:
-## 5. 在DoubleZero中发起连接请求 +## 5. 在 DoubleZero 中发起连接请求
-使用`request-validator-access`命令在Solana上为连接请求创建账户。DoubleZero Sentinel代理检测新账户,验证其身份和签名,并在DoubleZero中创建访问通行证,使服务器能够建立连接。 +使用 `request-validator-access` 命令在 Solana 上为连接请求创建一个账户。DoubleZero Sentinel 代理会检测到新账户,验证其身份和签名,并在 DoubleZero 中创建访问通行证,以便服务器建立连接。 -使用节点ID、DoubleZero ID和签名。 +使用节点 ID、DoubleZeroID 和签名。 !!! note inline end - 在此示例中,我们使用`-k /home/user/.config/solana/id.json`来查找验证器身份。请使用适合您本地部署的位置。 + 在此示例中,我们使用 `-k /home/user/.config/solana/id.json` 来查找验证器身份。请根据您的本地部署使用适当的路径。 ``` doublezero-solana passport request-validator-access -k -ut \ @@ -310,74 +303,10 @@ doublezero-solana passport request-validator-access -k -ut \ **输出:** -此输出可用于在Solana浏览器中查看交易。确保将浏览器切换到测试网。此验证是可选的。 +此输出可用于在 Solana 浏览器上查看交易。请确保将浏览器切换到测试网。此验证是可选的。 ```bash Request Solana validator access: Transaction22222222VaB8FMqM2wEBXyV5THpKRXWrPtDQxmTjHJHiAWteVYTsc7Gjz4hdXxvYoZXGeHkrEayp ``` -如果成功,DoubleZero将注册主验证器及其备份。您现在可以在访问通行证中注册的IP之间进行故障转移。以这种方式注册备份节点时,DoubleZero将自动维护连接。 - -
- -## 6. 以IBRL模式连接 - -
- -在服务器上,使用将连接到DoubleZero的用户,运行`connect`命令建立到DoubleZero的连接。 - -``` -doublezero connect ibrl -``` - -您应该看到表示配置的输出,例如: - -``` -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 -``` -等待一分钟让GRE隧道完成设置。在GRE隧道完成设置之前,您的状态输出可能返回"down"或"Unknown"。 - -验证您的连接: - -```bash -doublezero status -``` - -**输出:** -!!! note inline end - 检查此输出。注意`Tunnel src`和`DoubleZero IP`与您机器上的公共IPv4地址匹配。 - -```bash - 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`表示您已成功连接。 - -您可以通过运行以下命令查看DoubleZero上其他用户传播的路由: - -``` -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 -... -``` - -
- -### 下一步:通过多播发布碎片 - -如果您已完成此设置并计划通过多播发布碎片,请继续访问[下一页](Validator%20Multicast%20Connection.md)。 +如果成功,DoubleZero 将注册主验证器及其备份。 \ No newline at end of file diff --git a/docs/Edge Subscriber CLI.es.md b/docs/Edge Subscriber CLI.es.md new file mode 100644 index 0000000..5e4753c --- /dev/null +++ b/docs/Edge Subscriber CLI.es.md @@ -0,0 +1,336 @@ +--- +description: Configure un suscriptor edge para recibir feeds de shreds de DoubleZero, incluyendo la configuración del cliente y las reglas de firewall para GRE, BGP, PIM y tráfico de shreds. +--- + +# Conexión de Suscriptor Edge (CLI) + +!!! warning "Suscripción legacy por CLI — desactivada el **30 de agosto de 2026**" + Esta página es para usuarios que ya están en la suscripción por **CLI / asiento onchain** (`doublezero-solana shreds pay`). Ese sistema será desactivado el **30 de agosto de 2026**. + + Las nuevas suscripciones utilizan el flujo del portal en [Suscribirse a shreds (Edge)](Edge Subscriber Connection.md). + +!!! warning "Al conectarme a DoubleZero acepto los [Términos de Uso de DoubleZero](https://doublezero.xyz/terms-protocol). Tenga en cuenta que los datos son solo para sus propósitos internos y no pueden ser retransmitidos (ver Sección 2(e))." + +## Paso 1: Configuración de DoubleZero + +### 1. Completar la Configuración + +Instale la [Solana CLI](https://docs.anza.xyz/cli/install). + +Siga las instrucciones de [configuración](setup.md) para instalar y configurar el cliente de DoubleZero. + +Si ha configurado DoubleZero anteriormente, asegúrese de tener la última versión de Doublezero-Solana CLI con `sudo apt update && sudo apt install doublezero-solana` + +### 2. Configurar el Firewall + +Permita el tráfico GRE, BGP, PIM y de shreds. + +**iptables:** + +```bash +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:** + +```bash +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 out on doublezero1 proto pim from any to any +sudo ufw allow in on doublezero1 to any port 7733 proto udp +sudo ufw allow in on doublezero0 to any port 44880 proto udp +``` + +### 3. Habilitar el Reconciliador + +El reconciliador monitorea el estado onchain y aprovisiona túneles automáticamente cuando su asiento es asignado. No está habilitado por defecto. + +```bash +doublezero enable +``` + +--- + +## Paso 2: Configurar su Wallet + +### 1. Crear un Keypair de Solana + +La CLI `doublezero-solana` utiliza un keypair estándar de Solana para la gestión de asientos onchain. Si no tiene uno: + +```bash +solana-keygen new +``` + +Esto escribe en `~/.config/solana/id.json`. Para usar una ruta diferente, pase `--keypair ` a cualquier comando de `doublezero-solana`. + +Imprima la dirección de su wallet: + +```bash +solana address +``` + +### 2. Financiar su Wallet + +Su wallet necesita dos tokens: + +- **SOL** — para las comisiones de transacción de Solana. Transfiera SOL a la dirección del wallet impresa anteriormente. +- **USDC** — para la financiación del asiento. La CLI extrae de la Cuenta de Token Asociada (ATA) de su wallet para el mint de USDC en mainnet (`EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v`). + +--- + +## Paso 3: Comprar un Asiento + +### 1. Encontrar su Dispositivo Más Cercano + +Antes de comprar un asiento, identifique el dispositivo con la latencia más baja desde su máquina: + +```bash +doublezero latency +``` + +Anote el código del dispositivo del resultado con menor latencia (por ejemplo, ``). Lo usará al comprar un asiento. + +### 2. Consultar Precios + +Vea los precios actuales del dispositivo antes de comprometer fondos. Los precios tienen dos componentes: un **precio base de metro** y una **prima por dispositivo**. También puede ver precios y disponibilidad [aquí](https://data.doublezero.xyz/dz/shreds/devices). + +**Todos los dispositivos:** + +```bash +doublezero-solana shreds price +``` + +**Dispositivo específico:** + +```bash +doublezero-solana shreds price --device-code +doublezero-solana shreds price --device +``` + +**Todos los dispositivos en un metro:** + +```bash +doublezero-solana shreds price --metro +``` + +Columnas de salida: `Device Code`, `Metro Code`, `Metro Name`, `Status`, `Settled Seats`, `Available Seats`, `Base Price (USDC)`, `Premium (USDC)`, `Epoch Price (USDC)`. + +El precio por epoch es el costo total por epoch para un asiento en ese dispositivo (base + prima). Use `--wide` para mostrar las pubkeys completas, o `--json` para salida en JSON. + +### 3. Comprar un Asiento + +Compre un asiento con un solo comando. Esto inicializa su asiento, financia el escrow y solicita la asignación: + +```bash +doublezero-solana shreds pay \ + --device-code \ + --client-ip \ + --amount +``` + +**Parámetros:** + +| Flag | Descripción | +|------|-------------| +| `--device ` | Dispositivo destino por clave pública (mutuamente excluyente con `--device-code`) | +| `--device-code ` | Dispositivo destino por código legible (por ejemplo, ``) | +| `--client-ip ` | Dirección IPv4 pública de su máquina | +| `--amount ` | USDC a financiar (formato decimal, por ejemplo `100` = 100 USDC). Debe cumplir el precio mínimo por epoch. | +| `--source-token-account ` | Cuenta fuente de USDC personalizada (por defecto la ATA de su wallet) | +| `--accept-partial-epoch` | Omitir la advertencia de epoch restante (ver más abajo) | +| `--fee-payer ` | Usar un wallet diferente para las comisiones de transacción en SOL | +| `--dry-run` | Simular la transacción sin ejecutarla | +| `--with-compute-unit-price ` | Establecer un precio de unidad de cómputo para inclusión más rápida durante congestión | + +Una vez que su asiento sea asignado, el daemon establece el túnel GRE automáticamente. Verifique su conexión con: + +```bash +doublezero status +``` + +### Temporización de Epoch + +Los asientos se asignan por epoch de Solana (~2 días). Si queda menos del 10% del epoch actual cuando paga, la CLI advierte que su asiento será asignado inmediatamente pero solo cubre el resto del epoch actual. Un pago separado se deducirá de su escrow cuando comience el siguiente epoch. + +!!! info "Es recomendable financiar más de 1 epoch a la vez para no perder su asiento. Puede consultar el tiempo restante en un epoch [aquí](https://explorer.solana.com/)." + +Puede omitir esta advertencia con `--accept-partial-epoch`. + +### Mantener su Escrow Financiado + +!!! warning "Si el saldo de su escrow está por debajo del precio del epoch en el momento de la liquidación, su asiento no será asignado, el túnel será desmontado y perderá su antigüedad acumulada. La antigüedad determina su prioridad para epochs futuros — perderla significa que compite como un nuevo participante de nuevo." + +Puede sobre-financiar esta cuenta para cubrir múltiples epochs. Cada liquidación deduce el precio de un epoch de su escrow, y el saldo restante se traslada. Por ejemplo, financiar 5 veces el precio por epoch mantiene su asiento activo hasta por 5 epochs sin necesidad de re-financiar. + +Para recargar su escrow, ejecute `shreds pay` de nuevo en cualquier momento: + +```bash +doublezero-solana shreds pay \ + --device-code \ + --client-ip \ + --amount 500 +``` + +Tenga en cuenta que `Target_IP` debe ser una dirección IPv4 pública en la máquina que recibirá los shreds. Puede encontrarla ejecutando un comando como `curl -4 ifconfig.me` en la máquina destino. + +### Monitorear Asientos + +Esta sección detalla cómo ver los asientos a través de la CLI. También puede usar [https://data.doublezero.xyz/api/v1/docs](https://data.doublezero.xyz/api/v1/docs) para monitorear asientos y ayudar a gestionar su cuenta de escrow. + +Vea sus asientos activos y saldos de escrow: + +**Todos sus asientos:** + +```bash +doublezero-solana shreds list +``` + +**Filtrar por dispositivo:** + +```bash +doublezero-solana shreds list --device-code +``` + +**Filtrar por IP del cliente:** + +```bash +doublezero-solana shreds list --client-ip +``` + +**Filtrar por wallet:** + +```bash +doublezero-solana shreds list --withdraw-authority +``` + +Columnas de salida: `Device Code`, `Client IP`, `Tenure`, `Balance (USDC)`, `Est. Epochs Paid`. + +La columna "Est. Epochs Paid" muestra cuántos epochs cubre su saldo actual a los precios actuales. Si los precios cambian, esta estimación se ajusta. + +### Retirar Asiento y Escrow + +Este comando libera su asiento y cierra el escrow. Recibirá un reembolso prorrateado por la porción no utilizada del epoch actual, más cualquier saldo restante del escrow, devuelto a su wallet. Perderá el asiento y cualquier antigüedad acumulada. + +```bash +doublezero-solana shreds withdraw \ + --device-code \ + --client-ip +``` + +Puede identificar el dispositivo con `--device ` o `--device-code `, igual que en otros comandos. + +Para enviar el reembolso en USDC a una cuenta de token diferente: + +```bash +doublezero-solana shreds withdraw \ + --device-code \ + --client-ip \ + --refund-token-account +``` + +!!! warning "Esto no se puede deshacer. Después de retirar, su asiento desaparece y la antigüedad se restablece." + +--- + +## Direcciones de Shreds (IP vs Puerto) + +Los Leader Shreds y los Retransmit Shreds de alto stake llegarán por el puerto `7733`, a través de la interfaz `doublezero1`. La interfaz `doublezero0` es para tráfico unicast. El puerto `5765` es un monitor de heartbeat de los publicadores de shreds — este no contendrá shreds. + +Para el consumo de shreds, la **dirección IP** identifica el flujo multicast y el **puerto** identifica el servicio UDP en ese flujo. +Todos los flujos de shreds a continuación usan el puerto UDP `7733` en `doublezero1`. + +Puede examinar las IPs de cualquier grupo multicast con: + +```bash +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:7733` +- `edge-solana-retrans-apac`: `233.84.178.13:7733` +- `edge-solana-retrans-amer`: `233.84.178.14:7733` + + +## Encabezado del Túnel GRE — XDP + +!!! note "El tráfico de shreds entregado a través de la red está encapsulado con GRE. Es posible que necesite eliminar el encabezado GRE antes de alimentar los datos en su pipeline existente (por ejemplo, un deshredder basado en XDP)." + +--- + +## Herramientas y Paneles + +### [Edge Scoreboard](https://data.doublezero.xyz/dz/shreds/scoreboard) + +El Scoreboard evalúa la velocidad de entrega de shreds en DoubleZero Edge y otros proveedores, utilizando datos a nivel de slot para comparar el rendimiento en tiempo real. Use este panel para ver las tasas de victoria de los shreds de Edge frente a otros proveedores. Puede ver resultados solo para leader shreds, además de la comparación del feed completo. También puede desglosar por región para ver el rendimiento esperado. + +### [Edge Publishers](https://data.doublezero.xyz/dz/shreds/publishers) + +La métrica "Publishing Shreds" en la parte superior izquierda del panel muestra el porcentaje total de peso de stake de todos los validadores de Solana que publican leader shreds en DoubleZero Edge. Puede ver los detalles de cada publicador en la red. + +### [Suscriptores, Dispositivos y Actividad de Edge](https://data.doublezero.xyz/dz/shreds/subscribers) + +Puede buscar fácilmente su IP de Cliente en esta página para ver los asientos suscritos y su estado. Haga clic en suscripciones de asientos específicas para ver el historial de pagos y actividad. También puede ver los dispositivos disponibles en la página de [Dispositivos](https://data.doublezero.xyz/dz/shreds/devices) y toda la actividad reciente en la página de [Actividad](https://data.doublezero.xyz/dz/shreds/activity). + +### Documentación de la API de Datos + +Para acceso programático a los endpoints de datos, consulte la documentación de la API: [https://data.doublezero.xyz/api/v1/docs](https://data.doublezero.xyz/api/v1/docs). + +--- + +## Solución de Problemas + +Si encuentra un problema no cubierto aquí, por favor comuníquese a través de su canal existente antes de intentar solucionarlo por su cuenta. Si no tiene un canal, busque en [Discord](https://discord.gg/U2fEb4Jq) y abra un ticket si es necesario. + +### Asegúrese de que su Cliente esté actualizado: + +Ejecute: `sudo apt update && sudo apt install doublezero-solana` + +### Saldo de escrow insuficiente + +Si el saldo de su escrow está por debajo del precio del epoch en el momento de la liquidación, el asiento no es asignado, el túnel es desmontado y la antigüedad se pierde. Recargue con `shreds pay` antes de la próxima liquidación. + +### Asiento no asignado después de pagar + +- Puede haber pagado tarde en el epoch — el asiento toma efecto en el próximo epoch. +- Todos los asientos en el dispositivo pueden estar ocupados por incumbentes con mayor antigüedad. Verifique los asientos disponibles con `shreds price`. +- Si retiró antes de la liquidación, el asiento no era elegible. + +### El túnel no se establece + +1. Verifique que el daemon esté ejecutándose: `sudo systemctl status doublezerod` +2. Verifique que el reconciliador esté habilitado: `doublezero enable` +3. Verifique que las reglas del firewall estén configuradas (GRE, BGP, PIM, tráfico de shreds en `doublezero1`, puerto 44880 en `doublezero0`) +4. Verifique que su asiento esté activo para el epoch actual: `doublezero-solana shreds list` +5. Verifique el estado de su conexión: `doublezero status` + +La IP del cliente del daemon se descubre automáticamente desde la IP pública de su host — verifique que coincida con el `--client-ip` usado en sus comandos de asiento. + +### Aviso de epoch + +La CLI advierte cuando queda menos del 10% del epoch. Sus opciones son: + +- Aceptar con `--accept-partial-epoch` si desea el asiento inmediatamente +- Esperar al próximo epoch para obtener la cobertura de un epoch completo + +### "Amount is below the current price" + +El comando `pay` valida su monto contra el precio mínimo por epoch (base del metro + prima del dispositivo). Use `shreds price` para consultar los precios actuales y aumente su monto. + +### "Multicast user already exists" + +Ya tiene una suscripción activa a través de una ruta diferente. Desconéctese primero con `doublezero disconnect`, luego reintente `shreds pay`. \ No newline at end of file diff --git a/docs/Edge Subscriber CLI.fr.md b/docs/Edge Subscriber CLI.fr.md new file mode 100644 index 0000000..98c2294 --- /dev/null +++ b/docs/Edge Subscriber CLI.fr.md @@ -0,0 +1,336 @@ +--- +description: Configurez un abonné edge pour recevoir les flux de shreds DoubleZero, incluant la configuration du client et les règles de pare-feu pour GRE, BGP, PIM et le trafic de shreds. +--- + +# Connexion d'abonné Edge (CLI) + +!!! warning "Abonnement CLI legacy — mis hors service le **30 août 2026**" + Cette page s'adresse aux utilisateurs déjà sur l'abonnement **CLI / siège onchain** (`doublezero-solana shreds pay`). Ce système sera mis hors service le **30 août 2026**. + + Les nouveaux abonnements utilisent le flux via le portail sur [S'abonner aux shreds (Edge)](Edge Subscriber Connection.md). + +!!! warning "En me connectant à DoubleZero, j'accepte les [Conditions d'utilisation de DoubleZero](https://doublezero.xyz/terms-protocol). Veuillez noter que les données sont destinées uniquement à votre usage interne et ne peuvent pas être retransmises (voir Section 2(e))." + +## Étape 1 : Configuration de DoubleZero + +### 1. Terminer la configuration + +Installez le [Solana CLI](https://docs.anza.xyz/cli/install). + +Suivez les instructions de [configuration](setup.md) pour installer et configurer le client DoubleZero. + +Si vous avez précédemment configuré DoubleZero, assurez-vous d'avoir la dernière version du CLI Doublezero-Solana avec `sudo apt update && sudo apt install doublezero-solana` + +### 2. Configurer le pare-feu + +Autorisez le trafic GRE, BGP, PIM et shred. + +**iptables :** + +```bash +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 :** + +```bash +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 out on doublezero1 proto pim from any to any +sudo ufw allow in on doublezero1 to any port 7733 proto udp +sudo ufw allow in on doublezero0 to any port 44880 proto udp +``` + +### 3. Activer le réconciliateur + +Le réconciliateur surveille l'état onchain et provisionne automatiquement les tunnels lorsque votre siège est attribué. Il n'est pas activé par défaut. + +```bash +doublezero enable +``` + +--- + +## Étape 2 : Configurer votre portefeuille + +### 1. Créer une paire de clés Solana + +Le CLI `doublezero-solana` utilise une paire de clés Solana standard pour la gestion des sièges onchain. Si vous n'en avez pas : + +```bash +solana-keygen new +``` + +Cela écrit dans `~/.config/solana/id.json`. Pour utiliser un chemin différent, passez `--keypair ` à n'importe quelle commande `doublezero-solana`. + +Affichez l'adresse de votre portefeuille : + +```bash +solana address +``` + +### 2. Approvisionner votre portefeuille + +Votre portefeuille a besoin de deux jetons : + +- **SOL** — pour les frais de transaction Solana. Transférez des SOL à l'adresse du portefeuille affichée ci-dessus. +- **USDC** — pour le financement du siège. Le CLI prélève depuis le compte de jetons associé (ATA) de votre portefeuille pour le mint USDC mainnet (`EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v`). + +--- + +## Étape 3 : Acheter un siège + +### 1. Trouver votre appareil le plus proche + +Avant d'acheter un siège, identifiez l'appareil avec la latence la plus faible depuis votre machine : + +```bash +doublezero latency +``` + +Notez le code de l'appareil avec le résultat de latence le plus bas (par ex., ``). Vous l'utiliserez lors de l'achat d'un siège. + +### 2. Vérifier les tarifs + +Consultez les tarifs actuels des appareils avant d'engager des fonds. La tarification comporte deux composantes : un **prix de base métropolitain** et une **prime par appareil**. Vous pouvez également consulter les tarifs et la disponibilité [ici](https://data.doublezero.xyz/dz/shreds/devices). + +**Tous les appareils :** + +```bash +doublezero-solana shreds price +``` + +**Appareil spécifique :** + +```bash +doublezero-solana shreds price --device-code +doublezero-solana shreds price --device +``` + +**Tous les appareils dans une métropole :** + +```bash +doublezero-solana shreds price --metro +``` + +Colonnes de sortie : `Device Code`, `Metro Code`, `Metro Name`, `Status`, `Settled Seats`, `Available Seats`, `Base Price (USDC)`, `Premium (USDC)`, `Epoch Price (USDC)`. + +Le prix par epoch est le coût total par epoch pour un siège sur cet appareil (base + prime). Utilisez `--wide` pour afficher les clés publiques complètes, ou `--json` pour une sortie JSON. + +### 3. Acheter un siège + +Achetez un siège avec une seule commande. Cela initialise votre siège, finance le séquestre et demande l'attribution : + +```bash +doublezero-solana shreds pay \ + --device-code \ + --client-ip \ + --amount +``` + +**Paramètres :** + +| Indicateur | Description | +|------|-------------| +| `--device ` | Appareil cible par clé publique (mutuellement exclusif avec `--device-code`) | +| `--device-code ` | Appareil cible par code lisible (par ex., ``) | +| `--client-ip ` | Adresse IPv4 publique de votre machine | +| `--amount ` | USDC à financer (format décimal, par ex. `100` = 100 USDC). Doit atteindre le prix minimum par epoch. | +| `--source-token-account ` | Compte source USDC personnalisé (par défaut l'ATA de votre portefeuille) | +| `--accept-partial-epoch` | Ignorer l'avertissement d'epoch restant (voir ci-dessous) | +| `--fee-payer ` | Utiliser un portefeuille différent pour les frais de transaction SOL | +| `--dry-run` | Simuler la transaction sans l'exécuter | +| `--with-compute-unit-price ` | Définir un prix d'unité de calcul pour une inclusion plus rapide en cas de congestion | + +Une fois votre siège attribué, le daemon établit automatiquement le tunnel GRE. Vérifiez votre connexion avec : + +```bash +doublezero status +``` + +### Timing des epochs + +Les sièges sont attribués par epoch Solana (~2 jours). S'il reste moins de 10 % de l'epoch en cours lorsque vous payez, le CLI vous avertit que votre siège sera attribué immédiatement mais ne couvre que le reste de l'epoch en cours. Un paiement séparé sera déduit de votre séquestre lorsque l'epoch suivant commencera. + +!!! info "Il est conseillé de financer pour plus d'un epoch à la fois afin de ne pas perdre votre siège. Vous pouvez vérifier le temps restant dans un epoch [ici](https://explorer.solana.com/)." + +Vous pouvez contourner cet avertissement avec `--accept-partial-epoch`. + +### Maintenir votre séquestre approvisionné + +!!! warning "Si le solde de votre séquestre est inférieur au prix de l'epoch lors du règlement, votre siège ne sera pas attribué, le tunnel sera démonté et vous perdrez votre ancienneté accumulée. L'ancienneté détermine votre priorité pour les epochs futurs — la perdre signifie que vous êtes à nouveau en concurrence comme nouvel arrivant." + +Vous pouvez sur-approvisionner ce compte pour financer plusieurs epochs. Chaque règlement déduit le prix d'un epoch de votre séquestre, et le solde restant est reporté. Par exemple, financer 5 fois le prix par epoch maintient votre siège actif pendant jusqu'à 5 epochs sans ré-approvisionnement. + +Pour compléter votre séquestre, exécutez à nouveau `shreds pay` à tout moment : + +```bash +doublezero-solana shreds pay \ + --device-code \ + --client-ip \ + --amount 500 +``` + +Notez que le `Target_IP` doit être une adresse IPv4 publique sur la machine qui recevra les shreds. Vous pouvez la trouver en exécutant une commande comme `curl -4 ifconfig.me` sur la machine cible. + +### Surveiller les sièges + +Cette section détaille comment visualiser les sièges via le CLI. Vous pouvez également utiliser [https://data.doublezero.xyz/api/v1/docs](https://data.doublezero.xyz/api/v1/docs) pour surveiller les sièges et vous aider à gérer votre compte de séquestre. + +Visualisez vos sièges actifs et soldes de séquestre : + +**Tous vos sièges :** + +```bash +doublezero-solana shreds list +``` + +**Filtrer par appareil :** + +```bash +doublezero-solana shreds list --device-code +``` + +**Filtrer par IP client :** + +```bash +doublezero-solana shreds list --client-ip +``` + +**Filtrer par portefeuille :** + +```bash +doublezero-solana shreds list --withdraw-authority +``` + +Colonnes de sortie : `Device Code`, `Client IP`, `Tenure`, `Balance (USDC)`, `Est. Epochs Paid`. + +La colonne « Est. Epochs Paid » indique combien d'epochs votre solde actuel couvre aux tarifs en vigueur. Si les prix changent, cette estimation s'ajuste. + +### Retirer le siège et le séquestre + +Cette commande libère votre siège et ferme le séquestre. Vous recevez un remboursement au prorata pour la portion inutilisée de l'epoch en cours, plus tout solde de séquestre restant, retourné à votre portefeuille. Vous perdez le siège et toute ancienneté accumulée. + +```bash +doublezero-solana shreds withdraw \ + --device-code \ + --client-ip +``` + +Vous pouvez identifier l'appareil soit par `--device ` soit par `--device-code `, comme pour les autres commandes. + +Pour envoyer le remboursement USDC vers un compte de jetons différent : + +```bash +doublezero-solana shreds withdraw \ + --device-code \ + --client-ip \ + --refund-token-account +``` + +!!! warning "Cette action est irréversible. Après le retrait, votre siège est perdu et l'ancienneté est réinitialisée." + +--- + +## Adresses de shreds (IP vs Port) + +Les shreds de leader et les shreds de retransmission à fort enjeu arriveront sur le port `7733`, via l'interface `doublezero1`. L'interface `doublezero0` est destinée au trafic unicast. Le port `5765` est un moniteur de battement de cœur provenant des éditeurs de shreds — il ne contiendra pas de shreds. + +Pour la consommation de shreds, l'**adresse IP** identifie le flux multicast et le **port** identifie le service UDP sur ce flux. +Tous les flux de shreds ci-dessous utilisent le port UDP `7733` sur `doublezero1`. + +Vous pouvez examiner les IP de n'importe quel groupe multicast avec : + +```bash +doublezero multicast group list +``` + +### Shreds de leader + +- `edge-solana-shreds`: `233.84.178.1:7733` + +### Shreds root + +- `edge-solana-root`: `233.84.178.16:7733` + +### Shreds de retransmission + +- `edge-solana-retrans-eu`: `233.84.178.12:7733` +- `edge-solana-retrans-apac`: `233.84.178.13:7733` +- `edge-solana-retrans-amer`: `233.84.178.14:7733` + + +## En-tête de tunnel GRE — XDP + +!!! note "Le trafic de shreds livré sur le réseau est encapsulé en GRE. Vous devrez peut-être retirer l'en-tête GRE avant d'injecter les données dans votre pipeline existant (par ex. un deshredder basé sur XDP)." + +--- + +## Outils et tableaux de bord + +### [Tableau de classement Edge](https://data.doublezero.xyz/dz/shreds/scoreboard) + +Le tableau de classement évalue la vitesse de livraison des shreds entre DoubleZero Edge et d'autres fournisseurs, en utilisant des données au niveau des slots pour comparer les performances en temps réel. Utilisez ce tableau de bord pour voir les taux de victoire des shreds Edge par rapport aux autres fournisseurs. Vous pouvez consulter les résultats pour les shreds de leader uniquement, en plus de la comparaison du flux complet. Vous pouvez également explorer par région pour voir les performances attendues. + +### [Éditeurs Edge](https://data.doublezero.xyz/dz/shreds/publishers) + +La métrique « Publishing Shreds » en haut à gauche du tableau de bord montre le pourcentage total du poids de stake de tous les validateurs Solana publiant des shreds de leader sur DoubleZero Edge. Vous pouvez voir les détails de chaque éditeur sur le réseau. + +### [Abonnés, appareils et activité Edge](https://data.doublezero.xyz/dz/shreds/subscribers) + +Vous pouvez facilement rechercher votre IP client sur cette page pour les sièges souscrits et voir leur statut. Cliquez sur des abonnements de sièges spécifiques pour voir l'historique des paiements et l'activité. Vous pouvez également consulter les appareils disponibles sur la page [Appareils](https://data.doublezero.xyz/dz/shreds/devices) et toute l'activité récente sur la page [Activité](https://data.doublezero.xyz/dz/shreds/activity). + +### Documentation de l'API de données + +Pour un accès programmatique aux points de terminaison de données, consultez la documentation de l'API : [https://data.doublezero.xyz/api/v1/docs](https://data.doublezero.xyz/api/v1/docs). + +--- + +## Dépannage + +Si vous rencontrez un problème non couvert ici, veuillez nous contacter via votre canal existant avant de tenter un contournement. Si vous n'avez pas de canal, veuillez chercher sur [Discord](https://discord.gg/U2fEb4Jq) et ouvrir un ticket si nécessaire. + +### Assurez-vous que votre client est à jour : + +Exécutez : `sudo apt update && sudo apt install doublezero-solana` + +### Solde de séquestre insuffisant + +Si le solde de votre séquestre est inférieur au prix de l'epoch lors du règlement, le siège n'est pas attribué, le tunnel est démonté et l'ancienneté est perdue. Complétez avec `shreds pay` avant le prochain règlement. + +### Siège non attribué après le paiement + +- Vous avez peut-être payé tard dans l'epoch — le siège prend effet à l'epoch suivant. +- Tous les sièges sur l'appareil peuvent être pris par des titulaires ayant une ancienneté plus élevée. Vérifiez les sièges disponibles avec `shreds price`. +- Si vous avez retiré avant le règlement, le siège n'était pas éligible. + +### Le tunnel ne s'établit pas + +1. Vérifiez que le daemon est en cours d'exécution : `sudo systemctl status doublezerod` +2. Vérifiez que le réconciliateur est activé : `doublezero enable` +3. Vérifiez que les règles de pare-feu sont en place (GRE, BGP, PIM, trafic de shreds sur `doublezero1`, port 44880 sur `doublezero0`) +4. Vérifiez que votre siège est actif pour l'epoch en cours : `doublezero-solana shreds list` +5. Vérifiez l'état de votre connexion : `doublezero status` + +L'IP client du daemon est auto-découverte à partir de l'IP publique de votre hôte — vérifiez qu'elle correspond au `--client-ip` utilisé dans vos commandes de siège. + +### Avertissement de l'invite d'epoch + +Le CLI avertit lorsqu'il reste moins de 10 % de l'epoch. Vos options : + +- Accepter avec `--accept-partial-epoch` si vous voulez le siège immédiatement +- Attendre l'epoch suivant pour obtenir une couverture complète d'un epoch + +### « Amount is below the current price » + +La commande `pay` valide votre montant par rapport au prix minimum par epoch (base métropolitaine + prime de l'appareil). Utilisez `shreds price` pour vérifier les tarifs en vigueur et augmentez votre montant. + +### « Multicast user already exists » + +Vous avez déjà un abonnement actif via un chemin différent. Déconnectez-vous d'abord avec `doublezero disconnect`, puis réessayez `shreds pay`. \ No newline at end of file diff --git a/docs/Edge Subscriber CLI.it.md b/docs/Edge Subscriber CLI.it.md new file mode 100644 index 0000000..e61c205 --- /dev/null +++ b/docs/Edge Subscriber CLI.it.md @@ -0,0 +1,336 @@ +--- +description: Configura un edge subscriber per ricevere i feed di shred DoubleZero, inclusa la configurazione del client e le regole del firewall per GRE, BGP, PIM e il traffico shred. +--- + +# Connessione Edge Subscriber (CLI) + +!!! warning "Sottoscrizione CLI legacy — disattivata il **30 agosto 2026**" + Questa pagina è destinata agli utenti che utilizzano già la sottoscrizione **CLI / seat onchain** (`doublezero-solana shreds pay`). Questo sistema verrà disattivato il **30 agosto 2026**. + + Le nuove sottoscrizioni utilizzano il flusso tramite portale su [Sottoscrivere agli shred (Edge)](Edge Subscriber Connection.md). + +!!! warning "Connettendomi a DoubleZero accetto i [Termini di utilizzo di DoubleZero](https://doublezero.xyz/terms-protocol). Si prega di notare che i dati sono esclusivamente per uso interno e non possono essere ritrasmessi (vedi Sezione 2(e))." + +## Passaggio 1: Configurazione di DoubleZero + +### 1. Completare la configurazione + +Installa la [Solana CLI](https://docs.anza.xyz/cli/install). + +Segui le istruzioni di [configurazione](setup.md) per installare e configurare il client DoubleZero. + +Se hai precedentemente configurato DoubleZero, assicurati di avere l'ultima versione della CLI Doublezero-Solana con `sudo apt update && sudo apt install doublezero-solana` + +### 2. Configurare il firewall + +Consenti il traffico GRE, BGP, PIM e shred. + +**iptables:** + +```bash +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:** + +```bash +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 out on doublezero1 proto pim from any to any +sudo ufw allow in on doublezero1 to any port 7733 proto udp +sudo ufw allow in on doublezero0 to any port 44880 proto udp +``` + +### 3. Abilitare il Reconciler + +Il reconciler monitora lo stato onchain e provisiona automaticamente i tunnel quando il tuo seat viene allocato. Non è abilitato per impostazione predefinita. + +```bash +doublezero enable +``` + +--- + +## Passaggio 2: Configurare il wallet + +### 1. Creare un keypair Solana + +La CLI `doublezero-solana` utilizza un keypair Solana standard per la gestione dei seat onchain. Se non ne hai uno: + +```bash +solana-keygen new +``` + +Questo scrive su `~/.config/solana/id.json`. Per utilizzare un percorso diverso, passa `--keypair ` a qualsiasi comando `doublezero-solana`. + +Stampa l'indirizzo del tuo wallet: + +```bash +solana address +``` + +### 2. Finanziare il wallet + +Il tuo wallet necessita di due token: + +- **SOL** — per le commissioni delle transazioni Solana. Trasferisci SOL all'indirizzo del wallet stampato sopra. +- **USDC** — per il finanziamento del seat. La CLI preleva dall'Associated Token Account (ATA) del tuo wallet per il mint USDC mainnet (`EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v`). + +--- + +## Passaggio 3: Acquistare un seat + +### 1. Trovare il dispositivo più vicino + +Prima di acquistare un seat, identifica il dispositivo con la latenza più bassa dalla tua macchina: + +```bash +doublezero latency +``` + +Annota il codice del dispositivo dal risultato con la latenza più bassa (es., ``). Lo utilizzerai al momento dell'acquisto di un seat. + +### 2. Verificare i prezzi + +Visualizza i prezzi correnti dei dispositivi prima di impegnare fondi. I prezzi hanno due componenti: un **prezzo base della metro** e un **premium per dispositivo**. Puoi anche visualizzare prezzi e disponibilità [qui](https://data.doublezero.xyz/dz/shreds/devices). + +**Tutti i dispositivi:** + +```bash +doublezero-solana shreds price +``` + +**Dispositivo specifico:** + +```bash +doublezero-solana shreds price --device-code +doublezero-solana shreds price --device +``` + +**Tutti i dispositivi in una metro:** + +```bash +doublezero-solana shreds price --metro +``` + +Colonne dell'output: `Device Code`, `Metro Code`, `Metro Name`, `Status`, `Settled Seats`, `Available Seats`, `Base Price (USDC)`, `Premium (USDC)`, `Epoch Price (USDC)`. + +Il prezzo per epoca è il costo totale per epoca per un seat su quel dispositivo (base + premium). Usa `--wide` per mostrare le pubkey complete, o `--json` per l'output in formato JSON. + +### 3. Acquistare un seat + +Acquista un seat con un singolo comando. Questo inizializza il tuo seat, finanzia l'escrow e richiede l'allocazione: + +```bash +doublezero-solana shreds pay \ + --device-code \ + --client-ip \ + --amount +``` + +**Parametri:** + +| Flag | Descrizione | +|------|-------------| +| `--device ` | Dispositivo target tramite chiave pubblica (mutuamente esclusivo con `--device-code`) | +| `--device-code ` | Dispositivo target tramite codice leggibile (es., ``) | +| `--client-ip ` | L'indirizzo IPv4 pubblico della tua macchina | +| `--amount ` | USDC da finanziare (formato decimale, es. `100` = 100 USDC). Deve soddisfare il prezzo minimo per epoca. | +| `--source-token-account ` | Account sorgente USDC personalizzato (predefinito: ATA del tuo wallet) | +| `--accept-partial-epoch` | Salta l'avviso di epoca rimanente (vedi sotto) | +| `--fee-payer ` | Usa un wallet diverso per le commissioni delle transazioni SOL | +| `--dry-run` | Simula la transazione senza eseguirla | +| `--with-compute-unit-price ` | Imposta un prezzo per compute unit per un'inclusione più rapida durante la congestione | + +Una volta allocato il tuo seat, il daemon stabilisce automaticamente il tunnel GRE. Verifica la tua connessione con: + +```bash +doublezero status +``` + +### Tempistica delle epoche + +I seat vengono allocati per epoca Solana (~2 giorni). Se rimane meno del 10% dell'epoca corrente quando effettui il pagamento, la CLI avverte che il tuo seat verrà allocato immediatamente ma coprirà solo il resto dell'epoca corrente. Un pagamento separato verrà detratto dal tuo escrow quando inizia l'epoca successiva. + +!!! info "È consigliabile finanziare per più di 1 epoca alla volta per non perdere il tuo seat. Puoi controllare il tempo rimanente in un'epoca [qui](https://explorer.solana.com/)." + +Puoi bypassare questo avviso con `--accept-partial-epoch`. + +### Mantieni il tuo escrow finanziato + +!!! warning "Se il saldo del tuo escrow è inferiore al prezzo per epoca al momento del settlement, il tuo seat non verrà allocato, il tunnel verrà smantellato e perderai la tenure accumulata. La tenure determina la tua priorità per le epoche future — perderla significa competere nuovamente come nuovo arrivato." + +Puoi sovraccaricare questo account per finanziare più epoche. Ogni settlement deduce il prezzo di un'epoca dal tuo escrow e il saldo rimanente viene riportato. Ad esempio, finanziare 5x il prezzo per epoca mantiene il tuo seat attivo per un massimo di 5 epoche senza rifinanziamento. + +Per ricaricare il tuo escrow, esegui `shreds pay` di nuovo in qualsiasi momento: + +```bash +doublezero-solana shreds pay \ + --device-code \ + --client-ip \ + --amount 500 +``` + +Nota che il `Target_IP` deve essere un indirizzo IPv4 pubblico sulla macchina che riceverà gli shred. Puoi trovarlo eseguendo un comando come `curl -4 ifconfig.me` sulla macchina target. + +### Monitorare i seat + +Questa sezione descrive come visualizzare i seat tramite la CLI. Puoi anche usare [https://data.doublezero.xyz/api/v1/docs](https://data.doublezero.xyz/api/v1/docs) per monitorare i seat e gestire il tuo account escrow. + +Visualizza i tuoi seat attivi e i saldi escrow: + +**Tutti i tuoi seat:** + +```bash +doublezero-solana shreds list +``` + +**Filtra per dispositivo:** + +```bash +doublezero-solana shreds list --device-code +``` + +**Filtra per IP del client:** + +```bash +doublezero-solana shreds list --client-ip +``` + +**Filtra per wallet:** + +```bash +doublezero-solana shreds list --withdraw-authority +``` + +Colonne dell'output: `Device Code`, `Client IP`, `Tenure`, `Balance (USDC)`, `Est. Epochs Paid`. + +La colonna "Est. Epochs Paid" mostra quante epoche copre il tuo saldo attuale ai prezzi correnti. Se i prezzi cambiano, questa stima si aggiorna. + +### Ritirare seat ed escrow + +Questo comando rilascia il tuo seat e chiude l'escrow. Ricevi un rimborso proporzionale per la porzione inutilizzata dell'epoca corrente, più qualsiasi saldo escrow rimanente, restituito al tuo wallet. Perdi il seat e qualsiasi tenure accumulata. + +```bash +doublezero-solana shreds withdraw \ + --device-code \ + --client-ip +``` + +Puoi identificare il dispositivo tramite `--device ` o `--device-code `, come per gli altri comandi. + +Per inviare il rimborso USDC a un account token diverso: + +```bash +doublezero-solana shreds withdraw \ + --device-code \ + --client-ip \ + --refund-token-account +``` + +!!! warning "Questa operazione non può essere annullata. Dopo il ritiro, il tuo seat viene eliminato e la tenure viene azzerata." + +--- + +## Indirizzi shred (IP vs Porta) + +I Leader Shred e i Retransmit Shred ad alto stake arriveranno sulla porta `7733`, attraverso l'interfaccia `doublezero1`. L'interfaccia `doublezero0` è per il traffico unicast. La porta `5765` è un monitor heartbeat degli shred publisher — non conterrà shred. + +Per il consumo degli shred, l'**indirizzo IP** identifica lo stream multicast e la **porta** identifica il servizio UDP su quello stream. +Tutti gli stream shred sotto utilizzano la porta UDP `7733` su `doublezero1`. + +Puoi esaminare gli IP di qualsiasi gruppo multicast con: + +```bash +doublezero multicast group list +``` + +### Leader Shred + +- `edge-solana-shreds`: `233.84.178.1:7733` + +### Root Shred + +- `edge-solana-root`: `233.84.178.16:7733` + +### Retransmit Shred + +- `edge-solana-retrans-eu`: `233.84.178.12:7733` +- `edge-solana-retrans-apac`: `233.84.178.13:7733` +- `edge-solana-retrans-amer`: `233.84.178.14:7733` + + +## Header del tunnel GRE — XDP + +!!! note "Il traffico shred consegnato sulla rete è incapsulato in GRE. Potrebbe essere necessario rimuovere l'header GRE prima di alimentare i dati nella tua pipeline esistente (es. un deshredder basato su XDP)." + +--- + +## Strumenti e dashboard + +### [Edge Scoreboard](https://data.doublezero.xyz/dz/shreds/scoreboard) + +Lo Scoreboard effettua benchmark sulla velocità di consegna degli shred tra DoubleZero Edge e altri provider, utilizzando dati a livello di slot per confrontare le prestazioni in tempo reale. Usa questa dashboard per visualizzare i tassi di vittoria degli shred Edge rispetto ad altri provider. Puoi visualizzare i risultati solo per i leader shred, oltre al confronto del feed completo. Puoi anche approfondire per regione per vedere le prestazioni attese. + +### [Edge Publishers](https://data.doublezero.xyz/dz/shreds/publishers) + +La metrica "Publishing Shreds" in alto a sinistra della dashboard mostra la percentuale totale del peso di stake di tutti i validatori Solana che pubblicano leader shred su DoubleZero Edge. Puoi vedere i dettagli per ogni publisher sulla rete. + +### [Edge Subscribers, dispositivi e attività](https://data.doublezero.xyz/dz/shreds/subscribers) + +Puoi facilmente cercare il tuo Client IP su questa pagina per i seat sottoscritti e visualizzarne lo stato. Clicca su sottoscrizioni specifiche dei seat per visualizzare lo storico dei pagamenti e l'attività. Puoi anche visualizzare i dispositivi disponibili nella pagina [Dispositivi](https://data.doublezero.xyz/dz/shreds/devices) e tutta l'attività recente nella pagina [Attività](https://data.doublezero.xyz/dz/shreds/activity). + +### Documentazione API dati + +Per l'accesso programmatico agli endpoint dei dati, consulta la documentazione API: [https://data.doublezero.xyz/api/v1/docs](https://data.doublezero.xyz/api/v1/docs). + +--- + +## Risoluzione dei problemi + +Se riscontri un problema non trattato qui, contattaci attraverso il tuo canale esistente prima di cercare soluzioni alternative. Se non hai un canale, cerca su [Discord](https://discord.gg/U2fEb4Jq) e apri un ticket se necessario. + +### Assicurati che il tuo client sia aggiornato: + +Esegui: `sudo apt update && sudo apt install doublezero-solana` + +### Saldo escrow insufficiente + +Se il saldo del tuo escrow è inferiore al prezzo per epoca al momento del settlement, il seat non viene allocato, il tunnel viene smantellato e la tenure viene persa. Ricarica con `shreds pay` prima del prossimo settlement. + +### Seat non allocato dopo il pagamento + +- Potresti aver pagato tardi nell'epoca — il seat diventa effettivo nell'epoca successiva. +- Tutti i seat sul dispositivo potrebbero essere occupati da incumbent con tenure più alta. Controlla i seat disponibili con `shreds price`. +- Se hai effettuato il ritiro prima del settlement, il seat non era idoneo. + +### Il tunnel non si stabilisce + +1. Verifica che il daemon sia in esecuzione: `sudo systemctl status doublezerod` +2. Verifica che il reconciler sia abilitato: `doublezero enable` +3. Verifica che le regole del firewall siano in atto (GRE, BGP, PIM, traffico shred su `doublezero1`, porta 44880 su `doublezero0`) +4. Verifica che il tuo seat sia attivo per l'epoca corrente: `doublezero-solana shreds list` +5. Controlla lo stato della tua connessione: `doublezero status` + +L'IP del client del daemon viene rilevato automaticamente dall'IP pubblico del tuo host — verifica che corrisponda al `--client-ip` utilizzato nei tuoi comandi per il seat. + +### Avviso prompt dell'epoca + +La CLI avverte quando rimane meno del 10% dell'epoca. Le tue opzioni sono: + +- Accettare con `--accept-partial-epoch` se vuoi il seat immediatamente +- Attendere l'epoca successiva per ottenere una copertura completa dell'epoca + +### "Amount is below the current price" + +Il comando `pay` valida il tuo importo rispetto al prezzo minimo per epoca (base metro + premium dispositivo). Usa `shreds price` per controllare i prezzi correnti e aumenta il tuo importo. + +### "Multicast user already exists" + +Hai già una sottoscrizione attiva attraverso un percorso diverso. Disconnettiti prima con `doublezero disconnect`, poi riprova `shreds pay`. \ No newline at end of file diff --git a/docs/Edge Subscriber CLI.ja.md b/docs/Edge Subscriber CLI.ja.md new file mode 100644 index 0000000..2a0b985 --- /dev/null +++ b/docs/Edge Subscriber CLI.ja.md @@ -0,0 +1,336 @@ +--- +description: エッジサブスクライバーをセットアップして DoubleZero のシュレッドフィードを受信します。クライアントのセットアップや GRE、BGP、PIM、シュレッドトラフィック用のファイアウォールルールを含みます。 +--- + +# エッジサブスクライバー接続(CLI) + +!!! warning "レガシー CLI サブスクリプション — **2026年8月30日**に廃止" + このページは、すでに **CLI / オンチェンシート** サブスクリプション(`doublezero-solana shreds pay`)をご利用中のユーザー向けです。このシステムは **2026年8月30日** に廃止されます。 + + 新規サブスクリプションは [シュレッドのサブスクライブ(Edge)](Edge Subscriber Connection.md) のポータルフローをご利用ください。 + +!!! warning "DoubleZero に接続することにより、[DoubleZero 利用規約](https://doublezero.xyz/terms-protocol)に同意したものとみなされます。データはお客様の内部目的でのみ使用可能であり、再送信することはできません(セクション 2(e) を参照)。" + +## ステップ 1: DoubleZero セットアップ + +### 1. セットアップの完了 + +[Solana CLI](https://docs.anza.xyz/cli/install) をインストールします。 + +[セットアップ](setup.md)の手順に従って、DoubleZero クライアントをインストールおよび設定します。 + +以前に DoubleZero をセットアップしたことがある場合は、`sudo apt update && sudo apt install doublezero-solana` で最新の Doublezero-Solana CLI がインストールされていることを確認してください。 + +### 2. ファイアウォールの設定 + +GRE、BGP、PIM、およびシュレッドトラフィックを許可します。 + +**iptables:** + +```bash +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:** + +```bash +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 out on doublezero1 proto pim from any to any +sudo ufw allow in on doublezero1 to any port 7733 proto udp +sudo ufw allow in on doublezero0 to any port 44880 proto udp +``` + +### 3. リコンサイラーの有効化 + +リコンサイラーはオンチェンの状態を監視し、シートが割り当てられたときに自動的にトンネルをプロビジョニングします。デフォルトでは有効になっていません。 + +```bash +doublezero enable +``` + +--- + +## ステップ 2: ウォレットのセットアップ + +### 1. Solana キーペアの作成 + +`doublezero-solana` CLI は、オンチェンシート管理に標準的な Solana キーペアを使用します。まだお持ちでない場合: + +```bash +solana-keygen new +``` + +これにより `~/.config/solana/id.json` に書き込まれます。別のパスを使用する場合は、任意の `doublezero-solana` コマンドに `--keypair ` を渡してください。 + +ウォレットアドレスを表示: + +```bash +solana address +``` + +### 2. ウォレットへの入金 + +ウォレットには2種類のトークンが必要です: + +- **SOL** — Solana トランザクション手数料用。上記で表示されたウォレットアドレスに SOL を送金してください。 +- **USDC** — シートの資金用。CLI はメインネット USDC ミント(`EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v`)の Associated Token Account(ATA)から引き出します。 + +--- + +## ステップ 3: シートの購入 + +### 1. 最寄りのデバイスを探す + +シートを購入する前に、お使いのマシンからレイテンシが最も低いデバイスを特定します: + +```bash +doublezero latency +``` + +最もレイテンシが低い結果のデバイスコード(例:``)をメモしてください。シート購入時に使用します。 + +### 2. 料金の確認 + +資金を投入する前に、現在のデバイス料金を確認します。料金は **ベースメトロ価格** と **デバイスごとのプレミアム** の2つの要素で構成されています。料金と空き状況は[こちら](https://data.doublezero.xyz/dz/shreds/devices)でも確認できます。 + +**全デバイス:** + +```bash +doublezero-solana shreds price +``` + +**特定のデバイス:** + +```bash +doublezero-solana shreds price --device-code +doublezero-solana shreds price --device +``` + +**メトロ内の全デバイス:** + +```bash +doublezero-solana shreds price --metro +``` + +出力列:`Device Code`、`Metro Code`、`Metro Name`、`Status`、`Settled Seats`、`Available Seats`、`Base Price (USDC)`、`Premium (USDC)`、`Epoch Price (USDC)`。 + +エポック価格は、そのデバイスでの1エポックあたりのシート総費用(ベース + プレミアム)です。`--wide` を使用すると完全な公開鍵が表示され、`--json` を使用すると JSON 出力になります。 + +### 3. シートの購入 + +1つのコマンドでシートを購入します。これによりシートの初期化、エスクローへの資金投入、割り当てリクエストが行われます: + +```bash +doublezero-solana shreds pay \ + --device-code \ + --client-ip \ + --amount +``` + +**パラメータ:** + +| フラグ | 説明 | +|------|-------------| +| `--device ` | 公開鍵でターゲットデバイスを指定(`--device-code` と排他的) | +| `--device-code ` | 人間が読めるコードでターゲットデバイスを指定(例:``) | +| `--client-ip ` | お使いのマシンのパブリック IPv4 アドレス | +| `--amount ` | 投入する USDC 金額(10進数形式、例:`100` = 100 USDC)。最低エポック価格を満たす必要があります。 | +| `--source-token-account ` | カスタム USDC ソースアカウント(デフォルトはウォレットの ATA) | +| `--accept-partial-epoch` | エポック残り時間の警告をスキップ(下記参照) | +| `--fee-payer ` | SOL トランザクション手数料に別のウォレットを使用 | +| `--dry-run` | トランザクションを実行せずにシミュレーション | +| `--with-compute-unit-price ` | 混雑時により早く取り込まれるようコンピュートユニット価格を設定 | + +シートが割り当てられると、デーモンが自動的に GRE トンネルを確立します。接続を確認するには: + +```bash +doublezero status +``` + +### エポックのタイミング + +シートは Solana エポック(約2日)ごとに割り当てられます。支払い時に現在のエポックの残りが 10% 未満の場合、CLI はシートが即座に割り当てられるものの現在のエポックの残り期間のみをカバーすることを警告します。次のエポックが始まると、エスクローから別途支払いが差し引かれます。 + +!!! info "シートを失わないように、一度に1エポック以上の資金を投入することをお勧めします。エポックの残り時間は[こちら](https://explorer.solana.com/)で確認できます。" + +この警告は `--accept-partial-epoch` でバイパスできます。 + +### エスクローの残高を維持する + +!!! warning "決済時にエスクロー残高がエポック価格を下回っている場合、シートは割り当てられず、トンネルは切断され、蓄積されたテニュアが失われます。テニュアは将来のエポックでの優先順位を決定します。テニュアを失うと、新規参加者として再び競争することになります。" + +複数エポック分の資金を投入するために、このアカウントに多めに入金することができます。各決済で1エポック分の価格がエスクローから差し引かれ、残高は次に繰り越されます。例えば、1エポックあたりの価格の5倍を投入すれば、再入金なしで最大5エポック分のシートが有効になります。 + +エスクローに追加入金するには、いつでも `shreds pay` を再実行してください: + +```bash +doublezero-solana shreds pay \ + --device-code \ + --client-ip \ + --amount 500 +``` + +`Target_IP` はシュレッドを受信するマシンのパブリック IPv4 アドレスである必要があります。ターゲットマシンで `curl -4 ifconfig.me` のようなコマンドを実行して確認できます。 + +### シートの監視 + +このセクションでは、CLI を使用してシートを表示する方法を説明します。[https://data.doublezero.xyz/api/v1/docs](https://data.doublezero.xyz/api/v1/docs) を使用してシートの監視やエスクローアカウントの管理を支援することもできます。 + +アクティブなシートとエスクロー残高を表示: + +**全シート:** + +```bash +doublezero-solana shreds list +``` + +**デバイスでフィルタ:** + +```bash +doublezero-solana shreds list --device-code +``` + +**クライアント IP でフィルタ:** + +```bash +doublezero-solana shreds list --client-ip +``` + +**ウォレットでフィルタ:** + +```bash +doublezero-solana shreds list --withdraw-authority +``` + +出力列:`Device Code`、`Client IP`、`Tenure`、`Balance (USDC)`、`Est. Epochs Paid`。 + +「Est. Epochs Paid」列は、現在の料金で現在の残高が何エポック分をカバーするかを示します。料金が変更されると、この見積もりは調整されます。 + +### シートとエスクローの引き出し + +このコマンドはシートを解放し、エスクローを閉鎖します。現在のエポックの未使用分に対する按分返金と、残りのエスクロー残高がウォレットに返金されます。シートと蓄積されたテニュアは失われます。 + +```bash +doublezero-solana shreds withdraw \ + --device-code \ + --client-ip +``` + +他のコマンドと同様に、`--device ` または `--device-code ` のいずれかでデバイスを指定できます。 + +USDC の返金を別のトークンアカウントに送る場合: + +```bash +doublezero-solana shreds withdraw \ + --device-code \ + --client-ip \ + --refund-token-account +``` + +!!! warning "この操作は元に戻せません。引き出し後、シートは失われ、テニュアはリセットされます。" + +--- + +## シュレッドアドレス(IP とポート) + +リーダーシュレッドと高ステークのリトランスミットシュレッドはポート `7733` 経由で `doublezero1` インターフェースに到着します。`doublezero0` インターフェースはユニキャストトラフィック用です。ポート `5765` はシュレッドパブリッシャーからのハートビートモニターであり、シュレッドは含まれません。 + +シュレッド消費において、**IP アドレス** はマルチキャストストリームを識別し、**ポート** はそのストリーム上の UDP サービスを識別します。 +以下のすべてのシュレッドストリームは、`doublezero1` 上の UDP ポート `7733` を使用します。 + +任意のマルチキャストグループの IP は以下のコマンドで確認できます: + +```bash +doublezero multicast group list +``` + +### リーダーシュレッド + +- `edge-solana-shreds`: `233.84.178.1:7733` + +### ルートシュレッド + +- `edge-solana-root`: `233.84.178.16:7733` + +### リトランスミットシュレッド + +- `edge-solana-retrans-eu`: `233.84.178.12:7733` +- `edge-solana-retrans-apac`: `233.84.178.13:7733` +- `edge-solana-retrans-amer`: `233.84.178.14:7733` + + +## GRE トンネルヘッダー — XDP + +!!! note "ネットワーク経由で配信されるシュレッドトラフィックは GRE カプセル化されています。既存のパイプライン(例:XDP ベースのデシュレッダー)にデータを送る前に、GRE ヘッダーを除去する必要がある場合があります。" + +--- + +## ツールとダッシュボード + +### [Edge スコアボード](https://data.doublezero.xyz/dz/shreds/scoreboard) + +スコアボードは、DoubleZero Edge と他のプロバイダー間でのシュレッド配信速度をベンチマークし、スロットレベルのデータを使用してリアルタイムでパフォーマンスを比較します。このダッシュボードを使用して、他のプロバイダーに対する Edge シュレッドの勝率を確認できます。リーダーシュレッドのみの結果に加え、フルフィードの比較も表示できます。リージョンごとにドリルダウンして、期待されるパフォーマンスを確認することもできます。 + +### [Edge パブリッシャー](https://data.doublezero.xyz/dz/shreds/publishers) + +ダッシュボード左上の「Publishing Shreds」メトリクスは、DoubleZero Edge でリーダーシュレッドを公開しているすべての Solana バリデーターの合計ステークウェイトの割合を示しています。ネットワーク上の各パブリッシャーの詳細を確認できます。 + +### [Edge サブスクライバー、デバイス、アクティビティ](https://data.doublezero.xyz/dz/shreds/subscribers) + +このページでクライアント IP を簡単に検索して、サブスクライブ済みのシートとステータスを確認できます。特定のシートサブスクリプションをクリックすると、支払い履歴とアクティビティを表示できます。[デバイス](https://data.doublezero.xyz/dz/shreds/devices)ページで利用可能なデバイスを、[アクティビティ](https://data.doublezero.xyz/dz/shreds/activity)ページで最近のすべてのアクティビティを確認することもできます。 + +### データ API ドキュメント + +データエンドポイントへのプログラムによるアクセスについては、API ドキュメントを参照してください:[https://data.doublezero.xyz/api/v1/docs](https://data.doublezero.xyz/api/v1/docs)。 + +--- + +## トラブルシューティング + +ここに記載されていない問題が発生した場合は、回避策を試みる前に、既存のチャネルからお問い合わせください。チャネルをお持ちでない場合は、[Discord](https://discord.gg/U2fEb4Jq) で検索し、必要に応じてチケットを作成してください。 + +### クライアントが最新であることを確認する: + +実行:`sudo apt update && sudo apt install doublezero-solana` + +### エスクロー残高不足 + +決済時にエスクロー残高がエポック価格を下回っている場合、シートは割り当てられず、トンネルは切断され、テニュアが失われます。次の決済前に `shreds pay` で追加入金してください。 + +### 支払い後にシートが割り当てられない + +- エポックの後半に支払った可能性があります — シートは次のエポックから有効になります。 +- テニュアの高い既存ユーザーによってデバイス上のすべてのシートが占有されている可能性があります。`shreds price` で空きシートを確認してください。 +- 決済前に引き出しを行った場合、そのシートは対象外になります。 + +### トンネルが起動しない + +1. デーモンが実行中であることを確認:`sudo systemctl status doublezerod` +2. リコンサイラーが有効であることを確認:`doublezero enable` +3. ファイアウォールルールが設定されていることを確認(GRE、BGP、PIM、`doublezero1` 上のシュレッドトラフィック、`doublezero0` 上のポート 44880) +4. 現在のエポックでシートがアクティブであることを確認:`doublezero-solana shreds list` +5. 接続ステータスを確認:`doublezero status` + +デーモンのクライアント IP はホストのパブリック IP から自動検出されます — シートコマンドで使用した `--client-ip` と一致していることを確認してください。 + +### エポック警告プロンプト + +エポックの残りが 10% 未満の場合、CLI が警告を表示します。選択肢: + +- すぐにシートが必要な場合は `--accept-partial-epoch` で承認 +- フルエポック分のカバレッジを得るために次のエポックまで待つ + +### 「金額が現在の価格を下回っています」 + +`pay` コマンドは、最低エポック価格(メトロベース + デバイスプレミアム)に対して金額を検証します。`shreds price` で現在の料金を確認し、金額を増やしてください。 + +### 「マルチキャストユーザーは既に存在します」 + +別のパスを通じてアクティブなサブスクリプションが既に存在します。まず `doublezero disconnect` で切断してから、`shreds pay` を再試行してください。 \ No newline at end of file diff --git a/docs/Edge Subscriber CLI.ko.md b/docs/Edge Subscriber CLI.ko.md new file mode 100644 index 0000000..21b1eef --- /dev/null +++ b/docs/Edge Subscriber CLI.ko.md @@ -0,0 +1,336 @@ +--- +description: 엣지 구독자를 설정하여 DoubleZero 슈레드 피드를 수신하는 방법으로, 클라이언트 설정 및 GRE, BGP, PIM, 슈레드 트래픽에 대한 방화벽 규칙을 포함합니다. +--- + +# 엣지 구독자 연결 (CLI) + +!!! warning "레거시 CLI 구독 — **2026년 8월 30일** 폐지 예정" + 이 페이지는 이미 **CLI / 온체인 시트** 구독(`doublezero-solana shreds pay`)을 사용 중인 사용자를 위한 것입니다. 해당 시스템은 **2026년 8월 30일**에 폐지됩니다. + + 새로운 구독은 [슈레드 구독 (Edge)](Edge Subscriber Connection.md)의 포털 흐름을 사용합니다. + +!!! warning "DoubleZero에 연결함으로써 [DoubleZero 이용약관](https://doublezero.xyz/terms-protocol)에 동의합니다. 데이터는 내부 목적으로만 사용 가능하며 재전송이 불가합니다(섹션 2(e) 참조)." + +## 1단계: DoubleZero 설정 + +### 1. 설정 완료 + +[Solana CLI](https://docs.anza.xyz/cli/install)를 설치합니다. + +[설정](setup.md) 지침에 따라 DoubleZero 클라이언트를 설치하고 구성합니다. + +이전에 DoubleZero를 설정한 적이 있다면 `sudo apt update && sudo apt install doublezero-solana` 명령으로 최신 Doublezero-Solana CLI가 설치되어 있는지 확인하세요. + +### 2. 방화벽 구성 + +GRE, BGP, PIM 및 슈레드 트래픽을 허용합니다. + +**iptables:** + +```bash +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:** + +```bash +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 out on doublezero1 proto pim from any to any +sudo ufw allow in on doublezero1 to any port 7733 proto udp +sudo ufw allow in on doublezero0 to any port 44880 proto udp +``` + +### 3. 리콘실러 활성화 + +리콘실러는 온체인 상태를 모니터링하고 시트가 할당되면 자동으로 터널을 프로비저닝합니다. 기본적으로 활성화되어 있지 않습니다. + +```bash +doublezero enable +``` + +--- + +## 2단계: 지갑 설정 + +### 1. Solana 키페어 생성 + +`doublezero-solana` CLI는 온체인 시트 관리를 위해 표준 Solana 키페어를 사용합니다. 키페어가 없는 경우: + +```bash +solana-keygen new +``` + +이 명령은 `~/.config/solana/id.json`에 파일을 생성합니다. 다른 경로를 사용하려면 `doublezero-solana` 명령에 `--keypair `를 전달하세요. + +지갑 주소를 출력합니다: + +```bash +solana address +``` + +### 2. 지갑에 자금 입금 + +지갑에 두 가지 토큰이 필요합니다: + +- **SOL** — Solana 트랜잭션 수수료용. 위에서 출력된 지갑 주소로 SOL을 전송합니다. +- **USDC** — 시트 자금용. CLI는 메인넷 USDC 민트(`EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v`)에 대한 지갑의 Associated Token Account(ATA)에서 자금을 인출합니다. + +--- + +## 3단계: 시트 구매 + +### 1. 가장 가까운 장치 찾기 + +시트를 구매하기 전에 사용자 머신에서 가장 낮은 지연 시간을 가진 장치를 확인합니다: + +```bash +doublezero latency +``` + +가장 낮은 지연 시간 결과에서 장치 코드를 메모합니다(예: ``). 시트 구매 시 이 코드를 사용합니다. + +### 2. 가격 확인 + +자금을 투입하기 전에 현재 장치 가격을 확인합니다. 가격은 **기본 메트로 가격**과 **장치별 프리미엄** 두 가지 구성 요소로 이루어져 있습니다. 가격 및 가용성은 [여기](https://data.doublezero.xyz/dz/shreds/devices)에서도 확인할 수 있습니다. + +**전체 장치:** + +```bash +doublezero-solana shreds price +``` + +**특정 장치:** + +```bash +doublezero-solana shreds price --device-code +doublezero-solana shreds price --device +``` + +**메트로 내 전체 장치:** + +```bash +doublezero-solana shreds price --metro +``` + +출력 열: `Device Code`, `Metro Code`, `Metro Name`, `Status`, `Settled Seats`, `Available Seats`, `Base Price (USDC)`, `Premium (USDC)`, `Epoch Price (USDC)`. + +에포크 가격은 해당 장치의 시트당 에포크 총 비용(기본 + 프리미엄)입니다. 전체 공개키를 표시하려면 `--wide`를, JSON 출력을 원하면 `--json`을 사용합니다. + +### 3. 시트 구매 + +단일 명령으로 시트를 구매합니다. 이 명령은 시트를 초기화하고 에스크로에 자금을 입금하며 할당을 요청합니다: + +```bash +doublezero-solana shreds pay \ + --device-code \ + --client-ip \ + --amount +``` + +**매개변수:** + +| 플래그 | 설명 | +|------|-------------| +| `--device ` | 공개키로 대상 장치 지정 (`--device-code`와 상호 배타적) | +| `--device-code ` | 사람이 읽을 수 있는 코드로 대상 장치 지정 (예: ``) | +| `--client-ip ` | 사용자 머신의 공개 IPv4 주소 | +| `--amount ` | 입금할 USDC (소수점 형식, 예: `100` = 100 USDC). 최소 에포크 가격을 충족해야 합니다. | +| `--source-token-account ` | 사용자 정의 USDC 소스 계정 (기본값은 지갑의 ATA) | +| `--accept-partial-epoch` | 에포크 잔여 시간 경고 건너뛰기 (아래 참조) | +| `--fee-payer ` | SOL 트랜잭션 수수료에 다른 지갑 사용 | +| `--dry-run` | 트랜잭션을 실행하지 않고 시뮬레이션 | +| `--with-compute-unit-price ` | 혼잡 시 더 빠른 포함을 위해 컴퓨트 유닛 가격 설정 | + +시트가 할당되면 데몬이 자동으로 GRE 터널을 설정합니다. 다음 명령으로 연결을 확인하세요: + +```bash +doublezero status +``` + +### 에포크 타이밍 + +시트는 Solana 에포크(약 2일) 단위로 할당됩니다. 결제 시 현재 에포크의 10% 미만이 남아 있으면 CLI가 시트가 즉시 할당되지만 현재 에포크의 나머지 기간만 커버한다는 경고를 표시합니다. 다음 에포크가 시작되면 에스크로에서 별도의 결제가 차감됩니다. + +!!! info "시트를 잃지 않으려면 한 번에 1 에포크 이상을 입금하는 것이 좋습니다. 현재 에포크의 남은 시간은 [여기](https://explorer.solana.com/)에서 확인할 수 있습니다." + +`--accept-partial-epoch`를 사용하여 이 경고를 건너뛸 수 있습니다. + +### 에스크로 잔액 유지 + +!!! warning "정산 시 에스크로 잔액이 에포크 가격보다 낮으면 시트가 할당되지 않고, 터널이 해제되며, 누적된 테뉴어를 잃게 됩니다. 테뉴어는 향후 에포크에서의 우선순위를 결정하므로, 테뉴어를 잃으면 신규 참여자로서 다시 경쟁해야 합니다." + +이 계정에 초과 입금하여 여러 에포크를 충당할 수 있습니다. 각 정산 시 에스크로에서 에포크 1회분의 가격이 차감되며, 잔여 잔액은 이월됩니다. 예를 들어, 에포크당 가격의 5배를 입금하면 재입금 없이 최대 5 에포크 동안 시트를 유지할 수 있습니다. + +에스크로를 추가 충전하려면 언제든지 `shreds pay`를 다시 실행하세요: + +```bash +doublezero-solana shreds pay \ + --device-code \ + --client-ip \ + --amount 500 +``` + +`Target_IP`는 슈레드를 수신할 머신의 공개 IPv4 주소여야 합니다. 대상 머신에서 `curl -4 ifconfig.me`와 같은 명령을 실행하여 확인할 수 있습니다. + +### 시트 모니터링 + +이 섹션에서는 CLI를 통해 시트를 조회하는 방법을 설명합니다. [https://data.doublezero.xyz/api/v1/docs](https://data.doublezero.xyz/api/v1/docs)를 사용하여 시트를 모니터링하고 에스크로 계정 관리를 지원받을 수도 있습니다. + +활성 시트 및 에스크로 잔액을 조회합니다: + +**전체 시트:** + +```bash +doublezero-solana shreds list +``` + +**장치별 필터:** + +```bash +doublezero-solana shreds list --device-code +``` + +**클라이언트 IP별 필터:** + +```bash +doublezero-solana shreds list --client-ip +``` + +**지갑별 필터:** + +```bash +doublezero-solana shreds list --withdraw-authority +``` + +출력 열: `Device Code`, `Client IP`, `Tenure`, `Balance (USDC)`, `Est. Epochs Paid`. + +"Est. Epochs Paid" 열은 현재 가격 기준으로 현재 잔액이 커버하는 에포크 수를 보여줍니다. 가격이 변경되면 이 추정치도 조정됩니다. + +### 시트 및 에스크로 출금 + +이 명령은 시트를 해제하고 에스크로를 닫습니다. 현재 에포크의 미사용 부분에 대한 비례 환불과 잔여 에스크로 잔액이 지갑으로 반환됩니다. 시트와 누적된 테뉴어를 잃게 됩니다. + +```bash +doublezero-solana shreds withdraw \ + --device-code \ + --client-ip +``` + +다른 명령과 마찬가지로 `--device ` 또는 `--device-code `로 장치를 식별할 수 있습니다. + +USDC 환불을 다른 토큰 계정으로 보내려면: + +```bash +doublezero-solana shreds withdraw \ + --device-code \ + --client-ip \ + --refund-token-account +``` + +!!! warning "이 작업은 되돌릴 수 없습니다. 출금 후 시트가 사라지고 테뉴어가 초기화됩니다." + +--- + +## 슈레드 주소 (IP 및 포트) + +리더 슈레드와 높은 스테이크의 재전송 슈레드는 `doublezero1` 인터페이스를 통해 포트 `7733`으로 수신됩니다. `doublezero0` 인터페이스는 유니캐스트 트래픽용입니다. 포트 `5765`는 슈레드 퍼블리셔의 하트비트 모니터로, 슈레드가 포함되지 않습니다. + +슈레드 수신 시 **IP 주소**는 멀티캐스트 스트림을 식별하고 **포트**는 해당 스트림의 UDP 서비스를 식별합니다. +아래의 모든 슈레드 스트림은 `doublezero1`에서 UDP 포트 `7733`을 사용합니다. + +다음 명령으로 멀티캐스트 그룹의 IP를 확인할 수 있습니다: + +```bash +doublezero multicast group list +``` + +### 리더 슈레드 + +- `edge-solana-shreds`: `233.84.178.1:7733` + +### 루트 슈레드 + +- `edge-solana-root`: `233.84.178.16:7733` + +### 재전송 슈레드 + +- `edge-solana-retrans-eu`: `233.84.178.12:7733` +- `edge-solana-retrans-apac`: `233.84.178.13:7733` +- `edge-solana-retrans-amer`: `233.84.178.14:7733` + + +## GRE 터널 헤더 — XDP + +!!! note "네트워크를 통해 전달되는 슈레드 트래픽은 GRE 캡슐화되어 있습니다. 기존 파이프라인(예: XDP 기반 디슈레더)에 데이터를 전달하기 전에 GRE 헤더를 제거해야 할 수 있습니다." + +--- + +## 도구 및 대시보드 + +### [Edge 스코어보드](https://data.doublezero.xyz/dz/shreds/scoreboard) + +스코어보드는 슬롯 수준 데이터를 사용하여 DoubleZero Edge와 다른 제공자 간의 슈레드 전달 속도를 벤치마킹하고 실시간으로 성능을 비교합니다. 이 대시보드를 사용하여 다른 제공자 대비 Edge 슈레드의 승률을 확인하세요. 리더 슈레드만의 결과뿐만 아니라 전체 피드 비교도 볼 수 있습니다. 또한 지역별로 드릴다운하여 예상 성능을 확인할 수 있습니다. + +### [Edge 퍼블리셔](https://data.doublezero.xyz/dz/shreds/publishers) + +대시보드 왼쪽 상단의 "Publishing Shreds" 지표는 DoubleZero Edge에서 리더 슈레드를 게시하는 모든 Solana 밸리데이터의 총 스테이크 가중치 비율을 보여줍니다. 네트워크의 각 퍼블리셔에 대한 세부 정보를 확인할 수 있습니다. + +### [Edge 구독자, 장치 및 활동](https://data.doublezero.xyz/dz/shreds/subscribers) + +이 페이지에서 클라이언트 IP를 쉽게 검색하여 구독된 시트와 상태를 확인할 수 있습니다. 특정 시트 구독을 클릭하여 결제 이력과 활동을 조회할 수 있습니다. 또한 [장치](https://data.doublezero.xyz/dz/shreds/devices) 페이지에서 사용 가능한 장치를, [활동](https://data.doublezero.xyz/dz/shreds/activity) 페이지에서 최근 활동을 확인할 수 있습니다. + +### 데이터 API 문서 + +데이터 엔드포인트에 대한 프로그래밍 방식 접근은 API 문서를 참조하세요: [https://data.doublezero.xyz/api/v1/docs](https://data.doublezero.xyz/api/v1/docs). + +--- + +## 문제 해결 + +여기에서 다루지 않는 문제가 발생하면 해결 방법을 시도하기 전에 기존 채널을 통해 문의해 주세요. 채널이 없는 경우 [Discord](https://discord.gg/U2fEb4Jq)에서 검색하고 필요시 티켓을 열어 주세요. + +### 클라이언트가 최신 버전인지 확인: + +실행: `sudo apt update && sudo apt install doublezero-solana` + +### 에스크로 잔액 부족 + +정산 시 에스크로 잔액이 에포크 가격보다 낮으면 시트가 할당되지 않고, 터널이 해제되며, 테뉴어를 잃게 됩니다. 다음 정산 전에 `shreds pay`로 충전하세요. + +### 결제 후 시트가 할당되지 않음 + +- 에포크 후반에 결제했을 수 있습니다 — 시트는 다음 에포크부터 적용됩니다. +- 해당 장치의 모든 시트가 더 높은 테뉴어를 가진 기존 사용자에 의해 점유되었을 수 있습니다. `shreds price`로 사용 가능한 시트를 확인하세요. +- 정산 전에 출금했다면 시트가 자격을 갖추지 못합니다. + +### 터널이 연결되지 않음 + +1. 데몬이 실행 중인지 확인: `sudo systemctl status doublezerod` +2. 리콘실러가 활성화되어 있는지 확인: `doublezero enable` +3. 방화벽 규칙이 설정되어 있는지 확인 (`doublezero1`의 GRE, BGP, PIM, 슈레드 트래픽, `doublezero0`의 포트 44880) +4. 현재 에포크에 시트가 활성 상태인지 확인: `doublezero-solana shreds list` +5. 연결 상태 확인: `doublezero status` + +데몬의 클라이언트 IP는 호스트의 공개 IP에서 자동으로 검색됩니다 — 시트 명령에서 사용한 `--client-ip`와 일치하는지 확인하세요. + +### 에포크 경고 프롬프트 + +에포크의 10% 미만이 남았을 때 CLI가 경고를 표시합니다. 선택지: + +- 즉시 시트를 원하면 `--accept-partial-epoch`로 수락 +- 전체 에포크 커버리지를 받으려면 다음 에포크까지 대기 + +### "금액이 현재 가격보다 낮습니다" + +`pay` 명령은 최소 에포크 가격(메트로 기본 + 장치 프리미엄)에 대해 금액을 검증합니다. `shreds price`로 현재 가격을 확인하고 금액을 늘리세요. + +### "멀티캐스트 사용자가 이미 존재합니다" + +다른 경로를 통해 이미 활성 구독이 있습니다. 먼저 `doublezero disconnect`로 연결을 해제한 후 `shreds pay`를 다시 시도하세요. \ No newline at end of file diff --git a/docs/Edge Subscriber CLI.md b/docs/Edge Subscriber CLI.md new file mode 100644 index 0000000..a6da96f --- /dev/null +++ b/docs/Edge Subscriber CLI.md @@ -0,0 +1,336 @@ +--- +description: Set up an edge subscriber to receive DoubleZero shred feeds, including client setup and firewall rules for GRE, BGP, PIM, and shred traffic. +--- + +# Edge Subscriber Connection (CLI) + +!!! warning "Legacy CLI subscription — decommissioned **August 30, 2026**" + This page is for users already on the **CLI / onchain seat** subscription (`doublezero-solana shreds pay`). That system is being decommissioned on **August 30, 2026**. + + New subscriptions use the portal flow on [Subscribe to shreds (Edge)](Edge Subscriber Connection.md). + +!!! warning "By connecting to DoubleZero I agree to the [DoubleZero Terms of Use](https://doublezero.xyz/terms-protocol). Please note that the data is for your internal purposes only and may not be retransmitted (see Section 2(e))." + +## Step 1: DoubleZero Setup + +### 1. Complete Setup + +Install the [Solana CLI](https://docs.anza.xyz/cli/install). + +Follow the [setup](setup.md) instructions to install and configure the DoubleZero client. + +If you have previously set up DoubleZero, ensure you have the latest Doublezero-Solana CLI with `sudo apt update && sudo apt install doublezero-solana` + +### 2. Configure the Firewall + +Allow GRE, BGP, PIM, and shred traffic. + +**iptables:** + +```bash +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:** + +```bash +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 out on doublezero1 proto pim from any to any +sudo ufw allow in on doublezero1 to any port 7733 proto udp +sudo ufw allow in on doublezero0 to any port 44880 proto udp +``` + +### 3. Enable the Reconciler + +The reconciler monitors onchain state and automatically provisions tunnels when your seat is allocated. It is not enabled by default. + +```bash +doublezero enable +``` + +--- + +## Step 2: Set Up Your Wallet + +### 1. Create a Solana Keypair + +The `doublezero-solana` CLI uses a standard Solana keypair for onchain seat management. If you don't have one: + +```bash +solana-keygen new +``` + +This writes to `~/.config/solana/id.json`. To use a different path, pass `--keypair ` to any `doublezero-solana` command. + +Print your wallet address: + +```bash +solana address +``` + +### 2. Fund Your Wallet + +Your wallet needs two tokens: + +- **SOL** — for Solana transaction fees. Transfer SOL to the wallet address printed above. +- **USDC** — for seat funding. The CLI pulls from your wallet's Associated Token Account (ATA) for the mainnet USDC mint (`EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v`). + +--- + +## Step 3: Buy a Seat + +### 1. Find Your Nearest Device + +Before buying a seat, identify the device with the lowest latency from your machine: + +```bash +doublezero latency +``` + +Note the device code from the lowest-latency result (e.g., ``). You'll use this when purchasing a seat. + +### 2. Check Pricing + +View current device pricing before committing funds. Pricing has two components: a **base metro price** and a **per-device premium**. You can also view pricing and availability [here](https://data.doublezero.xyz/dz/shreds/devices). + +**All devices:** + +```bash +doublezero-solana shreds price +``` + +**Specific device:** + +```bash +doublezero-solana shreds price --device-code +doublezero-solana shreds price --device +``` + +**All devices in a metro:** + +```bash +doublezero-solana shreds price --metro +``` + +Output columns: `Device Code`, `Metro Code`, `Metro Name`, `Status`, `Settled Seats`, `Available Seats`, `Base Price (USDC)`, `Premium (USDC)`, `Epoch Price (USDC)`. + +The epoch price is the total cost per epoch for a seat on that device (base + premium). Use `--wide` to show full pubkeys, or `--json` for JSON output. + +### 3. Buy a Seat + +Purchase a seat with a single command. This initializes your seat, funds the escrow, and requests allocation: + +```bash +doublezero-solana shreds pay \ + --device-code \ + --client-ip \ + --amount +``` + +**Parameters:** + +| Flag | Description | +|------|-------------| +| `--device ` | Target device by public key (mutually exclusive with `--device-code`) | +| `--device-code ` | Target device by human-readable code (e.g., ``) | +| `--client-ip ` | Your machine's public IPv4 address | +| `--amount ` | USDC to fund (decimal format, e.g. `100` = 100 USDC). Must meet the minimum epoch price. | +| `--source-token-account ` | Custom USDC source account (defaults to your wallet's ATA) | +| `--accept-partial-epoch` | Skip the epoch-remaining warning (see below) | +| `--fee-payer ` | Use a different wallet for SOL transaction fees | +| `--dry-run` | Simulate the transaction without executing it | +| `--with-compute-unit-price ` | Set a compute unit price for faster inclusion during congestion | + +Once your seat is allocated, the daemon establishes the GRE tunnel automatically. Check your connection with: + +```bash +doublezero status +``` + +### Epoch Timing + +Seats are allocated per Solana epoch (~2 days). If less than 10% of the current epoch remains when you pay, the CLI warns that your seat will be allocated immediately but only covers the remainder of the current epoch. A separate payment will be deducted from your escrow when the next epoch begins. + +!!! info "It is advisable to fund for more than 1 epoch at a time so you don't lose your seat. You can check the current time left in an epoch [here](https://explorer.solana.com/)." + +You can bypass this warning with `--accept-partial-epoch`. + +### Keep Your Escrow Funded + +!!! warning "If your escrow balance is below the epoch price at settlement, your seat will not be allocated, the tunnel will be torn down, and you lose your accumulated tenure. Tenure determines your priority for future epochs — losing it means you compete as a newcomer again." + +You may overfund this account to fund multiple epochs. Each settlement deducts one epoch's price from your escrow, and the remaining balance carries forward. For example, funding 5x the per-epoch price keeps your seat active for up to 5 epochs without re-funding. + +To top up your escrow, run `shreds pay` again at any time: + +```bash +doublezero-solana shreds pay \ + --device-code \ + --client-ip \ + --amount 500 +``` + +Note that the `Target_IP` must be a public ipv4 address on the machine which will be receiving shreds. You can find this by running a command like `curl -4 ifconfig.me` on the target machine. + +### Monitor Seats + +This section details how to view seats via the CLI. You may also use [https://data.doublezero.xyz/api/v1/docs](https://data.doublezero.xyz/api/v1/docs) to monitor seats, and assist in managing your escrow account. + +View your active seats and escrow balances: + +**All your seats:** + +```bash +doublezero-solana shreds list +``` + +**Filter by device:** + +```bash +doublezero-solana shreds list --device-code +``` + +**Filter by client IP:** + +```bash +doublezero-solana shreds list --client-ip +``` + +**Filter by wallet:** + +```bash +doublezero-solana shreds list --withdraw-authority +``` + +Output columns: `Device Code`, `Client IP`, `Tenure`, `Balance (USDC)`, `Est. Epochs Paid`. + +The "Est. Epochs Paid" column shows how many epochs your current balance covers at current pricing. If prices change, this estimate adjusts. + +### Withdraw Seat & Escrow + +This command releases your seat and closes the escrow. You receive a prorated refund for the unused portion of the current epoch, plus any remaining escrow balance, returned to your wallet. You lose the seat and any accumulated tenure. + +```bash +doublezero-solana shreds withdraw \ + --device-code \ + --client-ip +``` + +You can identify the device by either `--device ` or `--device-code `, same as other commands. + +To send the USDC refund to a different token account: + +```bash +doublezero-solana shreds withdraw \ + --device-code \ + --client-ip \ + --refund-token-account +``` + +!!! warning "This cannot be undone. After withdraw, your seat is gone and tenure resets." + +--- + +## Shred Addresses (IP vs Port) + +Leader Shreds and high-stake Retransmit Shreds will arrive over port `7733`, over the `doublezero1` interface. The `doublezero0` interface is for unicast traffic. Port `5765` is a heartbeat monitor from the shred publishers — this will not contain shreds. + +For shred consumption, **IP address** identifies the multicast stream and **port** identifies the UDP service on that stream. +All shred streams below use UDP port `7733` on `doublezero1`. + +You examine any multicast group's IPs with: + +```bash +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:7733` +- `edge-solana-retrans-apac`: `233.84.178.13:7733` +- `edge-solana-retrans-amer`: `233.84.178.14:7733` + + +## GRE Tunnel Header — XDP + +!!! note "Shred traffic delivered over the network is GRE-encapsulated. You may need to strip the GRE header before feeding data into your existing pipeline (e.g. an XDP-based deshredder)." + +--- + +## Tools and Dashboards + +### [Edge Scoreboard](https://data.doublezero.xyz/dz/shreds/scoreboard) + +Scoreboard benchmarks shred delivery speed across DoubleZero Edge and other providers, using slot-level data to compare performance in real time. Use this dashboard to see a view of Edge shreds win rates against other providers. You can view results for leader shreds only, in addition to full feed comparison. You can also drill down by region to see expected performance. + +### [Edge Publishers](https://data.doublezero.xyz/dz/shreds/publishers) + +The "Publishing Shreds" metric at the top left of the dashboard shows the total percent of stake weight of all Solana validators publishing leader shreds on DoubleZero Edge. You can see details for each publisher on the network. + +### [Edge Subscribers, Devices and Activity](https://data.doublezero.xyz/dz/shreds/subscribers) + +You can easily search your Client IP on this page for subscribed seats and view status. Click through specific seat subscriptions to view payment history and activity. You can also view available devices on the [Devices](https://data.doublezero.xyz/dz/shreds/devices) page and all recent activity on the [Activity](https://data.doublezero.xyz/dz/shreds/activity) page. + +### Data API Docs + +For programmatic access to data endpoints, see the API documentation: [https://data.doublezero.xyz/api/v1/docs](https://data.doublezero.xyz/api/v1/docs). + +--- + +## Troubleshooting + +If you run into an issue not covered here, please reach out over your existing channel before working around it. If you do not have a channel, please search [Discord](https://discord.gg/U2fEb4Jq) and open a ticket if required. + +### Ensure your Client is up to date: + +Run: `sudo apt update && sudo apt install doublezero-solana` + +### Insufficient escrow balance + +If your escrow balance is below the epoch price at settlement, the seat is not allocated, the tunnel is torn down, and tenure is lost. Top up with `shreds pay` before the next settlement. + +### Seat not allocated after paying + +- You may have paid late in the epoch — the seat takes effect next epoch. +- All seats on the device may be taken by higher-tenure incumbents. Check available seats with `shreds price`. +- If you withdrew before settlement, the seat was not eligible. + +### Tunnel not coming up + +1. Verify the daemon is running: `sudo systemctl status doublezerod` +2. Verify the reconciler is enabled: `doublezero enable` +3. Verify firewall rules are in place (GRE, BGP, PIM, shred traffic on `doublezero1`, port 44880 on `doublezero0`) +4. Verify your seat is active for the current epoch: `doublezero-solana shreds list` +5. Check your connection status: `doublezero status` + +The daemon's client IP is auto-discovered from your host's public IP — verify it matches the `--client-ip` used in your seat commands. + +### Epoch warning prompt + +The CLI warns when less than 10% of the epoch remains. Your options: + +- Accept with `--accept-partial-epoch` if you want the seat immediately +- Wait for the next epoch to get a full epoch's coverage + +### "Amount is below the current price" + +The `pay` command validates your amount against the minimum epoch price (metro base + device premium). Use `shreds price` to check current pricing and increase your amount. + +### "Multicast user already exists" + +You already have an active subscription through a different path. Disconnect first with `doublezero disconnect`, then retry `shreds pay`. diff --git a/docs/Edge Subscriber CLI.pt.md b/docs/Edge Subscriber CLI.pt.md new file mode 100644 index 0000000..1b36a21 --- /dev/null +++ b/docs/Edge Subscriber CLI.pt.md @@ -0,0 +1,336 @@ +--- +description: Configure um assinante edge para receber feeds de shreds DoubleZero, incluindo configuração do cliente e regras de firewall para GRE, BGP, PIM e tráfego de shreds. +--- + +# Conexão de Assinante Edge (CLI) + +!!! warning "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)](Edge Subscriber Connection.md). + +!!! warning "Ao conectar-se ao DoubleZero, concordo com os [Termos de Uso do DoubleZero](https://doublezero.xyz/terms-protocol). Observe que os dados são apenas para seus fins internos 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 [Solana CLI](https://docs.anza.xyz/cli/install). + +Siga as instruções de [configuração](setup.md) para instalar e configurar o cliente DoubleZero. + +Se você já configurou o DoubleZero anteriormente, certifique-se de ter a versão mais recente do Doublezero-Solana CLI com `sudo apt update && sudo apt install doublezero-solana` + +### 2. Configurar o Firewall + +Permita tráfego GRE, BGP, PIM e de shreds. + +**iptables:** + +```bash +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:** + +```bash +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 out on doublezero1 proto pim from any to any +sudo ufw allow in on doublezero1 to any port 7733 proto udp +sudo ufw allow in on doublezero0 to any port 44880 proto udp +``` + +### 3. Habilitar o Reconciliador + +O reconciliador monitora o estado onchain e provisiona túneis automaticamente quando seu seat é alocado. Ele não é habilitado por padrão. + +```bash +doublezero enable +``` + +--- + +## Passo 2: Configurar Sua Carteira + +### 1. Criar um Par de Chaves Solana + +O CLI `doublezero-solana` utiliza um par de chaves Solana padrão para gerenciamento de seats onchain. Se você não tiver um: + +```bash +solana-keygen new +``` + +Isso grava em `~/.config/solana/id.json`. Para usar um caminho diferente, passe `--keypair ` para qualquer comando `doublezero-solana`. + +Imprima o endereço da sua carteira: + +```bash +solana address +``` + +### 2. Financiar Sua Carteira + +Sua carteira precisa de dois tokens: + +- **SOL** — para taxas de transação Solana. Transfira SOL para o endereço da carteira impresso acima. +- **USDC** — para financiamento do seat. O CLI utiliza a 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: + +```bash +doublezero latency +``` + +Anote o código do dispositivo com o resultado de menor latência (ex.: ``). Você usará isso ao comprar um seat. + +### 2. Verificar Preços + +Veja 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 ver preços e disponibilidade [aqui](https://data.doublezero.xyz/dz/shreds/devices). + +**Todos os dispositivos:** + +```bash +doublezero-solana shreds price +``` + +**Dispositivo específico:** + +```bash +doublezero-solana shreds price --device-code +doublezero-solana shreds price --device +``` + +**Todos os dispositivos em um metro:** + +```bash +doublezero-solana shreds price --metro +``` + +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: + +```bash +doublezero-solana shreds pay \ + --device-code \ + --client-ip \ + --amount +``` + +**Parâmetros:** + +| Flag | Descrição | +|------|-----------| +| `--device ` | Dispositivo alvo por chave pública (mutuamente exclusivo com `--device-code`) | +| `--device-code ` | Dispositivo alvo por código legível (ex.: ``) | +| `--client-ip ` | Endereço IPv4 público da sua máquina | +| `--amount ` | USDC a financiar (formato decimal, ex.: `100` = 100 USDC). Deve atender ao preço mínimo por epoch. | +| `--source-token-account ` | Conta de origem USDC personalizada (padrão é a ATA da sua carteira) | +| `--accept-partial-epoch` | Ignora o aviso de epoch restante (veja abaixo) | +| `--fee-payer ` | Usar uma carteira diferente para taxas de transação SOL | +| `--dry-run` | Simula a transação sem executá-la | +| `--with-compute-unit-price ` | Define um preço de unidade de computação para inclusão mais rápida durante congestionamento | + +Uma vez que seu seat seja alocado, o daemon estabelece o túnel GRE automaticamente. Verifique sua conexão com: + +```bash +doublezero status +``` + +### Temporização de Epoch + +Os seats são alocados por epoch Solana (~2 dias). Se restar menos de 10% do epoch atual quando você pagar, o CLI avisa 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. + +!!! info "É aconselhável financiar por mais de 1 epoch de cada vez para não perder seu seat. Você pode verificar o tempo restante em um epoch [aqui](https://explorer.solana.com/)." + +Você pode ignorar este aviso com `--accept-partial-epoch`. + +### Mantenha Seu Escrow Financiado + +!!! warning "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á encerrado e você perderá sua tenure acumulada. A tenure determina sua prioridade para epochs futuros — perdê-la significa que você compete 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 é transportado. Por exemplo, financiar 5x o preço por epoch mantém seu seat ativo por até 5 epochs sem refinanciamento. + +Para reabastecer seu escrow, execute `shreds pay` novamente a qualquer momento: + +```bash +doublezero-solana shreds pay \ + --device-code \ + --client-ip \ + --amount 500 +``` + +Observe que o `Target_IP` deve ser um endereço IPv4 público na máquina que receberá os shreds. Você pode encontrá-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](https://data.doublezero.xyz/api/v1/docs) para monitorar seats e auxiliar no gerenciamento da sua conta escrow. + +Veja seus seats ativos e saldos de escrow: + +**Todos os seus seats:** + +```bash +doublezero-solana shreds list +``` + +**Filtrar por dispositivo:** + +```bash +doublezero-solana shreds list --device-code +``` + +**Filtrar por IP do cliente:** + +```bash +doublezero-solana shreds list --client-ip +``` + +**Filtrar por carteira:** + +```bash +doublezero-solana shreds list --withdraw-authority +``` + +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 com os preços atuais. Se os preços mudarem, esta estimativa se ajusta. + +### Retirar Seat e Escrow + +Este comando libera seu seat e encerra o escrow. Você recebe um reembolso proporcional pela parte não utilizada do epoch atual, mais qualquer saldo restante do escrow, devolvido à sua carteira. Você perde o seat e toda a tenure acumulada. + +```bash +doublezero-solana shreds withdraw \ + --device-code \ + --client-ip +``` + +Você pode identificar o dispositivo por `--device ` ou `--device-code `, assim como nos outros comandos. + +Para enviar o reembolso USDC para uma conta de token diferente: + +```bash +doublezero-solana shreds withdraw \ + --device-code \ + --client-ip \ + --refund-token-account +``` + +!!! warning "Isso não pode ser desfeito. Após a retirada, seu seat é perdido e a tenure é redefinida." + +--- + +## Endereços de Shreds (IP vs Porta) + +Leader Shreds e Retransmit Shreds de alto stake chegarão pela porta `7733`, pela 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 nesse stream. +Todos os streams de shreds abaixo usam a porta UDP `7733` em `doublezero1`. + +Você pode examinar os IPs de qualquer grupo multicast com: + +```bash +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:7733` +- `edge-solana-retrans-apac`: `233.84.178.13:7733` +- `edge-solana-retrans-amer`: `233.84.178.14:7733` + + +## Cabeçalho do Túnel GRE — XDP + +!!! note "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 Edge](https://data.doublezero.xyz/dz/shreds/scoreboard) + +O placar compara a velocidade de entrega de shreds entre o DoubleZero Edge e outros provedores, usando dados em nível de slot para comparar desempenho em tempo real. Use este dashboard para ver as taxas de vitória dos shreds Edge em comparação com outros provedores. Você pode visualizar resultados apenas para leader shreds, além da comparação completa do feed. Também é possível detalhar por região para ver o desempenho esperado. + +### [Publicadores Edge](https://data.doublezero.xyz/dz/shreds/publishers) + +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](https://data.doublezero.xyz/dz/shreds/subscribers) + +Você pode facilmente pesquisar seu IP do Cliente nesta página para seats assinados e ver o status. Clique em assinaturas de seats específicos para ver o histórico de pagamentos e atividade. Você também pode ver dispositivos disponíveis na página de [Dispositivos](https://data.doublezero.xyz/dz/shreds/devices) e toda a atividade recente na página de [Atividade](https://data.doublezero.xyz/dz/shreds/activity). + +### 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](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 uma solução alternativa. Se você não tiver um canal, pesquise no [Discord](https://discord.gg/U2fEb4Jq) 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 de escrow insuficiente + +Se o saldo do seu escrow estiver abaixo do preço do epoch no momento da liquidação, o seat não será alocado, o túnel será encerrado e a tenure será perdida. 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 uma retirada antes da liquidação, o seat não era elegível. + +### Túnel não está subindo + +1. Verifique se o daemon está em execução: `sudo systemctl status doublezerod` +2. Verifique se o reconciliador está habilitado: `doublezero enable` +3. Verifique se as regras de firewall estão configuradas (GRE, BGP, PIM, tráfego de shreds em `doublezero1`, porta 44880 em `doublezero0`) +4. Verifique se seu seat está ativo para o epoch atual: `doublezero-solana shreds list` +5. 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 + +O CLI avisa quando resta menos de 10% do epoch. Suas opções: + +- Aceitar com `--accept-partial-epoch` se você quiser o seat imediatamente +- Esperar pelo próximo epoch para obter a cobertura completa de um epoch + +### "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. \ No newline at end of file diff --git a/docs/Edge Subscriber CLI.zh.md b/docs/Edge Subscriber CLI.zh.md new file mode 100644 index 0000000..357c212 --- /dev/null +++ b/docs/Edge Subscriber CLI.zh.md @@ -0,0 +1,336 @@ +--- +description: 设置边缘订阅者以接收 DoubleZero shred 数据源,包括客户端设置以及 GRE、BGP、PIM 和 shred 流量的防火墙规则。 +--- + +# 边缘订阅者连接(CLI) + +!!! warning "旧版 CLI 订阅 — 将于 **2026 年 8 月 30 日**停用" + 本页面适用于已使用 **CLI / 链上席位** 订阅方式(`doublezero-solana shreds pay`)的用户。该系统将于 **2026 年 8 月 30 日**停用。 + + 新订阅请使用门户流程,参见 [订阅 shreds(Edge)](Edge Subscriber Connection.md)。 + +!!! warning "连接到 DoubleZero 即表示我同意 [DoubleZero 使用条款](https://doublezero.xyz/terms-protocol)。请注意,数据仅供您内部使用,不得转发(参见第 2(e) 条)。" + +## 第 1 步:DoubleZero 设置 + +### 1. 完成设置 + +安装 [Solana CLI](https://docs.anza.xyz/cli/install)。 + +按照[设置](setup.md)说明安装和配置 DoubleZero 客户端。 + +如果您之前已设置过 DoubleZero,请确保使用以下命令更新到最新的 Doublezero-Solana CLI:`sudo apt update && sudo apt install doublezero-solana` + +### 2. 配置防火墙 + +允许 GRE、BGP、PIM 和 shred 流量。 + +**iptables:** + +```bash +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:** + +```bash +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 out on doublezero1 proto pim from any to any +sudo ufw allow in on doublezero1 to any port 7733 proto udp +sudo ufw allow in on doublezero0 to any port 44880 proto udp +``` + +### 3. 启用协调器 + +协调器监控链上状态,并在您的席位被分配时自动配置隧道。默认情况下未启用。 + +```bash +doublezero enable +``` + +--- + +## 第 2 步:设置钱包 + +### 1. 创建 Solana 密钥对 + +`doublezero-solana` CLI 使用标准 Solana 密钥对进行链上席位管理。如果您还没有密钥对: + +```bash +solana-keygen new +``` + +这会写入 `~/.config/solana/id.json`。如需使用不同路径,请在任何 `doublezero-solana` 命令中传入 `--keypair `。 + +打印您的钱包地址: + +```bash +solana address +``` + +### 2. 为钱包充值 + +您的钱包需要两种代币: + +- **SOL** — 用于 Solana 交易费用。将 SOL 转入上面打印的钱包地址。 +- **USDC** — 用于席位资金。CLI 会从您钱包的关联代币账户(ATA)中提取主网 USDC 铸币(`EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v`)。 + +--- + +## 第 3 步:购买席位 + +### 1. 查找最近的设备 + +在购买席位之前,找到距离您机器延迟最低的设备: + +```bash +doublezero latency +``` + +记下延迟最低结果中的设备代码(例如 ``)。购买席位时将使用此代码。 + +### 2. 查看定价 + +在投入资金之前查看当前设备定价。定价包含两个部分:**基础城市价格**和**每设备溢价**。您也可以在[此处](https://data.doublezero.xyz/dz/shreds/devices)查看定价和可用性。 + +**所有设备:** + +```bash +doublezero-solana shreds price +``` + +**特定设备:** + +```bash +doublezero-solana shreds price --device-code +doublezero-solana shreds price --device +``` + +**某个城市的所有设备:** + +```bash +doublezero-solana shreds price --metro +``` + +输出列:`Device Code`、`Metro Code`、`Metro Name`、`Status`、`Settled Seats`、`Available Seats`、`Base Price (USDC)`、`Premium (USDC)`、`Epoch Price (USDC)`。 + +纪元价格是该设备上每个纪元一个席位的总成本(基础 + 溢价)。使用 `--wide` 显示完整公钥,或使用 `--json` 输出 JSON 格式。 + +### 3. 购买席位 + +使用一条命令购买席位。此操作会初始化您的席位、为托管账户注资并请求分配: + +```bash +doublezero-solana shreds pay \ + --device-code \ + --client-ip \ + --amount +``` + +**参数:** + +| 标志 | 描述 | +|------|-------------| +| `--device ` | 通过公钥指定目标设备(与 `--device-code` 互斥) | +| `--device-code ` | 通过人类可读代码指定目标设备(例如 ``) | +| `--client-ip ` | 您机器的公网 IPv4 地址 | +| `--amount ` | 注资的 USDC 金额(十进制格式,例如 `100` = 100 USDC)。必须达到最低纪元价格。 | +| `--source-token-account ` | 自定义 USDC 来源账户(默认为您钱包的 ATA) | +| `--accept-partial-epoch` | 跳过纪元剩余时间警告(见下文) | +| `--fee-payer ` | 使用不同的钱包支付 SOL 交易费用 | +| `--dry-run` | 模拟交易而不实际执行 | +| `--with-compute-unit-price ` | 设置计算单元价格以在拥堵时加速交易确认 | + +席位分配后,守护进程会自动建立 GRE 隧道。使用以下命令检查连接状态: + +```bash +doublezero status +``` + +### 纪元时间 + +席位按 Solana 纪元(约 2 天)分配。如果您付款时当前纪元剩余不足 10%,CLI 会警告您的席位将立即分配,但仅覆盖当前纪元的剩余部分。下一个纪元开始时,将从您的托管账户中扣除另一笔费用。 + +!!! info "建议一次性为多个纪元充值,以免失去席位。您可以在[此处](https://explorer.solana.com/)查看当前纪元剩余时间。" + +您可以使用 `--accept-partial-epoch` 跳过此警告。 + +### 保持托管账户充足 + +!!! warning "如果结算时您的托管账户余额低于纪元价格,您的席位将不会被分配,隧道将被拆除,您将失去累积的任期。任期决定您在未来纪元中的优先级——失去任期意味着您需要作为新用户重新竞争。" + +您可以超额注资此账户以支付多个纪元。每次结算从您的托管账户扣除一个纪元的价格,剩余余额结转。例如,注资 5 倍纪元价格可以保持您的席位活跃最多 5 个纪元而无需再次充值。 + +如需补充托管账户,可随时再次运行 `shreds pay`: + +```bash +doublezero-solana shreds pay \ + --device-code \ + --client-ip \ + --amount 500 +``` + +请注意,`Target_IP` 必须是接收 shreds 的机器上的公网 IPv4 地址。您可以在目标机器上运行 `curl -4 ifconfig.me` 等命令来获取此地址。 + +### 监控席位 + +本节详细说明如何通过 CLI 查看席位。您也可以使用 [https://data.doublezero.xyz/api/v1/docs](https://data.doublezero.xyz/api/v1/docs) 来监控席位并协助管理您的托管账户。 + +查看您的活跃席位和托管账户余额: + +**您的所有席位:** + +```bash +doublezero-solana shreds list +``` + +**按设备筛选:** + +```bash +doublezero-solana shreds list --device-code +``` + +**按客户端 IP 筛选:** + +```bash +doublezero-solana shreds list --client-ip +``` + +**按钱包筛选:** + +```bash +doublezero-solana shreds list --withdraw-authority +``` + +输出列:`Device Code`、`Client IP`、`Tenure`、`Balance (USDC)`、`Est. Epochs Paid`。 + +"Est. Epochs Paid" 列显示按当前定价,您的当前余额可覆盖多少个纪元。如果价格变动,此估算值会相应调整。 + +### 提取席位和托管资金 + +此命令会释放您的席位并关闭托管账户。您将收到当前纪元未使用部分的按比例退款,加上剩余的托管余额,退回到您的钱包。您将失去席位和所有累积的任期。 + +```bash +doublezero-solana shreds withdraw \ + --device-code \ + --client-ip +``` + +您可以使用 `--device ` 或 `--device-code ` 来指定设备,与其他命令相同。 + +如需将 USDC 退款发送到不同的代币账户: + +```bash +doublezero-solana shreds withdraw \ + --device-code \ + --client-ip \ + --refund-token-account +``` + +!!! warning "此操作不可撤销。提取后,您的席位将消失,任期将重置。" + +--- + +## Shred 地址(IP 与端口) + +Leader Shreds 和高质押权重的 Retransmit Shreds 将通过 `doublezero1` 接口的端口 `7733` 到达。`doublezero0` 接口用于单播流量。端口 `5765` 是来自 shred 发布者的心跳监控——不包含 shreds。 + +对于 shred 消费,**IP 地址**标识组播流,**端口**标识该流上的 UDP 服务。 +以下所有 shred 流在 `doublezero1` 上使用 UDP 端口 `7733`。 + +您可以使用以下命令查看任何组播组的 IP: + +```bash +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:7733` +- `edge-solana-retrans-apac`: `233.84.178.13:7733` +- `edge-solana-retrans-amer`: `233.84.178.14:7733` + + +## GRE 隧道头部 — XDP + +!!! note "通过网络传输的 shred 流量经过 GRE 封装。在将数据馈送到现有处理管道(例如基于 XDP 的 deshredder)之前,您可能需要剥离 GRE 头部。" + +--- + +## 工具和仪表板 + +### [Edge 记分板](https://data.doublezero.xyz/dz/shreds/scoreboard) + +记分板使用插槽级数据对 DoubleZero Edge 和其他提供商之间的 shred 传输速度进行基准测试,实时比较性能。使用此仪表板查看 Edge shreds 相对于其他提供商的胜率。您可以查看仅限 leader shreds 的结果,也可以查看完整数据源的比较。您还可以按区域深入查看预期性能。 + +### [Edge 发布者](https://data.doublezero.xyz/dz/shreds/publishers) + +仪表板左上角的"Publishing Shreds"指标显示在 DoubleZero Edge 上发布 leader shreds 的所有 Solana 验证者的总质押权重百分比。您可以查看网络上每个发布者的详细信息。 + +### [Edge 订阅者、设备和活动](https://data.doublezero.xyz/dz/shreds/subscribers) + +您可以在此页面上轻松搜索您的客户端 IP 以查看已订阅的席位和状态。点击特定席位订阅可查看付款历史和活动记录。您还可以在[设备](https://data.doublezero.xyz/dz/shreds/devices)页面查看可用设备,在[活动](https://data.doublezero.xyz/dz/shreds/activity)页面查看所有近期活动。 + +### 数据 API 文档 + +如需以编程方式访问数据端点,请参阅 API 文档:[https://data.doublezero.xyz/api/v1/docs](https://data.doublezero.xyz/api/v1/docs)。 + +--- + +## 故障排除 + +如果您遇到此处未涵盖的问题,请在尝试自行解决之前通过现有渠道联系我们。如果您没有现有渠道,请搜索 [Discord](https://discord.gg/U2fEb4Jq) 并在需要时提交工单。 + +### 确保您的客户端是最新版本: + +运行:`sudo apt update && sudo apt install doublezero-solana` + +### 托管账户余额不足 + +如果结算时您的托管账户余额低于纪元价格,席位将不会被分配,隧道将被拆除,任期将丢失。请在下次结算前使用 `shreds pay` 补充资金。 + +### 付款后席位未分配 + +- 您可能在纪元较晚时才付款——席位在下一个纪元生效。 +- 该设备上的所有席位可能已被任期更长的在位者占满。使用 `shreds price` 检查可用席位。 +- 如果您在结算前进行了提取,则该席位不具备分配资格。 + +### 隧道未建立 + +1. 验证守护进程正在运行:`sudo systemctl status doublezerod` +2. 验证协调器已启用:`doublezero enable` +3. 验证防火墙规则已就位(GRE、BGP、PIM、`doublezero1` 上的 shred 流量、`doublezero0` 上的端口 44880) +4. 验证您的席位在当前纪元处于活跃状态:`doublezero-solana shreds list` +5. 检查您的连接状态:`doublezero status` + +守护进程的客户端 IP 会从主机的公网 IP 自动发现——请验证其与您在席位命令中使用的 `--client-ip` 是否一致。 + +### 纪元警告提示 + +当纪元剩余不足 10% 时,CLI 会发出警告。您的选择: + +- 如果您希望立即获得席位,使用 `--accept-partial-epoch` 接受 +- 等待下一个纪元以获得完整纪元的覆盖 + +### "金额低于当前价格" + +`pay` 命令会根据最低纪元价格(城市基础价 + 设备溢价)验证您的金额。使用 `shreds price` 检查当前定价并增加您的金额。 + +### "组播用户已存在" + +您已通过其他途径拥有一个活跃订阅。请先使用 `doublezero disconnect` 断开连接,然后重试 `shreds pay`。 \ No newline at end of file diff --git a/docs/Edge Subscriber Connection.es.md b/docs/Edge Subscriber Connection.es.md index a70f937..c0ee89c 100644 --- a/docs/Edge Subscriber Connection.es.md +++ b/docs/Edge Subscriber Connection.es.md @@ -1,23 +1,26 @@ --- -description: Configure un suscriptor edge para recibir feeds de shreds de DoubleZero, incluyendo la configuración del cliente y las reglas de firewall para GRE, BGP, PIM y tráfico de shreds. +description: Configure un suscriptor edge para recibir feeds de shreds de DoubleZero, incluyendo la configuración del cliente y las reglas de firewall para tráfico GRE, BGP, PIM y shreds. --- # Conexión de Suscriptor Edge -!!! warning "Al conectarme a DoubleZero acepto los [Términos de Uso de DoubleZero](https://doublezero.xyz/terms-protocol). Tenga en cuenta que los datos son solo para sus fines internos y no pueden ser retransmitidos (consulte la Sección 2(e))." +!!! warning "Al conectarme a DoubleZero acepto los [Términos de Uso de DoubleZero](https://doublezero.xyz/terms-protocol). Tenga en cuenta que los datos son únicamente para sus fines internos y no pueden ser retransmitidos (consulte la Sección 2(e))." + +!!! warning "¿Ya tiene la suscripción por CLI?" + Si se suscribió a través del **CLI** (`doublezero-solana shreds pay` / escrow seats), utilice la [página de suscripción por CLI](Edge Subscriber CLI.md) para esos comandos. Ese sistema será **descontinuado el 30 de agosto de 2026**. Las nuevas suscripciones siguen esta página. ## Paso 1: Configuración de DoubleZero -### 1. Completar la Configuración +### Configuración Completa -Instale la [CLI de Solana](https://docs.anza.xyz/cli/install). +Instale el [Solana CLI](https://docs.anza.xyz/cli/install). Siga las instrucciones de [configuración](setup.md) para instalar y configurar el cliente de DoubleZero. -Si ha configurado DoubleZero previamente, asegúrese de tener la última versión de la CLI de Doublezero-Solana con `sudo apt update && sudo apt install doublezero-solana` +Si ya ha configurado DoubleZero previamente, asegúrese de tener la última versión del CLI de Doublezero-Solana con `sudo apt update && sudo apt install doublezero-solana` -### 2. Configurar el Firewall +### Configurar el Firewall -Permita el tráfico de GRE, BGP, PIM y shreds. +Permita el tráfico GRE, BGP, PIM y shreds. **iptables:** @@ -41,200 +44,72 @@ sudo ufw allow in on doublezero1 to any port 7733 proto udp sudo ufw allow in on doublezero0 to any port 44880 proto udp ``` -### 3. Habilitar el Reconciliador - -El reconciliador monitorea el estado onchain y aprovisiona túneles automáticamente cuando se asigna su asiento. No está habilitado por defecto. - -```bash -doublezero enable -``` - --- -## Paso 2: Configurar Su Billetera +## Paso 2: Elegir un metro -### 1. Crear un Par de Claves de Solana - -La CLI de `doublezero-solana` utiliza un par de claves estándar de Solana para la gestión de asientos onchain. Si no tiene uno: - -```bash -solana-keygen new -``` - -Esto escribe en `~/.config/solana/id.json`. Para usar una ruta diferente, pase `--keypair ` a cualquier comando de `doublezero-solana`. - -Imprima la dirección de su billetera: - -```bash -solana address -``` - -### 2. Fondear Su Billetera - -Su billetera necesita dos tokens: - -- **SOL** — para las tarifas de transacción de Solana. Transfiera SOL a la dirección de billetera impresa anteriormente. -- **USDC** — para el fondeo de asientos. La CLI extrae fondos de la Cuenta de Token Asociada (ATA) de su billetera para el mint de USDC de mainnet (`EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v`). - ---- - -## Paso 3: Comprar un Asiento - -### 1. Encontrar Su Dispositivo Más Cercano - -Antes de comprar un asiento, identifique el dispositivo con la latencia más baja desde su máquina: +Identifique la ubicación con menor latencia desde la máquina que recibirá los shreds: ```bash doublezero latency ``` -Anote el código del dispositivo del resultado con la latencia más baja (por ejemplo, ``). Lo usará al comprar un asiento. +Anote el metro / ciudad del resultado con menor latencia. Seleccionará esa ciudad en el formulario de solicitud. Consulte el [mapa de topología](https://data.malbeclabs.com/topology/map?overlays=metroClustering%2Cbandwidth) para ver cómo se agrupan los metros. -### 2. Verificar Precios +### Precios -Consulte los precios actuales del dispositivo antes de comprometer fondos. Los precios tienen dos componentes: un **precio base de metro** y una **prima por dispositivo**. También puede ver precios y disponibilidad [aquí](https://data.doublezero.xyz/dz/shreds/devices). +Los puestos se facturan **por mes**, por máquina, en el metro que seleccione: -**Todos los dispositivos:** +| Metros | Precio | +|--------|--------| +| Frankfurt, Ámsterdam | $1,500 / mes | +| Londres, Nueva York, Singapur, Tokio | $900 / mes | +| Todas las demás ubicaciones | $450 / mes | -```bash -doublezero-solana shreds price -``` +--- -**Dispositivo específico:** +## Paso 3: Enviar Solicitud -```bash -doublezero-solana shreds price --device-code -doublezero-solana shreds price --device -``` +1. Vaya a [https://doublezero.xyz/edge/subscribe](https://doublezero.xyz/edge/subscribe). +2. Seleccione **Solana Shreds**. +3. Seleccione la **ciudad** (metro) que necesita. Use la tabla anterior y `doublezero latency` para elegir. +4. Complete el formulario de solicitud. -**Todos los dispositivos en un metro:** +Asignará un DoubleZero ID (clave existente o genere una nueva) a cada solicitud de feed en la página de [cuentas](https://doublezero.xyz/shreds/account). La **clave privada correspondiente debe estar presente en la máquina que recibirá los shreds** — no asigne una pubkey cuya clave privada no pueda mover a ese host. -```bash -doublezero-solana shreds price --metro -``` +Usted elige un **metro** y una **pubkey**. **No** vincula una IP pública al momento de la solicitud. Durante la suscripción puede mover el acceso entre IPs **dentro de los metros elegidos**. -Columnas de salida: `Device Code`, `Metro Code`, `Metro Name`, `Status`, `Settled Seats`, `Available Seats`, `Base Price (USDC)`, `Premium (USDC)`, `Epoch Price (USDC)`. +Nuestro equipo revisa las solicitudes y se comunica con usted oportunamente (espere **2 días hábiles**). -El precio por época es el costo total por época para un asiento en ese dispositivo (base + prima). Use `--wide` para mostrar las claves públicas completas, o `--json` para salida en formato JSON. +--- -### 3. Comprar un Asiento +## Paso 4: Conectarse después de la aprobación -Compre un asiento con un solo comando. Esto inicializa su asiento, fondea el depósito en garantía y solicita la asignación: +Después de que nos comuniquemos con usted, reciba una factura y esa factura esté pagada, conéctese en cada máquina aprobada: ```bash -doublezero-solana shreds pay \ - --device-code \ - --client-ip \ - --amount +doublezero connect multicast --subscribe-feed solana-shreds-full ``` -**Parámetros:** - -| Flag | Descripción | -|------|-------------| -| `--device ` | Dispositivo objetivo por clave pública (mutuamente excluyente con `--device-code`) | -| `--device-code ` | Dispositivo objetivo por código legible (por ejemplo, ``) | -| `--client-ip ` | Dirección IPv4 pública de su máquina | -| `--amount ` | USDC a fondear (formato decimal, por ejemplo `100` = 100 USDC). Debe cumplir con el precio mínimo por época. | -| `--source-token-account ` | Cuenta de origen de USDC personalizada (por defecto usa la ATA de su billetera) | -| `--accept-partial-epoch` | Omitir la advertencia de época restante (ver más abajo) | -| `--fee-payer ` | Usar una billetera diferente para las tarifas de transacción en SOL | -| `--dry-run` | Simular la transacción sin ejecutarla | -| `--with-compute-unit-price ` | Establecer un precio de unidad de cómputo para una inclusión más rápida durante congestión | - -Una vez que su asiento esté asignado, el daemon establece el túnel GRE automáticamente. Verifique su conexión con: +El acceso se habilita en la fecha de inicio elegida (típicamente 9:01 AM ET). Verifique el túnel con: ```bash doublezero status ``` -### Temporización de Épocas - -Los asientos se asignan por época de Solana (~2 días). Si queda menos del 10% de la época actual cuando paga, la CLI advierte que su asiento será asignado inmediatamente pero solo cubre el resto de la época actual. Se deducirá un pago separado de su depósito en garantía cuando comience la siguiente época. - -!!! info "Es recomendable fondear para más de 1 época a la vez para no perder su asiento. Puede verificar el tiempo restante en una época [aquí](https://explorer.solana.com/)." - -Puede omitir esta advertencia con `--accept-partial-epoch`. - -### Mantenga Su Depósito en Garantía Fondeado - -!!! warning "Si el saldo de su depósito en garantía está por debajo del precio de la época en el momento de la liquidación, su asiento no será asignado, el túnel será desactivado y perderá su antigüedad acumulada. La antigüedad determina su prioridad para épocas futuras — perderla significa que compite como un recién llegado nuevamente." - -Puede sobrefinanciar esta cuenta para fondear múltiples épocas. Cada liquidación deduce el precio de una época de su depósito en garantía, y el saldo restante se mantiene. Por ejemplo, fondear 5 veces el precio por época mantiene su asiento activo hasta por 5 épocas sin necesidad de re-fondear. - -Para recargar su depósito en garantía, ejecute `shreds pay` nuevamente en cualquier momento: - -```bash -doublezero-solana shreds pay \ - --device-code \ - --client-ip \ - --amount 500 -``` - -Tenga en cuenta que la `Target_IP` debe ser una dirección IPv4 pública en la máquina que recibirá los shreds. Puede encontrarla ejecutando un comando como `curl -4 ifconfig.me` en la máquina de destino. - -### Monitorear Asientos - -Esta sección detalla cómo ver los asientos a través de la CLI. También puede usar [https://data.doublezero.xyz/api/v1/docs](https://data.doublezero.xyz/api/v1/docs) para monitorear asientos y ayudar en la gestión de su cuenta de depósito en garantía. - -Vea sus asientos activos y saldos de depósito en garantía: - -**Todos sus asientos:** - -```bash -doublezero-solana shreds list -``` - -**Filtrar por dispositivo:** - -```bash -doublezero-solana shreds list --device-code -``` - -**Filtrar por IP del cliente:** - -```bash -doublezero-solana shreds list --client-ip -``` - -**Filtrar por billetera:** - -```bash -doublezero-solana shreds list --withdraw-authority -``` - -Columnas de salida: `Device Code`, `Client IP`, `Tenure`, `Balance (USDC)`, `Est. Epochs Paid`. - -La columna "Est. Epochs Paid" muestra cuántas épocas cubre su saldo actual a los precios actuales. Si los precios cambian, esta estimación se ajusta. - -### Retirar Fondos - -Cierre su depósito en garantía y reembolse los USDC restantes a su billetera: - -```bash -doublezero-solana shreds withdraw \ - --device-code \ - --client-ip -``` - -Puede identificar el dispositivo por `--device ` o `--device-code `, igual que en otros comandos. +--- -Para enviar el reembolso a una cuenta de token diferente: +## Facturación -```bash -doublezero-solana shreds withdraw \ - --device-code \ - --client-ip \ - --refund-token-account -``` +Los puestos se cobran **mensualmente**. Esté atento a la fecha de vencimiento del puesto. -!!! warning "Retirar significa que pierde su asiento y la antigüedad acumulada." +Recibirá una factura unos días antes de que el puesto expire. **No pagar conlleva la eliminación del puesto.** --- ## Direcciones de Shreds (IP vs Puerto) -Los Shreds de Líder y los Shreds de Retransmisión de alto stake llegarán por el puerto `7733`, a través de la interfaz `doublezero1`. La interfaz `doublezero0` es para tráfico unicast. El puerto `5765` es un monitor de heartbeat de los publicadores de shreds — no contendrá shreds. +Los Leader Shreds y los Retransmit Shreds de alto stake llegarán por el puerto `7733`, a través de la interfaz `doublezero1`. La interfaz `doublezero0` es para tráfico unicast. El puerto `5765` es un monitor de heartbeat de los publicadores de shreds — no contendrá shreds. Para el consumo de shreds, la **dirección IP** identifica el flujo multicast y el **puerto** identifica el servicio UDP en ese flujo. Todos los flujos de shreds a continuación usan el puerto UDP `7733` en `doublezero1`. @@ -245,15 +120,15 @@ Puede examinar las IPs de cualquier grupo multicast con: doublezero multicast group list ``` -### Shreds de Líder +### Leader Shreds - `edge-solana-shreds`: `233.84.178.1:7733` -### Shreds de Root +### Root Shreds - `edge-solana-root`: `233.84.178.16:7733` -### Shreds de Retransmisión +### Retransmit Shreds - `edge-solana-retrans-eu`: `233.84.178.12:7733` - `edge-solana-retrans-apac`: `233.84.178.13:7733` @@ -266,19 +141,19 @@ doublezero multicast group list --- -## Herramientas y Paneles +## Herramientas y Dashboards -### [Tabla de Posiciones Edge](https://data.doublezero.xyz/dz/shreds/scoreboard) +### [Marcador de Edge](https://data.doublezero.xyz/dz/shreds/scoreboard) -La Tabla de Posiciones compara la velocidad de entrega de shreds entre DoubleZero Edge y otros proveedores, utilizando datos a nivel de slot para comparar el rendimiento en tiempo real. Use este panel para ver una vista de las tasas de victorias de los shreds de Edge contra otros proveedores. Puede ver resultados solo para shreds de líder, además de la comparación del feed completo. También puede profundizar por región para ver el rendimiento esperado. +El marcador evalúa la velocidad de entrega de shreds a través de DoubleZero Edge y otros proveedores, utilizando datos a nivel de slot para comparar el rendimiento en tiempo real. Use este dashboard para ver las tasas de victoria de los shreds de Edge frente a otros proveedores. Puede ver resultados solo para leader shreds, además de la comparación del feed completo. También puede filtrar por región para ver el rendimiento esperado. -### [Publicadores Edge](https://data.doublezero.xyz/dz/shreds/publishers) +### [Publicadores de Edge](https://data.doublezero.xyz/dz/shreds/publishers) -La métrica "Publishing Shreds" en la parte superior izquierda del panel muestra el porcentaje total de peso de stake de todos los validadores de Solana que publican shreds de líder en DoubleZero Edge. Puede ver detalles de cada publicador en la red. +La métrica "Publishing Shreds" en la parte superior izquierda del dashboard muestra el porcentaje total de peso de stake de todos los validadores de Solana que publican leader shreds en DoubleZero Edge. Puede ver los detalles de cada publicador en la red. -### [Suscriptores, Dispositivos y Actividad Edge](https://data.doublezero.xyz/dz/shreds/subscribers) +### [Suscriptores, Dispositivos y Actividad de Edge](https://data.doublezero.xyz/dz/shreds/subscribers) -Puede buscar fácilmente su IP de Cliente en esta página para los asientos suscritos y ver el estado. Haga clic en suscripciones de asientos específicas para ver el historial de pagos y la actividad. También puede ver los dispositivos disponibles en la página de [Dispositivos](https://data.doublezero.xyz/dz/shreds/devices) y toda la actividad reciente en la página de [Actividad](https://data.doublezero.xyz/dz/shreds/activity). +Puede buscar su IP de Cliente en esta página para los puestos suscritos y ver el estado. También puede ver los dispositivos disponibles en la página de [Dispositivos](https://data.doublezero.xyz/dz/shreds/devices) y toda la actividad reciente en la página de [Actividad](https://data.doublezero.xyz/dz/shreds/activity). ### Documentación de la API de Datos @@ -288,43 +163,26 @@ Para acceso programático a los endpoints de datos, consulte la documentación d ## Solución de Problemas -Si encuentra un problema no cubierto aquí, por favor comuníquese a través de su canal existente antes de buscar soluciones alternativas. Si no tiene un canal, busque en [Discord](https://discord.gg/U2fEb4Jq) y abra un ticket si es necesario. +Si encuentra un problema no cubierto aquí, por favor comuníquese a través de su canal existente antes de intentar solucionarlo por su cuenta. Si no tiene un canal, busque en [Discord](https://discord.gg/U2fEb4Jq) y abra un ticket si es necesario. ### Asegúrese de que su Cliente esté actualizado: Ejecute: `sudo apt update && sudo apt install doublezero-solana` -### Saldo insuficiente en el depósito en garantía - -Si el saldo de su depósito en garantía está por debajo del precio de la época en el momento de la liquidación, el asiento no se asigna, el túnel se desactiva y se pierde la antigüedad. Recargue con `shreds pay` antes de la próxima liquidación. - -### Asiento no asignado después de pagar - -- Es posible que haya pagado tarde en la época — el asiento se activa en la próxima época. -- Todos los asientos en el dispositivo pueden estar ocupados por titulares con mayor antigüedad. Verifique los asientos disponibles con `shreds price`. -- Si retiró fondos antes de la liquidación, el asiento no era elegible. - ### El túnel no se establece 1. Verifique que el daemon esté ejecutándose: `sudo systemctl status doublezerod` -2. Verifique que el reconciliador esté habilitado: `doublezero enable` -3. Verifique que las reglas de firewall estén en su lugar (GRE, BGP, PIM, tráfico de shreds en `doublezero1`, puerto 44880 en `doublezero0`) -4. Verifique que su asiento esté activo para la época actual: `doublezero-solana shreds list` +2. Verifique que las reglas de firewall estén configuradas (GRE, BGP, PIM, tráfico de shreds en `doublezero1`, puerto 44880 en `doublezero0`) +3. Confirme que la factura de este puesto esté pagada y que la fecha de inicio haya pasado +4. Ejecute `doublezero connect multicast --subscribe-feed solana-shreds-full` en la máquina que tiene la clave privada asignada 5. Verifique el estado de su conexión: `doublezero status` -La IP del cliente del daemon se descubre automáticamente a partir de la IP pública de su host — verifique que coincida con la `--client-ip` utilizada en sus comandos de asiento. - -### Advertencia de época - -La CLI advierte cuando queda menos del 10% de la época. Sus opciones son: - -- Aceptar con `--accept-partial-epoch` si desea el asiento inmediatamente -- Esperar a la próxima época para obtener cobertura completa de una época +El DoubleZero ID utilizado en la página de cuentas debe coincidir con la clave en este host. -### "Amount is below the current price" +### Puesto expirado o eliminado -El comando `pay` valida su monto contra el precio mínimo por época (base del metro + prima del dispositivo). Use `shreds price` para verificar los precios actuales y aumente su monto. +Los puestos son mensuales. Si la factura enviada antes del vencimiento no se paga, el puesto se elimina y el túnel no se mantendrá activo. ### "Multicast user already exists" -Ya tiene una suscripción activa a través de una ruta diferente. Desconéctese primero con `doublezero disconnect`, luego vuelva a intentar `shreds pay`. \ No newline at end of file +Ya tiene una suscripción activa a través de una ruta diferente. Desconéctese primero con `doublezero disconnect`, luego reintente `doublezero connect multicast --subscribe-feed solana-shreds-full`. \ No newline at end of file diff --git a/docs/Edge Subscriber Connection.fr.md b/docs/Edge Subscriber Connection.fr.md index dbec436..b0fbd86 100644 --- a/docs/Edge Subscriber Connection.fr.md +++ b/docs/Edge Subscriber Connection.fr.md @@ -2,12 +2,15 @@ description: Configurez un abonné edge pour recevoir les flux de shreds DoubleZero, y compris la configuration du client et les règles de pare-feu pour GRE, BGP, PIM et le trafic de shreds. --- -# Connexion d'un abonné Edge +# Connexion Abonné Edge !!! warning "En me connectant à DoubleZero, j'accepte les [Conditions d'utilisation de DoubleZero](https://doublezero.xyz/terms-protocol). Veuillez noter que les données sont destinées à votre usage interne uniquement et ne peuvent pas être retransmises (voir Section 2(e))." +!!! warning "Déjà sur l'abonnement CLI ?" + Si vous vous êtes abonné via le **CLI** (`doublezero-solana shreds pay` / sièges escrow), utilisez la [page d'abonnement CLI](Edge Subscriber CLI.md) pour ces commandes. Ce système sera **décommissionné le 30 août 2026**. Les nouveaux abonnements suivent cette page. + ## Étape 1 : Configuration de DoubleZero -### 1. Configuration complète +### Configuration complète Installez le [Solana CLI](https://docs.anza.xyz/cli/install). @@ -15,9 +18,9 @@ Suivez les instructions de [configuration](setup.md) pour installer et configure Si vous avez déjà configuré DoubleZero, assurez-vous d'avoir la dernière version du CLI Doublezero-Solana avec `sudo apt update && sudo apt install doublezero-solana` -### 2. Configurer le pare-feu +### Configurer le pare-feu -Autorisez le trafic GRE, BGP, PIM et les shreds. +Autorisez le trafic GRE, BGP, PIM et shred. **iptables :** @@ -41,219 +44,91 @@ sudo ufw allow in on doublezero1 to any port 7733 proto udp sudo ufw allow in on doublezero0 to any port 44880 proto udp ``` -### 3. Activer le réconciliateur - -Le réconciliateur surveille l'état onchain et provisionne automatiquement les tunnels lorsque votre siège est alloué. Il n'est pas activé par défaut. - -```bash -doublezero enable -``` - --- -## Étape 2 : Configurer votre portefeuille +## Étape 2 : Choisir un métro -### 1. Créer une paire de clés Solana - -Le CLI `doublezero-solana` utilise une paire de clés Solana standard pour la gestion des sièges onchain. Si vous n'en avez pas : - -```bash -solana-keygen new -``` - -Cela écrit dans `~/.config/solana/id.json`. Pour utiliser un chemin différent, passez `--keypair ` à toute commande `doublezero-solana`. - -Affichez l'adresse de votre portefeuille : - -```bash -solana address -``` - -### 2. Alimenter votre portefeuille - -Votre portefeuille a besoin de deux jetons : - -- **SOL** — pour les frais de transaction Solana. Transférez des SOL vers l'adresse du portefeuille affichée ci-dessus. -- **USDC** — pour le financement du siège. Le CLI prélève depuis le compte de jetons associé (ATA) de votre portefeuille pour le mint USDC du mainnet (`EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v`). - ---- - -## Étape 3 : Acheter un siège - -### 1. Trouver votre appareil le plus proche - -Avant d'acheter un siège, identifiez l'appareil ayant la latence la plus faible depuis votre machine : +Identifiez l'emplacement à la latence la plus faible depuis la machine qui recevra les shreds : ```bash doublezero latency ``` -Notez le code de l'appareil avec le résultat de latence le plus faible (par ex., ``). Vous l'utiliserez lors de l'achat d'un siège. +Notez le métro / la ville du résultat à la latence la plus faible. Vous sélectionnerez cette ville sur le formulaire de candidature. Consultez la [carte de topologie](https://data.malbeclabs.com/topology/map?overlays=metroClustering%2Cbandwidth) pour voir comment les métros sont regroupés. -### 2. Vérifier les tarifs +### Tarification -Consultez les tarifs actuels des appareils avant d'engager des fonds. La tarification comporte deux composantes : un **prix de base métro** et une **prime par appareil**. Vous pouvez également consulter les tarifs et la disponibilité [ici](https://data.doublezero.xyz/dz/shreds/devices). +Les sièges sont facturés **par mois**, par machine, dans le métro que vous sélectionnez : -**Tous les appareils :** +| Métros | Prix | +|--------|------| +| Frankfurt, Amsterdam | 1 500 $ / mois | +| London, New York, Singapore, Tokyo | 900 $ / mois | +| Tous les autres emplacements | 450 $ / mois | -```bash -doublezero-solana shreds price -``` +--- -**Appareil spécifique :** +## Étape 3 : Soumettre la demande -```bash -doublezero-solana shreds price --device-code -doublezero-solana shreds price --device -``` +1. Rendez-vous sur [https://doublezero.xyz/edge/subscribe](https://doublezero.xyz/edge/subscribe). +2. Sélectionnez **Solana Shreds**. +3. Sélectionnez la **ville** (métro) dont vous avez besoin. Utilisez le tableau ci-dessus et `doublezero latency` pour choisir. +4. Complétez le formulaire de candidature. -**Tous les appareils d'un métro :** +Vous assignerez un DoubleZero ID (clé existante, ou en générer une nouvelle) à chaque demande de flux sur la page [comptes](https://doublezero.xyz/shreds/account). La **clé privée correspondante doit être présente sur la machine qui recevra les shreds** — n'assignez pas une clé publique dont vous ne pouvez pas déplacer la clé privée vers cet hôte. -```bash -doublezero-solana shreds price --metro -``` +Vous choisissez un **métro** et une **clé publique**. Vous ne liez **pas** d'IP publique au moment de la candidature. Pendant l'abonnement, vous pouvez transférer l'accès entre les IPs **au sein des métros choisis**. -Colonnes de sortie : `Device Code`, `Metro Code`, `Metro Name`, `Status`, `Settled Seats`, `Available Seats`, `Base Price (USDC)`, `Premium (USDC)`, `Epoch Price (USDC)`. +Notre équipe examine les candidatures et vous contacte dans les meilleurs délais (comptez **2 jours ouvrés**). -Le prix par époque est le coût total par époque pour un siège sur cet appareil (base + prime). Utilisez `--wide` pour afficher les clés publiques complètes, ou `--json` pour une sortie JSON. +--- -### 3. Acheter un siège +## Étape 4 : Se connecter après approbation -Achetez un siège avec une seule commande. Cela initialise votre siège, alimente le séquestre et demande l'allocation : +Après que nous vous ayons contacté, que vous ayez reçu une facture et que celle-ci soit payée, connectez-vous sur chaque machine approuvée : ```bash -doublezero-solana shreds pay \ - --device-code \ - --client-ip \ - --amount +doublezero connect multicast --subscribe-feed solana-shreds-full ``` -**Paramètres :** - -| Drapeau | Description | -|---------|-------------| -| `--device ` | Appareil cible par clé publique (mutuellement exclusif avec `--device-code`) | -| `--device-code ` | Appareil cible par code lisible (par ex., ``) | -| `--client-ip ` | Adresse IPv4 publique de votre machine | -| `--amount ` | USDC à déposer (format décimal, par ex. `100` = 100 USDC). Doit atteindre le prix minimum par époque. | -| `--source-token-account ` | Compte source USDC personnalisé (par défaut, l'ATA de votre portefeuille) | -| `--accept-partial-epoch` | Ignorer l'avertissement d'époque restante (voir ci-dessous) | -| `--fee-payer ` | Utiliser un portefeuille différent pour les frais de transaction SOL | -| `--dry-run` | Simuler la transaction sans l'exécuter | -| `--with-compute-unit-price ` | Définir un prix d'unité de calcul pour une inclusion plus rapide en cas de congestion | - -Une fois votre siège alloué, le démon établit automatiquement le tunnel GRE. Vérifiez votre connexion avec : +L'accès est activé à la date de début choisie (généralement 9h01 ET). Vérifiez le tunnel avec : ```bash doublezero status ``` -### Synchronisation des époques - -Les sièges sont alloués par époque Solana (~2 jours). S'il reste moins de 10 % de l'époque en cours lorsque vous payez, le CLI vous avertit que votre siège sera alloué immédiatement mais ne couvre que le reste de l'époque en cours. Un paiement séparé sera déduit de votre séquestre au début de la prochaine époque. - -!!! info "Il est conseillé de financer plus d'une époque à la fois pour ne pas perdre votre siège. Vous pouvez vérifier le temps restant dans une époque [ici](https://explorer.solana.com/)." - -Vous pouvez contourner cet avertissement avec `--accept-partial-epoch`. - -### Maintenir votre séquestre alimenté - -!!! warning "Si le solde de votre séquestre est inférieur au prix de l'époque lors du règlement, votre siège ne sera pas alloué, le tunnel sera démonté et vous perdrez votre ancienneté accumulée. L'ancienneté détermine votre priorité pour les époques futures — la perdre signifie que vous êtes à nouveau en compétition comme un nouveau venu." - -Vous pouvez surfinancer ce compte pour couvrir plusieurs époques. Chaque règlement déduit le prix d'une époque de votre séquestre, et le solde restant est reporté. Par exemple, financer 5 fois le prix par époque maintient votre siège actif pendant 5 époques maximum sans refinancement. - -Pour recharger votre séquestre, exécutez `shreds pay` à nouveau à tout moment : - -```bash -doublezero-solana shreds pay \ - --device-code \ - --client-ip \ - --amount 500 -``` - -Notez que le `Target_IP` doit être une adresse IPv4 publique sur la machine qui recevra les shreds. Vous pouvez la trouver en exécutant une commande comme `curl -4 ifconfig.me` sur la machine cible. - -### Surveiller les sièges - -Cette section détaille comment visualiser les sièges via le CLI. Vous pouvez également utiliser [https://data.doublezero.xyz/api/v1/docs](https://data.doublezero.xyz/api/v1/docs) pour surveiller les sièges et vous aider à gérer votre compte séquestre. - -Consultez vos sièges actifs et soldes de séquestre : - -**Tous vos sièges :** - -```bash -doublezero-solana shreds list -``` - -**Filtrer par appareil :** - -```bash -doublezero-solana shreds list --device-code -``` - -**Filtrer par IP client :** - -```bash -doublezero-solana shreds list --client-ip -``` - -**Filtrer par portefeuille :** - -```bash -doublezero-solana shreds list --withdraw-authority -``` - -Colonnes de sortie : `Device Code`, `Client IP`, `Tenure`, `Balance (USDC)`, `Est. Epochs Paid`. - -La colonne « Est. Epochs Paid » indique combien d'époques votre solde actuel couvre aux tarifs actuels. Si les prix changent, cette estimation s'ajuste. - -### Retirer des fonds - -Fermez votre séquestre et remboursez les USDC restants vers votre portefeuille : - -```bash -doublezero-solana shreds withdraw \ - --device-code \ - --client-ip -``` - -Vous pouvez identifier l'appareil par `--device ` ou `--device-code `, comme pour les autres commandes. +--- -Pour envoyer le remboursement vers un compte de jetons différent : +## Facturation -```bash -doublezero-solana shreds withdraw \ - --device-code \ - --client-ip \ - --refund-token-account -``` +Les sièges sont facturés **mensuellement**. Surveillez la date d'expiration du siège. -!!! warning "Retirer signifie que vous perdez votre siège et l'ancienneté accumulée." +Vous recevrez une facture quelques jours avant l'expiration du siège. **Le non-paiement entraîne la suppression du siège.** --- -## Adresses de shreds (IP vs Port) +## Adresses de Shreds (IP vs Port) -Les shreds de leader et les shreds de retransmission à fort enjeu arriveront sur le port `7733`, via l'interface `doublezero1`. L'interface `doublezero0` est destinée au trafic unicast. Le port `5765` est un moniteur de battement de cœur des éditeurs de shreds — il ne contiendra pas de shreds. +Les Leader Shreds et les Retransmit Shreds à fort enjeu arriveront sur le port `7733`, via l'interface `doublezero1`. L'interface `doublezero0` est destinée au trafic unicast. Le port `5765` est un moniteur de battement de cœur provenant des éditeurs de shreds — il ne contiendra pas de shreds. Pour la consommation de shreds, l'**adresse IP** identifie le flux multicast et le **port** identifie le service UDP sur ce flux. Tous les flux de shreds ci-dessous utilisent le port UDP `7733` sur `doublezero1`. -Vous pouvez examiner les IPs de tout groupe multicast avec : +Vous pouvez examiner les IPs de n'importe quel groupe multicast avec : ```bash doublezero multicast group list ``` -### Shreds de leader +### Leader Shreds - `edge-solana-shreds`: `233.84.178.1:7733` -### Shreds root +### Root Shreds - `edge-solana-root`: `233.84.178.16:7733` -### Shreds de retransmission +### Retransmit Shreds - `edge-solana-retrans-eu`: `233.84.178.12:7733` - `edge-solana-retrans-apac`: `233.84.178.13:7733` @@ -262,23 +137,23 @@ doublezero multicast group list ## En-tête du tunnel GRE — XDP -!!! note "Le trafic de shreds livré sur le réseau est encapsulé en GRE. Vous devrez peut-être retirer l'en-tête GRE avant d'alimenter les données dans votre pipeline existant (par ex. un deshredder basé sur XDP)." +!!! note "Le trafic de shreds livré sur le réseau est encapsulé en GRE. Vous devrez peut-être supprimer l'en-tête GRE avant d'injecter les données dans votre pipeline existant (par exemple, un deshredder basé sur XDP)." --- ## Outils et tableaux de bord -### [Tableau des scores Edge](https://data.doublezero.xyz/dz/shreds/scoreboard) +### [Edge Scoreboard](https://data.doublezero.xyz/dz/shreds/scoreboard) -Le tableau des scores compare la vitesse de livraison des shreds entre DoubleZero Edge et d'autres fournisseurs, en utilisant des données au niveau des slots pour comparer les performances en temps réel. Utilisez ce tableau de bord pour voir les taux de victoire des shreds Edge par rapport aux autres fournisseurs. Vous pouvez consulter les résultats uniquement pour les shreds de leader, en plus de la comparaison du flux complet. Vous pouvez également affiner par région pour voir les performances attendues. +Le Scoreboard évalue la vitesse de livraison des shreds sur DoubleZero Edge et d'autres fournisseurs, en utilisant des données au niveau des slots pour comparer les performances en temps réel. Utilisez ce tableau de bord pour voir les taux de victoire des shreds Edge par rapport aux autres fournisseurs. Vous pouvez consulter les résultats pour les leader shreds uniquement, en plus de la comparaison du flux complet. Vous pouvez également affiner par région pour voir les performances attendues. -### [Éditeurs Edge](https://data.doublezero.xyz/dz/shreds/publishers) +### [Edge Publishers](https://data.doublezero.xyz/dz/shreds/publishers) -La métrique « Publishing Shreds » en haut à gauche du tableau de bord affiche le pourcentage total du poids de stake de tous les validateurs Solana publiant des shreds de leader sur DoubleZero Edge. Vous pouvez voir les détails de chaque éditeur sur le réseau. +La métrique « Publishing Shreds » en haut à gauche du tableau de bord indique le pourcentage total du poids de stake de tous les validateurs Solana publiant des leader shreds sur DoubleZero Edge. Vous pouvez voir les détails de chaque éditeur sur le réseau. ### [Abonnés Edge, appareils et activité](https://data.doublezero.xyz/dz/shreds/subscribers) -Vous pouvez facilement rechercher votre IP client sur cette page pour les sièges souscrits et consulter le statut. Cliquez sur des abonnements de sièges spécifiques pour voir l'historique des paiements et l'activité. Vous pouvez également consulter les appareils disponibles sur la page [Appareils](https://data.doublezero.xyz/dz/shreds/devices) et toute l'activité récente sur la page [Activité](https://data.doublezero.xyz/dz/shreds/activity). +Vous pouvez rechercher votre IP Client sur cette page pour les sièges souscrits et voir leur statut. Vous pouvez également consulter les appareils disponibles sur la page [Appareils](https://data.doublezero.xyz/dz/shreds/devices) et toute l'activité récente sur la page [Activité](https://data.doublezero.xyz/dz/shreds/activity). ### Documentation de l'API de données @@ -288,43 +163,26 @@ Pour un accès programmatique aux points de terminaison de données, consultez l ## Dépannage -Si vous rencontrez un problème non couvert ici, veuillez nous contacter via votre canal existant avant de tenter un contournement. Si vous n'avez pas de canal, veuillez rechercher sur [Discord](https://discord.gg/U2fEb4Jq) et ouvrir un ticket si nécessaire. +Si vous rencontrez un problème non couvert ici, veuillez nous contacter via votre canal existant avant de chercher une solution de contournement. Si vous n'avez pas de canal, veuillez chercher sur [Discord](https://discord.gg/U2fEb4Jq) et ouvrir un ticket si nécessaire. ### Assurez-vous que votre client est à jour : Exécutez : `sudo apt update && sudo apt install doublezero-solana` -### Solde de séquestre insuffisant - -Si le solde de votre séquestre est inférieur au prix de l'époque lors du règlement, le siège n'est pas alloué, le tunnel est démonté et l'ancienneté est perdue. Rechargez avec `shreds pay` avant le prochain règlement. - -### Siège non alloué après paiement - -- Vous avez peut-être payé tard dans l'époque — le siège prend effet à l'époque suivante. -- Tous les sièges de l'appareil peuvent être occupés par des titulaires ayant une ancienneté plus élevée. Vérifiez les sièges disponibles avec `shreds price`. -- Si vous avez retiré avant le règlement, le siège n'était pas éligible. - ### Le tunnel ne s'établit pas 1. Vérifiez que le démon est en cours d'exécution : `sudo systemctl status doublezerod` -2. Vérifiez que le réconciliateur est activé : `doublezero enable` -3. Vérifiez que les règles de pare-feu sont en place (GRE, BGP, PIM, trafic de shreds sur `doublezero1`, port 44880 sur `doublezero0`) -4. Vérifiez que votre siège est actif pour l'époque en cours : `doublezero-solana shreds list` -5. Vérifiez l'état de votre connexion : `doublezero status` - -L'IP client du démon est découverte automatiquement à partir de l'IP publique de votre hôte — vérifiez qu'elle correspond au `--client-ip` utilisé dans vos commandes de siège. - -### Avertissement d'époque - -Le CLI avertit lorsqu'il reste moins de 10 % de l'époque. Vos options : +2. Vérifiez que les règles de pare-feu sont en place (GRE, BGP, PIM, trafic shred sur `doublezero1`, port 44880 sur `doublezero0`) +3. Confirmez que la facture pour ce siège est payée et que la date de début est passée +4. Exécutez `doublezero connect multicast --subscribe-feed solana-shreds-full` sur la machine qui détient la clé privée assignée +5. Vérifiez le statut de votre connexion : `doublezero status` -- Accepter avec `--accept-partial-epoch` si vous voulez le siège immédiatement -- Attendre la prochaine époque pour obtenir une couverture d'époque complète +Le DoubleZero ID utilisé sur la page des comptes doit correspondre à la clé sur cet hôte. -### « Amount is below the current price » +### Siège expiré ou supprimé -La commande `pay` valide votre montant par rapport au prix minimum par époque (base métro + prime appareil). Utilisez `shreds price` pour vérifier les tarifs actuels et augmenter votre montant. +Les sièges sont mensuels. Si la facture envoyée avant l'expiration n'est pas payée, le siège est supprimé et le tunnel ne restera pas actif. ### « Multicast user already exists » -Vous avez déjà un abonnement actif via un autre chemin. Déconnectez-vous d'abord avec `doublezero disconnect`, puis réessayez `shreds pay`. \ No newline at end of file +Vous avez déjà un abonnement actif via un chemin différent. Déconnectez-vous d'abord avec `doublezero disconnect`, puis réessayez `doublezero connect multicast --subscribe-feed solana-shreds-full`. \ No newline at end of file diff --git a/docs/Edge Subscriber Connection.it.md b/docs/Edge Subscriber Connection.it.md index 1baa64d..783b5a4 100644 --- a/docs/Edge Subscriber Connection.it.md +++ b/docs/Edge Subscriber Connection.it.md @@ -1,21 +1,24 @@ --- -description: Configura un edge subscriber per ricevere i feed di shred di DoubleZero, inclusa la configurazione del client e le regole del firewall per GRE, BGP, PIM e il traffico shred. +description: Configurare un edge subscriber per ricevere i feed di shred DoubleZero, inclusa la configurazione del client e le regole firewall per GRE, BGP, PIM e il traffico shred. --- # Connessione Edge Subscriber -!!! warning "Connettendomi a DoubleZero accetto i [Termini di utilizzo di DoubleZero](https://doublezero.xyz/terms-protocol). Si prega di notare che i dati sono esclusivamente per uso interno e non possono essere ritrasmessi (vedi Sezione 2(e))." +!!! warning "Collegandomi a DoubleZero accetto i [Termini di Utilizzo di DoubleZero](https://doublezero.xyz/terms-protocol). Si prega di notare che i dati sono esclusivamente per uso interno e non possono essere ritrasmessi (vedi Sezione 2(e))." -## Passo 1: Configurazione di DoubleZero +!!! warning "Hai già la sottoscrizione via CLI?" + Se hai effettuato la sottoscrizione tramite la **CLI** (`doublezero-solana shreds pay` / escrow seats), utilizza la [pagina di sottoscrizione CLI](Edge Subscriber CLI.md) per quei comandi. Quel sistema sarà **dismesso il 30 agosto 2026**. Le nuove sottoscrizioni seguono questa pagina. -### 1. Completare la configurazione +## Passo 1: Configurazione DoubleZero + +### Completare la Configurazione Installa la [Solana CLI](https://docs.anza.xyz/cli/install). Segui le istruzioni di [configurazione](setup.md) per installare e configurare il client DoubleZero. -Se hai precedentemente configurato DoubleZero, assicurati di avere l'ultima versione della Doublezero-Solana CLI con `sudo apt update && sudo apt install doublezero-solana` +Se hai già configurato DoubleZero in precedenza, assicurati di avere l'ultima versione della CLI Doublezero-Solana con `sudo apt update && sudo apt install doublezero-solana` -### 2. Configurare il Firewall +### Configurare il Firewall Consenti il traffico GRE, BGP, PIM e shred. @@ -41,203 +44,75 @@ sudo ufw allow in on doublezero1 to any port 7733 proto udp sudo ufw allow in on doublezero0 to any port 44880 proto udp ``` -### 3. Abilitare il Reconciler - -Il reconciler monitora lo stato onchain e provvede automaticamente ai tunnel quando il tuo seat viene allocato. Non è abilitato di default. - -```bash -doublezero enable -``` - --- -## Passo 2: Configurare il Wallet +## Passo 2: Scegliere un metro -### 1. Creare una Keypair Solana - -La CLI `doublezero-solana` utilizza una keypair Solana standard per la gestione dei seat onchain. Se non ne possiedi una: - -```bash -solana-keygen new -``` - -Questo scrive su `~/.config/solana/id.json`. Per utilizzare un percorso diverso, passa `--keypair ` a qualsiasi comando `doublezero-solana`. - -Stampa l'indirizzo del tuo wallet: - -```bash -solana address -``` - -### 2. Finanziare il Wallet - -Il tuo wallet necessita di due token: - -- **SOL** — per le commissioni delle transazioni Solana. Trasferisci SOL all'indirizzo del wallet stampato sopra. -- **USDC** — per il finanziamento del seat. La CLI preleva dall'Associated Token Account (ATA) del tuo wallet per il mint USDC mainnet (`EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v`). - ---- - -## Passo 3: Acquistare un Seat - -### 1. Trovare il Dispositivo più Vicino - -Prima di acquistare un seat, identifica il dispositivo con la latenza più bassa dalla tua macchina: +Identifica la posizione con la latenza più bassa dalla macchina che riceverà gli shred: ```bash doublezero latency ``` -Prendi nota del codice dispositivo dal risultato con la latenza più bassa (es. ``). Lo utilizzerai al momento dell'acquisto di un seat. +Annota il metro / la città dal risultato con la latenza più bassa. Selezionerai quella città nel modulo di richiesta. Consulta la [mappa della topologia](https://data.malbeclabs.com/topology/map?overlays=metroClustering%2Cbandwidth) per vedere come sono raggruppati i metro. -### 2. Verificare i Prezzi +### Prezzi -Visualizza i prezzi attuali dei dispositivi prima di impegnare fondi. I prezzi hanno due componenti: un **prezzo base metro** e un **premium per dispositivo**. Puoi anche visualizzare prezzi e disponibilità [qui](https://data.doublezero.xyz/dz/shreds/devices). +I posti vengono fatturati **mensilmente**, per macchina, nel metro selezionato: -**Tutti i dispositivi:** +| Metro | Prezzo | +|-------|--------| +| Francoforte, Amsterdam | $1.500 / mese | +| Londra, New York, Singapore, Tokyo | $900 / mese | +| Tutte le altre località | $450 / mese | -```bash -doublezero-solana shreds price -``` +--- -**Dispositivo specifico:** +## Passo 3: Inviare la Richiesta -```bash -doublezero-solana shreds price --device-code -doublezero-solana shreds price --device -``` +1. Vai su [https://doublezero.xyz/edge/subscribe](https://doublezero.xyz/edge/subscribe). +2. Seleziona **Solana Shreds**. +3. Seleziona la **città** (metro) di cui hai bisogno. Usa la tabella sopra e `doublezero latency` per scegliere. +4. Completa il modulo di richiesta. -**Tutti i dispositivi in un metro:** +Assegnerai un DoubleZero ID (chiave esistente o generane una nuova) a ciascuna richiesta di feed nella pagina [accounts](https://doublezero.xyz/shreds/account). La **chiave privata corrispondente deve essere presente sulla macchina che riceverà gli shred** — non assegnare una pubkey la cui chiave privata non puoi spostare su quell'host. -```bash -doublezero-solana shreds price --metro -``` +Scegli un **metro** e una **pubkey**. **Non** è necessario associare un IP pubblico al momento della richiesta. Durante la sottoscrizione puoi spostare l'accesso tra IP **all'interno dei metro scelti**. -Colonne di output: `Device Code`, `Metro Code`, `Metro Name`, `Status`, `Settled Seats`, `Available Seats`, `Base Price (USDC)`, `Premium (USDC)`, `Epoch Price (USDC)`. +Il nostro team esamina le richieste e ti contatta in tempi rapidi (prevedere **2 giorni lavorativi**). -Il prezzo per epoch è il costo totale per epoch di un seat su quel dispositivo (base + premium). Usa `--wide` per mostrare le pubkey complete, o `--json` per l'output in formato JSON. +--- -### 3. Acquistare un Seat +## Passo 4: Connettersi dopo l'approvazione -Acquista un seat con un singolo comando. Questo inizializza il tuo seat, finanzia l'escrow e richiede l'allocazione: +Dopo che ti contattiamo, ricevi una fattura, e una volta pagata quella fattura, connettiti su ciascuna macchina approvata: ```bash -doublezero-solana shreds pay \ - --device-code \ - --client-ip \ - --amount +doublezero connect multicast --subscribe-feed solana-shreds-full ``` -**Parametri:** - -| Flag | Descrizione | -|------|-------------| -| `--device ` | Dispositivo target tramite chiave pubblica (mutuamente esclusivo con `--device-code`) | -| `--device-code ` | Dispositivo target tramite codice leggibile (es. ``) | -| `--client-ip ` | L'indirizzo IPv4 pubblico della tua macchina | -| `--amount ` | USDC da finanziare (formato decimale, es. `100` = 100 USDC). Deve soddisfare il prezzo minimo per epoch. | -| `--source-token-account ` | Account sorgente USDC personalizzato (default: ATA del tuo wallet) | -| `--accept-partial-epoch` | Salta l'avviso di epoch rimanente (vedi sotto) | -| `--fee-payer ` | Usa un wallet diverso per le commissioni delle transazioni SOL | -| `--dry-run` | Simula la transazione senza eseguirla | -| `--with-compute-unit-price ` | Imposta un prezzo per compute unit per un'inclusione più rapida durante la congestione | - -Una volta allocato il tuo seat, il daemon stabilisce automaticamente il tunnel GRE. Verifica la tua connessione con: +L'accesso viene abilitato alla data di inizio scelta (tipicamente 9:01 AM ET). Verifica il tunnel con: ```bash doublezero status ``` -### Tempistica degli Epoch - -I seat vengono allocati per epoch Solana (~2 giorni). Se rimane meno del 10% dell'epoch corrente al momento del pagamento, la CLI avvisa che il tuo seat verrà allocato immediatamente ma coprirà solo il resto dell'epoch corrente. Un pagamento separato verrà detratto dal tuo escrow all'inizio dell'epoch successivo. - -!!! info "È consigliabile finanziare per più di 1 epoch alla volta per non perdere il proprio seat. Puoi verificare il tempo rimanente in un epoch [qui](https://explorer.solana.com/)." - -Puoi ignorare questo avviso con `--accept-partial-epoch`. - -### Mantenere l'Escrow Finanziato - -!!! warning "Se il saldo del tuo escrow è inferiore al prezzo dell'epoch al momento del settlement, il tuo seat non verrà allocato, il tunnel verrà dismesso e perderai la tenure accumulata. La tenure determina la tua priorità per gli epoch futuri — perderla significa competere nuovamente come nuovo arrivato." - -Puoi sovrafinanziare questo account per coprire più epoch. Ogni settlement detrae il prezzo di un epoch dal tuo escrow, e il saldo rimanente viene riportato. Ad esempio, finanziare 5 volte il prezzo per epoch mantiene il tuo seat attivo fino a 5 epoch senza necessità di rifinanziamento. - -Per ricaricare il tuo escrow, esegui `shreds pay` in qualsiasi momento: - -```bash -doublezero-solana shreds pay \ - --device-code \ - --client-ip \ - --amount 500 -``` - -Nota che il `Target_IP` deve essere un indirizzo IPv4 pubblico sulla macchina che riceverà gli shred. Puoi trovarlo eseguendo un comando come `curl -4 ifconfig.me` sulla macchina target. - -### Monitorare i Seat - -Questa sezione descrive come visualizzare i seat tramite la CLI. Puoi anche usare [https://data.doublezero.xyz/api/v1/docs](https://data.doublezero.xyz/api/v1/docs) per monitorare i seat e assistere nella gestione del tuo account escrow. - -Visualizza i tuoi seat attivi e i saldi escrow: - -**Tutti i tuoi seat:** - -```bash -doublezero-solana shreds list -``` - -**Filtra per dispositivo:** - -```bash -doublezero-solana shreds list --device-code -``` - -**Filtra per IP client:** - -```bash -doublezero-solana shreds list --client-ip -``` - -**Filtra per wallet:** - -```bash -doublezero-solana shreds list --withdraw-authority -``` - -Colonne di output: `Device Code`, `Client IP`, `Tenure`, `Balance (USDC)`, `Est. Epochs Paid`. - -La colonna "Est. Epochs Paid" mostra quanti epoch copre il tuo saldo attuale ai prezzi correnti. Se i prezzi cambiano, questa stima si aggiorna. - -### Prelevare Fondi - -Chiudi il tuo escrow e ricevi il rimborso degli USDC rimanenti sul tuo wallet: - -```bash -doublezero-solana shreds withdraw \ - --device-code \ - --client-ip -``` - -Puoi identificare il dispositivo sia con `--device ` che con `--device-code `, come per gli altri comandi. +--- -Per inviare il rimborso a un account token diverso: +## Fatturazione -```bash -doublezero-solana shreds withdraw \ - --device-code \ - --client-ip \ - --refund-token-account -``` +I posti vengono addebitati **mensilmente**. Tieni d'occhio la data di scadenza del posto. -!!! warning "Prelevare significa perdere il proprio seat e la tenure accumulata." +Riceverai una fattura alcuni giorni prima della scadenza del posto. **Il mancato pagamento comporta la rimozione del posto.** --- ## Indirizzi Shred (IP vs Porta) -I Leader Shred e i Retransmit Shred ad alto stake arriveranno sulla porta `7733`, tramite l'interfaccia `doublezero1`. L'interfaccia `doublezero0` è per il traffico unicast. La porta `5765` è un monitor heartbeat dagli shred publisher — non conterrà shred. +I Leader Shred e i Retransmit Shred ad alto stake arriveranno sulla porta `7733`, tramite l'interfaccia `doublezero1`. L'interfaccia `doublezero0` è per il traffico unicast. La porta `5765` è un heartbeat monitor dai publisher di shred — non conterrà shred. -Per il consumo degli shred, l'**indirizzo IP** identifica lo stream multicast e la **porta** identifica il servizio UDP su quello stream. -Tutti gli stream shred seguenti utilizzano la porta UDP `7733` su `doublezero1`. +Per il consumo degli shred, l'**indirizzo IP** identifica il flusso multicast e la **porta** identifica il servizio UDP su quel flusso. +Tutti i flussi shred di seguito utilizzano la porta UDP `7733` su `doublezero1`. Puoi esaminare gli IP di qualsiasi gruppo multicast con: @@ -262,7 +137,7 @@ doublezero multicast group list ## Header del Tunnel GRE — XDP -!!! note "Il traffico shred consegnato attraverso la rete è incapsulato in GRE. Potrebbe essere necessario rimuovere l'header GRE prima di alimentare i dati nella tua pipeline esistente (es. un deshredder basato su XDP)." +!!! note "Il traffico shred consegnato attraverso la rete è incapsulato in GRE. Potrebbe essere necessario rimuovere l'header GRE prima di alimentare i dati nella pipeline esistente (ad es. un deshredder basato su XDP)." --- @@ -270,15 +145,15 @@ doublezero multicast group list ### [Edge Scoreboard](https://data.doublezero.xyz/dz/shreds/scoreboard) -Lo Scoreboard confronta la velocità di consegna degli shred tra DoubleZero Edge e altri provider, utilizzando dati a livello di slot per comparare le prestazioni in tempo reale. Usa questa dashboard per visualizzare i tassi di vittoria degli shred Edge rispetto ad altri provider. Puoi visualizzare i risultati solo per i leader shred, oltre al confronto del feed completo. Puoi anche approfondire per regione per vedere le prestazioni attese. +La Scoreboard confronta la velocità di consegna degli shred tra DoubleZero Edge e altri provider, utilizzando dati a livello di slot per comparare le prestazioni in tempo reale. Usa questa dashboard per visualizzare i tassi di vittoria degli shred Edge rispetto ad altri provider. Puoi visualizzare i risultati solo per i leader shred, oltre al confronto del feed completo. Puoi anche approfondire per regione per vedere le prestazioni attese. ### [Edge Publishers](https://data.doublezero.xyz/dz/shreds/publishers) -La metrica "Publishing Shreds" in alto a sinistra della dashboard mostra la percentuale totale di stake weight di tutti i validatori Solana che pubblicano leader shred su DoubleZero Edge. Puoi vedere i dettagli di ciascun publisher sulla rete. +La metrica "Publishing Shreds" in alto a sinistra della dashboard mostra la percentuale totale del peso di stake di tutti i validatori Solana che pubblicano leader shred su DoubleZero Edge. Puoi vedere i dettagli per ciascun publisher sulla rete. ### [Edge Subscribers, Dispositivi e Attività](https://data.doublezero.xyz/dz/shreds/subscribers) -Puoi facilmente cercare il tuo Client IP su questa pagina per i seat sottoscritti e visualizzarne lo stato. Clicca sulle specifiche sottoscrizioni dei seat per visualizzare lo storico dei pagamenti e l'attività. Puoi anche visualizzare i dispositivi disponibili sulla pagina [Devices](https://data.doublezero.xyz/dz/shreds/devices) e tutte le attività recenti sulla pagina [Activity](https://data.doublezero.xyz/dz/shreds/activity). +Puoi cercare il tuo Client IP su questa pagina per i posti sottoscritti e visualizzare lo stato. Puoi anche visualizzare i dispositivi disponibili nella pagina [Devices](https://data.doublezero.xyz/dz/shreds/devices) e tutta l'attività recente nella pagina [Activity](https://data.doublezero.xyz/dz/shreds/activity). ### Documentazione API Dati @@ -288,43 +163,26 @@ Per l'accesso programmatico agli endpoint dati, consulta la documentazione API: ## Risoluzione dei Problemi -Se riscontri un problema non trattato qui, contattaci attraverso il tuo canale esistente prima di cercare soluzioni alternative. Se non disponi di un canale, cerca su [Discord](https://discord.gg/U2fEb4Jq) e apri un ticket se necessario. +Se riscontri un problema non trattato qui, contattaci attraverso il tuo canale esistente prima di tentare soluzioni alternative. Se non disponi di un canale, cerca su [Discord](https://discord.gg/U2fEb4Jq) e apri un ticket se necessario. ### Assicurati che il tuo Client sia aggiornato: Esegui: `sudo apt update && sudo apt install doublezero-solana` -### Saldo escrow insufficiente - -Se il saldo del tuo escrow è inferiore al prezzo dell'epoch al momento del settlement, il seat non viene allocato, il tunnel viene dismesso e la tenure viene persa. Ricarica con `shreds pay` prima del prossimo settlement. - -### Seat non allocato dopo il pagamento - -- Potresti aver pagato tardi nell'epoch — il seat diventa effettivo dall'epoch successivo. -- Tutti i seat sul dispositivo potrebbero essere occupati da incumbent con tenure superiore. Verifica i seat disponibili con `shreds price`. -- Se hai prelevato prima del settlement, il seat non era idoneo. - ### Il tunnel non si attiva 1. Verifica che il daemon sia in esecuzione: `sudo systemctl status doublezerod` -2. Verifica che il reconciler sia abilitato: `doublezero enable` -3. Verifica che le regole del firewall siano configurate (GRE, BGP, PIM, traffico shred su `doublezero1`, porta 44880 su `doublezero0`) -4. Verifica che il tuo seat sia attivo per l'epoch corrente: `doublezero-solana shreds list` -5. Controlla lo stato della tua connessione: `doublezero status` - -L'IP client del daemon viene scoperto automaticamente dall'IP pubblico del tuo host — verifica che corrisponda al `--client-ip` utilizzato nei comandi del seat. - -### Avviso di epoch - -La CLI avvisa quando rimane meno del 10% dell'epoch. Le tue opzioni: +2. Verifica che le regole del firewall siano configurate (GRE, BGP, PIM, traffico shred su `doublezero1`, porta 44880 su `doublezero0`) +3. Conferma che la fattura per questo posto sia stata pagata e che la data di inizio sia trascorsa +4. Esegui `doublezero connect multicast --subscribe-feed solana-shreds-full` sulla macchina che contiene la chiave privata assegnata +5. Controlla lo stato della connessione: `doublezero status` -- Accetta con `--accept-partial-epoch` se vuoi il seat immediatamente -- Attendi l'epoch successivo per ottenere una copertura completa dell'epoch +Il DoubleZero ID utilizzato nella pagina accounts deve corrispondere alla chiave su questo host. -### "Amount is below the current price" +### Posto scaduto o rimosso -Il comando `pay` valida l'importo rispetto al prezzo minimo per epoch (base metro + premium dispositivo). Usa `shreds price` per verificare i prezzi attuali e aumenta il tuo importo. +I posti sono mensili. Se la fattura inviata prima della scadenza non viene pagata, il posto viene rimosso e il tunnel non rimarrà attivo. ### "Multicast user already exists" -Hai già una sottoscrizione attiva attraverso un percorso diverso. Disconnettiti prima con `doublezero disconnect`, poi riprova `shreds pay`. \ No newline at end of file +Hai già una sottoscrizione attiva attraverso un percorso diverso. Disconnettiti prima con `doublezero disconnect`, poi riprova con `doublezero connect multicast --subscribe-feed solana-shreds-full`. \ No newline at end of file diff --git a/docs/Edge Subscriber Connection.ja.md b/docs/Edge Subscriber Connection.ja.md index 9d5c527..642d133 100644 --- a/docs/Edge Subscriber Connection.ja.md +++ b/docs/Edge Subscriber Connection.ja.md @@ -1,21 +1,24 @@ --- -description: DoubleZero シュレッドフィードを受信するためのエッジサブスクライバーのセットアップ方法。クライアントのセットアップや GRE、BGP、PIM、シュレッドトラフィック用のファイアウォールルールを含みます。 +description: エッジサブスクライバーを設定して DoubleZero シュレッドフィードを受信する方法(クライアントのセットアップ、GRE・BGP・PIM・シュレッドトラフィック用のファイアウォールルールを含む)。 --- # エッジサブスクライバー接続 -!!! warning "DoubleZero に接続することにより、[DoubleZero 利用規約](https://doublezero.xyz/terms-protocol)に同意したものとみなされます。データはお客様の内部利用目的に限られ、再送信は許可されていません(セクション 2(e) を参照)。" +!!! warning "DoubleZero に接続することにより、[DoubleZero 利用規約](https://doublezero.xyz/terms-protocol)に同意したものとみなされます。データはお客様の内部目的のみに使用可能であり、再送信は禁止されていますのでご注意ください(セクション 2(e) 参照)。" -## ステップ 1: DoubleZero のセットアップ +!!! warning "CLI サブスクリプションをすでにご利用中ですか?" + **CLI** 経由でサブスクライブした場合(`doublezero-solana shreds pay` / エスクローシート)、それらのコマンドについては [CLI サブスクリプションページ](Edge Subscriber CLI.md)をご参照ください。このシステムは **2026 年 8 月 30 日に廃止予定** です。新規サブスクリプションは本ページに従ってください。 -### 1. セットアップの完了 +## ステップ 1: DoubleZero セットアップ + +### セットアップの完了 [Solana CLI](https://docs.anza.xyz/cli/install) をインストールします。 -[セットアップ](setup.md)の手順に従って、DoubleZero クライアントをインストールおよび設定します。 +[セットアップ](setup.md)手順に従って、DoubleZero クライアントのインストールと設定を行います。 -以前に DoubleZero をセットアップしたことがある場合は、`sudo apt update && sudo apt install doublezero-solana` で最新の Doublezero-Solana CLI をインストールしてください。 +以前に DoubleZero をセットアップ済みの場合は、`sudo apt update && sudo apt install doublezero-solana` で最新の Doublezero-Solana CLI に更新してください。 -### 2. ファイアウォールの設定 +### ファイアウォールの設定 GRE、BGP、PIM、およびシュレッドトラフィックを許可します。 @@ -41,205 +44,77 @@ sudo ufw allow in on doublezero1 to any port 7733 proto udp sudo ufw allow in on doublezero0 to any port 44880 proto udp ``` -### 3. リコンサイラーの有効化 - -リコンサイラーはオンチェーンの状態を監視し、シートが割り当てられると自動的にトンネルをプロビジョニングします。デフォルトでは有効になっていません。 - -```bash -doublezero enable -``` - --- -## ステップ 2: ウォレットのセットアップ +## ステップ 2: メトロの選択 -### 1. Solana キーペアの作成 - -`doublezero-solana` CLI は、オンチェーンのシート管理に標準的な Solana キーペアを使用します。まだお持ちでない場合: - -```bash -solana-keygen new -``` - -これにより `~/.config/solana/id.json` に書き込まれます。別のパスを使用する場合は、任意の `doublezero-solana` コマンドに `--keypair ` を渡してください。 - -ウォレットアドレスを表示します: - -```bash -solana address -``` - -### 2. ウォレットへの入金 - -ウォレットには 2 種類のトークンが必要です: - -- **SOL** — Solana のトランザクション手数料用。上記で表示されたウォレットアドレスに SOL を送金してください。 -- **USDC** — シートの資金用。CLI はメインネット USDC ミント(`EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v`)のウォレットの Associated Token Account(ATA)から引き出します。 - ---- - -## ステップ 3: シートの購入 - -### 1. 最寄りのデバイスを見つける - -シートを購入する前に、お使いのマシンから最も低レイテンシーのデバイスを特定します: +シュレッドを受信するマシンから最も低レイテンシのロケーションを特定します: ```bash doublezero latency ``` -最低レイテンシーの結果からデバイスコードをメモしてください(例:``)。シートの購入時にこれを使用します。 +最も低レイテンシの結果からメトロ / 都市を確認してください。申請フォームでその都市を選択します。メトロのグループ分けについては[トポロジマップ](https://data.malbeclabs.com/topology/map?overlays=metroClustering%2Cbandwidth)をご参照ください。 -### 2. 価格の確認 +### 料金 -資金を投入する前に、現在のデバイス価格を確認します。価格は **基本メトロ価格** と **デバイスごとのプレミアム** の 2 つの要素で構成されます。価格と空き状況は[こちら](https://data.doublezero.xyz/dz/shreds/devices)でも確認できます。 +シートは選択したメトロにおいて、マシンごとに**月額**で課金されます: -**全デバイス:** +| メトロ | 料金 | +|--------|------| +| Frankfurt, Amsterdam | $1,500 / 月 | +| London, New York, Singapore, Tokyo | $900 / 月 | +| その他すべてのロケーション | $450 / 月 | -```bash -doublezero-solana shreds price -``` +--- -**特定のデバイス:** +## ステップ 3: リクエストの送信 -```bash -doublezero-solana shreds price --device-code -doublezero-solana shreds price --device -``` +1. [https://doublezero.xyz/edge/subscribe](https://doublezero.xyz/edge/subscribe) にアクセスします。 +2. **Solana Shreds** を選択します。 +3. 必要な**都市**(メトロ)を選択します。上記の料金表と `doublezero latency` を参考に選んでください。 +4. 申請フォームを完了します。 -**メトロ内の全デバイス:** +[アカウント](https://doublezero.xyz/shreds/account)ページで、各フィードリクエストに DoubleZero ID(既存のキー、または新規生成)を割り当てます。対応する**秘密鍵はシュレッドを受信するマシン上に存在する必要があります** — そのホストに移動できない秘密鍵の公開鍵は割り当てないでください。 -```bash -doublezero-solana shreds price --metro -``` +選択するのは**メトロ**と**公開鍵**です。申請時にパブリック IP をバインドする必要は**ありません**。サブスクリプション期間中、**選択したメトロ内で** IP 間のアクセス移動が可能です。 -出力列:`Device Code`、`Metro Code`、`Metro Name`、`Status`、`Settled Seats`、`Available Seats`、`Base Price (USDC)`、`Premium (USDC)`、`Epoch Price (USDC)`。 +当チームが申請を審査し、速やかにご連絡いたします(**2 営業日**を目安としてください)。 -エポック価格は、そのデバイスのシートに対するエポックごとの合計コストです(基本 + プレミアム)。完全な公開鍵を表示するには `--wide` を、JSON 出力には `--json` を使用してください。 +--- -### 3. シートの購入 +## ステップ 4: 承認後の接続 -1 つのコマンドでシートを購入します。これによりシートの初期化、エスクローへの入金、および割り当てリクエストが行われます: +当チームからご連絡後、請求書を受領し、お支払いが完了したら、承認された各マシンで接続します: ```bash -doublezero-solana shreds pay \ - --device-code \ - --client-ip \ - --amount +doublezero connect multicast --subscribe-feed solana-shreds-full ``` -**パラメータ:** - -| フラグ | 説明 | -|------|-------------| -| `--device ` | 公開鍵でターゲットデバイスを指定(`--device-code` とは排他) | -| `--device-code ` | 人間が読めるコードでターゲットデバイスを指定(例:``) | -| `--client-ip ` | お使いのマシンのパブリック IPv4 アドレス | -| `--amount ` | 入金する USDC(小数形式、例:`100` = 100 USDC)。最低エポック価格を満たす必要があります。 | -| `--source-token-account ` | カスタム USDC ソースアカウント(デフォルトはウォレットの ATA) | -| `--accept-partial-epoch` | エポック残量の警告をスキップ(下記参照) | -| `--fee-payer ` | SOL トランザクション手数料に別のウォレットを使用 | -| `--dry-run` | トランザクションを実行せずにシミュレーション | -| `--with-compute-unit-price ` | 混雑時のインクルージョンを高速化するためのコンピュートユニット価格を設定 | - -シートが割り当てられると、デーモンが自動的に GRE トンネルを確立します。接続状況を確認するには: +選択した開始日(通常は東部時間午前 9:01)にアクセスが有効化されます。トンネルの状態を以下で確認してください: ```bash doublezero status ``` -### エポックのタイミング - -シートは Solana エポック(約 2 日間)ごとに割り当てられます。支払い時に現在のエポックの残りが 10% 未満の場合、CLI はシートが即座に割り当てられるものの、現在のエポックの残り期間のみをカバーすることを警告します。次のエポックが始まると、エスクローから別途支払いが差し引かれます。 - -!!! info "シートを失わないように、1 エポック分以上を入金しておくことをお勧めします。エポックの残り時間は[こちら](https://explorer.solana.com/)で確認できます。" - -`--accept-partial-epoch` でこの警告をバイパスできます。 - -### エスクローの残高を維持する - -!!! warning "決済時にエスクロー残高がエポック価格を下回っている場合、シートは割り当てられず、トンネルは切断され、蓄積されたテニュアが失われます。テニュアは将来のエポックにおける優先順位を決定するため、失うと新規参入者として再び競争することになります。" - -このアカウントに複数エポック分を超過入金することができます。各決済ではエスクローから 1 エポック分の価格が差し引かれ、残りの残高は繰り越されます。例えば、エポックあたりの価格の 5 倍を入金すれば、再入金なしで最大 5 エポック間シートをアクティブに保つことができます。 - -エスクローを追加入金するには、いつでも `shreds pay` を再実行してください: - -```bash -doublezero-solana shreds pay \ - --device-code \ - --client-ip \ - --amount 500 -``` - -`Target_IP` はシュレッドを受信するマシンのパブリック IPv4 アドレスである必要があります。ターゲットマシンで `curl -4 ifconfig.me` のようなコマンドを実行して確認できます。 - -### シートの監視 - -このセクションでは、CLI を使用してシートを表示する方法を説明します。[https://data.doublezero.xyz/api/v1/docs](https://data.doublezero.xyz/api/v1/docs) を使用してシートを監視し、エスクローアカウントの管理を支援することもできます。 - -アクティブなシートとエスクロー残高を表示します: - -**すべてのシート:** - -```bash -doublezero-solana shreds list -``` - -**デバイスでフィルター:** - -```bash -doublezero-solana shreds list --device-code -``` - -**クライアント IP でフィルター:** - -```bash -doublezero-solana shreds list --client-ip -``` - -**ウォレットでフィルター:** - -```bash -doublezero-solana shreds list --withdraw-authority -``` - -出力列:`Device Code`、`Client IP`、`Tenure`、`Balance (USDC)`、`Est. Epochs Paid`。 - -「Est. Epochs Paid」列は、現在の価格設定で現在の残高が何エポック分をカバーするかを示します。価格が変更された場合、この見積もりは調整されます。 - -### 資金の引き出し - -エスクローを閉じて、残りの USDC をウォレットに返金します: - -```bash -doublezero-solana shreds withdraw \ - --device-code \ - --client-ip -``` - -他のコマンドと同様に、`--device ` または `--device-code ` のいずれかでデバイスを指定できます。 +--- -別のトークンアカウントに返金を送る場合: +## 課金 -```bash -doublezero-solana shreds withdraw \ - --device-code \ - --client-ip \ - --refund-token-account -``` +シートは**月額**で課金されます。シートの有効期限にご注意ください。 -!!! warning "引き出しを行うと、シートと蓄積されたテニュアが失われます。" +シートの有効期限の数日前に請求書が送付されます。**未払いの場合、シートは削除されます。** --- ## シュレッドアドレス(IP とポート) -リーダーシュレッドと高ステークのリトランスミットシュレッドはポート `7733` 経由で `doublezero1` インターフェース上に到着します。`doublezero0` インターフェースはユニキャストトラフィック用です。ポート `5765` はシュレッドパブリッシャーからのハートビートモニターであり、シュレッドは含まれません。 +リーダーシュレッドおよび高ステークのリトランスミットシュレッドは、`doublezero1` インターフェース上のポート `7733` で到着します。`doublezero0` インターフェースはユニキャストトラフィック用です。ポート `5765` はシュレッドパブリッシャーからのハートビートモニターであり、シュレッドは含まれません。 -シュレッドの消費において、**IP アドレス** はマルチキャストストリームを識別し、**ポート** はそのストリーム上の UDP サービスを識別します。 -以下のすべてのシュレッドストリームは `doublezero1` 上の UDP ポート `7733` を使用します。 +シュレッドの受信では、**IP アドレス**がマルチキャストストリームを識別し、**ポート**がそのストリーム上の UDP サービスを識別します。 +以下のすべてのシュレッドストリームは、`doublezero1` 上の UDP ポート `7733` を使用します。 -任意のマルチキャストグループの IP を確認するには: +任意のマルチキャストグループの IP は以下で確認できます: ```bash doublezero multicast group list @@ -262,69 +137,52 @@ doublezero multicast group list ## GRE トンネルヘッダー — XDP -!!! note "ネットワーク経由で配信されるシュレッドトラフィックは GRE カプセル化されています。既存のパイプライン(例:XDP ベースのデシュレッダー)にデータを入力する前に、GRE ヘッダーを除去する必要がある場合があります。" +!!! note "ネットワーク経由で配信されるシュレッドトラフィックは GRE カプセル化されています。既存のパイプライン(例:XDP ベースのデシュレッダー)にデータを投入する前に、GRE ヘッダーを除去する必要がある場合があります。" --- ## ツールとダッシュボード -### [Edge Scoreboard](https://data.doublezero.xyz/dz/shreds/scoreboard) +### [エッジスコアボード](https://data.doublezero.xyz/dz/shreds/scoreboard) -Scoreboard は、スロットレベルのデータを使用して、DoubleZero Edge と他のプロバイダー間のシュレッド配信速度をリアルタイムで比較するベンチマークです。このダッシュボードを使用して、Edge シュレッドの他のプロバイダーに対する勝率を確認できます。リーダーシュレッドのみの結果や、フルフィードの比較を表示できます。リージョン別にドリルダウンして、期待されるパフォーマンスを確認することもできます。 +スコアボードは、スロットレベルのデータを使用して DoubleZero Edge と他のプロバイダー間のシュレッド配信速度をベンチマークし、リアルタイムでパフォーマンスを比較します。このダッシュボードを使用して、他のプロバイダーに対する Edge シュレッドの勝率を確認できます。リーダーシュレッドのみの結果や、フルフィードの比較を表示できます。また、リージョン別にドリルダウンして期待されるパフォーマンスを確認することも可能です。 -### [Edge Publishers](https://data.doublezero.xyz/dz/shreds/publishers) +### [エッジパブリッシャー](https://data.doublezero.xyz/dz/shreds/publishers) -ダッシュボードの左上にある「Publishing Shreds」メトリックは、DoubleZero Edge 上でリーダーシュレッドを公開しているすべての Solana バリデーターのステークウェイトの合計パーセントを示します。ネットワーク上の各パブリッシャーの詳細を確認できます。 +ダッシュボード左上の「Publishing Shreds」メトリクスは、DoubleZero Edge でリーダーシュレッドを公開しているすべての Solana バリデーターの合計ステークウェイト割合を示しています。ネットワーク上の各パブリッシャーの詳細を確認できます。 -### [Edge Subscribers, Devices and Activity](https://data.doublezero.xyz/dz/shreds/subscribers) +### [エッジサブスクライバー、デバイス、アクティビティ](https://data.doublezero.xyz/dz/shreds/subscribers) -このページでクライアント IP を簡単に検索して、サブスクライブされたシートとステータスを確認できます。特定のシートサブスクリプションをクリックすると、支払い履歴とアクティビティを表示できます。利用可能なデバイスは [Devices](https://data.doublezero.xyz/dz/shreds/devices) ページで、最近のすべてのアクティビティは [Activity](https://data.doublezero.xyz/dz/shreds/activity) ページで確認できます。 +このページでクライアント IP を検索して、サブスクライブ済みのシートとステータスを確認できます。また、[デバイス](https://data.doublezero.xyz/dz/shreds/devices)ページで利用可能なデバイスを、[アクティビティ](https://data.doublezero.xyz/dz/shreds/activity)ページで最近のすべてのアクティビティを表示できます。 -### Data API ドキュメント +### データ API ドキュメント -データエンドポイントへのプログラムによるアクセスについては、API ドキュメントを参照してください:[https://data.doublezero.xyz/api/v1/docs](https://data.doublezero.xyz/api/v1/docs)。 +データエンドポイントへのプログラマティックアクセスについては、API ドキュメントをご参照ください:[https://data.doublezero.xyz/api/v1/docs](https://data.doublezero.xyz/api/v1/docs)。 --- ## トラブルシューティング -ここに記載されていない問題が発生した場合は、回避策を講じる前に既存のチャネルでお問い合わせください。チャネルがない場合は、[Discord](https://discord.gg/U2fEb4Jq) を検索し、必要に応じてチケットを作成してください。 - -### クライアントが最新であることを確認する: - -実行:`sudo apt update && sudo apt install doublezero-solana` - -### エスクロー残高不足 - -決済時にエスクロー残高がエポック価格を下回っている場合、シートは割り当てられず、トンネルは切断され、テニュアが失われます。次の決済前に `shreds pay` で追加入金してください。 - -### 支払い後にシートが割り当てられない - -- エポックの遅い時期に支払った可能性があります — シートは次のエポックから有効になります。 -- デバイス上のすべてのシートが、より高いテニュアを持つ既存ユーザーによって占有されている可能性があります。`shreds price` で空きシートを確認してください。 -- 決済前に引き出しを行った場合、シートは対象外でした。 - -### トンネルが確立されない +ここでカバーされていない問題が発生した場合は、回避策を講じる前に既存のチャネルからお問い合わせください。チャネルをお持ちでない場合は、[Discord](https://discord.gg/U2fEb4Jq) を検索し、必要に応じてチケットを作成してください。 -1. デーモンが実行中であることを確認:`sudo systemctl status doublezerod` -2. リコンサイラーが有効であることを確認:`doublezero enable` -3. ファイアウォールルールが設定されていることを確認(GRE、BGP、PIM、`doublezero1` 上のシュレッドトラフィック、`doublezero0` 上のポート 44880) -4. 現在のエポックでシートがアクティブであることを確認:`doublezero-solana shreds list` -5. 接続状況を確認:`doublezero status` +### クライアントが最新であることを確認: -デーモンのクライアント IP はホストのパブリック IP から自動検出されます — シートコマンドで使用した `--client-ip` と一致していることを確認してください。 +実行: `sudo apt update && sudo apt install doublezero-solana` -### エポック警告プロンプト +### トンネルが起動しない -CLI はエポックの残りが 10% 未満の場合に警告します。選択肢は以下の通りです: +1. デーモンが実行中であることを確認: `sudo systemctl status doublezerod` +2. ファイアウォールルールが設定されていることを確認(GRE、BGP、PIM、`doublezero1` 上のシュレッドトラフィック、`doublezero0` 上のポート 44880) +3. このシートの請求書が支払い済みで、開始日を過ぎていることを確認 +4. 割り当てられた秘密鍵を保持するマシンで `doublezero connect multicast --subscribe-feed solana-shreds-full` を実行 +5. 接続状態を確認: `doublezero status` -- シートをすぐに取得したい場合は `--accept-partial-epoch` で受け入れる -- フルエポック分のカバレッジを得るために次のエポックを待つ +アカウントページで使用した DoubleZero ID は、このホスト上のキーと一致する必要があります。 -### 「Amount is below the current price」 +### シートの期限切れまたは削除 -`pay` コマンドは、最低エポック価格(メトロ基本 + デバイスプレミアム)に対して金額を検証します。`shreds price` で現在の価格を確認し、金額を増やしてください。 +シートは月額制です。有効期限前に送付された請求書が未払いの場合、シートは削除され、トンネルは維持されません。 ### 「Multicast user already exists」 -別のパスを通じてすでにアクティブなサブスクリプションがあります。まず `doublezero disconnect` で切断してから、`shreds pay` を再試行してください。 \ No newline at end of file +別の経路で既にアクティブなサブスクリプションがあります。まず `doublezero disconnect` で切断してから、`doublezero connect multicast --subscribe-feed solana-shreds-full` を再試行してください。 \ No newline at end of file diff --git a/docs/Edge Subscriber Connection.ko.md b/docs/Edge Subscriber Connection.ko.md index de5ce82..005c00f 100644 --- a/docs/Edge Subscriber Connection.ko.md +++ b/docs/Edge Subscriber Connection.ko.md @@ -1,21 +1,24 @@ --- -description: DoubleZero 슈레드 피드를 수신하기 위한 엣지 구독자 설정, 클라이언트 설정 및 GRE, BGP, PIM, 슈레드 트래픽에 대한 방화벽 규칙을 포함합니다. +description: 엣지 구독자를 설정하여 DoubleZero 슈레드 피드를 수신하는 방법으로, 클라이언트 설정 및 GRE, BGP, PIM, 슈레드 트래픽에 대한 방화벽 규칙을 포함합니다. --- # 엣지 구독자 연결 -!!! warning "DoubleZero에 연결함으로써 [DoubleZero 이용 약관](https://doublezero.xyz/terms-protocol)에 동의합니다. 데이터는 내부 목적으로만 사용 가능하며 재전송할 수 없습니다(섹션 2(e) 참조)." +!!! warning "DoubleZero에 연결함으로써 [DoubleZero 이용약관](https://doublezero.xyz/terms-protocol)에 동의합니다. 데이터는 내부 목적으로만 사용 가능하며 재전송할 수 없습니다(섹션 2(e) 참조)." + +!!! warning "이미 CLI 구독을 사용 중이신가요?" + **CLI**를 통해 구독한 경우(`doublezero-solana shreds pay` / 에스크로 시트), 해당 명령어는 [CLI 구독 페이지](Edge Subscriber CLI.md)를 참조하세요. 해당 시스템은 **2026년 8월 30일에 폐지**될 예정입니다. 신규 구독은 이 페이지를 따르세요. ## 1단계: DoubleZero 설정 -### 1. 설정 완료 +### 설정 완료 [Solana CLI](https://docs.anza.xyz/cli/install)를 설치합니다. -[설정](setup.md) 지침에 따라 DoubleZero 클라이언트를 설치하고 구성합니다. +[설정](setup.md) 지침을 따라 DoubleZero 클라이언트를 설치하고 구성합니다. -이전에 DoubleZero를 설정한 적이 있다면, `sudo apt update && sudo apt install doublezero-solana` 명령으로 최신 Doublezero-Solana CLI가 설치되어 있는지 확인하세요. +이전에 DoubleZero를 설정한 적이 있다면, `sudo apt update && sudo apt install doublezero-solana` 명령어로 최신 Doublezero-Solana CLI가 설치되어 있는지 확인하세요. -### 2. 방화벽 구성 +### 방화벽 구성 GRE, BGP, PIM 및 슈레드 트래픽을 허용합니다. @@ -41,205 +44,77 @@ sudo ufw allow in on doublezero1 to any port 7733 proto udp sudo ufw allow in on doublezero0 to any port 44880 proto udp ``` -### 3. 리컨사일러 활성화 - -리컨사일러는 온체인 상태를 모니터링하고 좌석이 할당되면 자동으로 터널을 프로비저닝합니다. 기본적으로 활성화되어 있지 않습니다. - -```bash -doublezero enable -``` - --- -## 2단계: 지갑 설정 +## 2단계: 메트로 선택 -### 1. Solana 키페어 생성 - -`doublezero-solana` CLI는 온체인 좌석 관리를 위해 표준 Solana 키페어를 사용합니다. 키페어가 없는 경우: - -```bash -solana-keygen new -``` - -이 명령은 `~/.config/solana/id.json`에 파일을 생성합니다. 다른 경로를 사용하려면 `doublezero-solana` 명령에 `--keypair `를 전달하세요. - -지갑 주소를 출력합니다: - -```bash -solana address -``` - -### 2. 지갑에 자금 충전 - -지갑에 두 가지 토큰이 필요합니다: - -- **SOL** — Solana 트랜잭션 수수료용. 위에서 출력된 지갑 주소로 SOL을 전송합니다. -- **USDC** — 좌석 자금 충전용. CLI는 메인넷 USDC 민트(`EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v`)에 대한 지갑의 연관 토큰 계정(ATA)에서 자금을 인출합니다. - ---- - -## 3단계: 좌석 구매 - -### 1. 가장 가까운 장치 찾기 - -좌석을 구매하기 전에 머신에서 가장 낮은 지연 시간을 가진 장치를 확인합니다: +슈레드를 수신할 머신에서 가장 낮은 지연 시간의 위치를 확인합니다: ```bash doublezero latency ``` -가장 낮은 지연 시간 결과의 장치 코드를 기록해 두세요(예: ``). 좌석 구매 시 이 코드를 사용합니다. +가장 낮은 지연 시간 결과에서 메트로/도시를 확인합니다. 신청 양식에서 해당 도시를 선택하게 됩니다. 메트로가 어떻게 그룹화되어 있는지 [토폴로지 맵](https://data.malbeclabs.com/topology/map?overlays=metroClustering%2Cbandwidth)을 참조하세요. -### 2. 가격 확인 +### 가격 -자금을 투입하기 전에 현재 장치 가격을 확인합니다. 가격은 **기본 메트로 가격**과 **장치별 프리미엄** 두 가지 요소로 구성됩니다. [여기](https://data.doublezero.xyz/dz/shreds/devices)에서도 가격 및 가용성을 확인할 수 있습니다. +시트는 선택한 메트로에서 머신당 **월별**로 청구됩니다: -**모든 장치:** +| 메트로 | 가격 | +|--------|-------| +| 프랑크푸르트, 암스테르담 | $1,500 / 월 | +| 런던, 뉴욕, 싱가포르, 도쿄 | $900 / 월 | +| 기타 모든 위치 | $450 / 월 | -```bash -doublezero-solana shreds price -``` +--- -**특정 장치:** +## 3단계: 요청 제출 -```bash -doublezero-solana shreds price --device-code -doublezero-solana shreds price --device -``` +1. [https://doublezero.xyz/edge/subscribe](https://doublezero.xyz/edge/subscribe)로 이동합니다. +2. **Solana Shreds**를 선택합니다. +3. 필요한 **도시**(메트로)를 선택합니다. 위의 표와 `doublezero latency`를 참고하여 선택하세요. +4. 신청 양식을 완성합니다. -**메트로 내 모든 장치:** +[계정](https://doublezero.xyz/shreds/account) 페이지에서 각 피드 요청에 DoubleZero ID(기존 키 또는 새로 생성한 키)를 할당합니다. 일치하는 **프라이빗 키는 슈레드를 수신할 머신에 반드시 존재해야 합니다** — 해당 호스트로 이동할 수 없는 프라이빗 키의 퍼블릭 키는 할당하지 마세요. -```bash -doublezero-solana shreds price --metro -``` +**메트로**와 **퍼블릭 키**를 선택합니다. 신청 시점에 공용 IP를 바인딩하지 **않습니다**. 구독 기간 중에 **선택한 메트로 내에서** IP 간 액세스를 이동할 수 있습니다. -출력 열: `Device Code`, `Metro Code`, `Metro Name`, `Status`, `Settled Seats`, `Available Seats`, `Base Price (USDC)`, `Premium (USDC)`, `Epoch Price (USDC)`. +저희 팀이 신청서를 검토하고 적시에 연락드립니다(영업일 기준 **2일** 예상). -에포크 가격은 해당 장치의 좌석당 에포크당 총 비용(기본 + 프리미엄)입니다. 전체 공개 키를 표시하려면 `--wide`를, JSON 출력을 원하면 `--json`을 사용하세요. +--- -### 3. 좌석 구매 +## 4단계: 승인 후 연결 -단일 명령으로 좌석을 구매합니다. 이 명령은 좌석을 초기화하고, 에스크로에 자금을 충전하고, 할당을 요청합니다: +저희가 연락드리고, 인보이스를 받으시고, 해당 인보이스가 결제된 후, 승인된 각 머신에서 연결합니다: ```bash -doublezero-solana shreds pay \ - --device-code \ - --client-ip \ - --amount +doublezero connect multicast --subscribe-feed solana-shreds-full ``` -**매개변수:** - -| 플래그 | 설명 | -|------|-------------| -| `--device ` | 공개 키로 대상 장치 지정 (`--device-code`와 상호 배타적) | -| `--device-code ` | 사람이 읽을 수 있는 코드로 대상 장치 지정 (예: ``) | -| `--client-ip ` | 머신의 공용 IPv4 주소 | -| `--amount ` | 충전할 USDC (소수점 형식, 예: `100` = 100 USDC). 최소 에포크 가격을 충족해야 합니다. | -| `--source-token-account ` | 사용자 지정 USDC 소스 계정 (기본값은 지갑의 ATA) | -| `--accept-partial-epoch` | 에포크 잔여 경고 건너뛰기 (아래 참조) | -| `--fee-payer ` | SOL 트랜잭션 수수료에 다른 지갑 사용 | -| `--dry-run` | 실행하지 않고 트랜잭션 시뮬레이션 | -| `--with-compute-unit-price ` | 혼잡 시 빠른 포함을 위한 컴퓨트 유닛 가격 설정 | - -좌석이 할당되면 데몬이 자동으로 GRE 터널을 구축합니다. 다음 명령으로 연결을 확인하세요: +선택한 시작 날짜에 액세스가 활성화됩니다(일반적으로 동부 시간 오전 9:01). 다음 명령어로 터널을 확인합니다: ```bash doublezero status ``` -### 에포크 타이밍 - -좌석은 Solana 에포크(약 2일)별로 할당됩니다. 결제 시 현재 에포크의 10% 미만이 남아 있는 경우, CLI는 좌석이 즉시 할당되지만 현재 에포크의 나머지 기간만 적용된다는 경고를 표시합니다. 다음 에포크가 시작되면 에스크로에서 별도의 결제가 차감됩니다. - -!!! info "좌석을 잃지 않으려면 한 번에 1 에포크 이상의 자금을 충전하는 것이 좋습니다. [여기](https://explorer.solana.com/)에서 현재 에포크의 남은 시간을 확인할 수 있습니다." - -`--accept-partial-epoch`를 사용하여 이 경고를 우회할 수 있습니다. - -### 에스크로 자금 유지 - -!!! warning "정산 시점에 에스크로 잔액이 에포크 가격보다 낮으면 좌석이 할당되지 않고, 터널이 해제되며, 누적된 재직 기간(tenure)을 잃게 됩니다. 재직 기간은 향후 에포크에서의 우선순위를 결정하므로, 잃게 되면 신규 참여자로서 다시 경쟁해야 합니다." - -이 계정에 여러 에포크분의 자금을 초과 충전할 수 있습니다. 각 정산 시 에스크로에서 1 에포크 가격이 차감되며, 나머지 잔액은 이월됩니다. 예를 들어, 에포크당 가격의 5배를 충전하면 재충전 없이 최대 5 에포크 동안 좌석이 유지됩니다. - -에스크로를 추가 충전하려면 언제든지 `shreds pay`를 다시 실행하세요: - -```bash -doublezero-solana shreds pay \ - --device-code \ - --client-ip \ - --amount 500 -``` - -`Target_IP`는 슈레드를 수신할 머신의 공용 IPv4 주소여야 합니다. 대상 머신에서 `curl -4 ifconfig.me`와 같은 명령을 실행하여 확인할 수 있습니다. - -### 좌석 모니터링 - -이 섹션에서는 CLI를 통해 좌석을 확인하는 방법을 설명합니다. [https://data.doublezero.xyz/api/v1/docs](https://data.doublezero.xyz/api/v1/docs)를 사용하여 좌석을 모니터링하고 에스크로 계정 관리를 지원받을 수도 있습니다. - -활성 좌석 및 에스크로 잔액을 확인합니다: - -**모든 좌석:** - -```bash -doublezero-solana shreds list -``` - -**장치별 필터:** - -```bash -doublezero-solana shreds list --device-code -``` - -**클라이언트 IP별 필터:** - -```bash -doublezero-solana shreds list --client-ip -``` - -**지갑별 필터:** - -```bash -doublezero-solana shreds list --withdraw-authority -``` - -출력 열: `Device Code`, `Client IP`, `Tenure`, `Balance (USDC)`, `Est. Epochs Paid`. - -"Est. Epochs Paid" 열은 현재 가격 기준으로 현재 잔액이 몇 에포크를 커버하는지 보여줍니다. 가격이 변경되면 이 추정치도 조정됩니다. - -### 자금 인출 - -에스크로를 닫고 남은 USDC를 지갑으로 환불합니다: - -```bash -doublezero-solana shreds withdraw \ - --device-code \ - --client-ip -``` - -다른 명령과 마찬가지로 `--device ` 또는 `--device-code `로 장치를 식별할 수 있습니다. +--- -환불을 다른 토큰 계정으로 보내려면: +## 청구 -```bash -doublezero-solana shreds withdraw \ - --device-code \ - --client-ip \ - --refund-token-account -``` +시트는 **월별**로 청구됩니다. 시트 만료 날짜를 주의하세요. -!!! warning "인출하면 좌석과 누적된 재직 기간(tenure)을 잃게 됩니다." +시트 만료 며칠 전에 인보이스가 발송됩니다. **미결제 시 시트가 제거됩니다.** --- ## 슈레드 주소 (IP vs 포트) -리더 슈레드와 고스테이크 재전송 슈레드는 `doublezero1` 인터페이스를 통해 포트 `7733`으로 도착합니다. `doublezero0` 인터페이스는 유니캐스트 트래픽용입니다. 포트 `5765`는 슈레드 퍼블리셔의 하트비트 모니터이며, 슈레드를 포함하지 않습니다. +리더 슈레드와 높은 스테이크의 재전송 슈레드는 `doublezero1` 인터페이스를 통해 포트 `7733`으로 도착합니다. `doublezero0` 인터페이스는 유니캐스트 트래픽용입니다. 포트 `5765`는 슈레드 퍼블리셔의 하트비트 모니터로, 슈레드는 포함되지 않습니다. -슈레드 소비의 경우, **IP 주소**는 멀티캐스트 스트림을 식별하고 **포트**는 해당 스트림의 UDP 서비스를 식별합니다. +슈레드 소비 시, **IP 주소**는 멀티캐스트 스트림을 식별하고 **포트**는 해당 스트림의 UDP 서비스를 식별합니다. 아래의 모든 슈레드 스트림은 `doublezero1`에서 UDP 포트 `7733`을 사용합니다. -다음 명령으로 멀티캐스트 그룹의 IP를 확인할 수 있습니다: +다음 명령어로 멀티캐스트 그룹의 IP를 확인할 수 있습니다: ```bash doublezero multicast group list @@ -262,7 +137,7 @@ doublezero multicast group list ## GRE 터널 헤더 — XDP -!!! note "네트워크를 통해 전달되는 슈레드 트래픽은 GRE 캡슐화되어 있습니다. 기존 파이프라인(예: XDP 기반 디슈레더)에 데이터를 전달하기 전에 GRE 헤더를 제거해야 할 수 있습니다." +!!! note "네트워크를 통해 전달되는 슈레드 트래픽은 GRE로 캡슐화되어 있습니다. 기존 파이프라인(예: XDP 기반 디슈레더)에 데이터를 입력하기 전에 GRE 헤더를 제거해야 할 수 있습니다." --- @@ -270,61 +145,44 @@ doublezero multicast group list ### [엣지 스코어보드](https://data.doublezero.xyz/dz/shreds/scoreboard) -스코어보드는 슬롯 수준 데이터를 사용하여 DoubleZero Edge와 다른 제공업체 간의 슈레드 전달 속도를 실시간으로 비교 벤치마킹합니다. 이 대시보드를 사용하여 다른 제공업체 대비 Edge 슈레드 승률을 확인할 수 있습니다. 리더 슈레드만의 결과와 전체 피드 비교를 모두 볼 수 있습니다. 또한 지역별로 드릴다운하여 예상 성능을 확인할 수 있습니다. +스코어보드는 슬롯 레벨 데이터를 사용하여 DoubleZero Edge와 기타 제공업체 간의 슈레드 전달 속도를 실시간으로 비교하여 벤치마킹합니다. 이 대시보드를 사용하여 다른 제공업체 대비 엣지 슈레드 승률을 확인하세요. 리더 슈레드만의 결과와 전체 피드 비교를 모두 볼 수 있습니다. 또한 지역별로 세부적으로 드릴다운하여 예상 성능을 확인할 수 있습니다. ### [엣지 퍼블리셔](https://data.doublezero.xyz/dz/shreds/publishers) -대시보드 좌측 상단의 "Publishing Shreds" 지표는 DoubleZero Edge에서 리더 슈레드를 퍼블리싱하는 모든 Solana 밸리데이터의 총 스테이크 가중치 비율을 보여줍니다. 네트워크의 각 퍼블리셔에 대한 세부 정보를 확인할 수 있습니다. +대시보드 왼쪽 상단의 "Publishing Shreds" 지표는 DoubleZero Edge에서 리더 슈레드를 발행하는 모든 Solana 검증자의 총 스테이크 가중치 비율을 보여줍니다. 네트워크의 각 퍼블리셔에 대한 세부 정보를 확인할 수 있습니다. -### [엣지 구독자, 장치 및 활동](https://data.doublezero.xyz/dz/shreds/subscribers) +### [엣지 구독자, 디바이스 및 활동](https://data.doublezero.xyz/dz/shreds/subscribers) -이 페이지에서 구독 좌석에 대한 클라이언트 IP를 쉽게 검색하고 상태를 확인할 수 있습니다. 특정 좌석 구독을 클릭하여 결제 내역 및 활동을 확인할 수 있습니다. [장치](https://data.doublezero.xyz/dz/shreds/devices) 페이지에서 사용 가능한 장치를 확인하고, [활동](https://data.doublezero.xyz/dz/shreds/activity) 페이지에서 최근 모든 활동을 확인할 수도 있습니다. +이 페이지에서 클라이언트 IP를 검색하여 구독 중인 시트 및 상태를 확인할 수 있습니다. [디바이스](https://data.doublezero.xyz/dz/shreds/devices) 페이지에서 사용 가능한 디바이스를 보고, [활동](https://data.doublezero.xyz/dz/shreds/activity) 페이지에서 모든 최근 활동을 확인할 수도 있습니다. -### 데이터 API 문서 +### Data API 문서 -데이터 엔드포인트에 프로그래밍 방식으로 접근하려면 API 문서를 참조하세요: [https://data.doublezero.xyz/api/v1/docs](https://data.doublezero.xyz/api/v1/docs). +프로그래밍 방식으로 데이터 엔드포인트에 접근하려면 API 문서를 참조하세요: [https://data.doublezero.xyz/api/v1/docs](https://data.doublezero.xyz/api/v1/docs). --- ## 문제 해결 -여기에서 다루지 않은 문제가 발생하면, 해결을 시도하기 전에 기존 채널을 통해 문의해 주세요. 채널이 없는 경우 [Discord](https://discord.gg/U2fEb4Jq)에서 검색하고 필요한 경우 티켓을 열어 주세요. +여기에서 다루지 않은 문제가 발생하면, 우회 방법을 시도하기 전에 기존 채널을 통해 연락해 주세요. 채널이 없는 경우 [Discord](https://discord.gg/U2fEb4Jq)를 검색하고 필요시 티켓을 열어주세요. ### 클라이언트가 최신 버전인지 확인: 실행: `sudo apt update && sudo apt install doublezero-solana` -### 에스크로 잔액 부족 - -정산 시점에 에스크로 잔액이 에포크 가격보다 낮으면 좌석이 할당되지 않고, 터널이 해제되며, 재직 기간이 상실됩니다. 다음 정산 전에 `shreds pay`로 추가 충전하세요. - -### 결제 후 좌석이 할당되지 않음 - -- 에포크 후반에 결제했을 수 있습니다 — 좌석은 다음 에포크에 적용됩니다. -- 장치의 모든 좌석이 재직 기간이 더 긴 기존 사용자에게 점유되었을 수 있습니다. `shreds price`로 사용 가능한 좌석을 확인하세요. -- 정산 전에 인출한 경우 좌석이 자격을 갖추지 못합니다. - -### 터널이 연결되지 않음 +### 터널이 연결되지 않는 경우 1. 데몬이 실행 중인지 확인: `sudo systemctl status doublezerod` -2. 리컨사일러가 활성화되어 있는지 확인: `doublezero enable` -3. 방화벽 규칙이 적용되어 있는지 확인 (GRE, BGP, PIM, `doublezero1`의 슈레드 트래픽, `doublezero0`의 포트 44880) -4. 현재 에포크에 좌석이 활성 상태인지 확인: `doublezero-solana shreds list` +2. 방화벽 규칙이 적용되어 있는지 확인 (GRE, BGP, PIM, `doublezero1`의 슈레드 트래픽, `doublezero0`의 포트 44880) +3. 해당 시트의 인보이스가 결제되었고 시작 날짜가 지났는지 확인 +4. 할당된 프라이빗 키가 있는 머신에서 `doublezero connect multicast --subscribe-feed solana-shreds-full` 실행 5. 연결 상태 확인: `doublezero status` -데몬의 클라이언트 IP는 호스트의 공용 IP에서 자동으로 검색됩니다 — 좌석 명령에서 사용한 `--client-ip`와 일치하는지 확인하세요. - -### 에포크 경고 프롬프트 - -에포크의 10% 미만이 남아 있을 때 CLI가 경고합니다. 선택 사항: - -- 좌석을 즉시 원하면 `--accept-partial-epoch`로 수락 -- 전체 에포크를 적용받으려면 다음 에포크까지 대기 +계정 페이지에서 사용한 DoubleZero ID는 이 호스트의 키와 일치해야 합니다. -### "금액이 현재 가격보다 낮습니다" +### 시트 만료 또는 제거 -`pay` 명령은 최소 에포크 가격(메트로 기본 + 장치 프리미엄)에 대해 금액을 검증합니다. `shreds price`로 현재 가격을 확인하고 금액을 높이세요. +시트는 월별입니다. 만료 전에 발송된 인보이스가 결제되지 않으면 시트가 제거되고 터널이 유지되지 않습니다. -### "멀티캐스트 사용자가 이미 존재합니다" +### "Multicast user already exists" -다른 경로를 통해 이미 활성 구독이 있습니다. 먼저 `doublezero disconnect`로 연결을 해제한 후 `shreds pay`를 다시 시도하세요. \ No newline at end of file +다른 경로를 통해 이미 활성 구독이 있습니다. 먼저 `doublezero disconnect`로 연결을 해제한 후 `doublezero connect multicast --subscribe-feed solana-shreds-full`을 다시 시도하세요. \ No newline at end of file diff --git a/docs/Edge Subscriber Connection.md b/docs/Edge Subscriber Connection.md index d0885d3..e04c841 100644 --- a/docs/Edge Subscriber Connection.md +++ b/docs/Edge Subscriber Connection.md @@ -5,9 +5,12 @@ description: Set up an edge subscriber to receive DoubleZero shred feeds, includ # Edge Subscriber Connection !!! warning "By connecting to DoubleZero I agree to the [DoubleZero Terms of Use](https://doublezero.xyz/terms-protocol). Please note that the data is for your internal purposes only and may not be retransmitted (see Section 2(e))." +!!! warning "Already on the CLI subscription?" + If you subscribed through the **CLI** (`doublezero-solana shreds pay` / escrow seats), use the [CLI subscription page](Edge Subscriber CLI.md) for those commands. That system is being **decommissioned on August 30, 2026**. New subscriptions follow this page. + ## Step 1: DoubleZero Setup -### 1. Complete Setup +### Complete Setup Install the [Solana CLI](https://docs.anza.xyz/cli/install). @@ -15,7 +18,7 @@ Follow the [setup](setup.md) instructions to install and configure the DoubleZer If you have previously set up DoubleZero, ensure you have the latest Doublezero-Solana CLI with `sudo apt update && sudo apt install doublezero-solana` -### 2. Configure the Firewall +### Configure the Firewall Allow GRE, BGP, PIM, and shred traffic. @@ -41,194 +44,66 @@ sudo ufw allow in on doublezero1 to any port 7733 proto udp sudo ufw allow in on doublezero0 to any port 44880 proto udp ``` -### 3. Enable the Reconciler - -The reconciler monitors onchain state and automatically provisions tunnels when your seat is allocated. It is not enabled by default. - -```bash -doublezero enable -``` - --- -## Step 2: Set Up Your Wallet +## Step 2: Choose a metro -### 1. Create a Solana Keypair - -The `doublezero-solana` CLI uses a standard Solana keypair for onchain seat management. If you don't have one: - -```bash -solana-keygen new -``` - -This writes to `~/.config/solana/id.json`. To use a different path, pass `--keypair ` to any `doublezero-solana` command. - -Print your wallet address: - -```bash -solana address -``` - -### 2. Fund Your Wallet - -Your wallet needs two tokens: - -- **SOL** — for Solana transaction fees. Transfer SOL to the wallet address printed above. -- **USDC** — for seat funding. The CLI pulls from your wallet's Associated Token Account (ATA) for the mainnet USDC mint (`EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v`). - ---- - -## Step 3: Buy a Seat - -### 1. Find Your Nearest Device - -Before buying a seat, identify the device with the lowest latency from your machine: +Identify the lowest-latency location from the machine that will receive shreds: ```bash doublezero latency ``` -Note the device code from the lowest-latency result (e.g., ``). You'll use this when purchasing a seat. +Note the metro / city from the lowest-latency result. You will select that city on the application form. See the [topology map](https://data.malbeclabs.com/topology/map?overlays=metroClustering%2Cbandwidth) for how metros are grouped. -### 2. Check Pricing +### Pricing -View current device pricing before committing funds. Pricing has two components: a **base metro price** and a **per-device premium**. You can also view pricing and availability [here](https://data.doublezero.xyz/dz/shreds/devices). +Seats are billed **per month**, per machine, in the metro you select: -**All devices:** +| Metros | Price | +|--------|-------| +| Frankfurt, Amsterdam | $1,500 / month | +| London, New York, Singapore, Tokyo | $900 / month | +| All other locations | $450 / month | -```bash -doublezero-solana shreds price -``` +--- -**Specific device:** +## Step 3: Submit Request -```bash -doublezero-solana shreds price --device-code -doublezero-solana shreds price --device -``` +1. Go to [https://doublezero.xyz/edge/subscribe](https://doublezero.xyz/edge/subscribe). +2. Select **Solana Shreds**. +3. Select the **city** (metro) you need. Use the table above and `doublezero latency` to choose. +4. Finish the application form. -**All devices in a metro:** +You will assign a DoubleZero ID (existing key, or generate a new one) to each feed request on the [accounts](https://doublezero.xyz/shreds/account) page. The matching **private key must be present on the machine that will receive shreds** — do not assign a pubkey whose private key you cannot move to that host. -```bash -doublezero-solana shreds price --metro -``` +You pick a **metro** and a **pubkey**. You do **not** bind a public IP at application time. During the subscription you can move access between IPs **within the chosen metros**. -Output columns: `Device Code`, `Metro Code`, `Metro Name`, `Status`, `Settled Seats`, `Available Seats`, `Base Price (USDC)`, `Premium (USDC)`, `Epoch Price (USDC)`. +Our team reviews applications and contacts you in a timely manner (expect **2 business days**). -The epoch price is the total cost per epoch for a seat on that device (base + premium). Use `--wide` to show full pubkeys, or `--json` for JSON output. +--- -### 3. Buy a Seat +## Step 4: Connect after approval -Purchase a seat with a single command. This initializes your seat, funds the escrow, and requests allocation: +After we contact you, you receive an invoice, and that invoice is paid, connect on each approved machine: ```bash -doublezero-solana shreds pay \ - --device-code \ - --client-ip \ - --amount +doublezero connect multicast --subscribe-feed solana-shreds-full ``` -**Parameters:** - -| Flag | Description | -|------|-------------| -| `--device ` | Target device by public key (mutually exclusive with `--device-code`) | -| `--device-code ` | Target device by human-readable code (e.g., ``) | -| `--client-ip ` | Your machine's public IPv4 address | -| `--amount ` | USDC to fund (decimal format, e.g. `100` = 100 USDC). Must meet the minimum epoch price. | -| `--source-token-account ` | Custom USDC source account (defaults to your wallet's ATA) | -| `--accept-partial-epoch` | Skip the epoch-remaining warning (see below) | -| `--fee-payer ` | Use a different wallet for SOL transaction fees | -| `--dry-run` | Simulate the transaction without executing it | -| `--with-compute-unit-price ` | Set a compute unit price for faster inclusion during congestion | - -Once your seat is allocated, the daemon establishes the GRE tunnel automatically. Check your connection with: +Access is enabled on your chosen start date, after access is provisioned you may check the tunnel status with: ```bash doublezero status ``` -### Epoch Timing - -Seats are allocated per Solana epoch (~2 days). If less than 10% of the current epoch remains when you pay, the CLI warns that your seat will be allocated immediately but only covers the remainder of the current epoch. A separate payment will be deducted from your escrow when the next epoch begins. - -!!! info "It is advisable to fund for more than 1 epoch at a time so you don't lose your seat. You can check the current time left in an epoch [here](https://explorer.solana.com/)." - -You can bypass this warning with `--accept-partial-epoch`. - -### Keep Your Escrow Funded - -!!! warning "If your escrow balance is below the epoch price at settlement, your seat will not be allocated, the tunnel will be torn down, and you lose your accumulated tenure. Tenure determines your priority for future epochs — losing it means you compete as a newcomer again." - -You may overfund this account to fund multiple epochs. Each settlement deducts one epoch's price from your escrow, and the remaining balance carries forward. For example, funding 5x the per-epoch price keeps your seat active for up to 5 epochs without re-funding. - -To top up your escrow, run `shreds pay` again at any time: - -```bash -doublezero-solana shreds pay \ - --device-code \ - --client-ip \ - --amount 500 -``` - -Note that the `Target_IP` must be a public ipv4 address on the machine which will be receiving shreds. You can find this by running a command like `curl -4 ifconfig.me` on the target machine. - -### Monitor Seats - -This section details how to view seats via the CLI. You may also use [https://data.doublezero.xyz/api/v1/docs](https://data.doublezero.xyz/api/v1/docs) to monitor seats, and assist in managing your escrow account. - -View your active seats and escrow balances: - -**All your seats:** - -```bash -doublezero-solana shreds list -``` - -**Filter by device:** - -```bash -doublezero-solana shreds list --device-code -``` - -**Filter by client IP:** - -```bash -doublezero-solana shreds list --client-ip -``` - -**Filter by wallet:** - -```bash -doublezero-solana shreds list --withdraw-authority -``` - -Output columns: `Device Code`, `Client IP`, `Tenure`, `Balance (USDC)`, `Est. Epochs Paid`. - -The "Est. Epochs Paid" column shows how many epochs your current balance covers at current pricing. If prices change, this estimate adjusts. - -### Withdraw Seat & Escrow - -This command releases your seat and closes the escrow. You receive a prorated refund for the unused portion of the current epoch, plus any remaining escrow balance, returned to your wallet. You lose the seat and any accumulated tenure. - -```bash -doublezero-solana shreds withdraw \ - --device-code \ - --client-ip -``` - -You can identify the device by either `--device ` or `--device-code `, same as other commands. +--- -To send the USDC refund to a different token account: +## Billing -```bash -doublezero-solana shreds withdraw \ - --device-code \ - --client-ip \ - --refund-token-account -``` +Seats are charged **monthly**. Watch the seat expiration date. -!!! warning "This cannot be undone. After withdraw, your seat is gone and tenure resets." +You will be invoiced a few days before the seat expires. **Not paying leads to removal of the seat.** --- @@ -278,7 +153,7 @@ The "Publishing Shreds" metric at the top left of the dashboard shows the total ### [Edge Subscribers, Devices and Activity](https://data.doublezero.xyz/dz/shreds/subscribers) -You can easily search your Client IP on this page for subscribed seats and view status. Click through specific seat subscriptions to view payment history and activity. You can also view available devices on the [Devices](https://data.doublezero.xyz/dz/shreds/devices) page and all recent activity on the [Activity](https://data.doublezero.xyz/dz/shreds/activity) page. +You can search your Client IP on this page for subscribed seats and view status. You can also view available devices on the [Devices](https://data.doublezero.xyz/dz/shreds/devices) page and all recent activity on the [Activity](https://data.doublezero.xyz/dz/shreds/activity) page. ### Data API Docs @@ -294,37 +169,20 @@ If you run into an issue not covered here, please reach out over your existing c Run: `sudo apt update && sudo apt install doublezero-solana` -### Insufficient escrow balance - -If your escrow balance is below the epoch price at settlement, the seat is not allocated, the tunnel is torn down, and tenure is lost. Top up with `shreds pay` before the next settlement. - -### Seat not allocated after paying - -- You may have paid late in the epoch — the seat takes effect next epoch. -- All seats on the device may be taken by higher-tenure incumbents. Check available seats with `shreds price`. -- If you withdrew before settlement, the seat was not eligible. - ### Tunnel not coming up 1. Verify the daemon is running: `sudo systemctl status doublezerod` -2. Verify the reconciler is enabled: `doublezero enable` -3. Verify firewall rules are in place (GRE, BGP, PIM, shred traffic on `doublezero1`, port 44880 on `doublezero0`) -4. Verify your seat is active for the current epoch: `doublezero-solana shreds list` +2. Verify firewall rules are in place (GRE, BGP, PIM, shred traffic on `doublezero1`, port 44880 on `doublezero0`) +3. Confirm the invoice for this seat is paid and the start date has passed +4. Run `doublezero connect multicast --subscribe-feed solana-shreds-full` on the machine that holds the assigned private key 5. Check your connection status: `doublezero status` -The daemon's client IP is auto-discovered from your host's public IP — verify it matches the `--client-ip` used in your seat commands. - -### Epoch warning prompt - -The CLI warns when less than 10% of the epoch remains. Your options: - -- Accept with `--accept-partial-epoch` if you want the seat immediately -- Wait for the next epoch to get a full epoch's coverage +The DoubleZero ID used on the accounts page must match the key on this host. -### "Amount is below the current price" +### Seat expired or removed -The `pay` command validates your amount against the minimum epoch price (metro base + device premium). Use `shreds price` to check current pricing and increase your amount. +Seats are monthly. If the invoice sent before expiry is not paid, the seat is removed and the tunnel will not stay up. ### "Multicast user already exists" -You already have an active subscription through a different path. Disconnect first with `doublezero disconnect`, then retry `shreds pay`. +You already have an active subscription through a different path. Disconnect first with `doublezero disconnect`, then retry `doublezero connect multicast --subscribe-feed solana-shreds-full`. diff --git a/docs/Edge Subscriber Connection.pt.md b/docs/Edge Subscriber Connection.pt.md index 7eec8d1..6f86ba4 100644 --- a/docs/Edge Subscriber Connection.pt.md +++ b/docs/Edge Subscriber Connection.pt.md @@ -1,21 +1,24 @@ --- -description: Configure um assinante de borda para receber feeds de shred do DoubleZero, incluindo configuração do cliente e regras de firewall para GRE, BGP, PIM e tráfego de shreds. +description: Configure um assinante edge para receber feeds de shreds do DoubleZero, incluindo configuração do cliente e regras de firewall para GRE, BGP, PIM e tráfego de shreds. --- -# Conexão do Assinante de Borda -!!! warning "Ao conectar-se ao DoubleZero, eu concordo com os [Termos de Uso do DoubleZero](https://doublezero.xyz/terms-protocol). Por favor, note que os dados são apenas para seus propósitos internos e não podem ser retransmitidos (veja a Seção 2(e))." +# Conexão de Assinante Edge +!!! warning "Ao conectar-se ao DoubleZero, eu concordo com os [Termos de Uso do DoubleZero](https://doublezero.xyz/terms-protocol). Observe que os dados são apenas para seus fins internos e não podem ser retransmitidos (veja a Seção 2(e))." + +!!! warning "Já está na assinatura via CLI?" + Se você se inscreveu através da **CLI** (`doublezero-solana shreds pay` / escrow seats), use a [página de assinatura via CLI](Edge Subscriber CLI.md) para esses comandos. Esse sistema está sendo **descontinuado em 30 de agosto de 2026**. Novas assinaturas seguem esta página. ## Passo 1: Configuração do DoubleZero -### 1. Concluir a Configuração +### Configuração Completa -Instale o [Solana CLI](https://docs.anza.xyz/cli/install). +Instale a [Solana CLI](https://docs.anza.xyz/cli/install). Siga as instruções de [configuração](setup.md) para instalar e configurar o cliente DoubleZero. -Se você já configurou o DoubleZero anteriormente, certifique-se de ter o CLI Doublezero-Solana mais recente com `sudo apt update && sudo apt install doublezero-solana` +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 +### Configure o Firewall Permita tráfego GRE, BGP, PIM e de shreds. @@ -41,200 +44,72 @@ sudo ufw allow in on doublezero1 to any port 7733 proto udp sudo ufw allow in on doublezero0 to any port 44880 proto udp ``` -### 3. Habilitar o Reconciliador - -O reconciliador monitora o estado onchain e provisiona automaticamente túneis quando seu assento é alocado. Ele não é habilitado por padrão. - -```bash -doublezero enable -``` - --- -## Passo 2: Configurar Sua Carteira +## Passo 2: Escolha um metro -### 1. Criar um Par de Chaves Solana - -O CLI `doublezero-solana` usa um par de chaves Solana padrão para gerenciamento de assentos onchain. Se você não tiver um: - -```bash -solana-keygen new -``` - -Isso grava em `~/.config/solana/id.json`. Para usar um caminho diferente, passe `--keypair ` para qualquer comando `doublezero-solana`. - -Imprima o endereço da sua carteira: - -```bash -solana address -``` - -### 2. Financiar Sua Carteira - -Sua carteira precisa de dois tokens: - -- **SOL** — para taxas de transação Solana. Transfira SOL para o endereço da carteira impresso acima. -- **USDC** — para financiamento de assentos. O CLI retira da Conta de Token Associada (ATA) da sua carteira para o mint USDC da mainnet (`EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v`). - ---- - -## Passo 3: Comprar um Assento - -### 1. Encontrar o Dispositivo Mais Próximo - -Antes de comprar um assento, identifique o dispositivo com a menor latência a partir da sua máquina: +Identifique a localização com menor latência a partir da máquina que receberá os shreds: ```bash doublezero latency ``` -Anote o código do dispositivo do resultado com menor latência (ex.: ``). Você usará isso ao comprar um assento. +Anote o metro / cidade do resultado com menor latência. Você selecionará essa cidade no formulário de inscrição. Veja o [mapa de topologia](https://data.malbeclabs.com/topology/map?overlays=metroClustering%2Cbandwidth) para ver como os metros são agrupados. -### 2. Verificar Preços +### Preços -Visualize os preços atuais do dispositivo antes de comprometer fundos. Os preços têm dois componentes: um **preço base do metro** e um **prêmio por dispositivo**. Você também pode visualizar preços e disponibilidade [aqui](https://data.doublezero.xyz/dz/shreds/devices). +Os assentos são cobrados **por mês**, por máquina, no metro que você selecionar: -**Todos os dispositivos:** +| Metros | Preço | +|--------|-------| +| Frankfurt, Amsterdã | $1.500 / mês | +| Londres, Nova York, Singapura, Tóquio | $900 / mês | +| Todas as outras localizações | $450 / mês | -```bash -doublezero-solana shreds price -``` +--- -**Dispositivo específico:** +## Passo 3: Envie a Solicitação -```bash -doublezero-solana shreds price --device-code -doublezero-solana shreds price --device -``` +1. Acesse [https://doublezero.xyz/edge/subscribe](https://doublezero.xyz/edge/subscribe). +2. Selecione **Solana Shreds**. +3. Selecione a **cidade** (metro) que você precisa. Use a tabela acima e `doublezero latency` para escolher. +4. Preencha o formulário de inscrição. -**Todos os dispositivos em um metro:** +Você atribuirá um DoubleZero ID (chave existente ou gere uma nova) a cada solicitação de feed na página de [contas](https://doublezero.xyz/shreds/account). A **chave privada correspondente deve estar presente na máquina que receberá os shreds** — não atribua uma pubkey cuja chave privada você não possa mover para esse host. -```bash -doublezero-solana shreds price --metro -``` +Você escolhe um **metro** e uma **pubkey**. Você **não** vincula um IP público no momento da inscrição. Durante a assinatura, você pode mover o acesso entre IPs **dentro dos metros escolhidos**. -Colunas de saída: `Device Code`, `Metro Code`, `Metro Name`, `Status`, `Settled Seats`, `Available Seats`, `Base Price (USDC)`, `Premium (USDC)`, `Epoch Price (USDC)`. +Nossa equipe analisa as inscrições e entra em contato em tempo hábil (espere **2 dias úteis**). -O preço da epoch é o custo total por epoch para um assento naquele dispositivo (base + prêmio). Use `--wide` para mostrar chaves públicas completas, ou `--json` para saída em JSON. +--- -### 3. Comprar um Assento +## Passo 4: Conecte após a aprovação -Compre um assento com um único comando. Isso inicializa seu assento, financia o escrow e solicita a alocação: +Depois que entrarmos em contato com você, você receberá uma fatura, e após o pagamento dessa fatura, conecte em cada máquina aprovada: ```bash -doublezero-solana shreds pay \ - --device-code \ - --client-ip \ - --amount +doublezero connect multicast --subscribe-feed solana-shreds-full ``` -**Parâmetros:** - -| Flag | Descrição | -|------|-----------| -| `--device ` | Dispositivo alvo por chave pública (mutuamente exclusivo com `--device-code`) | -| `--device-code ` | Dispositivo alvo por código legível (ex.: ``) | -| `--client-ip ` | Endereço IPv4 público da sua máquina | -| `--amount ` | USDC para financiar (formato decimal, ex.: `100` = 100 USDC). Deve atender ao preço mínimo da epoch. | -| `--source-token-account ` | Conta de origem USDC personalizada (padrão é a ATA da sua carteira) | -| `--accept-partial-epoch` | Pular o aviso de epoch restante (veja abaixo) | -| `--fee-payer ` | Usar uma carteira diferente para taxas de transação SOL | -| `--dry-run` | Simular a transação sem executá-la | -| `--with-compute-unit-price ` | Definir um preço de unidade de computação para inclusão mais rápida durante congestionamento | - -Uma vez que seu assento é alocado, o daemon estabelece o túnel GRE automaticamente. Verifique sua conexão com: +O acesso é habilitado na data de início escolhida (tipicamente 9:01 AM ET). Verifique o túnel com: ```bash doublezero status ``` -### Timing da Epoch - -Os assentos são alocados por epoch Solana (~2 dias). Se menos de 10% da epoch atual restar quando você pagar, o CLI avisa que seu assento será alocado imediatamente, mas cobre apenas o restante da epoch atual. Um pagamento separado será deduzido do seu escrow quando a próxima epoch começar. - -!!! info "É aconselhável financiar mais de 1 epoch por vez para não perder seu assento. Você pode verificar o tempo restante em uma epoch [aqui](https://explorer.solana.com/)." - -Você pode ignorar este aviso com `--accept-partial-epoch`. - -### Mantenha Seu Escrow Financiado - -!!! warning "Se o saldo do seu escrow estiver abaixo do preço da epoch na liquidação, seu assento não será alocado, o túnel será encerrado e você perderá sua permanência acumulada. A permanência determina sua prioridade para epochs futuras — perdê-la significa que você compete como um novato novamente." - -Você pode sobrefinanciar esta conta para financiar múltiplas epochs. Cada liquidação deduz o preço de uma epoch do seu escrow, e o saldo restante é transferido. Por exemplo, financiar 5x o preço por epoch mantém seu assento ativo por até 5 epochs sem refinanciamento. - -Para reabastecer seu escrow, execute `shreds pay` novamente a qualquer momento: - -```bash -doublezero-solana shreds pay \ - --device-code \ - --client-ip \ - --amount 500 -``` - -Note que o `Target_IP` deve ser um endereço IPv4 público na máquina que receberá os shreds. Você pode encontrá-lo executando um comando como `curl -4 ifconfig.me` na máquina de destino. - -### Monitorar Assentos - -Esta seção detalha como visualizar assentos via CLI. Você também pode usar [https://data.doublezero.xyz/api/v1/docs](https://data.doublezero.xyz/api/v1/docs) para monitorar assentos e auxiliar no gerenciamento da sua conta escrow. - -Visualize seus assentos ativos e saldos de escrow: - -**Todos os seus assentos:** - -```bash -doublezero-solana shreds list -``` - -**Filtrar por dispositivo:** - -```bash -doublezero-solana shreds list --device-code -``` - -**Filtrar por IP do cliente:** - -```bash -doublezero-solana shreds list --client-ip -``` - -**Filtrar por carteira:** - -```bash -doublezero-solana shreds list --withdraw-authority -``` - -Colunas de saída: `Device Code`, `Client IP`, `Tenure`, `Balance (USDC)`, `Est. Epochs Paid`. - -A coluna "Est. Epochs Paid" mostra quantas epochs seu saldo atual cobre com os preços atuais. Se os preços mudarem, esta estimativa se ajusta. - -### Sacar Fundos - -Feche seu escrow e reembolse o USDC restante para sua carteira: - -```bash -doublezero-solana shreds withdraw \ - --device-code \ - --client-ip -``` - -Você pode identificar o dispositivo por `--device ` ou `--device-code `, assim como outros comandos. +--- -Para enviar o reembolso para uma conta de token diferente: +## Faturamento -```bash -doublezero-solana shreds withdraw \ - --device-code \ - --client-ip \ - --refund-token-account -``` +Os assentos são cobrados **mensalmente**. Fique atento à data de expiração do assento. -!!! warning "Sacar significa que você perde seu assento e a permanência acumulada." +Você receberá uma fatura alguns dias antes do assento expirar. **O não pagamento leva à remoção do assento.** --- ## Endereços de Shred (IP vs Porta) -Shreds de Líder e Shreds de Retransmissão de alto stake chegarão pela porta `7733`, pela interface `doublezero1`. A interface `doublezero0` é para tráfego unicast. A porta `5765` é um monitor de heartbeat dos publicadores de shreds — isso não conterá shreds. +Os Leader Shreds e os Retransmit Shreds de alto stake chegarão pela porta `7733`, pela 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 fluxo multicast e a **porta** identifica o serviço UDP nesse fluxo. Todos os fluxos de shred abaixo usam a porta UDP `7733` em `doublezero1`. @@ -245,15 +120,15 @@ Você pode examinar os IPs de qualquer grupo multicast com: doublezero multicast group list ``` -### Shreds de Líder +### Leader Shreds - `edge-solana-shreds`: `233.84.178.1:7733` -### Shreds de Root +### Root Shreds - `edge-solana-root`: `233.84.178.16:7733` -### Shreds de Retransmissão +### Retransmit Shreds - `edge-solana-retrans-eu`: `233.84.178.12:7733` - `edge-solana-retrans-apac`: `233.84.178.13:7733` @@ -262,23 +137,23 @@ doublezero multicast group list ## Cabeçalho do Túnel GRE — XDP -!!! note "O tráfego de shred 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)." +!!! note "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 (por exemplo, um deshredder baseado em XDP)." --- -## Ferramentas e Painéis +## Ferramentas e Dashboards -### [Placar do Edge](https://data.doublezero.xyz/dz/shreds/scoreboard) +### [Edge Scoreboard](https://data.doublezero.xyz/dz/shreds/scoreboard) -O Placar compara a velocidade de entrega de shreds entre o DoubleZero Edge e outros provedores, usando dados em nível de slot para comparar o desempenho em tempo real. Use este painel para ver as taxas de vitória dos shreds Edge contra outros provedores. Você pode visualizar resultados apenas para shreds de líder, além de comparação de feed completo. Você também pode detalhar por região para ver o desempenho esperado. +O Scoreboard avalia a velocidade de entrega de shreds entre o DoubleZero Edge e outros provedores, usando dados em nível de slot para comparar o desempenho em tempo real. Use este dashboard para ver uma visão das taxas de vitória dos shreds Edge em relação a outros provedores. Você pode visualizar resultados apenas para leader shreds, além da comparação completa do feed. Também é possível detalhar por região para ver o desempenho esperado. -### [Publicadores Edge](https://data.doublezero.xyz/dz/shreds/publishers) +### [Edge Publishers](https://data.doublezero.xyz/dz/shreds/publishers) -A métrica "Publishing Shreds" no canto superior esquerdo do painel mostra o percentual total de peso de stake de todos os validadores Solana publicando shreds de líder no DoubleZero Edge. Você pode ver detalhes de cada publicador na rede. +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 do Edge](https://data.doublezero.xyz/dz/shreds/subscribers) +### [Assinantes, Dispositivos e Atividade Edge](https://data.doublezero.xyz/dz/shreds/subscribers) -Você pode facilmente pesquisar seu IP de Cliente nesta página para assentos inscritos e visualizar o status. Clique em assinaturas de assentos específicas para ver o histórico de pagamentos e atividade. Você também pode visualizar dispositivos disponíveis na página de [Dispositivos](https://data.doublezero.xyz/dz/shreds/devices) e toda a atividade recente na página de [Atividade](https://data.doublezero.xyz/dz/shreds/activity). +Você pode pesquisar seu IP de Cliente nesta página para assentos inscritos e visualizar o status. Você também pode ver os dispositivos disponíveis na página de [Dispositivos](https://data.doublezero.xyz/dz/shreds/devices) e toda a atividade recente na página de [Atividade](https://data.doublezero.xyz/dz/shreds/activity). ### Documentação da API de Dados @@ -286,45 +161,28 @@ Para acesso programático aos endpoints de dados, consulte a documentação da A --- -## Resolução de Problemas +## Solução de Problemas -Se você encontrar um problema não coberto aqui, por favor entre em contato pelo seu canal existente antes de tentar uma solução alternativa. Se você não tiver um canal, por favor pesquise no [Discord](https://discord.gg/U2fEb4Jq) e abra um ticket se necessário. +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 tem um canal, pesquise no [Discord](https://discord.gg/U2fEb4Jq) 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 de escrow insuficiente - -Se o saldo do seu escrow estiver abaixo do preço da epoch na liquidação, o assento não é alocado, o túnel é encerrado e a permanência é perdida. Recarregue com `shreds pay` antes da próxima liquidação. - -### Assento não alocado após o pagamento - -- Você pode ter pago tarde na epoch — o assento entra em vigor na próxima epoch. -- Todos os assentos no dispositivo podem estar ocupados por incumbentes com maior permanência. Verifique assentos disponíveis com `shreds price`. -- Se você sacou antes da liquidação, o assento não estava elegível. - -### Túnel não está subindo +### O túnel não está subindo 1. Verifique se o daemon está em execução: `sudo systemctl status doublezerod` -2. Verifique se o reconciliador está habilitado: `doublezero enable` -3. Verifique se as regras de firewall estão em vigor (GRE, BGP, PIM, tráfego de shred em `doublezero1`, porta 44880 em `doublezero0`) -4. Verifique se seu assento está ativo para a epoch atual: `doublezero-solana shreds list` +2. Verifique se as regras de firewall estão configuradas (GRE, BGP, PIM, tráfego de shreds em `doublezero1`, porta 44880 em `doublezero0`) +3. Confirme que a fatura deste assento foi paga e a data de início já passou +4. Execute `doublezero connect multicast --subscribe-feed solana-shreds-full` na máquina que possui a chave privada atribuída 5. 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 assento. - -### Aviso de prompt de epoch - -O CLI avisa quando menos de 10% da epoch resta. Suas opções: - -- Aceite com `--accept-partial-epoch` se você quiser o assento imediatamente -- Aguarde a próxima epoch para obter cobertura de uma epoch completa +O DoubleZero ID usado na página de contas deve corresponder à chave neste host. -### "Amount is below the current price" +### Assento expirado ou removido -O comando `pay` valida seu valor contra o preço mínimo da epoch (base do metro + prêmio do dispositivo). Use `shreds price` para verificar os preços atuais e aumente seu valor. +Os assentos são mensais. Se a fatura enviada antes da expiração não for paga, o assento é removido e o túnel não permanecerá ativo. ### "Multicast user already exists" -Você já tem uma assinatura ativa por um caminho diferente. Desconecte primeiro com `doublezero disconnect`, depois tente novamente `shreds pay`. \ No newline at end of file +Você já tem uma assinatura ativa por um caminho diferente. Desconecte primeiro com `doublezero disconnect`, depois tente novamente `doublezero connect multicast --subscribe-feed solana-shreds-full`. \ No newline at end of file diff --git a/docs/Edge Subscriber Connection.zh.md b/docs/Edge Subscriber Connection.zh.md index a01a7b8..2f3eb13 100644 --- a/docs/Edge Subscriber Connection.zh.md +++ b/docs/Edge Subscriber Connection.zh.md @@ -1,21 +1,24 @@ --- -description: 设置边缘订阅者以接收 DoubleZero 分片数据流,包括客户端设置以及 GRE、BGP、PIM 和分片流量的防火墙规则。 +description: 设置边缘订阅者以接收 DoubleZero 分片数据流,包括客户端设置和 GRE、BGP、PIM 及分片流量的防火墙规则。 --- # 边缘订阅者连接 -!!! warning "连接到 DoubleZero 即表示我同意 [DoubleZero 使用条款](https://doublezero.xyz/terms-protocol)。请注意,数据仅供您内部使用,不得转发(参见第 2(e) 节)。" +!!! warning "连接到 DoubleZero 即表示我同意 [DoubleZero 使用条款](https://doublezero.xyz/terms-protocol)。请注意,数据仅供您内部使用,不得转发(参见第 2(e) 条)。" -## 第 1 步:DoubleZero 设置 +!!! warning "已使用 CLI 订阅?" + 如果您通过 **CLI**(`doublezero-solana shreds pay` / 托管席位)订阅,请使用 [CLI 订阅页面](Edge Subscriber CLI.md) 获取相关命令。该系统将于 **2026 年 8 月 30 日停用**。新订阅请按照本页面操作。 -### 1. 完成设置 +## 步骤 1:DoubleZero 设置 + +### 完成设置 安装 [Solana CLI](https://docs.anza.xyz/cli/install)。 -按照[设置](setup.md)说明安装并配置 DoubleZero 客户端。 +按照[设置](setup.md)说明安装和配置 DoubleZero 客户端。 -如果您之前已设置过 DoubleZero,请确保使用 `sudo apt update && sudo apt install doublezero-solana` 获取最新的 Doublezero-Solana CLI。 +如果您之前已设置过 DoubleZero,请确保通过 `sudo apt update && sudo apt install doublezero-solana` 获取最新的 Doublezero-Solana CLI。 -### 2. 配置防火墙 +### 配置防火墙 允许 GRE、BGP、PIM 和分片流量。 @@ -41,203 +44,75 @@ sudo ufw allow in on doublezero1 to any port 7733 proto udp sudo ufw allow in on doublezero0 to any port 44880 proto udp ``` -### 3. 启用协调器 - -协调器监控链上状态,并在您的席位被分配时自动配置隧道。它默认未启用。 - -```bash -doublezero enable -``` - --- -## 第 2 步:设置钱包 +## 步骤 2:选择城域节点 -### 1. 创建 Solana 密钥对 - -`doublezero-solana` CLI 使用标准 Solana 密钥对进行链上席位管理。如果您还没有密钥对: - -```bash -solana-keygen new -``` - -这会写入 `~/.config/solana/id.json`。要使用不同的路径,请在任何 `doublezero-solana` 命令中传递 `--keypair `。 - -打印您的钱包地址: - -```bash -solana address -``` - -### 2. 为钱包充值 - -您的钱包需要两种代币: - -- **SOL** — 用于 Solana 交易费用。将 SOL 转入上面打印的钱包地址。 -- **USDC** — 用于席位资金。CLI 从您钱包的关联代币账户(ATA)中提取主网 USDC 铸币(`EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v`)。 - ---- - -## 第 3 步:购买席位 - -### 1. 查找最近的设备 - -在购买席位之前,确定从您的机器延迟最低的设备: +确定将接收分片的机器延迟最低的位置: ```bash doublezero latency ``` -记下延迟最低的结果中的设备代码(例如 ``)。您在购买席位时将使用此代码。 +记下延迟最低结果中的城域节点/城市。您将在申请表中选择该城市。请参阅[拓扑地图](https://data.malbeclabs.com/topology/map?overlays=metroClustering%2Cbandwidth)了解城域节点的分组方式。 -### 2. 查看定价 +### 定价 -在投入资金之前查看当前设备定价。定价由两部分组成:**基础城域价格**和**每设备溢价**。您也可以在[此处](https://data.doublezero.xyz/dz/shreds/devices)查看定价和可用性。 +席位按**每月**、每台机器、您选择的城域节点计费: -**所有设备:** +| 城域节点 | 价格 | +|--------|-------| +| 法兰克福、阿姆斯特丹 | $1,500 / 月 | +| 伦敦、纽约、新加坡、东京 | $900 / 月 | +| 所有其他位置 | $450 / 月 | -```bash -doublezero-solana shreds price -``` +--- -**特定设备:** +## 步骤 3:提交请求 -```bash -doublezero-solana shreds price --device-code -doublezero-solana shreds price --device -``` +1. 前往 [https://doublezero.xyz/edge/subscribe](https://doublezero.xyz/edge/subscribe)。 +2. 选择 **Solana Shreds**。 +3. 选择您需要的**城市**(城域节点)。使用上表和 `doublezero latency` 进行选择。 +4. 完成申请表。 -**城域内所有设备:** +您将在[账户](https://doublezero.xyz/shreds/account)页面为每个数据流请求分配一个 DoubleZero ID(使用现有密钥或生成新密钥)。匹配的**私钥必须存在于将接收分片的机器上** — 不要分配一个您无法将私钥移至该主机的公钥。 -```bash -doublezero-solana shreds price --metro -``` +您选择一个**城域节点**和一个**公钥**。您**无需**在申请时绑定公网 IP。在订阅期间,您可以在**所选城域节点内**的不同 IP 之间转移访问权限。 -输出列:`Device Code`、`Metro Code`、`Metro Name`、`Status`、`Settled Seats`、`Available Seats`、`Base Price (USDC)`、`Premium (USDC)`、`Epoch Price (USDC)`。 +我们的团队会审核申请并及时与您联系(预计 **2 个工作日**)。 -纪元价格是该设备上每个席位每个纪元的总费用(基础价 + 溢价)。使用 `--wide` 显示完整公钥,或使用 `--json` 输出 JSON 格式。 +--- -### 3. 购买席位 +## 步骤 4:审批通过后连接 -使用单个命令购买席位。此操作将初始化您的席位、为托管账户注资并请求分配: +在我们与您联系、您收到发票并完成付款后,在每台已批准的机器上连接: ```bash -doublezero-solana shreds pay \ - --device-code \ - --client-ip \ - --amount +doublezero connect multicast --subscribe-feed solana-shreds-full ``` -**参数:** - -| 标志 | 描述 | -|------|------| -| `--device ` | 通过公钥指定目标设备(与 `--device-code` 互斥) | -| `--device-code ` | 通过人类可读代码指定目标设备(例如 ``) | -| `--client-ip ` | 您机器的公共 IPv4 地址 | -| `--amount ` | 注资的 USDC 金额(十进制格式,例如 `100` = 100 USDC)。必须达到最低纪元价格。 | -| `--source-token-account ` | 自定义 USDC 来源账户(默认为您钱包的 ATA) | -| `--accept-partial-epoch` | 跳过纪元剩余时间警告(见下文) | -| `--fee-payer ` | 使用不同的钱包支付 SOL 交易费用 | -| `--dry-run` | 模拟交易而不执行 | -| `--with-compute-unit-price ` | 设置计算单元价格以在拥堵时加快交易确认 | - -席位分配后,守护进程会自动建立 GRE 隧道。使用以下命令检查您的连接: +访问权限将在您选定的开始日期启用(通常为美国东部时间上午 9:01)。使用以下命令检查隧道状态: ```bash doublezero status ``` -### 纪元时间 - -席位按 Solana 纪元分配(约 2 天)。如果您付款时当前纪元剩余不到 10%,CLI 会警告您的席位将立即分配,但仅覆盖当前纪元的剩余部分。下一个纪元开始时将从您的托管账户中扣除单独的付款。 - -!!! info "建议一次性为多个纪元充值,以免失去席位。您可以在[此处](https://explorer.solana.com/)查看当前纪元的剩余时间。" - -您可以使用 `--accept-partial-epoch` 跳过此警告。 - -### 保持托管账户充值 - -!!! warning "如果您的托管账户余额在结算时低于纪元价格,您的席位将不会被分配,隧道将被拆除,并且您将失去累积的任期。任期决定您在未来纪元中的优先级——失去它意味着您将作为新用户重新竞争。" - -您可以向该账户超额注资以覆盖多个纪元。每次结算从您的托管账户中扣除一个纪元的价格,剩余余额结转。例如,注入 5 倍每纪元价格的资金可以让您的席位在无需再次充值的情况下保持最多 5 个纪元的活跃状态。 - -要为托管账户追加资金,可随时再次运行 `shreds pay`: - -```bash -doublezero-solana shreds pay \ - --device-code \ - --client-ip \ - --amount 500 -``` - -请注意,`Target_IP` 必须是将接收分片数据的机器上的公共 IPv4 地址。您可以在目标机器上运行 `curl -4 ifconfig.me` 等命令来获取此地址。 - -### 监控席位 - -本节详细介绍如何通过 CLI 查看席位。您也可以使用 [https://data.doublezero.xyz/api/v1/docs](https://data.doublezero.xyz/api/v1/docs) 来监控席位并协助管理您的托管账户。 - -查看您的活跃席位和托管余额: - -**所有席位:** - -```bash -doublezero-solana shreds list -``` - -**按设备筛选:** - -```bash -doublezero-solana shreds list --device-code -``` - -**按客户端 IP 筛选:** - -```bash -doublezero-solana shreds list --client-ip -``` - -**按钱包筛选:** - -```bash -doublezero-solana shreds list --withdraw-authority -``` - -输出列:`Device Code`、`Client IP`、`Tenure`、`Balance (USDC)`、`Est. Epochs Paid`。 - -"Est. Epochs Paid" 列显示按当前定价您的余额可覆盖多少个纪元。如果价格变化,此估算值会相应调整。 - -### 提取资金 - -关闭您的托管账户并将剩余 USDC 退还到您的钱包: - -```bash -doublezero-solana shreds withdraw \ - --device-code \ - --client-ip -``` - -您可以通过 `--device ` 或 `--device-code ` 来指定设备,与其他命令相同。 +--- -要将退款发送到不同的代币账户: +## 计费 -```bash -doublezero-solana shreds withdraw \ - --device-code \ - --client-ip \ - --refund-token-account -``` +席位按**每月**收费。请关注席位到期日期。 -!!! warning "提取资金意味着您将失去席位和累积的任期。" +您将在席位到期前几天收到发票。**未付款将导致席位被移除。** --- ## 分片地址(IP 与端口) -领导者分片和高质押权重的转发分片将通过 `doublezero1` 接口的端口 `7733` 到达。`doublezero0` 接口用于单播流量。端口 `5765` 是来自分片发布者的心跳监控——这不会包含分片数据。 +领导者分片和高质押权重的转发分片将通过 `doublezero1` 接口的端口 `7733` 到达。`doublezero0` 接口用于单播流量。端口 `5765` 是来自分片发布者的心跳监控 — 不包含分片数据。 对于分片消费,**IP 地址**标识组播流,**端口**标识该流上的 UDP 服务。 -以下所有分片流在 `doublezero1` 上使用 UDP 端口 `7733`。 +以下所有分片流均使用 `doublezero1` 上的 UDP 端口 `7733`。 您可以使用以下命令查看任何组播组的 IP: @@ -262,23 +137,23 @@ doublezero multicast group list ## GRE 隧道头 — XDP -!!! note "通过网络传输的分片流量是 GRE 封装的。您可能需要在将数据送入现有处理管线(例如基于 XDP 的分片重组器)之前剥离 GRE 头。" +!!! note "通过网络传输的分片流量经过 GRE 封装。在将数据送入现有处理管道(例如基于 XDP 的分片重组器)之前,您可能需要剥离 GRE 头部。" --- ## 工具和仪表板 -### [边缘排行榜](https://data.doublezero.xyz/dz/shreds/scoreboard) +### [边缘计分板](https://data.doublezero.xyz/dz/shreds/scoreboard) -排行榜使用槽级数据,实时比较 DoubleZero Edge 和其他提供商之间的分片传输速度。使用此仪表板查看 Edge 分片相对于其他提供商的胜率。您可以查看仅限领导者分片的结果,以及完整数据流的比较。您还可以按区域深入查看预期性能。 +计分板使用槽级数据,对比 DoubleZero Edge 和其他提供商的分片交付速度,实时比较性能。使用此仪表板查看 Edge 分片相对于其他提供商的胜率。您可以仅查看领导者分片的结果,也可以查看完整数据流的对比。您还可以按区域深入查看预期性能。 ### [边缘发布者](https://data.doublezero.xyz/dz/shreds/publishers) -仪表板左上角的"Publishing Shreds"指标显示在 DoubleZero Edge 上发布领导者分片的所有 Solana 验证者的总质押权重百分比。您可以查看网络上每个发布者的详细信息。 +仪表板左上角的"发布分片"指标显示了在 DoubleZero Edge 上发布领导者分片的所有 Solana 验证者的总质押权重百分比。您可以查看网络上每个发布者的详细信息。 ### [边缘订阅者、设备和活动](https://data.doublezero.xyz/dz/shreds/subscribers) -您可以在此页面轻松搜索您的客户端 IP 以查看已订阅的席位和状态。点击特定的席位订阅可查看付款历史和活动记录。您还可以在[设备](https://data.doublezero.xyz/dz/shreds/devices)页面查看可用设备,以及在[活动](https://data.doublezero.xyz/dz/shreds/activity)页面查看所有近期活动。 +您可以在此页面搜索您的客户端 IP 以查看已订阅的席位和状态。您还可以在[设备](https://data.doublezero.xyz/dz/shreds/devices)页面查看可用设备,以及在[活动](https://data.doublezero.xyz/dz/shreds/activity)页面查看所有近期活动。 ### 数据 API 文档 @@ -288,43 +163,26 @@ doublezero multicast group list ## 故障排除 -如果您遇到此处未涵盖的问题,请先通过现有渠道联系我们,不要自行解决。如果您没有联系渠道,请在 [Discord](https://discord.gg/U2fEb4Jq) 中搜索,如需要可提交工单。 +如果您遇到此处未涵盖的问题,请先通过您现有的沟通渠道联系我们,再尝试自行解决。如果您没有现有渠道,请搜索 [Discord](https://discord.gg/U2fEb4Jq),必要时提交工单。 -### 确保客户端为最新版本: +### 确保您的客户端是最新版本: 运行:`sudo apt update && sudo apt install doublezero-solana` -### 托管账户余额不足 - -如果您的托管账户余额在结算时低于纪元价格,席位将不会被分配,隧道将被拆除,任期将丢失。请在下次结算前使用 `shreds pay` 进行充值。 - -### 付款后席位未分配 - -- 您可能在纪元后期付款——席位将在下一个纪元生效。 -- 该设备上的所有席位可能已被任期更长的在位者占据。使用 `shreds price` 检查可用席位。 -- 如果您在结算前进行了提取,则席位不符合分配条件。 - ### 隧道未建立 -1. 验证守护进程是否正在运行:`sudo systemctl status doublezerod` -2. 验证协调器是否已启用:`doublezero enable` -3. 验证防火墙规则是否已配置(GRE、BGP、PIM、`doublezero1` 上的分片流量、`doublezero0` 上的端口 44880) -4. 验证您的席位在当前纪元是否处于活跃状态:`doublezero-solana shreds list` +1. 验证守护进程是否在运行:`sudo systemctl status doublezerod` +2. 验证防火墙规则是否已配置(GRE、BGP、PIM、`doublezero1` 上的分片流量、`doublezero0` 上的端口 44880) +3. 确认该席位的发票已支付且开始日期已过 +4. 在持有已分配私钥的机器上运行 `doublezero connect multicast --subscribe-feed solana-shreds-full` 5. 检查您的连接状态:`doublezero status` -守护进程的客户端 IP 从您主机的公共 IP 自动发现——请验证它是否与席位命令中使用的 `--client-ip` 一致。 - -### 纪元警告提示 - -当纪元剩余不到 10% 时,CLI 会发出警告。您的选择: - -- 如果您希望立即获得席位,使用 `--accept-partial-epoch` 接受 -- 等待下一个纪元以获得完整纪元的覆盖 +在账户页面使用的 DoubleZero ID 必须与此主机上的密钥匹配。 -### "金额低于当前价格" +### 席位已过期或被移除 -`pay` 命令会根据最低纪元价格(城域基础价 + 设备溢价)验证您的金额。使用 `shreds price` 检查当前定价并增加您的金额。 +席位按月计费。如果到期前发送的发票未付款,席位将被移除,隧道将无法保持连接。 -### "组播用户已存在" +### "Multicast user already exists" -您已通过其他路径有一个活跃订阅。请先使用 `doublezero disconnect` 断开连接,然后重试 `shreds pay`。 \ No newline at end of file +您已通过其他途径拥有活跃订阅。请先使用 `doublezero disconnect` 断开连接,然后重试 `doublezero connect multicast --subscribe-feed solana-shreds-full`。 \ No newline at end of file diff --git a/docs/Permissioned Connection.es.md b/docs/Permissioned Connection.es.md index e858397..362e896 100644 --- a/docs/Permissioned Connection.es.md +++ b/docs/Permissioned Connection.es.md @@ -1,15 +1,17 @@ -# Conexión con Permisos a DoubleZero en modo IBRL para no validadores -!!! warning "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." +--- +description: Incorporación con permisos para no validadores y RPCs que se conectan a DoubleZero Mainnet-Beta y Testnet en modo IBRL. +--- +# Conexión con permisos para no validadores a DoubleZero en modo IBRL !!! warning "Al conectarme a DoubleZero acepto los [Términos de Servicio de DoubleZero](https://doublezero.xyz/terms-protocol)"
-### Descripción General del Proceso de Incorporación con Permisos +### Descripción general de la incorporación de usuarios con permisos -La incorporación de usuarios está actualmente sujeta a permisos para no validadores y RPCs. Para iniciar el proceso con permisos, complete [este formulario](https://forms.fillout.com/t/s77k7wandMus?id=rec08iF4Z8kVFGm1z). Esto es lo que puede esperar durante este proceso: +La incorporación de usuarios actualmente requiere permisos para no validadores y RPCs. Para iniciar el flujo con permisos, por favor complete [este formulario](https://forms.fillout.com/t/s77k7wandMus?id=rec08iF4Z8kVFGm1z). Esto es lo que puede esperar durante este proceso: -- Es posible que haya tarifas asociadas con el uso de Usuarios con Permisos en el futuro. +- Puede haber tarifas asociadas con el uso de usuarios con permisos en el futuro. - Después de enviar el formulario, monitoree su contacto principal de Telegram.
@@ -17,56 +19,54 @@ La incorporación de usuarios está actualmente sujeta a permisos para no valida ### Conexión a Mainnet-Beta y Testnet en modo IBRL !!! Note inline end - El modo IBRL no requiere reiniciar los clientes de validadores, ya que usa su dirección IP pública existente. + El modo IBRL no requiere reiniciar los clientes validadores, ya que utiliza su dirección IP pública existente. -Los Usuarios con Permisos completarán la conexión a DoubleZero Mainnet-beta, que se detalla en esta página. +Los usuarios con permisos completarán la conexión a DoubleZero Mainnet-beta, lo cual se detalla en esta página. -## 1. Configuración del Entorno +## 1. Confirmar la red del cliente -Siga las instrucciones de [configuración](setup.md) antes de continuar. +Por favor siga las instrucciones de [configuración](setup.md) antes de continuar. Instale los paquetes de Mainnet-Beta o Testnet para la red que desee — utilizan diferentes repositorios de paquetes. 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**: -```bash -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" -``` -Para configurar el CLI DoubleZero (`doublezero`) y el daemon (`doublezerod`) para conectarse a **DoubleZero mainnet-beta**: +Confirme con: + ```bash -DESIRED_DOUBLEZERO_ENV=mainnet-beta \ - && 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" +doublezero status ``` -Debería ver la siguiente salida: -``` -✅ doublezerod configured for environment mainnet-beta -``` +La columna `Network` debe coincidir con la red a la que desea unirse. Si no coincide, utilice el cambio de copiar y pegar en [solución de problemas](troubleshooting.md#issue-wrong-doublezero-environment). -Después de aproximadamente 30 segundos verá los dispositivos DoubleZero disponibles: +Después de aproximadamente 30 segundos verá los dispositivos de DoubleZero disponibles: ```bash doublezero latency ``` +Ejemplo de salida (Testnet) +```bash + pubkey | code | ip | min | max | avg | reachable + 2hPMFJHh5BPX42ygBvuYYJfCv9q7g3rRR3ZRsUgtaqUi | dz-ny7-sw01 | 137.239.213.162 | 1.74ms | 1.92ms | 1.84ms | true + ETdwWpdQ7fXDHH5ea8feMmWxnZZvSKi4xDvuEGcpEvq3 | dz-ny5-sw01 | 137.239.213.170 | 1.88ms | 4.39ms | 2.72ms | true + 8J691gPwzy9FzUZQ4SmC6jJcY7By8kZXfbJwRfQ8ns31 | nyc002-dz002 | 38.122.35.137 | 2.45ms | 3.30ms | 2.74ms | true + 8gisbwJnNhMNEWz587cAJMtSSFuWeNFtiufPuBTVqF2Z | dz-ny7-sw02 | 142.215.184.122 | 1.88ms | 5.13ms | 3.02ms | true + uzyg9iYw2FEbtdTHaDb5HoeEWYAPRPQgvsgyd873qPS | nyc001-dz002 | 4.42.212.122 | 3.17ms | 3.63ms | 3.33ms | true + FEML4XsDPN3WfmyFAXzE2xzyYqSB9kFCRrMik8JqN6kT | nyc001-dz001 | 38.104.167.29 | 2.33ms | 5.46ms | 3.39ms | true + 9oKLaL6Hwno5TyAFutTbbkNrzxm1fw9fhzkiUHgsxgGx | dz-dc10-sw01 | 137.239.200.186 | 6.84ms | 7.01ms | 6.91ms | true + DESzDP8GkSTpQLkrUegLkt4S2ynGfZX5bTDzZf3sEE58 | was001-dz002 | 38.88.214.133 | 7.39ms | 7.44ms | 7.41ms | true + HHNCpqB7CwHVLxAiB1S86ko6gJRzLCtw78K1tc7ZpT5P | was001-dz001 | 66.198.11.74 | 7.67ms | 7.85ms | 7.76ms | true + 9LFtjDzohKvCBzSquQD4YtL3HwuvkKBDE7KSzb8ztV2b | dz-mtl11-sw01 | 134.195.161.10 | 9.88ms | 10.01ms | 9.95ms | true + 9M7FfYYyjM4wGinKPofZRNmQFcCjCKRbXscGBUiXvXnG | dz-tor1-sw01 | 209.42.165.10 | 14.52ms | 14.53ms | 14.52ms | true +``` +La salida de Testnet será idéntica en estructura, pero con muchos más dispositivos disponibles. ## 2. Contactar a la Fundación DoubleZero -La Fundación DoubleZero. Deberá proporcionar su `DoubleZeroID`, su `ID de Validador` (node ID) y la `dirección IPv4 pública` desde la que se conectará. +La Fundación DoubleZero. Necesitará proporcionar su `DoubleZeroID`, su `Validator ID` (ID de nodo) y la `public ipv4 address` desde la cual se conectará.
-## 3. Conectarse en modo IBRL +## 3. Conectar 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. @@ -74,7 +74,7 @@ En el servidor, con el usuario que se conectará a DoubleZero, ejecute el comand doublezero connect ibrl ``` -Debería ver una salida que indique el aprovisionamiento, como: +Debería ver una salida indicando el aprovisionamiento, como: ``` DoubleZero Service Provisioning @@ -87,7 +87,7 @@ Public IP detected: 137.184.101.183 - If you want to use a different IP, you can Service provisioned with status: ok ✅ User Provisioned ``` -Espere un minuto para que el túnel se complete. Hasta que el túnel esté completado, su salida de estado puede devolver "down" o "Unknown" +Espere un minuto para que el túnel se complete. Hasta que el túnel esté completado, la salida de su estado puede devolver "down" o "Unknown" Verifique su conexión: @@ -100,25 +100,25 @@ doublezero status Tunnel status | Last Session Update | Tunnel Name | Tunnel src | Tunnel dst | DoubleZero IP | User Type up | 2025-09-10 12:16:03 UTC | doublezero0 | 137.184.101.183 | 64.86.249.22 | 137.184.101.183 | IBRL ``` -Un estado de `up` significa que está conectado correctamente. +Un estado de `up` significa que está conectado exitosamente. Podrá ver las rutas propagadas por otros usuarios en DoubleZero ejecutando: ``` ip route ``` -Salida: +Salida: ``` -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 +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: Multicast +### Siguiente paso: Multicast -Si ha completado esta configuración y planea usar Multicast, continúe a la [siguiente página](Other%20Multicast%20Connection.md). +Si ha completado esta configuración y planea usar Multicast, continúe a la [siguiente página](Other%20Multicast%20Connection.md). \ No newline at end of file diff --git a/docs/Permissioned Connection.fr.md b/docs/Permissioned Connection.fr.md index 334cdf5..725055f 100644 --- a/docs/Permissioned Connection.fr.md +++ b/docs/Permissioned Connection.fr.md @@ -1,94 +1,72 @@ -# Connexion Autorisée Non-Validateur à DoubleZero en Mode IBRL -!!! warning "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." +--- +description: Intégration avec permission pour les non-validateurs et les RPCs se connectant au Mainnet-Beta et au Testnet DoubleZero en mode IBRL. +--- -!!! warning "En me connectant à DoubleZero, j'accepte les [Conditions d'Utilisation de DoubleZero](https://doublezero.xyz/terms-protocol)" +# Connexion avec permission des non-validateurs à DoubleZero en mode IBRL +!!! warning "En me connectant à DoubleZero, j'accepte les [Conditions d'utilisation de DoubleZero](https://doublezero.xyz/terms-protocol)"
-### Aperçu de l'Intégration des Utilisateurs Autorisés +### Aperçu de l'intégration des utilisateurs avec permission -L'intégration des utilisateurs est actuellement autorisée pour les non-validateurs et les RPC. Pour commencer le processus d'autorisation, veuillez remplir [ce formulaire](https://forms.fillout.com/t/s77k7wandMus?id=rec08iF4Z8kVFGm1z). Voici ce à quoi vous pouvez vous attendre au cours de ce processus : +L'intégration des utilisateurs est actuellement soumise à permission pour les non-validateurs et les RPCs. Pour commencer le processus avec permission, veuillez remplir [ce formulaire](https://forms.fillout.com/t/s77k7wandMus?id=rec08iF4Z8kVFGm1z). Voici ce à quoi vous pouvez vous attendre durant ce processus : -- Des frais pourront être associés à l'utilisation des Utilisateurs Autorisés à l'avenir. +- Des frais pourraient être associés à l'utilisation par les utilisateurs avec permission à l'avenir. - Après la soumission du formulaire, surveillez votre contact Telegram principal.
-### Connexion à Mainnet-Beta et Testnet en Mode IBRL +### Connexion au Mainnet-Beta et au Testnet en mode IBRL !!! Note inline end - Le mode IBRL ne nécessite pas de redémarrer les clients validateurs, car il utilise votre adresse IP publique existante. + Le mode IBRL ne nécessite pas le redémarrage des clients validateurs, car il utilise votre adresse IP publique existante. -Les Utilisateurs Autorisés complèteront la connexion au Mainnet-beta DoubleZero, qui est décrite sur cette page. +Les utilisateurs avec permission effectueront la connexion au Mainnet-beta de DoubleZero, qui est détaillée sur cette page. -## 1. Configuration de l'Environnement +## 1. Confirmer le réseau du client -Veuillez suivre les instructions de [configuration](setup.md) avant de procéder. +Veuillez suivre les instructions de [configuration](setup.md) avant de continuer. Installez les paquets Mainnet-Beta ou Testnet pour le réseau souhaité — ils utilisent des dépôts de paquets différents. -La dernière étape de la configuration consistait à se déconnecter du réseau. Cela garantit qu'un seul tunnel est ouvert sur votre machine vers DoubleZero, et que ce tunnel est sur le bon réseau. +La dernière étape de la configuration consistait à se déconnecter du réseau. Cela permet de s'assurer qu'un seul tunnel est ouvert sur votre machine vers DoubleZero, et que ce tunnel est sur le bon réseau. + +Confirmez avec : -Pour configurer la CLI Client DoubleZero (`doublezero`) et le daemon (`doublezerod`) afin de se connecter au **testnet DoubleZero** : -```bash -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" -``` -Pour configurer la CLI Client DoubleZero (`doublezero`) et le daemon (`doublezerod`) afin de se connecter au **mainnet-beta DoubleZero** : ```bash -DESIRED_DOUBLEZERO_ENV=mainnet-beta \ - && 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" +doublezero status ``` -Vous devriez voir la sortie suivante : -``` -✅ doublezerod configured for environment mainnet-beta -``` -Vous devriez voir la sortie suivante : -` -✅ doublezerod configured for environment testnet -` +La colonne `Network` devrait correspondre au réseau que vous souhaitez rejoindre. Si ce n'est pas le cas, utilisez le copier-coller de basculement dans le [dépannage](troubleshooting.md#issue-wrong-doublezero-environment). -Après environ 30 secondes, vous verrez les dispositifs DoubleZero disponibles : +Après environ 30 secondes, vous verrez les appareils DoubleZero disponibles : ```bash doublezero latency ``` Exemple de sortie (Testnet) ```bash - pubkey | code | ip | min | max | avg | reachable - 2hPMFJHh5BPX42ygBvuYYJfCv9q7g3rRR3ZRsUgtaqUi | dz-ny7-sw01 | 137.239.213.162 | 1.74ms | 1.92ms | 1.84ms | true - ETdwWpdQ7fXDHH5ea8feMmWxnZZvSKi4xDvuEGcpEvq3 | dz-ny5-sw01 | 137.239.213.170 | 1.88ms | 4.39ms | 2.72ms | true - 8J691gPwzy9FzUZQ4SmC6jJcY7By8kZXfbJwRfQ8ns31 | nyc002-dz002 | 38.122.35.137 | 2.45ms | 3.30ms | 2.74ms | true - 8gisbwJnNhMNEWz587cAJMtSSFuWeNFtiufPuBTVqF2Z | dz-ny7-sw02 | 142.215.184.122 | 1.88ms | 5.13ms | 3.02ms | true - uzyg9iYw2FEbtdTHaDb5HoeEWYAPRPQgvsgyd873qPS | nyc001-dz002 | 4.42.212.122 | 3.17ms | 3.63ms | 3.33ms | true - FEML4XsDPN3WfmyFAXzE2xzyYqSB9kFCRrMik8JqN6kT | nyc001-dz001 | 38.104.167.29 | 2.33ms | 5.46ms | 3.39ms | true - 9oKLaL6Hwno5TyAFutTbbkNrzxm1fw9fhzkiUHgsxgGx | dz-dc10-sw01 | 137.239.200.186 | 6.84ms | 7.01ms | 6.91ms | true - DESzDP8GkSTpQLkrUegLkt4S2ynGfZX5bTDzZf3sEE58 | was001-dz002 | 38.88.214.133 | 7.39ms | 7.44ms | 7.41ms | true - HHNCpqB7CwHVLxAiB1S86ko6gJRzLCtw78K1tc7ZpT5P | was001-dz001 | 66.198.11.74 | 7.67ms | 7.85ms | 7.76ms | true - 9LFtjDzohKvCBzSquQD4YtL3HwuvkKBDE7KSzb8ztV2b | dz-mtl11-sw01 | 134.195.161.10 | 9.88ms | 10.01ms | 9.95ms | true - 9M7FfYYyjM4wGinKPofZRNmQFcCjCKRbXscGBUiXvXnG | dz-tor1-sw01 | 209.42.165.10 | 14.52ms | 14.53ms | 14.52ms | true + pubkey | code | ip | min | max | avg | reachable + 2hPMFJHh5BPX42ygBvuYYJfCv9q7g3rRR3ZRsUgtaqUi | dz-ny7-sw01 | 137.239.213.162 | 1.74ms | 1.92ms | 1.84ms | true + ETdwWpdQ7fXDHH5ea8feMmWxnZZvSKi4xDvuEGcpEvq3 | dz-ny5-sw01 | 137.239.213.170 | 1.88ms | 4.39ms | 2.72ms | true + 8J691gPwzy9FzUZQ4SmC6jJcY7By8kZXfbJwRfQ8ns31 | nyc002-dz002 | 38.122.35.137 | 2.45ms | 3.30ms | 2.74ms | true + 8gisbwJnNhMNEWz587cAJMtSSFuWeNFtiufPuBTVqF2Z | dz-ny7-sw02 | 142.215.184.122 | 1.88ms | 5.13ms | 3.02ms | true + uzyg9iYw2FEbtdTHaDb5HoeEWYAPRPQgvsgyd873qPS | nyc001-dz002 | 4.42.212.122 | 3.17ms | 3.63ms | 3.33ms | true + FEML4XsDPN3WfmyFAXzE2xzyYqSB9kFCRrMik8JqN6kT | nyc001-dz001 | 38.104.167.29 | 2.33ms | 5.46ms | 3.39ms | true + 9oKLaL6Hwno5TyAFutTbbkNrzxm1fw9fhzkiUHgsxgGx | dz-dc10-sw01 | 137.239.200.186 | 6.84ms | 7.01ms | 6.91ms | true + DESzDP8GkSTpQLkrUegLkt4S2ynGfZX5bTDzZf3sEE58 | was001-dz002 | 38.88.214.133 | 7.39ms | 7.44ms | 7.41ms | true + HHNCpqB7CwHVLxAiB1S86ko6gJRzLCtw78K1tc7ZpT5P | was001-dz001 | 66.198.11.74 | 7.67ms | 7.85ms | 7.76ms | true + 9LFtjDzohKvCBzSquQD4YtL3HwuvkKBDE7KSzb8ztV2b | dz-mtl11-sw01 | 134.195.161.10 | 9.88ms | 10.01ms | 9.95ms | true + 9M7FfYYyjM4wGinKPofZRNmQFcCjCKRbXscGBUiXvXnG | dz-tor1-sw01 | 209.42.165.10 | 14.52ms | 14.53ms | 14.52ms | true ``` -La sortie du testnet sera identique dans sa structure, mais avec beaucoup plus de dispositifs disponibles. - - +La sortie du Testnet sera identique en structure, mais avec beaucoup plus d'appareils disponibles. -## 2. Contacter la DoubleZero Foundation +## 2. Contacter la Fondation DoubleZero -La DoubleZero Foundation. Vous devrez fournir votre `DoubleZeroID`, votre `ID Validateur` (node ID) et l'`adresse IPv4 publique` depuis laquelle vous vous connecterez. +La fondation DoubleZero. Vous devrez fournir votre `DoubleZeroID`, votre `Validator ID` (identifiant de nœud) et l'`adresse IPv4 publique` depuis laquelle vous vous connecterez.
-## 3. Se Connecter en Mode IBRL +## 3. Se connecter en mode IBRL Sur le serveur, avec l'utilisateur qui se connectera à DoubleZero, exécutez la commande `connect` pour établir la connexion à DoubleZero. @@ -109,7 +87,7 @@ Public IP detected: 137.184.101.183 - If you want to use a different IP, you can Service provisioned with status: ok ✅ User Provisioned ``` -Attendez une minute que le tunnel soit complété. Jusqu'à ce que le tunnel soit établi, votre sortie de statut peut indiquer "down" ou "Unknown" +Attendez une minute que le tunnel se termine. Tant que le tunnel n'est pas terminé, votre sortie de statut peut retourner "down" ou "Unknown" Vérifiez votre connexion : @@ -124,7 +102,7 @@ up | 2025-09-10 12:16:03 UTC | doublezero0 | 137.184.101.183 | 64.86. ``` Un statut `up` signifie que vous êtes connecté avec succès. -Vous pourrez voir les routes propagées par d'autres utilisateurs sur DoubleZero en exécutant : +Vous pourrez visualiser les routes propagées par les autres utilisateurs sur DoubleZero en exécutant : ``` ip route @@ -132,15 +110,15 @@ ip route Sortie : ``` -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 +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 ... ```
-### Prochaine Étape : Multicast +### Étape suivante : Multicast -Si vous avez terminé cette configuration et prévoyez d'utiliser le Multicast, passez à la [page suivante](Other%20Multicast%20Connection.md). +Si vous avez terminé cette configuration et prévoyez d'utiliser le Multicast, passez à la [page suivante](Other%20Multicast%20Connection.md). \ No newline at end of file diff --git a/docs/Permissioned Connection.it.md b/docs/Permissioned Connection.it.md index c80f4fc..6218fe7 100644 --- a/docs/Permissioned Connection.it.md +++ b/docs/Permissioned Connection.it.md @@ -1,102 +1,80 @@ -# Connessione con Permesso Non-Validatore a DoubleZero in Modalità IBRL -!!! warning "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." +--- +description: Onboarding con permessi per non-validatori e RPC che si connettono a DoubleZero Mainnet-Beta e Testnet in modalità IBRL. +--- -!!! warning "Connettendomi a DoubleZero accetto i [Termini di Servizio DoubleZero](https://doublezero.xyz/terms-protocol)" +# Connessione con Permessi per Non-Validatori a DoubleZero in Modalità IBRL +!!! warning "Connettendomi a DoubleZero accetto i [Termini di Servizio di DoubleZero](https://doublezero.xyz/terms-protocol)"
-### Panoramica dell'Onboarding degli Utenti con Permesso +### Panoramica dell'Onboarding per Utenti con Permessi -L'onboarding degli utenti è attualmente con permesso per i non-validatori e gli RPC. Per iniziare il flusso con permesso, compila [questo modulo](https://forms.fillout.com/t/s77k7wandMus?id=rec08iF4Z8kVFGm1z). Ecco cosa aspettarsi durante questo processo: +L'onboarding degli utenti è attualmente soggetto a permessi per non-validatori e RPC. Per avviare il flusso con permessi, compilare [questo modulo](https://forms.fillout.com/t/s77k7wandMus?id=rec08iF4Z8kVFGm1z). Ecco cosa aspettarsi durante questo processo: -- In futuro potrebbero essere associate commissioni all'utilizzo degli Utenti con Permesso. -- Dopo l'invio del modulo, monitora il tuo contatto Telegram principale. +- In futuro potrebbero essere previsti costi associati all'utilizzo da parte degli Utenti con Permessi. +- Dopo l'invio del modulo, monitorare il proprio contatto Telegram principale.
-### Connessione a Mainnet-Beta e Testnet in Modalità IBRL +### Connessione a Mainnet-Beta e Testnet in Modalità IBRL !!! Note inline end - La modalità IBRL non richiede il riavvio dei client validatori, perché utilizza il tuo indirizzo IP pubblico esistente. + La modalità IBRL non richiede il riavvio dei client validatori, poiché utilizza il vostro indirizzo IP pubblico esistente. -Gli Utenti con Permesso completeranno la connessione a DoubleZero Mainnet-beta, che è dettagliata su questa pagina. +Gli Utenti con Permessi completeranno la connessione a DoubleZero Mainnet-beta, descritta in dettaglio in questa pagina. -## 1. Configurazione dell'Ambiente +## 1. Verificare la rete del client -Segui le istruzioni di [setup](setup.md) prima di procedere. +Seguire le istruzioni di [setup](setup.md) prima di procedere. Installare i pacchetti Mainnet-Beta o Testnet per la rete desiderata — utilizzano repository di pacchetti diversi. -L'ultimo passo del setup era disconnettersi dalla rete. Questo serve a garantire che sia aperto solo un tunnel sulla tua macchina verso DoubleZero, e che quel tunnel sia sulla rete corretta. +L'ultimo passaggio del setup era disconnettersi dalla rete. Questo per assicurarsi che sulla propria macchina sia aperto un solo tunnel verso DoubleZero, e che quel tunnel sia sulla rete corretta. + +Verificare con: -Per configurare la CLI DoubleZero Client (`doublezero`) e il daemon (`doublezerod`) per connettersi al **testnet DoubleZero**: -```bash -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" -``` -Per configurare la CLI DoubleZero Client (`doublezero`) e il daemon (`doublezerod`) per connettersi al **mainnet-beta DoubleZero**: ```bash -DESIRED_DOUBLEZERO_ENV=mainnet-beta \ - && 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" +doublezero status ``` -Dovresti vedere il seguente output: -``` -✅ doublezerod configured for environment mainnet-beta -``` -Dovresti vedere il seguente output: -` -✅ doublezerod configured for environment testnet -` +La colonna `Network` dovrebbe corrispondere alla rete a cui si intende unirsi. In caso contrario, utilizzare il comando di cambio copia-incolla nella sezione [risoluzione problemi](troubleshooting.md#issue-wrong-doublezero-environment). -Dopo circa 30 secondi vedrai i dispositivi DoubleZero disponibili: +Dopo circa 30 secondi sarà possibile visualizzare i dispositivi DoubleZero disponibili: ```bash doublezero latency ``` -Esempio di output (Testnet) +Output di esempio (Testnet) ```bash - pubkey | code | ip | min | max | avg | reachable - 2hPMFJHh5BPX42ygBvuYYJfCv9q7g3rRR3ZRsUgtaqUi | dz-ny7-sw01 | 137.239.213.162 | 1.74ms | 1.92ms | 1.84ms | true - ETdwWpdQ7fXDHH5ea8feMmWxnZZvSKi4xDvuEGcpEvq3 | dz-ny5-sw01 | 137.239.213.170 | 1.88ms | 4.39ms | 2.72ms | true - 8J691gPwzy9FzUZQ4SmC6jJcY7By8kZXfbJwRfQ8ns31 | nyc002-dz002 | 38.122.35.137 | 2.45ms | 3.30ms | 2.74ms | true - 8gisbwJnNhMNEWz587cAJMtSSFuWeNFtiufPuBTVqF2Z | dz-ny7-sw02 | 142.215.184.122 | 1.88ms | 5.13ms | 3.02ms | true - uzyg9iYw2FEbtdTHaDb5HoeEWYAPRPQgvsgyd873qPS | nyc001-dz002 | 4.42.212.122 | 3.17ms | 3.63ms | 3.33ms | true - FEML4XsDPN3WfmyFAXzE2xzyYqSB9kFCRrMik8JqN6kT | nyc001-dz001 | 38.104.167.29 | 2.33ms | 5.46ms | 3.39ms | true - 9oKLaL6Hwno5TyAFutTbbkNrzxm1fw9fhzkiUHgsxgGx | dz-dc10-sw01 | 137.239.200.186 | 6.84ms | 7.01ms | 6.91ms | true - DESzDP8GkSTpQLkrUegLkt4S2ynGfZX5bTDzZf3sEE58 | was001-dz002 | 38.88.214.133 | 7.39ms | 7.44ms | 7.41ms | true - HHNCpqB7CwHVLxAiB1S86ko6gJRzLCtw78K1tc7ZpT5P | was001-dz001 | 66.198.11.74 | 7.67ms | 7.85ms | 7.76ms | true - 9LFtjDzohKvCBzSquQD4YtL3HwuvkKBDE7KSzb8ztV2b | dz-mtl11-sw01 | 134.195.161.10 | 9.88ms | 10.01ms | 9.95ms | true - 9M7FfYYyjM4wGinKPofZRNmQFcCjCKRbXscGBUiXvXnG | dz-tor1-sw01 | 209.42.165.10 | 14.52ms | 14.53ms | 14.52ms | true + pubkey | code | ip | min | max | avg | reachable + 2hPMFJHh5BPX42ygBvuYYJfCv9q7g3rRR3ZRsUgtaqUi | dz-ny7-sw01 | 137.239.213.162 | 1.74ms | 1.92ms | 1.84ms | true + ETdwWpdQ7fXDHH5ea8feMmWxnZZvSKi4xDvuEGcpEvq3 | dz-ny5-sw01 | 137.239.213.170 | 1.88ms | 4.39ms | 2.72ms | true + 8J691gPwzy9FzUZQ4SmC6jJcY7By8kZXfbJwRfQ8ns31 | nyc002-dz002 | 38.122.35.137 | 2.45ms | 3.30ms | 2.74ms | true + 8gisbwJnNhMNEWz587cAJMtSSFuWeNFtiufPuBTVqF2Z | dz-ny7-sw02 | 142.215.184.122 | 1.88ms | 5.13ms | 3.02ms | true + uzyg9iYw2FEbtdTHaDb5HoeEWYAPRPQgvsgyd873qPS | nyc001-dz002 | 4.42.212.122 | 3.17ms | 3.63ms | 3.33ms | true + FEML4XsDPN3WfmyFAXzE2xzyYqSB9kFCRrMik8JqN6kT | nyc001-dz001 | 38.104.167.29 | 2.33ms | 5.46ms | 3.39ms | true + 9oKLaL6Hwno5TyAFutTbbkNrzxm1fw9fhzkiUHgsxgGx | dz-dc10-sw01 | 137.239.200.186 | 6.84ms | 7.01ms | 6.91ms | true + DESzDP8GkSTpQLkrUegLkt4S2ynGfZX5bTDzZf3sEE58 | was001-dz002 | 38.88.214.133 | 7.39ms | 7.44ms | 7.41ms | true + HHNCpqB7CwHVLxAiB1S86ko6gJRzLCtw78K1tc7ZpT5P | was001-dz001 | 66.198.11.74 | 7.67ms | 7.85ms | 7.76ms | true + 9LFtjDzohKvCBzSquQD4YtL3HwuvkKBDE7KSzb8ztV2b | dz-mtl11-sw01 | 134.195.161.10 | 9.88ms | 10.01ms | 9.95ms | true + 9M7FfYYyjM4wGinKPofZRNmQFcCjCKRbXscGBUiXvXnG | dz-tor1-sw01 | 209.42.165.10 | 14.52ms | 14.53ms | 14.52ms | true ``` L'output del Testnet sarà identico nella struttura, ma con molti più dispositivi disponibili. - - -## 2. Contatta la DoubleZero Foundation +## 2. Contattare la DoubleZero Foundation -La DoubleZero Foundation. Dovrai fornire il tuo `DoubleZeroID`, il tuo `ID Validatore` (node ID) e il `indirizzo IPv4 pubblico` da cui ti connetterai. +La DoubleZero Foundation. Sarà necessario fornire il proprio `DoubleZeroID`, il proprio `Validator ID` (ID del nodo) e l'`public ipv4 address` da cui ci si connetterà.
-## 3. Connettiti in Modalità IBRL +## 3. Connettersi in Modalità IBRL -Sul server, con l'utente che si connetterà a DoubleZero, esegui il comando `connect` per stabilire la connessione a DoubleZero. +Sul server, con l'utente che si connetterà a DoubleZero, eseguire il comando `connect` per stabilire la connessione a DoubleZero. ```bash doublezero connect ibrl ``` -Dovresti vedere un output che indica il provisioning, come: +Dovrebbe apparire un output che indica il provisioning, come: ``` DoubleZero Service Provisioning @@ -109,9 +87,9 @@ Public IP detected: 137.184.101.183 - If you want to use a different IP, you can Service provisioned with status: ok ✅ User Provisioned ``` -Attendi un minuto per il completamento del tunnel. Finché il tunnel non è completato, l'output dello stato potrebbe restituire "down" o "Unknown" +Attendere un minuto affinché il tunnel venga completato. Fino al completamento del tunnel, l'output dello stato potrebbe restituire "down" o "Unknown" -Verifica la tua connessione: +Verificare la connessione: ```bash doublezero status @@ -122,9 +100,9 @@ doublezero status Tunnel status | Last Session Update | Tunnel Name | Tunnel src | Tunnel dst | DoubleZero IP | User Type up | 2025-09-10 12:16:03 UTC | doublezero0 | 137.184.101.183 | 64.86.249.22 | 137.184.101.183 | IBRL ``` -Uno stato `up` significa che sei connesso con successo. +Uno stato `up` significa che la connessione è stata stabilita con successo. -Potrai visualizzare le route propagate da altri utenti su DoubleZero eseguendo: +Sarà possibile visualizzare le rotte propagate da altri utenti su DoubleZero eseguendo: ``` ip route @@ -132,15 +110,15 @@ ip route Output: ``` -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 +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 ... ```
-### Passo Successivo: Multicast +### Prossimo Passo: Multicast -Se hai completato questa configurazione e prevedi di usare il Multicast, procedi alla [pagina successiva](Other%20Multicast%20Connection.md). +Se avete completato questa configurazione e prevedete di utilizzare Multicast, procedere alla [pagina successiva](Other%20Multicast%20Connection.md). \ No newline at end of file diff --git a/docs/Permissioned Connection.ja.md b/docs/Permissioned Connection.ja.md index f5253e8..b899152 100644 --- a/docs/Permissioned Connection.ja.md +++ b/docs/Permissioned Connection.ja.md @@ -1,101 +1,80 @@ -# IBRLモードでのDoubleZeroへの非バリデーターPermissioned接続 -!!! warning "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." +--- +description: IBRL モードで DoubleZero Mainnet-Beta および Testnet に接続する非バリデーターおよび RPC 向けの許可制オンボーディング。 +--- -!!! warning "DoubleZeroに接続することで、[DoubleZeroサービス利用規約](https://doublezero.xyz/terms-protocol)に同意します" +# IBRL モードでの非バリデーター許可制 DoubleZero 接続 +!!! warning "DoubleZero に接続することにより、[DoubleZero 利用規約](https://doublezero.xyz/terms-protocol)に同意したものとみなされます"
-### Permissionedユーザーオンボーディングの概要 +### 許可制ユーザーオンボーディングの概要 -現在、非バリデーターとRPCのユーザーオンボーディングはPermissionedされています。Permissionedフローを開始するには、[このフォーム](https://forms.fillout.com/t/s77k7wandMus?id=rec08iF4Z8kVFGm1z)に記入してください。このプロセス中に予想されることは以下の通りです: +現在、非バリデーターおよび RPC のユーザーオンボーディングは許可制となっています。許可制フローを開始するには、[こちらのフォーム](https://forms.fillout.com/t/s77k7wandMus?id=rec08iF4Z8kVFGm1z)にご記入ください。このプロセスで予想される事項は以下の通りです: -- 将来的にPermissionedユーザーの使用に手数料が発生する場合があります。 -- フォーム送信後、主要なTelegram連絡先を監視してください。 +- 将来、許可制ユーザーの利用に料金が発生する場合があります。 +- フォーム送信後、主要な Telegram 連絡先をご確認ください。
-### IBRLモードでのメインネットベータおよびテストネット接続 +### IBRL モードでの Mainnet-Beta および Testnet への接続 !!! Note inline end - IBRLモードは既存のパブリックIPアドレスを使用するため、バリデータークライアントの再起動が不要です。 + IBRL モードでは、既存のパブリック IP アドレスを使用するため、バリデータークライアントの再起動は不要です。 -Permissionedユーザーはこのページで詳述するDoubleZeroメインネットベータへの接続を完了します。 +許可制ユーザーは、このページで詳述される DoubleZero Mainnet-beta への接続を完了します。 -## 1. 環境設定 +## 1. クライアントネットワークの確認 -続行する前に[セットアップ](setup.md)手順に従ってください。 +先に進む前に、[セットアップ](setup.md)の手順に従ってください。接続したいネットワーク向けの Mainnet-Beta または Testnet パッケージをインストールしてください — それぞれ異なるパッケージリポジトリを使用します。 -セットアップの最後のステップはネットワークから切断することでした。これにより、マシン上のDoubleZeroへのトンネルが1つだけ開いており、そのトンネルが正しいネットワーク上にあることを確認します。 +セットアップの最後のステップはネットワークからの切断でした。これは、マシン上で DoubleZero へのトンネルが1つだけ開いており、そのトンネルが正しいネットワークに接続されていることを確認するためです。 + +以下のコマンドで確認してください: -DoubleZeroクライアントCLI(`doublezero`)とデーモン(`doublezerod`)を**DoubleZeroテストネット**に接続するように設定するには: -```bash -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" -``` -DoubleZeroクライアントCLI(`doublezero`)とデーモン(`doublezerod`)を**DoubleZeroメインネットベータ**に接続するように設定するには: ```bash -DESIRED_DOUBLEZERO_ENV=mainnet-beta \ - && 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" +doublezero status ``` -次の出力が表示されるはずです: -``` -✅ doublezerod configured for environment mainnet-beta -``` -次の出力が表示されるはずです: -` -✅ doublezerod configured for environment testnet -` +`Network` 列が参加予定のネットワークと一致していることを確認してください。一致しない場合は、[トラブルシューティング](troubleshooting.md#issue-wrong-doublezero-environment)のコピー&ペースト切り替えを使用してください。 -約30秒後に利用可能なDoubleZeroデバイスが表示されます: +約30秒後に、利用可能な DoubleZero デバイスが表示されます: ```bash doublezero latency ``` -テストネットの出力例: +出力例(Testnet) ```bash - pubkey | code | ip | min | max | avg | reachable - 2hPMFJHh5BPX42ygBvuYYJfCv9q7g3rRR3ZRsUgtaqUi | dz-ny7-sw01 | 137.239.213.162 | 1.74ms | 1.92ms | 1.84ms | true - ETdwWpdQ7fXDHH5ea8feMmWxnZZvSKi4xDvuEGcpEvq3 | dz-ny5-sw01 | 137.239.213.170 | 1.88ms | 4.39ms | 2.72ms | true - 8J691gPwzy9FzUZQ4SmC6jJcY7By8kZXfbJwRfQ8ns31 | nyc002-dz002 | 38.122.35.137 | 2.45ms | 3.30ms | 2.74ms | true - 8gisbwJnNhMNEWz587cAJMtSSFuWeNFtiufPuBTVqF2Z | dz-ny7-sw02 | 142.215.184.122 | 1.88ms | 5.13ms | 3.02ms | true - uzyg9iYw2FEbtdTHaDb5HoeEWYAPRPQgvsgyd873qPS | nyc001-dz002 | 4.42.212.122 | 3.17ms | 3.63ms | 3.33ms | true - FEML4XsDPN3WfmyFAXzE2xzyYqSB9kFCRrMik8JqN6kT | nyc001-dz001 | 38.104.167.29 | 2.33ms | 5.46ms | 3.39ms | true - 9oKLaL6Hwno5TyAFutTbbkNrzxm1fw9fhzkiUHgsxgGx | dz-dc10-sw01 | 137.239.200.186 | 6.84ms | 7.01ms | 6.91ms | true - DESzDP8GkSTpQLkrUegLkt4S2ynGfZX5bTDzZf3sEE58 | was001-dz002 | 38.88.214.133 | 7.39ms | 7.44ms | 7.41ms | true - HHNCpqB7CwHVLxAiB1S86ko6gJRzLCtw78K1tc7ZpT5P | was001-dz001 | 66.198.11.74 | 7.67ms | 7.85ms | 7.76ms | true - 9LFtjDzohKvCBzSquQD4YtL3HwuvkKBDE7KSzb8ztV2b | dz-mtl11-sw01 | 134.195.161.10 | 9.88ms | 10.01ms | 9.95ms | true - 9M7FfYYyjM4wGinKPofZRNmQFcCjCKRbXscGBUiXvXnG | dz-tor1-sw01 | 209.42.165.10 | 14.52ms | 14.53ms | 14.52ms | true + pubkey | code | ip | min | max | avg | reachable + 2hPMFJHh5BPX42ygBvuYYJfCv9q7g3rRR3ZRsUgtaqUi | dz-ny7-sw01 | 137.239.213.162 | 1.74ms | 1.92ms | 1.84ms | true + ETdwWpdQ7fXDHH5ea8feMmWxnZZvSKi4xDvuEGcpEvq3 | dz-ny5-sw01 | 137.239.213.170 | 1.88ms | 4.39ms | 2.72ms | true + 8J691gPwzy9FzUZQ4SmC6jJcY7By8kZXfbJwRfQ8ns31 | nyc002-dz002 | 38.122.35.137 | 2.45ms | 3.30ms | 2.74ms | true + 8gisbwJnNhMNEWz587cAJMtSSFuWeNFtiufPuBTVqF2Z | dz-ny7-sw02 | 142.215.184.122 | 1.88ms | 5.13ms | 3.02ms | true + uzyg9iYw2FEbtdTHaDb5HoeEWYAPRPQgvsgyd873qPS | nyc001-dz002 | 4.42.212.122 | 3.17ms | 3.63ms | 3.33ms | true + FEML4XsDPN3WfmyFAXzE2xzyYqSB9kFCRrMik8JqN6kT | nyc001-dz001 | 38.104.167.29 | 2.33ms | 5.46ms | 3.39ms | true + 9oKLaL6Hwno5TyAFutTbbkNrzxm1fw9fhzkiUHgsxgGx | dz-dc10-sw01 | 137.239.200.186 | 6.84ms | 7.01ms | 6.91ms | true + DESzDP8GkSTpQLkrUegLkt4S2ynGfZX5bTDzZf3sEE58 | was001-dz002 | 38.88.214.133 | 7.39ms | 7.44ms | 7.41ms | true + HHNCpqB7CwHVLxAiB1S86ko6gJRzLCtw78K1tc7ZpT5P | was001-dz001 | 66.198.11.74 | 7.67ms | 7.85ms | 7.76ms | true + 9LFtjDzohKvCBzSquQD4YtL3HwuvkKBDE7KSzb8ztV2b | dz-mtl11-sw01 | 134.195.161.10 | 9.88ms | 10.01ms | 9.95ms | true + 9M7FfYYyjM4wGinKPofZRNmQFcCjCKRbXscGBUiXvXnG | dz-tor1-sw01 | 209.42.165.10 | 14.52ms | 14.53ms | 14.52ms | true ``` -テストネットの出力は構造が同じですが、利用可能なデバイスが多くなります。 - +Testnet の出力は構造的には同一ですが、利用可能なデバイスがさらに多く表示されます。 -## 2. DoubleZero Foundationへの連絡 +## 2. DoubleZero Foundation への連絡 -DoubleZero Foundationに連絡します。接続元の`DoubleZeroID`、`バリデーターID`(ノードID)、`公開IPv4アドレス`を提供する必要があります。 +DoubleZero Foundation に連絡してください。`DoubleZeroID`、`Validator ID`(ノード ID)、および接続元の `public ipv4 address` を提供する必要があります。
-## 3. IBRLモードでの接続 +## 3. IBRL モードで接続 -DoubleZeroに接続するユーザーで、サーバー上で`connect`コマンドを実行してDoubleZeroへの接続を確立します。 +サーバー上で、DoubleZero に接続するユーザーとして `connect` コマンドを実行し、DoubleZero への接続を確立します。 ```bash doublezero connect ibrl ``` -以下のようなプロビジョニングを示す出力が表示されます: +以下のようなプロビジョニングを示す出力が表示されるはずです: ``` DoubleZero Service Provisioning @@ -108,9 +87,9 @@ Public IP detected: 137.184.101.183 - If you want to use a different IP, you can Service provisioned with status: ok ✅ User Provisioned ``` -トンネルが完了するまで1分待ちます。トンネルが完了するまで、ステータス出力が「down」または「Unknown」を返す場合があります。 +トンネルが完了するまで1分間お待ちください。トンネルが完了するまで、ステータス出力は「down」または「Unknown」を返す場合があります。 -接続を確認します: +接続を確認してください: ```bash doublezero status @@ -121,9 +100,9 @@ doublezero status Tunnel status | Last Session Update | Tunnel Name | Tunnel src | Tunnel dst | DoubleZero IP | User Type up | 2025-09-10 12:16:03 UTC | doublezero0 | 137.184.101.183 | 64.86.249.22 | 137.184.101.183 | IBRL ``` -`up`のステータスは正常に接続されていることを意味します。 +ステータスが `up` であれば、正常に接続されています。 -次のコマンドを実行することでDoubleZero上の他のユーザーによって伝搬されたルートを確認できます: +以下のコマンドを実行することで、DoubleZero 上の他のユーザーによって伝播されたルートを確認できます: ``` ip route @@ -131,10 +110,10 @@ 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 +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 ... ``` @@ -142,4 +121,4 @@ default via 149.28.38.1 dev enp1s0 proto dhcp src 149.28.38.64 metric 100 ### 次のステップ:マルチキャスト -このセットアップを完了してマルチキャストを使用する予定の場合は、[次のページ](Other%20Multicast%20Connection.md)に進んでください。 +このセットアップが完了し、マルチキャストの使用を予定している場合は、[次のページ](Other%20Multicast%20Connection.md)に進んでください。 \ No newline at end of file diff --git a/docs/Permissioned Connection.ko.md b/docs/Permissioned Connection.ko.md index 7eaecc6..c015a06 100644 --- a/docs/Permissioned Connection.ko.md +++ b/docs/Permissioned Connection.ko.md @@ -1,102 +1,80 @@ -# 비검증자를 위한 IBRL 모드 허가된 DoubleZero 연결 -!!! warning "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." +--- +description: IBRL 모드에서 DoubleZero Mainnet-Beta 및 Testnet에 연결하는 비검증자 및 RPC를 위한 허가형 온보딩. +--- +# IBRL 모드에서의 비검증자 허가형 DoubleZero 연결 !!! warning "DoubleZero에 연결함으로써 [DoubleZero 서비스 약관](https://doublezero.xyz/terms-protocol)에 동의합니다"
-### 허가된 사용자 온보딩 개요 +### 허가형 사용자 온보딩 개요 -현재 비검증자 및 RPC에 대한 사용자 온보딩은 허가제입니다. 허가된 흐름을 시작하려면 [이 양식](https://forms.fillout.com/t/s77k7wandMus?id=rec08iF4Z8kVFGm1z)을 작성하세요. 이 과정에서 예상되는 사항은 다음과 같습니다: +사용자 온보딩은 현재 비검증자 및 RPC에 대해 허가형으로 운영됩니다. 허가형 절차를 시작하려면 [이 양식](https://forms.fillout.com/t/s77k7wandMus?id=rec08iF4Z8kVFGm1z)을 작성해 주세요. 이 과정에서 예상되는 사항은 다음과 같습니다: -- 향후 허가된 사용자 사용과 관련된 수수료가 있을 수 있습니다. -- 양식 제출 후 기본 텔레그램 연락처를 모니터링하세요. +- 향후 허가형 사용자 이용에 수수료가 부과될 수 있습니다. +- 양식 제출 후 기본 Telegram 연락처를 모니터링해 주세요.
-### IBRL 모드로 Mainnet-Beta 및 Testnet에 연결 +### IBRL 모드에서 Mainnet-Beta 및 Testnet에 연결하기 !!! Note inline end IBRL 모드는 기존 공개 IP 주소를 사용하므로 검증자 클라이언트를 재시작할 필요가 없습니다. -허가된 사용자는 이 페이지에 설명된 DoubleZero Mainnet-beta 연결을 완료합니다. +허가형 사용자는 DoubleZero Mainnet-beta 연결을 완료하게 되며, 자세한 내용은 이 페이지에 설명되어 있습니다. -## 1. 환경 구성 +## 1. 클라이언트 네트워크 확인 -진행하기 전에 [설정](setup.md) 지침을 따르세요. +진행하기 전에 [설정](setup.md) 지침을 따라 주세요. 원하는 네트워크에 맞는 Mainnet-Beta 또는 Testnet 패키지를 설치하세요 — 서로 다른 패키지 저장소를 사용합니다. -설정의 마지막 단계는 네트워크에서 연결을 해제하는 것이었습니다. 이는 DoubleZero에 한 개의 터널만 열려 있고 해당 터널이 올바른 네트워크에 있도록 하기 위한 것입니다. +설정의 마지막 단계는 네트워크에서 연결을 해제하는 것이었습니다. 이는 DoubleZero에 대한 터널이 하나만 열려 있고, 해당 터널이 올바른 네트워크에 연결되어 있는지 확인하기 위함입니다. + +다음 명령으로 확인하세요: -**DoubleZero 테스트넷**에 연결하도록 DoubleZero 클라이언트 CLI(`doublezero`) 및 데몬(`doublezerod`)을 구성하려면: -```bash -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" -``` -**DoubleZero mainnet-beta**에 연결하도록 DoubleZero 클라이언트 CLI(`doublezero`) 및 데몬(`doublezerod`)을 구성하려면: ```bash -DESIRED_DOUBLEZERO_ENV=mainnet-beta \ - && 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" +doublezero status ``` -다음 출력이 표시되어야 합니다: -``` -✅ doublezerod configured for environment mainnet-beta -``` -다음 출력이 표시되어야 합니다: -` -✅ doublezerod configured for environment testnet -` +`Network` 열이 참여하려는 네트워크와 일치해야 합니다. 일치하지 않는 경우 [문제 해결](troubleshooting.md#issue-wrong-doublezero-environment)의 복사-붙여넣기 전환 방법을 사용하세요. -약 30초 후 DoubleZero 장치를 볼 수 있습니다: +약 30초 후 사용 가능한 DoubleZero 장치를 확인할 수 있습니다: ```bash doublezero latency ``` -예시 출력 (테스트넷) +예시 출력 (Testnet) ```bash - pubkey | code | ip | min | max | avg | reachable - 2hPMFJHh5BPX42ygBvuYYJfCv9q7g3rRR3ZRsUgtaqUi | dz-ny7-sw01 | 137.239.213.162 | 1.74ms | 1.92ms | 1.84ms | true - ETdwWpdQ7fXDHH5ea8feMmWxnZZvSKi4xDvuEGcpEvq3 | dz-ny5-sw01 | 137.239.213.170 | 1.88ms | 4.39ms | 2.72ms | true - 8J691gPwzy9FzUZQ4SmC6jJcY7By8kZXfbJwRfQ8ns31 | nyc002-dz002 | 38.122.35.137 | 2.45ms | 3.30ms | 2.74ms | true - 8gisbwJnNhMNEWz587cAJMtSSFuWeNFtiufPuBTVqF2Z | dz-ny7-sw02 | 142.215.184.122 | 1.88ms | 5.13ms | 3.02ms | true - uzyg9iYw2FEbtdTHaDb5HoeEWYAPRPQgvsgyd873qPS | nyc001-dz002 | 4.42.212.122 | 3.17ms | 3.63ms | 3.33ms | true - FEML4XsDPN3WfmyFAXzE2xzyYqSB9kFCRrMik8JqN6kT | nyc001-dz001 | 38.104.167.29 | 2.33ms | 5.46ms | 3.39ms | true - 9oKLaL6Hwno5TyAFutTbbkNrzxm1fw9fhzkiUHgsxgGx | dz-dc10-sw01 | 137.239.200.186 | 6.84ms | 7.01ms | 6.91ms | true - DESzDP8GkSTpQLkrUegLkt4S2ynGfZX5bTDzZf3sEE58 | was001-dz002 | 38.88.214.133 | 7.39ms | 7.44ms | 7.41ms | true - HHNCpqB7CwHVLxAiB1S86ko6gJRzLCtw78K1tc7ZpT5P | was001-dz001 | 66.198.11.74 | 7.67ms | 7.85ms | 7.76ms | true - 9LFtjDzohKvCBzSquQD4YtL3HwuvkKBDE7KSzb8ztV2b | dz-mtl11-sw01 | 134.195.161.10 | 9.88ms | 10.01ms | 9.95ms | true - 9M7FfYYyjM4wGinKPofZRNmQFcCjCKRbXscGBUiXvXnG | dz-tor1-sw01 | 209.42.165.10 | 14.52ms | 14.53ms | 14.52ms | true + pubkey | code | ip | min | max | avg | reachable + 2hPMFJHh5BPX42ygBvuYYJfCv9q7g3rRR3ZRsUgtaqUi | dz-ny7-sw01 | 137.239.213.162 | 1.74ms | 1.92ms | 1.84ms | true + ETdwWpdQ7fXDHH5ea8feMmWxnZZvSKi4xDvuEGcpEvq3 | dz-ny5-sw01 | 137.239.213.170 | 1.88ms | 4.39ms | 2.72ms | true + 8J691gPwzy9FzUZQ4SmC6jJcY7By8kZXfbJwRfQ8ns31 | nyc002-dz002 | 38.122.35.137 | 2.45ms | 3.30ms | 2.74ms | true + 8gisbwJnNhMNEWz587cAJMtSSFuWeNFtiufPuBTVqF2Z | dz-ny7-sw02 | 142.215.184.122 | 1.88ms | 5.13ms | 3.02ms | true + uzyg9iYw2FEbtdTHaDb5HoeEWYAPRPQgvsgyd873qPS | nyc001-dz002 | 4.42.212.122 | 3.17ms | 3.63ms | 3.33ms | true + FEML4XsDPN3WfmyFAXzE2xzyYqSB9kFCRrMik8JqN6kT | nyc001-dz001 | 38.104.167.29 | 2.33ms | 5.46ms | 3.39ms | true + 9oKLaL6Hwno5TyAFutTbbkNrzxm1fw9fhzkiUHgsxgGx | dz-dc10-sw01 | 137.239.200.186 | 6.84ms | 7.01ms | 6.91ms | true + DESzDP8GkSTpQLkrUegLkt4S2ynGfZX5bTDzZf3sEE58 | was001-dz002 | 38.88.214.133 | 7.39ms | 7.44ms | 7.41ms | true + HHNCpqB7CwHVLxAiB1S86ko6gJRzLCtw78K1tc7ZpT5P | was001-dz001 | 66.198.11.74 | 7.67ms | 7.85ms | 7.76ms | true + 9LFtjDzohKvCBzSquQD4YtL3HwuvkKBDE7KSzb8ztV2b | dz-mtl11-sw01 | 134.195.161.10 | 9.88ms | 10.01ms | 9.95ms | true + 9M7FfYYyjM4wGinKPofZRNmQFcCjCKRbXscGBUiXvXnG | dz-tor1-sw01 | 209.42.165.10 | 14.52ms | 14.53ms | 14.52ms | true ``` -테스트넷 출력은 구조가 동일하지만 훨씬 더 많은 장치가 있습니다. - - +Testnet 출력은 구조적으로 동일하지만, 사용 가능한 장치가 훨씬 더 많습니다. -## 2. DoubleZero Foundation에 연락 +## 2. DoubleZero Foundation에 연락하기 -DoubleZero Foundation에 연락하세요. `DoubleZeroID`, `검증자 ID`(노드 ID), 그리고 연결할 `공개 IPv4 주소`를 제공해야 합니다. +DoubleZero foundation에 연락하세요. `DoubleZeroID`, `Validator ID`(노드 ID), 그리고 연결에 사용할 `public ipv4 address`를 제공해야 합니다.
-## 3. IBRL 모드로 연결 +## 3. IBRL 모드로 연결하기 -서버에서 DoubleZero에 연결할 사용자로 `connect` 명령을 실행하여 DoubleZero에 연결을 설정하세요. +서버에서 DoubleZero에 연결할 사용자로 `connect` 명령을 실행하여 DoubleZero 연결을 설정하세요. ```bash doublezero connect ibrl ``` -다음과 같은 프로비저닝을 나타내는 출력이 표시되어야 합니다: +다음과 같은 프로비저닝 진행 출력을 확인할 수 있습니다: ``` DoubleZero Service Provisioning @@ -109,7 +87,7 @@ Public IP detected: 137.184.101.183 - If you want to use a different IP, you can Service provisioned with status: ok ✅ User Provisioned ``` -터널이 완료될 때까지 1분 기다리세요. 터널이 완료될 때까지 상태 출력이 "down" 또는 "Unknown"을 반환할 수 있습니다. +터널이 완료될 때까지 1분 정도 기다려 주세요. 터널이 완료되기 전까지 상태 출력이 "down" 또는 "Unknown"으로 표시될 수 있습니다. 연결을 확인하세요: @@ -122,9 +100,9 @@ doublezero status Tunnel status | Last Session Update | Tunnel Name | Tunnel src | Tunnel dst | DoubleZero IP | User Type up | 2025-09-10 12:16:03 UTC | doublezero0 | 137.184.101.183 | 64.86.249.22 | 137.184.101.183 | IBRL ``` -`up` 상태는 성공적으로 연결되었음을 의미합니다. +상태가 `up`이면 성공적으로 연결된 것입니다. -다음을 실행하여 DoubleZero의 다른 사용자가 전파한 경로를 볼 수 있습니다: +다음 명령을 실행하면 DoubleZero의 다른 사용자가 전파한 라우트를 확인할 수 있습니다: ``` ip route @@ -132,15 +110,15 @@ 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 +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 ... ```
-### 다음 단계: 멀티캐스트 +### 다음 단계: Multicast -이 설정을 완료하고 멀티캐스트를 사용할 계획이라면 [다음 페이지](Other%20Multicast%20Connection.md)로 진행하세요. +이 설정을 완료했고 Multicast를 사용할 계획이라면 [다음 페이지](Other%20Multicast%20Connection.md)로 진행하세요. \ No newline at end of file diff --git a/docs/Permissioned Connection.md b/docs/Permissioned Connection.md index 15e99c0..2c287df 100644 --- a/docs/Permissioned Connection.md +++ b/docs/Permissioned Connection.md @@ -23,41 +23,19 @@ User onboarding is currently permissioned for non-validators and RPCs. To begin Permissioned Users will complete connection to DoubleZero Mainnet-beta, which is detailed on this page. -## 1. Environment Configuration +## 1. Confirm the client network -Please follow the [setup](setup.md) instructions before proceeding. +Please follow the [setup](setup.md) instructions before proceeding. Install the Mainnet-Beta or Testnet packages for the network you want — they use different package repos. The last step in setup was to disconnect from the network. This is to ensure that only one tunnel is open on your machine to DoubleZero, and that tunnel is on the correct network. -To configure the DoubleZero Client CLI (`doublezero`) and daemon (`doublezerod`) to connect to **DoubleZero testnet**: -```bash -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" -``` -To configure the DoubleZero Client CLI (`doublezero`) and daemon (`doublezerod`) to connect to **DoubleZero mainnet-beta**: +Confirm with: + ```bash -DESIRED_DOUBLEZERO_ENV=mainnet-beta \ - && 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" +doublezero status ``` -You should see the following output: -``` -✅ doublezerod configured for environment mainnet-beta -``` -You should see the following output: -` -✅ doublezerod configured for environment testnet -` +The `Network` column should match the network you intend to join. If it does not, use the copy-paste switch in [troubleshooting](troubleshooting.md#issue-wrong-doublezero-environment). After about 30 seconds you will see the DoubleZero devices available: @@ -80,8 +58,6 @@ Example output (Testnet) 9M7FfYYyjM4wGinKPofZRNmQFcCjCKRbXscGBUiXvXnG | dz-tor1-sw01 | 209.42.165.10 | 14.52ms | 14.53ms | 14.52ms | true ``` Testnet output will be identical in structure, but with many more available devices. - - ## 2. Contact the DoubleZero Foundation diff --git a/docs/Permissioned Connection.pt.md b/docs/Permissioned Connection.pt.md index 928e846..4f6df69 100644 --- a/docs/Permissioned Connection.pt.md +++ b/docs/Permissioned Connection.pt.md @@ -1,15 +1,17 @@ -# Conexão com Permissão ao DoubleZero no Modo IBRL para Não-Validadores -!!! warning "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." +--- +description: Integração com permissão para não-validadores e RPCs conectando ao DoubleZero Mainnet-Beta e Testnet no modo IBRL. +--- -!!! warning "Ao conectar ao DoubleZero, concordo com os [Termos de Serviço do DoubleZero](https://doublezero.xyz/terms-protocol)" +# Conexão com Permissão de Não-Validador ao DoubleZero no Modo IBRL +!!! warning "Ao conectar ao DoubleZero, eu concordo com os [Termos de Serviço do DoubleZero](https://doublezero.xyz/terms-protocol)"
-### Visão Geral do Processo de Integração com Permissão +### Visão Geral da Integração de Usuário com Permissão -A integração de usuários está atualmente sujeita a permissão para não-validadores e RPCs. Para iniciar o processo com permissão, preencha [este formulário](https://forms.fillout.com/t/s77k7wandMus?id=rec08iF4Z8kVFGm1z). Isto é o que você pode esperar durante este processo: +A integração de usuários é atualmente com permissão para não-validadores e RPCs. Para iniciar o fluxo com permissão, por favor preencha [este formulário](https://forms.fillout.com/t/s77k7wandMus?id=rec08iF4Z8kVFGm1z). Aqui está o que esperar durante este processo: -- Pode haver taxas associadas ao uso de Usuários com Permissão no futuro. +- Poderão existir taxas associadas ao uso de Usuário com Permissão no futuro. - Após o envio do formulário, monitore seu contato principal no Telegram.
@@ -17,64 +19,62 @@ A integração de usuários está atualmente sujeita a permissão para não-vali ### Conectando ao Mainnet-Beta e Testnet no Modo IBRL !!! Note inline end - O modo IBRL não requer reinicialização dos clientes validadores, pois usa seu endereço IP público existente. + O modo IBRL não requer reiniciar os clientes validadores, porque utiliza o seu endereço IP público existente. -Os Usuários com Permissão completarão a conexão ao DoubleZero Mainnet-beta, detalhada nesta página. +Usuários com Permissão completarão a conexão ao DoubleZero Mainnet-beta, que está detalhada nesta página. -## 1. Configuração do Ambiente +## 1. Confirmar a rede do cliente -Siga as instruções de [configuração](setup.md) antes de continuar. +Por favor, siga as instruções de [configuração](setup.md) antes de prosseguir. Instale os pacotes de Mainnet-Beta ou Testnet para a rede desejada — eles utilizam repositórios de pacotes diferentes. 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 **DoubleZero testnet**: -```bash -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" -``` -Para configurar o CLI do DoubleZero (`doublezero`) e o daemon (`doublezerod`) para se conectar ao **DoubleZero mainnet-beta**: +Confirme com: + ```bash -DESIRED_DOUBLEZERO_ENV=mainnet-beta \ - && 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" +doublezero status ``` -Você deve ver a seguinte saída: -``` -✅ doublezerod configured for environment mainnet-beta -``` +A coluna `Network` deve corresponder à rede à qual você pretende se conectar. Se não corresponder, use a opção de troca por copiar e colar na seção de [solução de problemas](troubleshooting.md#issue-wrong-doublezero-environment). -Após aproximadamente 30 segundos, você verá os dispositivos DoubleZero disponíveis: +Após cerca de 30 segundos, você verá os dispositivos DoubleZero disponíveis: ```bash doublezero latency ``` +Exemplo de saída (Testnet) +```bash + pubkey | code | ip | min | max | avg | reachable + 2hPMFJHh5BPX42ygBvuYYJfCv9q7g3rRR3ZRsUgtaqUi | dz-ny7-sw01 | 137.239.213.162 | 1.74ms | 1.92ms | 1.84ms | true + ETdwWpdQ7fXDHH5ea8feMmWxnZZvSKi4xDvuEGcpEvq3 | dz-ny5-sw01 | 137.239.213.170 | 1.88ms | 4.39ms | 2.72ms | true + 8J691gPwzy9FzUZQ4SmC6jJcY7By8kZXfbJwRfQ8ns31 | nyc002-dz002 | 38.122.35.137 | 2.45ms | 3.30ms | 2.74ms | true + 8gisbwJnNhMNEWz587cAJMtSSFuWeNFtiufPuBTVqF2Z | dz-ny7-sw02 | 142.215.184.122 | 1.88ms | 5.13ms | 3.02ms | true + uzyg9iYw2FEbtdTHaDb5HoeEWYAPRPQgvsgyd873qPS | nyc001-dz002 | 4.42.212.122 | 3.17ms | 3.63ms | 3.33ms | true + FEML4XsDPN3WfmyFAXzE2xzyYqSB9kFCRrMik8JqN6kT | nyc001-dz001 | 38.104.167.29 | 2.33ms | 5.46ms | 3.39ms | true + 9oKLaL6Hwno5TyAFutTbbkNrzxm1fw9fhzkiUHgsxgGx | dz-dc10-sw01 | 137.239.200.186 | 6.84ms | 7.01ms | 6.91ms | true + DESzDP8GkSTpQLkrUegLkt4S2ynGfZX5bTDzZf3sEE58 | was001-dz002 | 38.88.214.133 | 7.39ms | 7.44ms | 7.41ms | true + HHNCpqB7CwHVLxAiB1S86ko6gJRzLCtw78K1tc7ZpT5P | was001-dz001 | 66.198.11.74 | 7.67ms | 7.85ms | 7.76ms | true + 9LFtjDzohKvCBzSquQD4YtL3HwuvkKBDE7KSzb8ztV2b | dz-mtl11-sw01 | 134.195.161.10 | 9.88ms | 10.01ms | 9.95ms | true + 9M7FfYYyjM4wGinKPofZRNmQFcCjCKRbXscGBUiXvXnG | dz-tor1-sw01 | 209.42.165.10 | 14.52ms | 14.53ms | 14.52ms | true +``` +A saída do Testnet será idêntica em estrutura, mas com muito mais dispositivos disponíveis. ## 2. Contatar a Fundação DoubleZero -A Fundação DoubleZero. Você precisará fornecer seu `DoubleZeroID`, seu `ID de Validador` (node ID) e o `endereço IPv4 público` a partir do qual você se conectará. +A fundação DoubleZero. Você precisará fornecer seu `DoubleZeroID`, seu `Validator ID` (ID do nó) e o `endereço ipv4 público` a partir do qual você estará se conectando.
## 3. 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. +No servidor, com o usuário que irá se conectar ao DoubleZero, execute o comando `connect` para estabelecer a conexão ao DoubleZero. ```bash doublezero connect ibrl ``` -Você deve ver uma saída indicando o provisionamento, como: +Você deverá ver uma saída indicando o provisionamento, como: ``` DoubleZero Service Provisioning @@ -87,7 +87,7 @@ Public IP detected: 137.184.101.183 - If you want to use a different IP, you can Service provisioned with status: ok ✅ User Provisioned ``` -Aguarde um minuto para o túnel ser concluído. Até que o túnel seja concluído, sua saída de status pode retornar "down" ou "Unknown". +Aguarde um minuto para que o túnel seja concluído. Até que o túnel seja concluído, a saída do seu status pode retornar "down" ou "Unknown" Verifique sua conexão: @@ -110,10 +110,10 @@ ip route Saída: ``` -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 +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 ... ``` @@ -121,4 +121,4 @@ default via 149.28.38.1 dev enp1s0 proto dhcp src 149.28.38.64 metric 100 ### Próximo Passo: Multicast -Se você completou esta configuração e planeja usar o Multicast, continue para a [próxima página](Other%20Multicast%20Connection.md). +Se você concluiu esta configuração e planeja usar Multicast, prossiga para a [próxima página](Other%20Multicast%20Connection.md). \ No newline at end of file diff --git a/docs/Permissioned Connection.zh.md b/docs/Permissioned Connection.zh.md index 3fe4eaa..8753d85 100644 --- a/docs/Permissioned Connection.zh.md +++ b/docs/Permissioned Connection.zh.md @@ -1,102 +1,80 @@ -# 非验证器以IBRL模式的Permissioned连接到DoubleZero -!!! warning "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." +--- +description: 以 IBRL 模式连接到 DoubleZero Mainnet-Beta 和 Testnet 的非验证者及 RPC 的许可制接入。 +--- -!!! warning "通过连接到DoubleZero,我同意[DoubleZero服务条款](https://doublezero.xyz/terms-protocol)" +# 非验证者以 IBRL 模式许可制连接到 DoubleZero +!!! warning "连接到 DoubleZero 即表示我同意 [DoubleZero 服务条款](https://doublezero.xyz/terms-protocol)"
-### Permissioned用户入职概述 +### 许可制用户接入概述 -目前非验证器和RPC的用户入职需要许可。要开始permissioned流程,请填写[此表单](https://forms.fillout.com/t/s77k7wandMus?id=rec08iF4Z8kVFGm1z)。以下是此过程中的预期内容: +目前,非验证者和 RPC 的用户接入采用许可制。要开始许可制流程,请填写[此表单](https://forms.fillout.com/t/s77k7wandMus?id=rec08iF4Z8kVFGm1z)。以下是该流程中需要了解的事项: -- 未来Permissioned用户使用可能会收取费用。 -- 提交表单后,请监控您的主要Telegram联系方式。 +- 未来许可制用户的使用可能会产生相关费用。 +- 提交表单后,请关注您的主要 Telegram 联系方式。
-### 以IBRL模式连接到主网Beta和测试网 +### 以 IBRL 模式连接到 Mainnet-Beta 和 Testnet !!! Note inline end - IBRL模式不需要重启验证器客户端,因为它使用您现有的公共IP地址。 + IBRL 模式不需要重启验证者客户端,因为它使用您现有的公网 IP 地址。 -Permissioned用户将完成到DoubleZero主网Beta的连接,详情请见本页面。 +许可制用户将完成到 DoubleZero Mainnet-beta 的连接,具体步骤详见本页。 -## 1. 环境配置 +## 1. 确认客户端网络 -请在继续之前按照[设置](setup.md)说明操作。 +请在继续之前按照[设置](setup.md)说明进行操作。根据您要加入的网络安装 Mainnet-Beta 或 Testnet 软件包——它们使用不同的软件包仓库。 -设置的最后一步是断开与网络的连接。这是为了确保您的机器上只有一个到DoubleZero的隧道处于开放状态,并且该隧道在正确的网络上。 +设置的最后一步是断开网络连接。这是为了确保您的机器上只有一个到 DoubleZero 的隧道处于开启状态,并且该隧道连接到正确的网络。 + +使用以下命令确认: -要配置DoubleZero客户端CLI(`doublezero`)和守护程序(`doublezerod`)连接到**DoubleZero测试网**: -```bash -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" -``` -要配置DoubleZero客户端CLI(`doublezero`)和守护程序(`doublezerod`)连接到**DoubleZero主网Beta**: ```bash -DESIRED_DOUBLEZERO_ENV=mainnet-beta \ - && 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" +doublezero status ``` -您应该看到以下输出: -``` -✅ doublezerod configured for environment mainnet-beta -``` -您应该看到以下输出: -` -✅ doublezerod configured for environment testnet -` +`Network` 列应与您打算加入的网络匹配。如果不匹配,请使用[故障排除](troubleshooting.md#issue-wrong-doublezero-environment)中的一键切换方法。 -大约30秒后,您将看到可用的DoubleZero设备: +大约 30 秒后,您将看到可用的 DoubleZero 设备: ```bash doublezero latency ``` -示例输出(测试网) +示例输出(Testnet) ```bash - pubkey | code | ip | min | max | avg | reachable - 2hPMFJHh5BPX42ygBvuYYJfCv9q7g3rRR3ZRsUgtaqUi | dz-ny7-sw01 | 137.239.213.162 | 1.74ms | 1.92ms | 1.84ms | true - ETdwWpdQ7fXDHH5ea8feMmWxnZZvSKi4xDvuEGcpEvq3 | dz-ny5-sw01 | 137.239.213.170 | 1.88ms | 4.39ms | 2.72ms | true - 8J691gPwzy9FzUZQ4SmC6jJcY7By8kZXfbJwRfQ8ns31 | nyc002-dz002 | 38.122.35.137 | 2.45ms | 3.30ms | 2.74ms | true - 8gisbwJnNhMNEWz587cAJMtSSFuWeNFtiufPuBTVqF2Z | dz-ny7-sw02 | 142.215.184.122 | 1.88ms | 5.13ms | 3.02ms | true - uzyg9iYw2FEbtdTHaDb5HoeEWYAPRPQgvsgyd873qPS | nyc001-dz002 | 4.42.212.122 | 3.17ms | 3.63ms | 3.33ms | true - FEML4XsDPN3WfmyFAXzE2xzyYqSB9kFCRrMik8JqN6kT | nyc001-dz001 | 38.104.167.29 | 2.33ms | 5.46ms | 3.39ms | true - 9oKLaL6Hwno5TyAFutTbbkNrzxm1fw9fhzkiUHgsxgGx | dz-dc10-sw01 | 137.239.200.186 | 6.84ms | 7.01ms | 6.91ms | true - DESzDP8GkSTpQLkrUegLkt4S2ynGfZX5bTDzZf3sEE58 | was001-dz002 | 38.88.214.133 | 7.39ms | 7.44ms | 7.41ms | true - HHNCpqB7CwHVLxAiB1S86ko6gJRzLCtw78K1tc7ZpT5P | was001-dz001 | 66.198.11.74 | 7.67ms | 7.85ms | 7.76ms | true - 9LFtjDzohKvCBzSquQD4YtL3HwuvkKBDE7KSzb8ztV2b | dz-mtl11-sw01 | 134.195.161.10 | 9.88ms | 10.01ms | 9.95ms | true - 9M7FfYYyjM4wGinKPofZRNmQFcCjCKRbXscGBUiXvXnG | dz-tor1-sw01 | 209.42.165.10 | 14.52ms | 14.53ms | 14.52ms | true + pubkey | code | ip | min | max | avg | reachable + 2hPMFJHh5BPX42ygBvuYYJfCv9q7g3rRR3ZRsUgtaqUi | dz-ny7-sw01 | 137.239.213.162 | 1.74ms | 1.92ms | 1.84ms | true + ETdwWpdQ7fXDHH5ea8feMmWxnZZvSKi4xDvuEGcpEvq3 | dz-ny5-sw01 | 137.239.213.170 | 1.88ms | 4.39ms | 2.72ms | true + 8J691gPwzy9FzUZQ4SmC6jJcY7By8kZXfbJwRfQ8ns31 | nyc002-dz002 | 38.122.35.137 | 2.45ms | 3.30ms | 2.74ms | true + 8gisbwJnNhMNEWz587cAJMtSSFuWeNFtiufPuBTVqF2Z | dz-ny7-sw02 | 142.215.184.122 | 1.88ms | 5.13ms | 3.02ms | true + uzyg9iYw2FEbtdTHaDb5HoeEWYAPRPQgvsgyd873qPS | nyc001-dz002 | 4.42.212.122 | 3.17ms | 3.63ms | 3.33ms | true + FEML4XsDPN3WfmyFAXzE2xzyYqSB9kFCRrMik8JqN6kT | nyc001-dz001 | 38.104.167.29 | 2.33ms | 5.46ms | 3.39ms | true + 9oKLaL6Hwno5TyAFutTbbkNrzxm1fw9fhzkiUHgsxgGx | dz-dc10-sw01 | 137.239.200.186 | 6.84ms | 7.01ms | 6.91ms | true + DESzDP8GkSTpQLkrUegLkt4S2ynGfZX5bTDzZf3sEE58 | was001-dz002 | 38.88.214.133 | 7.39ms | 7.44ms | 7.41ms | true + HHNCpqB7CwHVLxAiB1S86ko6gJRzLCtw78K1tc7ZpT5P | was001-dz001 | 66.198.11.74 | 7.67ms | 7.85ms | 7.76ms | true + 9LFtjDzohKvCBzSquQD4YtL3HwuvkKBDE7KSzb8ztV2b | dz-mtl11-sw01 | 134.195.161.10 | 9.88ms | 10.01ms | 9.95ms | true + 9M7FfYYyjM4wGinKPofZRNmQFcCjCKRbXscGBUiXvXnG | dz-tor1-sw01 | 209.42.165.10 | 14.52ms | 14.53ms | 14.52ms | true ``` -测试网输出结构相同,但可用设备更多。 - - +Testnet 的输出结构相同,但可用设备会更多。 -## 2. 联系DoubleZero基金会 +## 2. 联系 DoubleZero 基金会 -DoubleZero基金会。您需要提供您的`DoubleZero ID`、您的`验证器ID`(节点ID)以及您将从中连接的`公共IPv4地址`。 +联系 DoubleZero 基金会。您需要提供您的 `DoubleZeroID`、`Validator ID`(节点 ID)以及您将用于连接的 `public ipv4 address`(公网 IPv4 地址)。
-## 3. 以IBRL模式连接 +## 3. 以 IBRL 模式连接 -在服务器上,使用将连接到DoubleZero的用户,运行`connect`命令建立到DoubleZero的连接。 +在服务器上,使用将要连接到 DoubleZero 的用户,运行 `connect` 命令以建立到 DoubleZero 的连接。 ```bash doublezero connect ibrl ``` -您应该看到表示配置的输出,例如: +您应该会看到指示正在配置的输出,例如: ``` DoubleZero Service Provisioning @@ -109,7 +87,7 @@ Public IP detected: 137.184.101.183 - If you want to use a different IP, you can Service provisioned with status: ok ✅ User Provisioned ``` -等待一分钟让隧道完成。在隧道完成之前,您的状态输出可能返回"down"或"Unknown"。 +请等待一分钟让隧道建立完成。在隧道建立完成之前,您的状态输出可能会返回 "down" 或 "Unknown"。 验证您的连接: @@ -122,9 +100,9 @@ doublezero status Tunnel status | Last Session Update | Tunnel Name | Tunnel src | Tunnel dst | DoubleZero IP | User Type up | 2025-09-10 12:16:03 UTC | doublezero0 | 137.184.101.183 | 64.86.249.22 | 137.184.101.183 | IBRL ``` -状态`up`表示您已成功连接。 +状态为 `up` 表示您已成功连接。 -您可以通过运行以下命令查看DoubleZero上其他用户传播的路由: +您可以通过运行以下命令查看 DoubleZero 上其他用户传播的路由: ``` ip route @@ -132,10 +110,10 @@ 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 +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 ... ``` @@ -143,4 +121,4 @@ default via 149.28.38.1 dev enp1s0 proto dhcp src 149.28.38.64 metric 100 ### 下一步:多播 -如果您已完成此设置并计划使用多播,请继续访问[下一页](Other%20Multicast%20Connection.md)。 +如果您已完成此设置并计划使用多播,请继续查看[下一页](Other%20Multicast%20Connection.md)。 \ No newline at end of file diff --git a/docs/solana-ibrl-runbook.md b/docs/solana-ibrl-runbook.md index 947afff..4d49cf6 100644 --- a/docs/solana-ibrl-runbook.md +++ b/docs/solana-ibrl-runbook.md @@ -48,18 +48,16 @@ Rocky / RHEL: use `setup.rpm.sh` and `sudo yum install doublezero`. **Verify:** `sudo systemctl status doublezerod` is active. Back up `~/.config/doublezero/id.json`. -### 2. Point the daemon at mainnet-beta +### 2. Confirm the client is on mainnet-beta + +Install the Mainnet-Beta packages from [setup](setup.md) (Testnet uses a different repo). Then: ```bash -DESIRED_DOUBLEZERO_ENV=mainnet-beta \ - && 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" +doublezero status ``` +**Pass:** `Network` is `mainnet-beta`. If it is `testnet`, switch with the copy-paste in [troubleshooting](troubleshooting.md#issue-wrong-doublezero-environment). + Wait ~30s, then `doublezero latency` should list mainnet devices. ### 3. Open UDP 44880 on `doublezero0` @@ -145,7 +143,7 @@ Expect BGP-learned routes via `doublezero0`. ## Gotchas -1. **Wrong env.** Testnet packages / `DESIRED_DOUBLEZERO_ENV=testnet` will not land on mainnet-beta. +1. **Wrong env.** Testnet packages will not land on mainnet-beta. Confirm with `doublezero status`; switch using [troubleshooting](troubleshooting.md#issue-wrong-doublezero-environment). 2. **Identity not in gossip.** Junk IDs on the same IP cannot register the machine. 3. **Backups must share the primary DoubleZero ID.** Copy `id.json`; do not keygen a second identity. 4. **Sign with the validator identity**, not the DoubleZero key. diff --git a/docs/troubleshooting.es.md b/docs/troubleshooting.es.md index 72d0054..88b2c47 100644 --- a/docs/troubleshooting.es.md +++ b/docs/troubleshooting.es.md @@ -1,5 +1,5 @@ --- -description: Diagnostique problemas comunes de conexión con DoubleZero con comandos de referencia, salidas esperadas y dónde obtener soporte adicional. +description: Diagnostica problemas comunes de conexión de DoubleZero con comandos de referencia, salidas esperadas y dónde obtener soporte adicional. --- # Solución de problemas @@ -7,12 +7,12 @@ description: Diagnostique problemas comunes de conexión con DoubleZero con coma Esta guía cubrirá una variedad de problemas y se actualiza continuamente. Si completa la guía, puede buscar soporte adicional en el discord de [DoubleZero Tech](https://discord.com/channels/1341597747932958802/1344323790464880701). -## Comandos y salidas comunes +## Comandos comunes y sus salidas Para comenzar, examine la salida de los siguientes comandos y su salida esperada. Estos le ayudarán en una solución de problemas más detallada. -Si abre un ticket, es posible que se le solicite su salida. +Si abre un ticket, es posible que le soliciten sus salidas. -#### 1. Verificar versión +#### 1. Verificar la versión Comando: `doublezero --version` @@ -36,13 +36,13 @@ MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2 #### 3. Verificar su Access Pass -Clave pública de ejemplo: `MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2` reemplácela con su clave pública al ejecutar el comando. +Pubkey de ejemplo: `MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2` reemplace esto con su pubkey al ejecutar el comando. Comando: `doublezero access-pass list | grep MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2` -Salida: [nota: usamos `doublezero access-pass list | awk 'NR==1 || /MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2/'` para mostrarle el encabezado en esta salida] +Salida: [note que usamos `doublezero access-pass list | awk 'NR==1 || /MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2/'` para mostrarle el encabezado en esta salida] ``` account | accesspass_type | ip | user_payer | last_access_epoch | remaining_epoch | connections | status | owner @@ -99,7 +99,7 @@ Ahora que hemos examinado las salidas básicas y lo que se espera en un desplieg ### Problema: ❌ Error creating user -Este problema generalmente está relacionado con una discrepancia entre el par clave pública/IP esperado y el par clave pública/IP con el que el usuario está intentando acceder a DoubleZero. +Este problema generalmente está relacionado con una discrepancia entre el emparejamiento esperado de pubkey/IP y el emparejamiento de pubkey/IP con el que el usuario está intentando acceder a DoubleZero. **Síntomas:** - Al conectarse con `doublezero connect ibrl` el usuario encuentra `❌ Error creating user` @@ -114,7 +114,7 @@ Este problema generalmente está relacionado con una discrepancia entre el par c ``` MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2 ``` -2. Verifique que esta dirección esté en la lista de permitidos: +2. Verifique que esta dirección está en la lista de permitidos: `doublezero access-pass list | awk 'NR==1 || /MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2/'` @@ -124,7 +124,7 @@ Este problema generalmente está relacionado con una discrepancia entre el par c FHyoPs7U23MuSTtepEyXUtSAEffEpFpJGoYvug8X2sWY | prepaid | 141.14.14.14 | MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2 | MAX | MAX | 0 | requested | DZfHh2vjXFqt8zfNbT1afm8PGuCm3BrQKegC5THtKFdn ``` - La clave pública de `doublezero address` debe coincidir con la clave pública de user_payer y la dirección IP desde la que está intentando conectarse debe coincidir con la IP en el Access-Pass. + La pubkey de `doublezero address` debe coincidir con la pubkey de user_payer y la dirección IP desde la que está intentando conectarse debe coincidir con la ip en el Access-Pass. `doublezero address` se obtiene del archivo id.json en ~/.config/doublezero/ por defecto. Consulte el [paso 6 aquí]() 3. Si lo anterior parece correcto y está obteniendo un error al conectarse, o si el mapeo anterior es incorrecto, por favor contacte con soporte en [DoubleZero Tech](https://discord.com/channels/1341597747932958802/1344323790464880701) @@ -175,13 +175,13 @@ Este problema a menudo está relacionado con que el túnel GRE se activó exitos ``` **Soluciones:** -1. ¡Verifique las reglas de su firewall! +1. ¡Verifique sus reglas de firewall! - DoubleZero utiliza el espacio de direcciones link local: 169.254.0.0/16 para las interfaces del túnel GRE entre su máquina y el dispositivo DoubleZero. 169.254.0.0/16 es típicamente un espacio "no enrutable" y, por lo tanto, las buenas prácticas de seguridad recomendarán bloquear las comunicaciones hacia/desde este espacio. Necesitará permitir una regla en su firewall que habilite la comunicación desde src 169.254.0.0/16 hacia dst 169.254.0.0/16 en el puerto tcp 179. Esa regla deberá colocarse por encima de cualquier regla que deniegue el tráfico hacia 169.254.0.0/16. + DoubleZero utiliza el espacio de direcciones link local: 169.254.0.0/16 para las interfaces del túnel GRE entre su máquina y el dispositivo DoubleZero. 169.254.0.0/16 es típicamente un espacio "no enrutable" y por lo tanto las buenas prácticas de seguridad recomendarán bloquear las comunicaciones hacia/desde este espacio. Necesitará permitir una regla en su firewall que habilite a src 169.254.0.0/16 comunicarse con dst 169.254.0.0/16 en el puerto tcp 179. Esa regla deberá colocarse por encima de cualquier regla que deniegue el tráfico hacia 169.254.0.0/16. En un firewall como ufw puede ejecutar `sudo ufw status` para ver las reglas del firewall y - Salida de ejemplo que puede ser similar a lo que tendría un validador de Solana. + Salida de ejemplo que puede ser algo similar a lo que tendría un validador de Solana. ``` To Action From -- ------ ---- @@ -200,13 +200,13 @@ Este problema a menudo está relacionado con que el túnel GRE se activó exitos 192.168.0.0/16 DENY OUT Anywhere ``` - En la salida anterior se ve que todo el tráfico hacia 169.254.0.0/16, excepto para los puertos especificados, está denegado. - `sudo ufw insert allow proto tcp from 169.254.0.0/16 to 169.254.0.0/16 port 179` para insertar la regla en la posición . Es decir, si N = 1, insertará esta regla como la primera regla. + En la salida anterior puede ver que todo el tráfico hacia 169.254.0.0/16, excepto los puertos especificados, está denegado. + `sudo ufw insert allow proto tcp from 169.254.0.0/16 to 169.254.0.0/16 port 179` para insertar la regla en la posición . Es decir, si N = 1 entonces insertará esta regla como la primera regla. `sudo ufw status numbered` le mostrará el orden numérico de las reglas. ### Problema: El dispositivo DoubleZero más cercano ha cambiado -Esto no es un error, pero puede ser una optimización. A continuación se muestra una buena práctica que puede ejecutarse de vez en cuando o automatizarse. +Esto no es un error, pero puede ser una optimización. A continuación se muestra una mejor práctica que puede ejecutarse de vez en cuando, o automatizarse. **Soluciones:** @@ -222,7 +222,7 @@ Esto no es un error, pero puede ser una optimización. A continuación se muestr 8J691gPwzy9FzUZQ4SmC6jJcY7By8kZXfbJwRfQ8ns31 | nyc002-dz002 | 38.122.35.137 | 2.33ms | 2.39ms | 2.37ms | true FEML4XsDPN3WfmyFAXzE2xzyYqSB9kFCRrMik8JqN6kT | nyc001-dz001 | 38.104.167.29 | 2.29ms | 2.59ms | 2.40ms | true ``` - observe arriba que el dispositivo más cercano es `dz-ny7-sw01` + note arriba que el dispositivo más cercano es `dz-ny7-sw01` Queremos conectarnos a este dispositivo: @@ -244,7 +244,7 @@ Esto no es un error, pero puede ser una optimización. A continuación se muestr ``` Esta sería una conexión subóptima. Consideremos si es necesaria una reconexión. - Antes de la conexión, verificaremos si el dispositivo tiene túneles de usuario disponibles. + Antes de conectarse, verificaremos si el dispositivo tiene túneles de usuario disponibles. 3. Opcional: examinar la red en busca de dispositivos disponibles @@ -257,11 +257,11 @@ Esto no es un error, pero puede ser una optimización. A continuación se muestr GphgLkA7JDVtkDQZCiDrwrDvaUs8r8XczEae1KkV6CGQ | ams001-dz002 | jump_ | EQX-AM4 | ams | switch | 149.11.64.57 | 38.246.201.64/27 | 69 | 128 | activated | | H647kAwTcWsGXZUK3BTr1JyTBZmbNcYyCmRFFCEnXUVp 7FfrX8YbvbzM8A1ojNynP9BjiKpK9rrmhdEdchB2myhG | dz-fr5-sw01 | glxy | EQX-FR5 | fra | switch | 89.222.118.225 | 89.222.118.228/30 | 0 | 0 | activated | | 5YbNrJHJJoiRwVEvgAWRGdFRG9gRdZ47hLCKSym8bqbp ``` - Observe arriba que `ams001-dz002` tiene 69 usuarios y 128 usuarios máximos. Este dispositivo puede agregar 59 usuarios. + Note arriba que `ams001-dz002` tiene 69 usuarios y 128 usuarios máximos. Este dispositivo puede agregar 59 usuarios. - Sin embargo, `dz-fr5-sw01` tiene 0 usuarios y 0 usuarios máximos. No podrá conectarse a este dispositivo. Con un máximo de 0 usuarios, el dispositivo no está aceptando conexiones. + Sin embargo, `dz-fr5-sw01` tiene 0 usuarios y 0 usuarios máximos. No podrá conectarse a este dispositivo. Con un máximo de usuarios de 0, el dispositivo no acepta ninguna conexión. - Ahora regresemos a conectarnos a nuestro dispositivo más cercano. + Ahora volvamos a conectarnos a nuestro dispositivo más cercano. 4. Determine si el dispositivo objetivo tiene una conexión disponible - ejecute `doublezero device list | grep dz-ny7-sw01` reemplace `dz-ny7-sw01` con su dispositivo objetivo @@ -314,6 +314,36 @@ Esto no es un error, pero puede ser una optimización. A continuación se muestr ``` observe en la salida anterior que nos `Connected to device: dz-ny7-sw01` este es el resultado deseado de nuestra investigación inicial en el paso 1, donde descubrimos que `dz-ny7-sw01` era el dispositivo con la latencia más baja. +### Problema: Entorno de DoubleZero incorrecto + +Mainnet-Beta y Testnet utilizan repositorios de paquetes diferentes. `doublezero status` muestra a qué red está conectado el cliente (columna `Network`). Si un usuario instaló el cliente incorrecto, o el daemon todavía apunta al otro entorno, use estos cambios de copiar y pegar. + +Para configurar el CLI del cliente DoubleZero (`doublezero`) y el daemon (`doublezerod`) para conectarse a **DoubleZero testnet**: + +```bash +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" +``` + +Para configurar el CLI del cliente DoubleZero (`doublezero`) y el daemon (`doublezerod`) para conectarse a **DoubleZero mainnet-beta**: + +```bash +DESIRED_DOUBLEZERO_ENV=mainnet-beta \ + && 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: `✅ doublezerod configured for environment mainnet-beta` (o `testnet`). Luego `doublezero status` debería mostrar el `Network` correspondiente. + ### Problema: `doublezero status` devuelve algunos campos con N/A Este problema generalmente está relacionado con una discrepancia entre el daemon y cliente actuales, frente al daemon y cliente con los que se estableció el túnel DZ conectado. @@ -335,37 +365,13 @@ Este problema generalmente está relacionado con una discrepancia entre el daemo up | 2025-10-20 20:06:18 UTC | doublezero0 | 149.28.38.64 | 64.86.249.22 | 149.28.38.64 | IBRL | N/A | ✅ dz-ny7-sw01 | N/A | mainnet-beta ``` - Observe en nuestra salida de ejemplo anterior que el `Tunnel status` es `up`. Nuestra `Network` es `mainnet-beta`. Sin embargo, `Current Device` y `Metro` son `N/A` + Observe en nuestra salida de ejemplo anterior que el `Tunnel status` es `up`. Nuestro `Network` es `mainnet-beta`. Sin embargo, `Current Device` y `Metro` son `N/A` Esto es indicativo de un túnel abierto en su máquina que no está en su entorno actual. En este caso, el estado `up`, sin `Current Device` encontrado en `mainnet-beta`, nos revela que ¡nuestro túnel está en testnet! -2. Cambie su entorno. - - Para rectificar la discrepancia, cambiará su entorno al opuesto del entorno que devuelve `N/A` - - ```bash - 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" - ``` +2. Cambie de entorno usando los comandos de copiar y pegar en [entorno de DoubleZero incorrecto](#problema-entorno-de-doublezero-incorrecto). Use el opuesto del valor de `Network` que está devolviendo `N/A`. - Para configurar la CLI del cliente DoubleZero (`doublezero`) y el daemon (`doublezerod`) para conectarse a **DoubleZero mainnet-beta**: - - ```bash - DESIRED_DOUBLEZERO_ENV=mainnet-beta \ - && 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" - ``` - 3. Verifique su estado Después de cambiar de entorno ejecute: diff --git a/docs/troubleshooting.fr.md b/docs/troubleshooting.fr.md index a1bfe81..9742870 100644 --- a/docs/troubleshooting.fr.md +++ b/docs/troubleshooting.fr.md @@ -1,15 +1,15 @@ --- -description: Diagnostiquez les problèmes courants de connexion DoubleZero avec des commandes de référence, les sorties attendues et où obtenir une assistance supplémentaire. +description: Diagnostiquez les problèmes de connexion courants de DoubleZero avec des commandes de référence, les sorties attendues et où obtenir une assistance supplémentaire. --- # Dépannage -Ce guide couvre une variété de problèmes et est mis à jour régulièrement. Si vous avez parcouru l'intégralité du guide, vous pouvez obtenir une assistance supplémentaire sur le discord [DoubleZero Tech](https://discord.com/channels/1341597747932958802/1344323790464880701). +Ce guide couvre une variété de problèmes et est mis à jour en continu. Si vous avez parcouru l'intégralité du guide, vous pouvez obtenir une assistance supplémentaire sur le Discord [DoubleZero Tech](https://discord.com/channels/1341597747932958802/1344323790464880701). ## Commandes courantes et sorties attendues -Pour commencer, examinez la sortie des commandes suivantes ainsi que leur sortie attendue. Celles-ci vous aideront dans un dépannage plus détaillé. +Pour commencer, examinez la sortie des commandes suivantes ainsi que leur sortie attendue. Celles-ci vous aideront dans un dépannage plus approfondi. Si vous ouvrez un ticket, on pourrait vous demander leur sortie. #### 1. Vérifier la version @@ -95,11 +95,11 @@ Exemple de sortie : [comment]: # () # Exemples de dépannage -Maintenant que nous avons examiné les sorties de base et ce qui est attendu dans un déploiement sain, nous pouvons examiner quelques exemples courants de dépannage. +Maintenant que nous avons examiné les sorties de base et ce qui est attendu dans un déploiement sain, nous pouvons examiner quelques exemples de dépannage courants. ### Problème : ❌ Error creating user -Ce problème est généralement lié à une discordance entre la paire clé publique/IP attendue et la paire clé publique/IP avec laquelle l'utilisateur essaie d'accéder à DoubleZero. +Ce problème est généralement lié à une incohérence entre la paire clé publique/IP attendue et la paire clé publique/IP avec laquelle l'utilisateur tente d'accéder à DoubleZero. **Symptômes :** - Lors de la connexion avec `doublezero connect ibrl`, l'utilisateur rencontre `❌ Error creating user` @@ -114,7 +114,7 @@ Ce problème est généralement lié à une discordance entre la paire clé publ ``` MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2 ``` -2. Vérifiez que cette adresse est dans la liste autorisée : +2. Vérifiez que cette adresse est autorisée : `doublezero access-pass list | awk 'NR==1 || /MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2/'` @@ -124,16 +124,16 @@ Ce problème est généralement lié à une discordance entre la paire clé publ FHyoPs7U23MuSTtepEyXUtSAEffEpFpJGoYvug8X2sWY | prepaid | 141.14.14.14 | MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2 | MAX | MAX | 0 | requested | DZfHh2vjXFqt8zfNbT1afm8PGuCm3BrQKegC5THtKFdn ``` - La clé publique de `doublezero address` doit correspondre à la clé publique user_payer et l'adresse IP depuis laquelle vous essayez de vous connecter doit correspondre à l'IP dans l'Access-Pass. - `doublezero address` est sourcée depuis le fichier id.json dans ~/.config/doublezero/ par défaut. Voir l'[étape 6 ici]() + La clé publique obtenue avec `doublezero address` doit correspondre à la clé publique user_payer et l'adresse IP depuis laquelle vous essayez de vous connecter doit correspondre à l'IP dans l'Access-Pass. + `doublezero address` est extraite du fichier id.json situé par défaut dans ~/.config/doublezero/. Voir l'[étape 6 ici]() -3. Si ce qui précède semble correct et que vous obtenez une erreur lors de la connexion, ou si la correspondance ci-dessus est incorrecte, veuillez contacter le support sur [DoubleZero Tech](https://discord.com/channels/1341597747932958802/1344323790464880701) +3. Si les informations ci-dessus semblent correctes et que vous obtenez une erreur lors de la connexion, ou si la correspondance ci-dessus est incorrecte, veuillez contacter le support sur [DoubleZero Tech](https://discord.com/channels/1341597747932958802/1344323790464880701) ### Problème : ❌ Error provisioning service: malformed stuff: cannot provision multiple tunnels at the same time Cette erreur signifie qu'un appareil est déjà connecté à DoubleZero. **Symptômes :** -- L'utilisateur essaie de se connecter à DoubleZero +- L'utilisateur tente de se connecter à DoubleZero - `❌ Error provisioning service: malformed stuff: cannot provision multiple tunnels at the same time` est rencontré. **Solutions :** @@ -148,11 +148,11 @@ Cette erreur signifie qu'un appareil est déjà connecté à DoubleZero. 2. -`up`- signifie une connexion saine. 3. L'erreur apparaît parce qu'un tunnel vers DoubleZero avec l'IP DoubleZero spécifique est déjà actif sur cette machine. - Cette erreur est souvent rencontrée après une mise à jour du client DoubleZero. Les mises à jour de DoubleZero redémarrent automatiquement le service doublezerod et vous reconnecteront si vous étiez connecté avant le redémarrage du service. + Cette erreur est souvent rencontrée après une mise à jour du client DoubleZero. Les mises à jour de DoubleZero redémarrent automatiquement le service doublezerod et vous reconnectent si vous étiez connecté avant le redémarrage du service. ### Problème : Le statut DoubleZero est unknown ou down -Ce problème est souvent lié au tunnel GRE qui a été activé avec succès entre le serveur et l'appareil DoubleZero, mais un pare-feu empêche l'établissement de la session BGP. De ce fait, vous ne recevez pas de routes du réseau et n'envoyez pas de trafic via DoubleZero. +Ce problème est souvent lié au tunnel GRE qui a été activé avec succès entre le serveur et l'appareil DoubleZero, mais un pare-feu empêche l'établissement de la session BGP. De ce fait, vous ne recevez pas les routes du réseau et n'envoyez pas de trafic via DoubleZero. **Symptômes :** - `doublezero connect ibrl` a réussi. Cependant, `doublezero status` retourne `down` ou `unknown` @@ -177,9 +177,9 @@ Ce problème est souvent lié au tunnel GRE qui a été activé avec succès ent **Solutions :** 1. Vérifiez vos règles de pare-feu ! - DoubleZero utilise l'espace d'adresses link-local : 169.254.0.0/16 pour les interfaces de tunnel GRE entre votre machine et l'appareil DoubleZero. 169.254.0.0/16 est typiquement un espace « non-routable » et les bonnes pratiques de sécurité recommandent de bloquer les communications vers/depuis cet espace. Vous devrez autoriser une règle dans votre pare-feu qui permet à la source 169.254.0.0/16 de communiquer avec la destination 169.254.0.0/16 sur le port TCP 179. Cette règle devra être placée au-dessus de toute règle qui refuse le trafic vers 169.254.0.0/16. + DoubleZero utilise l'espace d'adressage link-local : 169.254.0.0/16 pour les interfaces de tunnel GRE entre votre machine et l'appareil DoubleZero. 169.254.0.0/16 est typiquement un espace « non-routable » et les bonnes pratiques de sécurité recommandent de bloquer les communications vers/depuis cet espace. Vous devrez autoriser une règle dans votre pare-feu qui permet à la source 169.254.0.0/16 de communiquer avec la destination 169.254.0.0/16 sur le port TCP 179. Cette règle devra être placée au-dessus de toute règle qui refuse le trafic vers 169.254.0.0/16. - Dans un pare-feu comme ufw, vous pouvez exécuter `sudo ufw status` pour visualiser les règles du pare-feu et + Dans un pare-feu comme ufw, vous pouvez exécuter `sudo ufw status` pour afficher les règles du pare-feu et Exemple de sortie qui pourrait ressembler à ce qu'un validateur Solana aurait. ``` @@ -210,7 +210,7 @@ Ce n'est pas une erreur, mais cela peut être une optimisation. Ci-dessous se tr **Solutions :** -1. Vérifiez la latence vers l'appareil le plus proche +1. Vérifier la latence vers l'appareil le plus proche - exécutez `doublezero latency` sortie @@ -222,11 +222,11 @@ Ce n'est pas une erreur, mais cela peut être une optimisation. Ci-dessous se tr 8J691gPwzy9FzUZQ4SmC6jJcY7By8kZXfbJwRfQ8ns31 | nyc002-dz002 | 38.122.35.137 | 2.33ms | 2.39ms | 2.37ms | true FEML4XsDPN3WfmyFAXzE2xzyYqSB9kFCRrMik8JqN6kT | nyc001-dz001 | 38.104.167.29 | 2.29ms | 2.59ms | 2.40ms | true ``` - notez ci-dessus que l'appareil le plus proche est `dz-ny7-sw01` + notez ci-dessus que l'appareil le plus proche est `dz-ny7-sw01 ` Nous voulons nous connecter à cet appareil. : -2. Déterminez si vous êtes déjà connecté à l'appareil cible +2. Déterminer si vous êtes déjà connecté à l'appareil cible - exécutez `doublezero user list --env testnet | grep 111.11.11.11` remplacez `111.11.11.11` par l'adresse IPv4 publique de votre appareil connecté à DoubleZero. Vous pouvez également utiliser votre ID de validateur ou votre ID DoubleZero. sortie @@ -237,16 +237,16 @@ Ce n'est pas une erreur, mais cela peut être une optimisation. Ci-dessous se tr Dans cet exemple, nous sommes déjà connectés à l'appareil le plus proche. Aucune étape supplémentaire n'est nécessaire, nous pouvons nous arrêter ici. - Considérons plutôt si la sortie était + Considérons plutôt le cas où la sortie serait ``` account | user_type | groups | device | location | cyoa_type | client_ip | dz_ip | accesspass | tunnel_id | tunnel_net | status | owner 6QRU1ivJnKGHpom2BdzH9PiTRkJ5WhunPNLtfYcqVisW | IBRL | | fra-dz-001-x | New York | GREOverDIA | 111.11.11.11 | 111.11.11.11 | Prepaid: (MAX) | 514 | 111.254.1.111/31 | activated | DZfHh2vjXFqt8zfNbT1afm8PGuCm3BrQKegC5THtKFdn ``` - Ce serait une connexion sous-optimale. Voyons si une reconnexion est nécessaire. + Cela serait une connexion sous-optimale. Voyons si une reconnexion est nécessaire. - Avant la connexion, nous vérifierons si l'appareil dispose de tunnels utilisateur disponibles. + Avant la connexion, nous allons vérifier si l'appareil dispose de tunnels utilisateur disponibles. -3. Optionnel : examiner le réseau pour les appareils disponibles +3. Optionnel : examiner le réseau à la recherche d'appareils disponibles À des fins pédagogiques, nous allons d'abord : - exécuter `doublezero device list` pour obtenir la liste complète des appareils. Nous avons extrait 2 appareils comme exemple pour expliquer la sortie. @@ -259,11 +259,11 @@ Ce n'est pas une erreur, mais cela peut être une optimisation. Ci-dessous se tr ``` Notez ci-dessus que `ams001-dz002` a 69 utilisateurs et 128 utilisateurs maximum. Cet appareil peut accueillir 59 utilisateurs supplémentaires. - Cependant, `dz-fr5-sw01` a 0 utilisateur et 0 utilisateur maximum. Vous ne pourrez pas vous connecter à cet appareil. Avec un maximum de 0 utilisateurs, l'appareil n'accepte aucune connexion. + Cependant, `dz-fr5-sw01` a 0 utilisateur et 0 utilisateur maximum. Vous ne pourrez pas vous connecter à cet appareil. Avec un maximum d'utilisateurs de 0, l'appareil n'accepte aucune connexion. Revenons maintenant à la connexion à notre appareil le plus proche. -4. Déterminez si l'appareil cible a une connexion disponible +4. Déterminer si l'appareil cible a une connexion disponible - exécutez `doublezero device list | grep dz-ny7-sw01` remplacez `dz-ny7-sw01` par votre appareil cible sortie @@ -276,7 +276,7 @@ Ce n'est pas une erreur, mais cela peut être une optimisation. Ci-dessous se tr Nous allons nous déconnecter, puis nous reconnecter à DoubleZero. - D'abord exécutez + Exécutez d'abord - `doublezero disconnect` sortie @@ -289,7 +289,7 @@ Ce n'est pas une erreur, mais cela peut être une optimisation. Ci-dessous se tr 🔍 User Account deleted ✅ Deprovisioning Complete ``` - maintenant nous vérifions le statut pour confirmer notre déconnexion avec + vérifiez maintenant le statut pour confirmer la déconnexion avec - `doublezero status` sortie @@ -312,11 +312,41 @@ Ce n'est pas une erreur, mais cela peut être une optimisation. Ci-dessous se tr Service provisioned with status: ok ✅ User Provisioned ``` - notez dans la sortie ci-dessus que nous avons `Connected to device: dz-ny7-sw01`, c'est le résultat souhaité suite à notre investigation initiale à l'étape 1, où nous avions découvert que `dz-ny7-sw01` était l'appareil avec la latence la plus faible. + remarquez dans la sortie ci-dessus que nous avons `Connected to device: dz-ny7-sw01`, c'est le résultat souhaité suite à notre investigation initiale à l'étape 1, où nous avions découvert que `dz-ny7-sw01` était l'appareil avec la latence la plus faible. + +### Problème : mauvais environnement DoubleZero + +Mainnet-Beta et Testnet utilisent des dépôts de paquets différents. `doublezero status` indique sur quel réseau le client se trouve (colonne `Network`). Si un utilisateur a installé le mauvais client, ou si le démon pointe encore vers l'autre environnement, utilisez ces commandes prêtes à copier-coller. + +Pour configurer le CLI du client DoubleZero (`doublezero`) et le démon (`doublezerod`) afin de se connecter au **testnet DoubleZero** : + +```bash +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" +``` + +Pour configurer le CLI du client DoubleZero (`doublezero`) et le démon (`doublezerod`) afin de se connecter au **mainnet-beta DoubleZero** : + +```bash +DESIRED_DOUBLEZERO_ENV=mainnet-beta \ + && 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" +``` + +Vous devriez voir : `✅ doublezerod configured for environment mainnet-beta` (ou `testnet`). Ensuite, `doublezero status` devrait afficher le `Network` correspondant. ### Problème : `doublezero status` retourne certains champs avec N/A -Ce problème est généralement lié à une discordance entre le daemon et le client actuels, et le daemon et le client avec lesquels le tunnel DZ connecté a été établi. +Ce problème est généralement lié à une incohérence entre le démon et le client actuels, et le démon et le client avec lesquels le tunnel DZ connecté a été établi. **Symptômes :** - Lors de l'exécution de `doublezero status`, l'utilisateur rencontre `N/A` dans certains champs @@ -335,37 +365,13 @@ Ce problème est généralement lié à une discordance entre le daemon et le cl up | 2025-10-20 20:06:18 UTC | doublezero0 | 149.28.38.64 | 64.86.249.22 | 149.28.38.64 | IBRL | N/A | ✅ dz-ny7-sw01 | N/A | mainnet-beta ``` - Notez dans notre exemple de sortie ci-dessus que le `Tunnel status` est `up`. Notre `Network` est `mainnet-beta`. Cependant, `Current Device` et `Metro` sont `N/A` + Remarquez dans notre exemple de sortie ci-dessus que le `Tunnel status` est `up`. Notre `Network` est `mainnet-beta`. Cependant, `Current Device` et `Metro` sont `N/A`. Cela indique un tunnel ouvert sur votre machine qui n'est pas dans votre environnement actuel. Dans ce cas, le statut `up`, sans `Current Device` trouvé sur `mainnet-beta`, nous révèle que notre tunnel est sur testnet ! -2. Changez votre environnement. - - Afin de rectifier la discordance, vous changerez votre environnement vers l'opposé de l'environnement retournant le `N/A` - - ```bash - 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" - ``` +2. Changez d'environnement en utilisant les commandes prêtes à copier-coller dans [mauvais environnement DoubleZero](#problème--mauvais-environnement-doublezero). Utilisez l'environnement opposé à la valeur `Network` qui retourne `N/A`. - Pour configurer le CLI client DoubleZero (`doublezero`) et le daemon (`doublezerod`) pour se connecter à **DoubleZero mainnet-beta** : - - ```bash - DESIRED_DOUBLEZERO_ENV=mainnet-beta \ - && 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" - ``` - 3. Vérifiez votre statut Après avoir changé d'environnement, exécutez : @@ -378,6 +384,4 @@ Ce problème est généralement lié à une discordance entre le daemon et le cl ``` 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-21 12:32:12 UTC | doublezero0 | 149.28.38.64 | 64.86.249.22 | 149.28.38.64 | IBRL | nyc-dz001 | ✅ nyc-dz001 | New York | testnet - ``` -Avec tous les champs remplis, vous êtes maintenant dans le bon environnement. \ No newline at end of file + up | 2025 \ No newline at end of file diff --git a/docs/troubleshooting.it.md b/docs/troubleshooting.it.md index 57482dd..b83e5e1 100644 --- a/docs/troubleshooting.it.md +++ b/docs/troubleshooting.it.md @@ -1,18 +1,18 @@ --- -description: Diagnostica i problemi comuni di connessione a DoubleZero con comandi di riferimento, output attesi e dove ottenere ulteriore supporto. +description: Diagnostica i problemi di connessione DoubleZero più comuni con comandi di riferimento, output attesi e dove ottenere ulteriore supporto. --- # Risoluzione dei problemi -Questa guida tratterà una varietà di problemi ed è in continuo aggiornamento. Se completi la guida puoi cercare ulteriore supporto nel discord di [DoubleZero Tech](https://discord.com/channels/1341597747932958802/1344323790464880701). +Questa guida copre una varietà di problemi ed è in continuo aggiornamento. Se completi la guida puoi cercare ulteriore supporto nel discord di [DoubleZero Tech](https://discord.com/channels/1341597747932958802/1344323790464880701). -## Comandi e Output Comuni +## Comandi e output comuni -Per iniziare, esamina l'output dei seguenti comandi e il loro output atteso. Questi ti assisteranno nella risoluzione dei problemi più dettagliata. -Se apri un ticket, potrebbe esserti chiesto il loro output. +Per iniziare, esamina l'output dei seguenti comandi e il loro output atteso. Questi ti assisteranno in una risoluzione dei problemi più dettagliata. +Se apri un ticket, potrebbe esserti richiesto il loro output. -#### 1. Verifica Versione +#### 1. Verifica della versione Comando: `doublezero --version` @@ -23,7 +23,7 @@ DoubleZero 0.6.3 ``` [comment]: # (when repo is public add this link to check https://github.com/malbeclabs/doublezero) -#### 2. Verifica Indirizzo DoubleZero +#### 2. Verifica dell'indirizzo DoubleZero Comando: `doublezero address` @@ -34,22 +34,22 @@ MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2 ``` [comment]: # () -#### 3. Verifica il tuo Access Pass +#### 3. Verifica del tuo Access Pass -Pubkey di esempio: `MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2` sostituiscilo con la tua pubkey quando esegui il comando. +Pubkey di esempio: `MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2` sostituiscila con la tua pubkey quando esegui il comando. Comando: `doublezero access-pass list | grep MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2` -Output: [nota che usiamo `doublezero access-pass list | awk 'NR==1 || /MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2/'` per mostrarti ora l'intestazione in questo output] +Output: [nota: usiamo `doublezero access-pass list | awk 'NR==1 || /MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2/'` per mostrarti ora l'intestazione in questo output] ``` account | accesspass_type | ip | user_payer | last_access_epoch | remaining_epoch | connections | status | owner 2XHCWm8Sef1GirhAhAJVA8WTXToPT6gFYP7fA9mWMShR | prepaid | 141.14.14.14 | MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2 | MAX | MAX | 0 | requested | DZfHh2vjXFqt8zfNbT1afm8PGuCm3BrQKegC5THtKFdn ``` [comment]: # () -#### 4. Verifica Crediti nel Ledger DoubleZero +#### 4. Verifica dei crediti nel ledger DoubleZero Comando: `doublezero balance` @@ -60,7 +60,7 @@ Output di esempio: ``` [comment]: # (add section linked later for 0 balance mainnet/testnet) -#### 5. Verifica Stato della Connessione +#### 5. Verifica dello stato della connessione Comando: `doublezero status` @@ -74,7 +74,7 @@ Output di esempio: [comment]: # (in next iteration add "up" "unknown" and "down" explainers, which then link to a sectino below for troubleshooting undesired states.) -#### 6. Verifica Latenza +#### 6. Verifica della latenza Comando: `doublezero latency` @@ -94,15 +94,15 @@ Output di esempio: ``` [comment]: # () -# Esempi di Risoluzione dei Problemi -Ora che abbiamo esaminato gli output di base e ciò che ci si aspetta in un deployment sano, possiamo esaminare alcuni esempi comuni di risoluzione dei problemi. +# Esempi di risoluzione dei problemi +Ora che abbiamo esaminato gli output di base e ciò che è atteso in un deployment sano, possiamo esaminare alcuni esempi comuni di risoluzione dei problemi. ### Problema: ❌ Error creating user -Questo problema è generalmente correlato a una discrepanza tra l'abbinamento pubkey/IP previsto e l'abbinamento pubkey/IP con cui l'utente sta cercando di accedere a DoubleZero. +Questo problema è generalmente legato a una discrepanza tra la coppia pubkey/IP attesa e la coppia pubkey/IP con cui l'utente sta cercando di accedere a DoubleZero. **Sintomi:** -- Quando ci si connette con `doublezero connect ibrl` l'utente riscontra `❌ Error creating user` +- Quando ci si connette con `doublezero connect ibrl` l'utente incontra `❌ Error creating user` **Soluzioni:** @@ -124,17 +124,17 @@ Questo problema è generalmente correlato a una discrepanza tra l'abbinamento pu FHyoPs7U23MuSTtepEyXUtSAEffEpFpJGoYvug8X2sWY | prepaid | 141.14.14.14 | MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2 | MAX | MAX | 0 | requested | DZfHh2vjXFqt8zfNbT1afm8PGuCm3BrQKegC5THtKFdn ``` - La pubkey da `doublezero address` deve corrispondere alla pubkey user_payer e l'indirizzo IP da cui stai cercando di connetterti deve corrispondere all'ip nell'Access-Pass. - `doublezero address` è ricavato dal file id.json in ~/.config/doublezero/ per impostazione predefinita. Vedi il [passaggio 6 qui]() + La pubkey ottenuta da `doublezero address` deve corrispondere alla pubkey user_payer e l'indirizzo IP da cui stai cercando di connetterti deve corrispondere all'ip nell'Access-Pass. + `doublezero address` è ricavato dal file id.json in ~/.config/doublezero/ per impostazione predefinita. Vedi il [passo 6 qui]() -3. Se quanto sopra sembra corretto e stai ricevendo un errore durante la connessione o se la mappatura sopra è errata, contatta il supporto su [DoubleZero Tech](https://discord.com/channels/1341597747932958802/1344323790464880701) +3. Se quanto sopra sembra corretto e stai ricevendo un errore durante la connessione, o se la mappatura sopra è errata, contatta il supporto su [DoubleZero Tech](https://discord.com/channels/1341597747932958802/1344323790464880701) ### Problema: ❌ Error provisioning service: malformed stuff: cannot provision multiple tunnels at the same time Questo errore indica che un dispositivo è già connesso a DoubleZero. **Sintomi:** - L'utente cerca di connettersi a DoubleZero -- Viene riscontrato `❌ Error provisioning service: malformed stuff: cannot provision multiple tunnels at the same time`. +- Si incontra `❌ Error provisioning service: malformed stuff: cannot provision multiple tunnels at the same time`. **Soluzioni:** 1. Verifica @@ -148,11 +148,11 @@ Questo errore indica che un dispositivo è già connesso a DoubleZero. 2. -`up`- indica una connessione sana. 3. L'errore appare perché un tunnel verso DoubleZero con lo specifico IP DoubleZero è già attivo su questa macchina. - Questo errore viene spesso riscontrato dopo un aggiornamento del client DoubleZero. Gli aggiornamenti di DoubleZero riavviano automaticamente il servizio doublezerod e ti riconnetteranno se eri connesso prima del riavvio del servizio. + Questo errore si incontra spesso dopo un aggiornamento del client DoubleZero. Gli aggiornamenti di DoubleZero riavviano automaticamente il servizio doublezerod e ti riconnetteranno se eri connesso prima del riavvio del servizio. ### Problema: Lo stato di DoubleZero è unknown o down -Questo problema è spesso correlato al tunnel GRE che viene attivato con successo tra il server e il Dispositivo DoubleZero, ma un firewall impedisce l'instaurazione della sessione BGP. Per questo motivo non stai ricevendo rotte dalla rete né inviando traffico tramite DoubleZero. +Questo problema è spesso legato al tunnel GRE che viene attivato con successo tra il server e il dispositivo DoubleZero, ma un firewall impedisce l'instaurazione della sessione BGP. Per questo motivo non stai ricevendo rotte dalla rete né inviando traffico attraverso DoubleZero. **Sintomi:** - `doublezero connect ibrl` ha avuto successo. Tuttavia, `doublezero status` restituisce `down` o `unknown` @@ -175,13 +175,13 @@ Questo problema è spesso correlato al tunnel GRE che viene attivato con success ``` **Soluzioni:** -1. Controlla le regole del tuo firewall! +1. Controlla le regole del firewall! - DoubleZero utilizza lo spazio di indirizzi link local: 169.254.0.0/16 per le interfacce del tunnel GRE tra la tua macchina e il Dispositivo DoubleZero. 169.254.0.0/16 è tipicamente spazio "non instradabile" e quindi le buone pratiche di sicurezza raccomandano di bloccare le comunicazioni da/verso questo spazio. Dovrai consentire una regola nel tuo firewall che permetta a src 169.254.0.0/16 di comunicare con dst 169.254.0.0/16 sulla porta tcp 179. Quella regola dovrà essere posizionata sopra qualsiasi regola che nega il traffico verso 169.254.0.0/16. + DoubleZero utilizza lo spazio di indirizzi link local: 169.254.0.0/16 per le interfacce del tunnel GRE tra la tua macchina e il dispositivo DoubleZero. 169.254.0.0/16 è tipicamente uno spazio "non instradabile" e quindi le buone pratiche di sicurezza raccomandano di bloccare le comunicazioni da/verso questo spazio. Dovrai consentire una regola nel tuo firewall che permetta alla sorgente 169.254.0.0/16 di comunicare con la destinazione 169.254.0.0/16 sulla porta tcp 179. Questa regola dovrà essere posizionata sopra qualsiasi regola che nega il traffico verso 169.254.0.0/16. In un firewall come ufw puoi eseguire `sudo ufw status` per visualizzare le regole del firewall e - Output di esempio che potrebbe essere simile a quello di un validatore Solana. + Output di esempio che potrebbe essere simile a quello che avrebbe un validatore Solana. ``` To Action From -- ------ ---- @@ -200,13 +200,13 @@ Questo problema è spesso correlato al tunnel GRE che viene attivato con success 192.168.0.0/16 DENY OUT Anywhere ``` - Nell'output sopra vedi che tutto il traffico verso 169.254.0.0/16, eccetto per le porte specificate, è negato. - `sudo ufw insert allow proto tcp from 169.254.0.0/16 to 169.254.0.0/16 port 179` per inserire la regola nella posizione . Ad esempio: se N = 1 allora inserirai questa regola come prima regola. + Nell'output sopra puoi vedere che tutto il traffico verso 169.254.0.0/16, eccetto per le porte specificate, è negato. + `sudo ufw insert allow proto tcp from 169.254.0.0/16 to 169.254.0.0/16 port 179` per inserire la regola nella posizione . Es.: se N = 1 inserirai questa regola come prima regola. `sudo ufw status numbered` ti mostrerà l'ordinamento numerico delle regole. ### Problema: Il dispositivo DoubleZero più vicino è cambiato -Questo non è un errore, ma può essere un'ottimizzazione. Di seguito è riportata una best practice che può essere eseguita di tanto in tanto, o automatizzata. +Questo non è un errore, ma può essere un'ottimizzazione. Di seguito una buona pratica che può essere eseguita di tanto in tanto, o automatizzata. **Soluzioni:** @@ -222,7 +222,7 @@ Questo non è un errore, ma può essere un'ottimizzazione. Di seguito è riporta 8J691gPwzy9FzUZQ4SmC6jJcY7By8kZXfbJwRfQ8ns31 | nyc002-dz002 | 38.122.35.137 | 2.33ms | 2.39ms | 2.37ms | true FEML4XsDPN3WfmyFAXzE2xzyYqSB9kFCRrMik8JqN6kT | nyc001-dz001 | 38.104.167.29 | 2.29ms | 2.59ms | 2.40ms | true ``` - nota sopra che il dispositivo più vicino è `dz-ny7-sw01 ` + nota sopra che il dispositivo più vicino è `dz-ny7-sw01` Vogliamo connetterci a questo dispositivo. : @@ -234,7 +234,7 @@ Questo non è un errore, ma può essere un'ottimizzazione. Di seguito è riporta account | user_type | groups | device | location | cyoa_type | client_ip | dz_ip | accesspass | tunnel_id | tunnel_net | status | owner 6QRU1ivJnKGHpom2BdzH9PiTRkJ5WhunPNLtfYcqVisW | IBRL | | dz-ny7-sw01 | New York | GREOverDIA | 111.11.11.11 | 111.11.11.11 | Prepaid: (MAX) | 514 | 111.254.1.111/31 | activated | DZfHh2vjXFqt8zfNbT1afm8PGuCm3BrQKegC5THtKFdn ``` - In questo esempio, siamo già connessi al dispositivo più vicino. Non sono necessari ulteriori passaggi, possiamo fermarci qui. + In questo esempio, siamo già connessi al dispositivo più vicino. Non sono necessari altri passaggi, possiamo fermarci qui. Consideriamo invece se l'output fosse stato @@ -242,13 +242,13 @@ Questo non è un errore, ma può essere un'ottimizzazione. Di seguito è riporta account | user_type | groups | device | location | cyoa_type | client_ip | dz_ip | accesspass | tunnel_id | tunnel_net | status | owner 6QRU1ivJnKGHpom2BdzH9PiTRkJ5WhunPNLtfYcqVisW | IBRL | | fra-dz-001-x | New York | GREOverDIA | 111.11.11.11 | 111.11.11.11 | Prepaid: (MAX) | 514 | 111.254.1.111/31 | activated | DZfHh2vjXFqt8zfNbT1afm8PGuCm3BrQKegC5THtKFdn ``` - Questa sarebbe una connessione sub-ottimale. Consideriamo se è necessaria una riconnessione. + Questa sarebbe una connessione sub-ottimale. Valutiamo se è necessaria una riconnessione. Prima della connessione, verificheremo se il dispositivo ha tunnel utente disponibili. -3. Opzionale: esamina la rete per i dispositivi disponibili +3. Opzionale: esaminare la rete per i dispositivi disponibili - A scopo educativo prima: + A scopo didattico per prima cosa: - esegui `doublezero device list` per un elenco completo dei dispositivi. Abbiamo estratto 2 dispositivi come esempio per spiegare l'output. output: @@ -259,9 +259,9 @@ Questo non è un errore, ma può essere un'ottimizzazione. Di seguito è riporta ``` Nota sopra che `ams001-dz002` ha 69 utenti e 128 utenti massimi. Questo dispositivo può aggiungere 59 utenti. - Tuttavia, `dz-fr5-sw01` ha 0 utenti e 0 utenti massimi. Non potrai connetterti a questo dispositivo. Con un massimo di utenti pari a 0, il dispositivo non accetta connessioni. + Tuttavia, `dz-fr5-sw01` ha 0 utenti e 0 utenti massimi. Non sarà possibile connettersi a questo dispositivo. Con un massimo di 0 utenti, il dispositivo non accetta alcuna connessione. - Ora torniamo a connetterci al nostro dispositivo più vicino. + Ora torniamo alla connessione al nostro dispositivo più vicino. 4. Determina se il dispositivo target ha una connessione disponibile - esegui `doublezero device list | grep dz-ny7-sw01` sostituisci `dz-ny7-sw01` con il tuo dispositivo target @@ -272,9 +272,9 @@ Questo non è un errore, ma può essere un'ottimizzazione. Di seguito è riporta ``` qui possiamo vedere che `dz-ny7-sw01` ha spazio disponibile per la connessione. -5. Connettiti al Dispositivo DoubleZero più vicino +5. Connettiti al dispositivo DoubleZero più vicino - Ci disconnetteremo e poi ci riconnetteremo a doublezero. + Ci disconnetteremo e poi ci riconnetteremo a DoubleZero. Prima esegui - `doublezero disconnect` @@ -289,7 +289,7 @@ Questo non è un errore, ma può essere un'ottimizzazione. Di seguito è riporta 🔍 User Account deleted ✅ Deprovisioning Complete ``` - ora verifichiamo lo stato per confermare la nostra disconnessione con + ora controlliamo lo stato per confermare la nostra disconnessione con - `doublezero status` output @@ -312,14 +312,44 @@ Questo non è un errore, ma può essere un'ottimizzazione. Di seguito è riporta Service provisioned with status: ok ✅ User Provisioned ``` - nota nell'output sopra che ci siamo `Connected to device: dz-ny7-sw01` questo è il risultato desiderato dalla nostra indagine iniziale nel passaggio 1, dove abbiamo scoperto che `dz-ny7-sw01` era il dispositivo con la latenza più bassa. + nota nell'output sopra che ci siamo `Connected to device: dz-ny7-sw01` questo è il risultato desiderato dalla nostra indagine iniziale al passo 1, dove abbiamo scoperto che `dz-ny7-sw01` era il dispositivo con la latenza più bassa. + +### Problema: ambiente DoubleZero errato + +Mainnet-Beta e Testnet utilizzano repository di pacchetti diversi. `doublezero status` mostra a quale rete il client è connesso (colonna `Network`). Se un utente ha installato il client sbagliato, o il daemon è ancora puntato verso l'altro ambiente, usa questi comandi copia-incolla per il cambio. + +Per configurare la CLI del client DoubleZero (`doublezero`) e il daemon (`doublezerod`) per connettersi a **DoubleZero testnet**: + +```bash +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" +``` + +Per configurare la CLI del client DoubleZero (`doublezero`) e il daemon (`doublezerod`) per connettersi a **DoubleZero mainnet-beta**: + +```bash +DESIRED_DOUBLEZERO_ENV=mainnet-beta \ + && 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" +``` + +Dovresti vedere: `✅ doublezerod configured for environment mainnet-beta` (o `testnet`). Poi `doublezero status` dovrebbe mostrare il `Network` corrispondente. ### Problema: `doublezero status` restituisce alcuni campi con N/A -Questo problema è generalmente correlato a una discrepanza tra il daemon e il client correnti, rispetto al daemon e al client con cui il tunnel DZ connesso è stato stabilito. +Questo problema è generalmente legato a una discrepanza tra il daemon e il client attuali rispetto al daemon e al client con cui il tunnel DZ connesso era stato stabilito. **Sintomi:** -- Quando si esegue `doublezero status` l'utente riscontra `N/A` in alcuni campi +- Quando si esegue `doublezero status` l'utente incontra `N/A` in alcuni campi @@ -335,38 +365,14 @@ Questo problema è generalmente correlato a una discrepanza tra il daemon e il c up | 2025-10-20 20:06:18 UTC | doublezero0 | 149.28.38.64 | 64.86.249.22 | 149.28.38.64 | IBRL | N/A | ✅ dz-ny7-sw01 | N/A | mainnet-beta ``` - Nota nel nostro output di esempio sopra che il `Tunnel status` è `up`. La nostra `Network` è `mainnet-beta`. Tuttavia, `Current Device` e `Metro` sono `N/A` + Nota nell'output di esempio sopra che il `Tunnel status` è `up`. Il nostro `Network` è `mainnet-beta` Tuttavia, `Current Device` e `Metro` sono `N/A` - Questo è indicativo di un tunnel aperto sulla tua macchina che non si trova nel tuo ambiente corrente. - In questo caso lo stato `up`, senza nessun `Current Device` trovato su `mainnet-beta`, ci rivela che il nostro tunnel è su testnet! + Questo indica un tunnel aperto sulla tua macchina che non si trova nel tuo ambiente attuale. + In questo caso lo stato `up`, senza alcun `Current Device` trovato su `mainnet-beta`, ci rivela che il nostro tunnel è su testnet! -2. Cambia il tuo ambiente. - - Per correggere la discrepanza cambierai il tuo ambiente nell'opposto dell'ambiente che restituisce `N/A` - - ```bash - 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" - ``` +2. Cambia ambiente usando i comandi copia-incolla in [ambiente DoubleZero errato](#problema-ambiente-doublezero-errato). Usa l'opposto del valore `Network` che restituisce `N/A`. - Per configurare la CLI del Client DoubleZero (`doublezero`) e il daemon (`doublezerod`) per connettersi a **DoubleZero mainnet-beta**: - - ```bash - DESIRED_DOUBLEZERO_ENV=mainnet-beta \ - && 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" - ``` - -3. Verifica il tuo stato +3. Controlla il tuo stato Dopo aver cambiato ambiente esegui: @@ -380,4 +386,4 @@ Questo problema è generalmente correlato a una discrepanza tra il daemon e il c 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-21 12:32:12 UTC | doublezero0 | 149.28.38.64 | 64.86.249.22 | 149.28.38.64 | IBRL | nyc-dz001 | ✅ nyc-dz001 | New York | testnet ``` -Con tutti i campi popolati sei ora nell'ambiente corretto. \ No newline at end of file +Con tutti i campi popolati ora ti trovi nell'ambiente corretto. \ No newline at end of file diff --git a/docs/troubleshooting.ja.md b/docs/troubleshooting.ja.md index bb734c6..9364df5 100644 --- a/docs/troubleshooting.ja.md +++ b/docs/troubleshooting.ja.md @@ -1,16 +1,16 @@ --- -description: DoubleZero の一般的な接続問題を診断するためのリファレンスコマンド、期待される出力、およびさらなるサポートの入手先について説明します。 +description: DoubleZero の一般的な接続問題を診断するためのリファレンスコマンド、期待される出力、およびさらなるサポートの入手先を紹介します。 --- # トラブルシューティング -このガイドではさまざまな問題を取り上げており、随時更新されます。ガイドを最後まで確認しても問題が解決しない場合は、[DoubleZero Tech](https://discord.com/channels/1341597747932958802/1344323790464880701) Discord でさらなるサポートを受けることができます。 +このガイドではさまざまな問題を取り上げており、継続的に更新されます。このガイドを最後まで確認しても問題が解決しない場合は、[DoubleZero Tech](https://discord.com/channels/1341597747932958802/1344323790464880701) Discord でさらなるサポートを受けることができます。 ## よく使うコマンドと出力 まず、以下のコマンドの出力と期待される出力を確認してください。これらはより詳細なトラブルシューティングに役立ちます。 -チケットを作成した場合、これらの出力を求められることがあります。 +チケットを開く場合、これらの出力を求められることがあります。 #### 1. バージョンの確認 コマンド: @@ -36,13 +36,13 @@ MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2 #### 3. アクセスパスの確認 -公開鍵の例:`MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2` コマンド実行時にはご自身の公開鍵に置き換えてください。 +サンプル公開鍵:`MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2` コマンド実行時にはご自身の公開鍵に置き換えてください。 コマンド: `doublezero access-pass list | grep MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2` -出力:[この出力でヘッダーを表示するために `doublezero access-pass list | awk 'NR==1 || /MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2/'` を使用しています] +出力:[注:ヘッダーも表示するために `doublezero access-pass list | awk 'NR==1 || /MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2/'` を使用しています] ``` account | accesspass_type | ip | user_payer | last_access_epoch | remaining_epoch | connections | status | owner @@ -60,7 +60,7 @@ account | accesspass_type ``` [comment]: # (add section linked later for 0 balance mainnet/testnet) -#### 5. 接続状態の確認 +#### 5. 接続ステータスの確認 コマンド: `doublezero status` @@ -94,18 +94,18 @@ account | accesspass_type ``` [comment]: # () -# トラブルシューティングの例 -基本的な出力と正常なデプロイメントで期待される内容を確認したので、一般的なトラブルシューティングの例を見ていきましょう。 +# トラブルシューティング例 +基本的な出力と正常なデプロイメントで期待される内容を確認したので、一般的なトラブルシューティング例を見ていきましょう。 ### 問題:❌ Error creating user -この問題は一般的に、期待される公開鍵/IPの組み合わせと、ユーザーが DoubleZero にアクセスしようとしている際の公開鍵/IPの組み合わせが一致しないことに関連しています。 +この問題は一般的に、期待される公開鍵/IP の組み合わせと、ユーザーが DoubleZero にアクセスしようとしている公開鍵/IP の組み合わせの不一致に関連しています。 **症状:** -- `doublezero connect ibrl` で接続しようとすると `❌ Error creating user` が発生する +- `doublezero connect ibrl` で接続する際に `❌ Error creating user` が発生する -**解決方法:** +**解決策:** 1. 確認 `doublezero address` @@ -124,19 +124,19 @@ account | accesspass_type FHyoPs7U23MuSTtepEyXUtSAEffEpFpJGoYvug8X2sWY | prepaid | 141.14.14.14 | MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2 | MAX | MAX | 0 | requested | DZfHh2vjXFqt8zfNbT1afm8PGuCm3BrQKegC5THtKFdn ``` - `doublezero address` の公開鍵は user_payer の公開鍵と一致する必要があり、接続元の IP アドレスはアクセスパスの ip と一致する必要があります。 - `doublezero address` はデフォルトで ~/.config/doublezero/ にある id.json ファイルから取得されます。[こちらのステップ6]()を参照してください。 + `doublezero address` の公開鍵は user_payer の公開鍵と一致している必要があり、接続元の IP アドレスはアクセスパスの ip と一致している必要があります。 + `doublezero address` はデフォルトで ~/.config/doublezero/ にある id.json ファイルから取得されます。[こちらのステップ 6]() を参照してください。 -3. 上記が正しいにもかかわらず接続時にエラーが発生する場合、または上記のマッピングが正しくない場合は、[DoubleZero Tech](https://discord.com/channels/1341597747932958802/1344323790464880701) でサポートにお問い合わせください。 +3. 上記が正しく表示されているにもかかわらず接続時にエラーが発生する場合、または上記のマッピングが正しくない場合は、[DoubleZero Tech](https://discord.com/channels/1341597747932958802/1344323790464880701) でサポートにお問い合わせください。 ### 問題:❌ Error provisioning service: malformed stuff: cannot provision multiple tunnels at the same time -このエラーは、デバイスが既に DoubleZero に接続されていることを意味します。 +このエラーは、デバイスが既に DoubleZero に接続されていることを示しています。 **症状:** - ユーザーが DoubleZero に接続しようとする - `❌ Error provisioning service: malformed stuff: cannot provision multiple tunnels at the same time` が発生する -**解決方法:** +**解決策:** 1. 確認 `doublezero status` @@ -145,14 +145,14 @@ account | accesspass_type 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 ``` -2. -`up`- は正常な接続を示します。 -3. このエラーは、特定の DoubleZero IP を使用した DoubleZero へのトンネルがこのマシン上で既にアクティブであるために表示されます。 +2. -`up`- は正常な接続を示しています。 +3. このエラーは、特定の DoubleZero IP を持つ DoubleZero へのトンネルがこのマシン上で既にアクティブであるために表示されます。 このエラーは DoubleZero クライアントのアップグレード後によく発生します。DoubleZero のアップグレードは doublezerod サービスを自動的に再起動し、サービス再起動前に接続していた場合は再接続します。 ### 問題:DoubleZero のステータスが unknown または down -この問題は、サーバーと DoubleZero デバイス間で GRE トンネルは正常に確立されたものの、ファイアウォールが BGP セッションの確立を妨げていることに関連していることが多いです。このため、ネットワークからルートを受信できず、DoubleZero 経由でトラフィックを送信できません。 +この問題は、サーバーと DoubleZero デバイス間の GRE トンネルは正常に確立されているが、ファイアウォールが BGP セッションの確立を阻止していることに関連していることが多いです。このため、ネットワークからルートを受信できず、DoubleZero 経由でトラフィックを送信できません。 **症状:** - `doublezero connect ibrl` は成功した。しかし、`doublezero status` が `down` または `unknown` を返す @@ -174,14 +174,14 @@ account | accesspass_type 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 ``` -**解決方法:** +**解決策:** 1. ファイアウォールルールを確認してください! - DoubleZero はマシンと DoubleZero デバイス間の GRE トンネルインターフェースにリンクローカルアドレス空間 169.254.0.0/16 を使用します。169.254.0.0/16 は通常「ルーティング不可」な空間であり、適切なセキュリティプラクティスではこの空間との通信をブロックすることが推奨されます。ファイアウォールで src 169.254.0.0/16 から dst 169.254.0.0/16 への tcp ポート 179 での通信を許可するルールを追加する必要があります。このルールは 169.254.0.0/16 へのトラフィックを拒否するルールよりも上に配置する必要があります。 + DoubleZero は、マシンと DoubleZero デバイス間の GRE トンネルインターフェースにリンクローカルアドレス空間 169.254.0.0/16 を使用します。169.254.0.0/16 は通常「ルーティング不可」な空間であるため、適切なセキュリティプラクティスではこの空間との通信をブロックすることが推奨されています。ファイアウォールで、送信元 169.254.0.0/16 から宛先 169.254.0.0/16 への TCP ポート 179 での通信を許可するルールを設定する必要があります。このルールは、169.254.0.0/16 へのトラフィックを拒否するルールよりも上に配置する必要があります。 - ufw のようなファイアウォールでは `sudo ufw status` を実行してファイアウォールルールを確認できます。 + ufw のようなファイアウォールでは、`sudo ufw status` を実行してファイアウォールルールを確認できます。 - Solana バリデーターが使用するような設定の出力例: + Solana バリデーターが使用するものに似た出力例: ``` To Action From -- ------ ---- @@ -200,17 +200,17 @@ account | accesspass_type 192.168.0.0/16 DENY OUT Anywhere ``` - 上記の出力では、指定されたポートを除く 169.254.0.0/16 へのすべてのトラフィックが拒否されています。 - `sudo ufw insert allow proto tcp from 169.254.0.0/16 to 169.254.0.0/16 port 179` でルールを の位置に挿入します。例えば N = 1 の場合、このルールは最初のルールとして挿入されます。 + 上記の出力では、指定されたポートを除き、169.254.0.0/16 へのすべてのトラフィックが拒否されていることがわかります。 + `sudo ufw insert allow proto tcp from 169.254.0.0/16 to 169.254.0.0/16 port 179` でルールを の位置に挿入します。例:N = 1 の場合、このルールは最初のルールとして挿入されます。 `sudo ufw status numbered` でルールの番号順を確認できます。 -### 問題:最寄りの DoubleZero デバイスが変更された +### 問題:最も近い DoubleZero デバイスが変更された -これはエラーではありませんが、最適化の機会です。以下は、時折実行するか自動化できるベストプラクティスです。 +これはエラーではありませんが、最適化の余地があります。以下は、時々実行するか自動化できるベストプラクティスです。 -**解決方法:** +**解決策:** -1. 最寄りのデバイスへのレイテンシを確認 +1. 最も近いデバイスへのレイテンシを確認 - `doublezero latency` を実行 出力 @@ -222,11 +222,11 @@ account | accesspass_type 8J691gPwzy9FzUZQ4SmC6jJcY7By8kZXfbJwRfQ8ns31 | nyc002-dz002 | 38.122.35.137 | 2.33ms | 2.39ms | 2.37ms | true FEML4XsDPN3WfmyFAXzE2xzyYqSB9kFCRrMik8JqN6kT | nyc001-dz001 | 38.104.167.29 | 2.29ms | 2.59ms | 2.40ms | true ``` - 上記で最寄りのデバイスは `dz-ny7-sw01` です + 上記の最も近いデバイスは `dz-ny7-sw01` です。 このデバイスに接続します: -2. 対象デバイスに既に接続しているか確認 +2. ターゲットデバイスに既に接続されているか確認 - `doublezero user list --env testnet | grep 111.11.11.11` を実行します。`111.11.11.11` を DoubleZero に接続しているデバイスのパブリック IPv4 アドレスに置き換えてください。バリデーター ID や DoubleZero ID を使用することもできます。 出力 @@ -234,10 +234,10 @@ account | accesspass_type account | user_type | groups | device | location | cyoa_type | client_ip | dz_ip | accesspass | tunnel_id | tunnel_net | status | owner 6QRU1ivJnKGHpom2BdzH9PiTRkJ5WhunPNLtfYcqVisW | IBRL | | dz-ny7-sw01 | New York | GREOverDIA | 111.11.11.11 | 111.11.11.11 | Prepaid: (MAX) | 514 | 111.254.1.111/31 | activated | DZfHh2vjXFqt8zfNbT1afm8PGuCm3BrQKegC5THtKFdn ``` - この例では、既に最寄りのデバイスに接続されています。これ以上の手順は不要です。ここで終了できます。 + この例では、既に最も近いデバイスに接続されています。これ以上の手順は不要で、ここで終了できます。 - 代わりに以下のような出力だった場合を考えてみましょう + 代わりに出力が以下のようだった場合を考えてみましょう ``` account | user_type | groups | device | location | cyoa_type | client_ip | dz_ip | accesspass | tunnel_id | tunnel_net | status | owner 6QRU1ivJnKGHpom2BdzH9PiTRkJ5WhunPNLtfYcqVisW | IBRL | | fra-dz-001-x | New York | GREOverDIA | 111.11.11.11 | 111.11.11.11 | Prepaid: (MAX) | 514 | 111.254.1.111/31 | activated | DZfHh2vjXFqt8zfNbT1afm8PGuCm3BrQKegC5THtKFdn @@ -246,10 +246,10 @@ account | accesspass_type 接続する前に、デバイスに利用可能なユーザートンネルがあるか確認します。 -3. オプション:ネットワーク上の利用可能なデバイスを確認 +3. オプション:ネットワーク上の利用可能なデバイスを調べる - 学習目的で、まず以下を実行します: - - `doublezero device list` でデバイスの完全なリストを表示します。出力を説明するために2つのデバイスを例として抜粋しています。 + 学習目的として、まず: + - `doublezero device list` を実行してデバイスの全リストを取得します。出力を説明するために 2 つのデバイスを例として取り上げます。 出力: ``` @@ -257,26 +257,26 @@ account | accesspass_type GphgLkA7JDVtkDQZCiDrwrDvaUs8r8XczEae1KkV6CGQ | ams001-dz002 | jump_ | EQX-AM4 | ams | switch | 149.11.64.57 | 38.246.201.64/27 | 69 | 128 | activated | | H647kAwTcWsGXZUK3BTr1JyTBZmbNcYyCmRFFCEnXUVp 7FfrX8YbvbzM8A1ojNynP9BjiKpK9rrmhdEdchB2myhG | dz-fr5-sw01 | glxy | EQX-FR5 | fra | switch | 89.222.118.225 | 89.222.118.228/30 | 0 | 0 | activated | | 5YbNrJHJJoiRwVEvgAWRGdFRG9gRdZ47hLCKSym8bqbp ``` - 上記で `ams001-dz002` は 69 ユーザーで、最大 128 ユーザーです。このデバイスはあと 59 ユーザーを追加できます。 + 上記で `ams001-dz002` はユーザー数 69、最大ユーザー数 128 です。このデバイスはあと 59 ユーザーを追加できます。 - しかし、`dz-fr5-sw01` は 0 ユーザーで、最大ユーザー数も 0 です。このデバイスには接続できません。最大ユーザー数が 0 のため、デバイスは接続を受け付けていません。 + しかし、`dz-fr5-sw01` はユーザー数 0、最大ユーザー数 0 です。このデバイスには接続できません。最大ユーザー数が 0 の場合、デバイスは接続を受け付けていません。 - では、最寄りのデバイスへの接続に戻りましょう。 + では、最も近いデバイスへの接続に戻りましょう。 -4. 対象デバイスに利用可能な接続があるか確認 - - `doublezero device list | grep dz-ny7-sw01` を実行します。`dz-ny7-sw01` を対象デバイスに置き換えてください。 +4. ターゲットデバイスに利用可能な接続があるか確認 + - `doublezero device list | grep dz-ny7-sw01` を実行します。`dz-ny7-sw01` をターゲットデバイスに置き換えてください。 出力 ``` 2hPMFJHh5BPX42ygBvuYYJfCv9q7g3rRR3ZRsUgtaqUi | dz-ny7-sw01 | glxy | EQX-NY7 | nyc | switch | 137.239.213.162 | 137.239.216.164/31 | 29 | 128 | activated | | 5YbNrJHJJoiRwVEvgAWRGdFRG9gRdZ47hLCKSym8bqbp ``` - ここで `dz-ny7-sw01` に接続可能な空きがあることが確認できます。 + ここで `dz-ny7-sw01` に接続可能な空きがあることがわかります。 -5. 最寄りの DoubleZero デバイスに接続 +5. 最も近い DoubleZero デバイスに接続 - 切断してから DoubleZero に再接続します。 + 切断してから、DoubleZero に再接続します。 - まず以下を実行 + まず実行 - `doublezero disconnect` 出力 @@ -289,7 +289,7 @@ account | accesspass_type 🔍 User Account deleted ✅ Deprovisioning Complete ``` - 次にステータスを確認して切断を確認します + 次に、切断を確認するためにステータスを確認します - `doublezero status` 出力 @@ -312,11 +312,41 @@ account | accesspass_type Service provisioned with status: ok ✅ User Provisioned ``` - 上記の出力で `Connected to device: dz-ny7-sw01` に接続したことに注目してください。これはステップ1の初期調査で `dz-ny7-sw01` が最も低レイテンシのデバイスであると判明した結果から期待される結果です。 + 上記の出力で `Connected to device: dz-ny7-sw01` に接続したことに注目してください。これはステップ 1 の最初の調査で `dz-ny7-sw01` が最もレイテンシの低いデバイスであると判明した結果に基づく望ましい結果です。 + +### 問題:DoubleZero 環境が間違っている + +Mainnet-Beta と Testnet は異なるパッケージリポジトリを使用します。`doublezero status` はクライアントが接続しているネットワークを表示します(`Network` 列)。ユーザーが間違ったクライアントをインストールした場合、またはデーモンがまだ別の環境を指している場合は、以下のコピー&ペーストコマンドで切り替えてください。 + +DoubleZero クライアント CLI(`doublezero`)とデーモン(`doublezerod`)を **DoubleZero testnet** に接続するように設定するには: + +```bash +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" +``` + +DoubleZero クライアント CLI(`doublezero`)とデーモン(`doublezerod`)を **DoubleZero mainnet-beta** に接続するように設定するには: + +```bash +DESIRED_DOUBLEZERO_ENV=mainnet-beta \ + && 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 mainnet-beta`(または `testnet`)と表示されるはずです。その後、`doublezero status` で一致する `Network` が表示されるはずです。 ### 問題:`doublezero status` の一部のフィールドが N/A を返す -この問題は一般的に、現在のデーモンとクライアントと、接続中の DZ トンネルが確立された時点のデーモンとクライアントとの間の不一致に関連しています。 +この問題は一般的に、現在のデーモンとクライアントと、接続中の DZ トンネルが確立されたときのデーモンとクライアントの間の不一致に関連しています。 **症状:** - `doublezero status` を実行すると、一部のフィールドに `N/A` が表示される @@ -324,7 +354,7 @@ account | accesspass_type -**解決方法:** +**解決策:** 1. 実行 `doublezero status` @@ -335,47 +365,6 @@ account | accesspass_type up | 2025-10-20 20:06:18 UTC | doublezero0 | 149.28.38.64 | 64.86.249.22 | 149.28.38.64 | IBRL | N/A | ✅ dz-ny7-sw01 | N/A | mainnet-beta ``` - 上記の出力例で、`Tunnel status` が `up` であることに注目してください。`Network` は `mainnet-beta` です。しかし、`Current Device` と `Metro` が `N/A` になっています。 - - これは、現在の環境にないオープンなトンネルがマシン上に存在することを示しています。 - この場合、`up` のステータスと、`mainnet-beta` 上で `Current Device` が見つからないことから、トンネルが testnet 上にあることがわかります! - -2. 環境を変更する - - 不一致を修正するには、`N/A` を返している環境とは反対の環境に変更します。 - - ```bash - 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" - ``` - - DoubleZero クライアント CLI(`doublezero`)とデーモン(`doublezerod`)を **DoubleZero mainnet-beta** に接続するよう設定するには: - - ```bash - DESIRED_DOUBLEZERO_ENV=mainnet-beta \ - && 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" - ``` - -3. ステータスを確認 - - 環境を切り替えた後、以下を実行します: - - ``` - doublezero status - ``` - - 期待される出力は以下のようになるはずです: + 上記の出力例では、`Tunnel status` が `up` であることに注目してください。`Network` は `mainnet-beta` です。しかし、`Current Device` と `Metro` が `N/A` になっています。 - ``` - 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-21 12:32:12 UTC | \ No newline at end of file + これは、現在 \ No newline at end of file diff --git a/docs/troubleshooting.ko.md b/docs/troubleshooting.ko.md index 14ce29c..747f7dc 100644 --- a/docs/troubleshooting.ko.md +++ b/docs/troubleshooting.ko.md @@ -1,16 +1,16 @@ --- -description: 일반적인 DoubleZero 연결 문제를 참조 명령어, 예상 출력, 추가 지원을 받을 수 있는 곳과 함께 진단합니다. +description: 일반적인 DoubleZero 연결 문제를 참조 명령어, 예상 출력, 추가 지원을 받을 수 있는 곳을 통해 진단합니다. --- # 문제 해결 -이 가이드는 다양한 문제를 다루며, 지속적으로 업데이트됩니다. 가이드를 완료한 후에도 추가 지원이 필요하면 [DoubleZero Tech](https://discord.com/channels/1341597747932958802/1344323790464880701) Discord에서 도움을 받을 수 있습니다. +이 가이드는 다양한 문제를 다루며, 지속적으로 업데이트됩니다. 가이드를 완료한 후에도 추가 지원이 필요하면 [DoubleZero Tech](https://discord.com/channels/1341597747932958802/1344323790464880701) 디스코드에서 도움을 받을 수 있습니다. ## 일반적인 명령어 및 출력 -먼저 다음 명령어의 출력과 예상 출력을 확인하세요. 이 정보는 보다 자세한 문제 해결에 도움이 됩니다. -티켓을 여는 경우 해당 출력을 요청받을 수 있습니다. +먼저, 다음 명령어의 출력과 예상 출력을 확인하세요. 이 정보는 더 자세한 문제 해결에 도움이 됩니다. +티켓을 열면 해당 출력을 요청받을 수 있습니다. #### 1. 버전 확인 명령어: @@ -36,7 +36,7 @@ MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2 #### 3. Access Pass 확인 -예시 공개키: `MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2` 명령어를 실행할 때 이것을 본인의 공개키로 대체하세요. +예시 공개키: `MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2` 명령어 실행 시 본인의 공개키로 교체하세요. 명령어: @@ -95,11 +95,11 @@ account | accesspass_type [comment]: # () # 문제 해결 예시 -이제 기본 출력과 정상적인 배포에서 예상되는 내용을 살펴보았으므로 몇 가지 일반적인 문제 해결 예시를 살펴보겠습니다. +기본 출력과 정상적인 배포에서 예상되는 결과를 살펴보았으니, 이제 몇 가지 일반적인 문제 해결 예시를 살펴보겠습니다. ### 문제: ❌ Error creating user -이 문제는 일반적으로 예상되는 공개키/IP 쌍과 사용자가 DoubleZero에 접속하려는 공개키/IP 쌍이 일치하지 않는 것과 관련이 있습니다. +이 문제는 일반적으로 예상되는 공개키/IP 쌍과 사용자가 DoubleZero에 접속하려는 공개키/IP 쌍 사이의 불일치와 관련이 있습니다. **증상:** - `doublezero connect ibrl`로 연결할 때 사용자가 `❌ Error creating user`를 만남 @@ -124,17 +124,17 @@ account | accesspass_type FHyoPs7U23MuSTtepEyXUtSAEffEpFpJGoYvug8X2sWY | prepaid | 141.14.14.14 | MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2 | MAX | MAX | 0 | requested | DZfHh2vjXFqt8zfNbT1afm8PGuCm3BrQKegC5THtKFdn ``` - `doublezero address`의 공개키는 user_payer 공개키와 일치해야 하며, 연결하려는 IP 주소는 Access-Pass의 ip와 일치해야 합니다. - `doublezero address`는 기본적으로 ~/.config/doublezero/에 있는 id.json 파일에서 가져옵니다. [여기 6단계]()를 참조하세요. + `doublezero address`의 공개키는 user_payer 공개키와 일치해야 하며, 연결하려는 IP 주소는 Access-Pass의 ip와 일치해야 합니다. + `doublezero address`는 기본적으로 ~/.config/doublezero/에 있는 id.json 파일에서 가져옵니다. [여기의 6단계]()를 참조하세요 -3. 위 내용이 올바른데도 연결 시 오류가 발생하거나, 위 매핑이 잘못된 경우 [DoubleZero Tech](https://discord.com/channels/1341597747932958802/1344323790464880701)에서 지원팀에 문의하세요. +3. 위의 내용이 올바른데도 연결 시 오류가 발생하거나 위의 매핑이 올바르지 않은 경우 [DoubleZero Tech](https://discord.com/channels/1341597747932958802/1344323790464880701)에서 지원팀에 문의하세요 ### 문제: ❌ Error provisioning service: malformed stuff: cannot provision multiple tunnels at the same time 이 오류는 장치가 이미 DoubleZero에 연결되어 있음을 나타냅니다. **증상:** -- 사용자가 DoubleZero에 연결하려고 시도 -- `❌ Error provisioning service: malformed stuff: cannot provision multiple tunnels at the same time`가 발생 +- 사용자가 DoubleZero에 연결을 시도함 +- `❌ Error provisioning service: malformed stuff: cannot provision multiple tunnels at the same time`가 발생함. **해결 방법:** 1. 확인 @@ -146,16 +146,16 @@ account | accesspass_type 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 ``` 2. -`up`-은 정상적인 연결을 나타냅니다. -3. 이 오류는 특정 DoubleZero IP를 사용하는 DoubleZero 터널이 이 머신에서 이미 활성화되어 있기 때문에 나타납니다. +3. 이 오류는 특정 DoubleZero IP로의 DoubleZero 터널이 이미 이 머신에서 활성화되어 있기 때문에 나타납니다. - 이 오류는 DoubleZero 클라이언트 업그레이드 후에 자주 발생합니다. DoubleZero 업그레이드는 자동으로 doublezerod 서비스를 재시작하고, 서비스 재시작 전에 연결되어 있었다면 다시 연결합니다. + 이 오류는 DoubleZero 클라이언트 업그레이드 후에 자주 발생합니다. DoubleZero 업그레이드는 자동으로 doublezerod 서비스를 재시작하며, 서비스 재시작 전에 연결되어 있었다면 다시 연결합니다. ### 문제: DoubleZero 상태가 unknown 또는 down -이 문제는 서버와 DoubleZero 장치 간 GRE 터널이 성공적으로 활성화되었지만, 방화벽이 BGP 세션 설정을 차단하는 경우와 관련이 있습니다. 이로 인해 네트워크에서 경로를 수신하지 못하거나 DoubleZero를 통해 트래픽을 전송하지 못합니다. +이 문제는 서버와 DoubleZero 장치 간의 GRE 터널이 성공적으로 활성화되었지만, 방화벽이 BGP 세션 설정을 차단하는 것과 관련이 있는 경우가 많습니다. 이로 인해 네트워크에서 라우트를 수신하지 못하거나 DoubleZero를 통해 트래픽을 전송하지 못합니다. **증상:** -- `doublezero connect ibrl`은 성공했지만, `doublezero status`가 `down` 또는 `unknown`을 반환 +- `doublezero connect ibrl`은 성공했으나 `doublezero status`가 `down` 또는 `unknown`을 반환함 ``` doublezero connect ibrl DoubleZero Service Provisioning @@ -177,11 +177,11 @@ account | accesspass_type **해결 방법:** 1. 방화벽 규칙을 확인하세요! - DoubleZero는 머신과 DoubleZero 장치 간 GRE 터널 인터페이스에 링크 로컬 주소 공간 169.254.0.0/16을 사용합니다. 169.254.0.0/16은 일반적으로 "라우팅 불가능한" 주소 공간이며, 따라서 올바른 보안 관행에서는 이 공간으로의 통신을 차단할 것을 권장합니다. 방화벽에서 출발지 169.254.0.0/16이 목적지 169.254.0.0/16과 TCP 포트 179로 통신할 수 있도록 허용하는 규칙을 추가해야 합니다. 이 규칙은 169.254.0.0/16 트래픽을 거부하는 규칙보다 상위에 배치해야 합니다. + DoubleZero는 사용자의 머신과 DoubleZero 장치 간의 GRE 터널 인터페이스에 링크 로컬 주소 공간 169.254.0.0/16을 사용합니다. 169.254.0.0/16은 일반적으로 "라우팅 불가능한" 공간이므로 좋은 보안 관행에서는 이 공간으로의/으로부터의 통신을 차단하도록 권장합니다. 방화벽에서 src 169.254.0.0/16이 dst 169.254.0.0/16과 tcp 포트 179에서 통신할 수 있도록 허용하는 규칙을 추가해야 합니다. 이 규칙은 169.254.0.0/16으로의 트래픽을 거부하는 규칙보다 위에 배치해야 합니다. - ufw와 같은 방화벽에서는 `sudo ufw status`를 실행하여 방화벽 규칙을 확인할 수 있습니다. + ufw와 같은 방화벽에서는 `sudo ufw status`를 실행하여 방화벽 규칙을 확인할 수 있습니다 - Solana 검증자가 사용할 수 있는 것과 유사한 예시 출력입니다. + Solana 검증자가 가질 수 있는 것과 유사한 예시 출력: ``` To Action From -- ------ ---- @@ -200,13 +200,13 @@ account | accesspass_type 192.168.0.0/16 DENY OUT Anywhere ``` - 위 출력에서 지정된 포트를 제외한 169.254.0.0/16으로의 모든 트래픽이 거부되는 것을 볼 수 있습니다. - `sudo ufw insert allow proto tcp from 169.254.0.0/16 to 169.254.0.0/16 port 179`를 실행하여 위치에 규칙을 삽입합니다. 예: N = 1이면 이 규칙을 첫 번째 규칙으로 삽입합니다. - `sudo ufw status numbered`를 실행하면 규칙의 숫자 순서를 확인할 수 있습니다. + 위의 출력에서 169.254.0.0/16으로의 모든 트래픽이 지정된 포트를 제외하고 거부되어 있음을 볼 수 있습니다. + `sudo ufw insert allow proto tcp from 169.254.0.0/16 to 169.254.0.0/16 port 179`을 사용하여 위치에 규칙을 삽입합니다. 예를 들어 N = 1이면 이 규칙이 첫 번째 규칙으로 삽입됩니다. + `sudo ufw status numbered`는 규칙의 번호 순서를 보여줍니다. ### 문제: 가장 가까운 DoubleZero 장치가 변경됨 -이것은 오류가 아니라 최적화가 될 수 있습니다. 아래는 수시로 실행하거나 자동화할 수 있는 모범 사례입니다. +이것은 오류가 아니지만 최적화할 수 있습니다. 아래는 수시로 실행하거나 자동화할 수 있는 모범 사례입니다. **해결 방법:** @@ -222,33 +222,33 @@ account | accesspass_type 8J691gPwzy9FzUZQ4SmC6jJcY7By8kZXfbJwRfQ8ns31 | nyc002-dz002 | 38.122.35.137 | 2.33ms | 2.39ms | 2.37ms | true FEML4XsDPN3WfmyFAXzE2xzyYqSB9kFCRrMik8JqN6kT | nyc001-dz001 | 38.104.167.29 | 2.29ms | 2.59ms | 2.40ms | true ``` - 위에서 가장 가까운 장치는 `dz-ny7-sw01`입니다. + 위에서 가장 가까운 장치가 `dz-ny7-sw01`임을 확인하세요 이 장치에 연결하고자 합니다: 2. 이미 대상 장치에 연결되어 있는지 확인 - - `doublezero user list --env testnet | grep 111.11.11.11` 실행. `111.11.11.11`을 DoubleZero에 연결된 장치의 공용 IPv4 주소로 대체하세요. 검증자 ID 또는 doublezero ID를 사용할 수도 있습니다. + - `doublezero user list --env testnet | grep 111.11.11.11` 실행 — `111.11.11.11`을 DoubleZero에 연결된 장치의 공인 IPv4 주소로 교체하세요. 검증자 ID 또는 doublezero ID를 사용할 수도 있습니다. 출력 ``` account | user_type | groups | device | location | cyoa_type | client_ip | dz_ip | accesspass | tunnel_id | tunnel_net | status | owner 6QRU1ivJnKGHpom2BdzH9PiTRkJ5WhunPNLtfYcqVisW | IBRL | | dz-ny7-sw01 | New York | GREOverDIA | 111.11.11.11 | 111.11.11.11 | Prepaid: (MAX) | 514 | 111.254.1.111/31 | activated | DZfHh2vjXFqt8zfNbT1afm8PGuCm3BrQKegC5THtKFdn ``` - 이 예시에서는 이미 가장 가까운 장치에 연결되어 있습니다. 추가 단계가 필요하지 않으며 여기서 중단할 수 있습니다. + 이 예시에서는 이미 가장 가까운 장치에 연결되어 있습니다. 추가 단계가 필요 없으며 여기서 중단할 수 있습니다. - 대신 출력이 다음과 같다고 가정해 봅시다 + 대신 출력이 다음과 같은 경우를 생각해 봅시다 ``` account | user_type | groups | device | location | cyoa_type | client_ip | dz_ip | accesspass | tunnel_id | tunnel_net | status | owner 6QRU1ivJnKGHpom2BdzH9PiTRkJ5WhunPNLtfYcqVisW | IBRL | | fra-dz-001-x | New York | GREOverDIA | 111.11.11.11 | 111.11.11.11 | Prepaid: (MAX) | 514 | 111.254.1.111/31 | activated | DZfHh2vjXFqt8zfNbT1afm8PGuCm3BrQKegC5THtKFdn ``` - 이것은 최적이 아닌 연결입니다. 재연결이 필요한지 살펴보겠습니다. + 이는 최적이 아닌 연결입니다. 재연결이 필요한지 확인해 봅시다. - 연결하기 전에 장치에 사용 가능한 사용자 터널이 있는지 확인합니다. + 연결하기 전에 해당 장치에 사용 가능한 사용자 터널이 있는지 확인합니다. -3. 선택 사항: 사용 가능한 장치에 대해 네트워크 조사 +3. 선택 사항: 네트워크에서 사용 가능한 장치 확인 - 학습 목적으로 먼저: + 교육 목적으로 먼저: - `doublezero device list`를 실행하여 전체 장치 목록을 확인합니다. 출력을 설명하기 위해 2개의 장치를 예시로 가져왔습니다. 출력: @@ -257,14 +257,14 @@ account | accesspass_type GphgLkA7JDVtkDQZCiDrwrDvaUs8r8XczEae1KkV6CGQ | ams001-dz002 | jump_ | EQX-AM4 | ams | switch | 149.11.64.57 | 38.246.201.64/27 | 69 | 128 | activated | | H647kAwTcWsGXZUK3BTr1JyTBZmbNcYyCmRFFCEnXUVp 7FfrX8YbvbzM8A1ojNynP9BjiKpK9rrmhdEdchB2myhG | dz-fr5-sw01 | glxy | EQX-FR5 | fra | switch | 89.222.118.225 | 89.222.118.228/30 | 0 | 0 | activated | | 5YbNrJHJJoiRwVEvgAWRGdFRG9gRdZ47hLCKSym8bqbp ``` - 위에서 `ams001-dz002`는 69명의 사용자와 128명의 최대 사용자가 있습니다. 이 장치는 59명의 사용자를 추가할 수 있습니다. + 위에서 `ams001-dz002`는 69명의 사용자가 있고 최대 사용자 수는 128명입니다. 이 장치는 59명의 사용자를 추가할 수 있습니다. - 그러나 `dz-fr5-sw01`은 0명의 사용자와 0명의 최대 사용자가 있습니다. 이 장치에는 연결할 수 없습니다. 최대 사용자가 0이므로 장치가 어떠한 연결도 수락하지 않습니다. + 그러나 `dz-fr5-sw01`은 사용자 0명, 최대 사용자 0명입니다. 이 장치에는 연결할 수 없습니다. 최대 사용자가 0이므로 이 장치는 어떠한 연결도 수락하지 않습니다. 이제 가장 가까운 장치에 연결하는 것으로 돌아가겠습니다. 4. 대상 장치에 사용 가능한 연결이 있는지 확인 - - `doublezero device list | grep dz-ny7-sw01` 실행. `dz-ny7-sw01`을 대상 장치로 대체하세요. + - `doublezero device list | grep dz-ny7-sw01` 실행 — `dz-ny7-sw01`을 대상 장치로 교체하세요 출력 ``` @@ -274,7 +274,7 @@ account | accesspass_type 5. 가장 가까운 DoubleZero 장치에 연결 - 연결을 해제한 다음 DoubleZero에 재연결합니다. + 연결을 해제한 다음 doublezero에 다시 연결합니다. 먼저 실행 - `doublezero disconnect` @@ -289,7 +289,7 @@ account | accesspass_type 🔍 User Account deleted ✅ Deprovisioning Complete ``` - 이제 다음 명령으로 연결 해제를 확인합니다. + 이제 연결 해제를 확인하기 위해 상태를 확인합니다 - `doublezero status` 출력 @@ -298,7 +298,7 @@ account | accesspass_type Tunnel status | Last Session Update | Tunnel Name | Tunnel src | Tunnel dst | Doublezero IP | User Type disconnected | no session data | | | | | ``` - 마지막으로 다음 명령으로 재연결합니다. + 마지막으로 다시 연결합니다 - `doublezero connect ibrl` 출력 @@ -312,38 +312,27 @@ account | accesspass_type Service provisioned with status: ok ✅ User Provisioned ``` - 위 출력에서 `Connected to device: dz-ny7-sw01`에 연결된 것을 확인할 수 있습니다. 이것은 1단계의 초기 조사에서 `dz-ny7-sw01`이 가장 낮은 지연 시간을 가진 장치임을 발견한 것에 따른 원하는 결과입니다. + 위 출력에서 `Connected to device: dz-ny7-sw01`에 연결된 것을 확인할 수 있습니다. 이는 1단계 초기 조사에서 `dz-ny7-sw01`이 가장 낮은 지연 시간을 가진 장치임을 발견한 결과와 일치하는 원하는 결과입니다. -### 문제: `doublezero status`에서 일부 필드가 N/A를 반환 +### 문제: 잘못된 DoubleZero 환경 -이 문제는 일반적으로 현재 데몬 및 클라이언트와 연결된 DZ 터널이 설정된 데몬 및 클라이언트 간의 불일치와 관련이 있습니다. +Mainnet-Beta와 Testnet은 서로 다른 패키지 저장소를 사용합니다. `doublezero status`는 클라이언트가 연결된 네트워크를 표시합니다(`Network` 열). 사용자가 잘못된 클라이언트를 설치했거나 데몬이 여전히 다른 환경을 가리키고 있는 경우, 아래의 복사-붙여넣기 전환 명령을 사용하세요. -**증상:** -- `doublezero status` 실행 시 일부 필드에서 `N/A`가 나타남 - - - - -**해결 방법:** -1. 실행 -`doublezero status` - - 예시: +DoubleZero 클라이언트 CLI(`doublezero`)와 데몬(`doublezerod`)을 **DoubleZero testnet**에 연결하도록 구성하려면: - ``` - 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 20:06:18 UTC | doublezero0 | 149.28.38.64 | 64.86.249.22 | 149.28.38.64 | IBRL | N/A | ✅ dz-ny7-sw01 | N/A | mainnet-beta - ``` - - 위 예시 출력에서 `Tunnel status`가 `up`인 것을 확인할 수 있습니다. `Network`는 `mainnet-beta`입니다. 그러나 `Current Device`와 `Metro`가 `N/A`입니다. - - 이것은 현재 환경에 속하지 않는 열린 터널이 머신에 있음을 나타냅니다. - 이 경우 `up` 상태에서 `mainnet-beta`에서 `Current Device`를 찾지 못한 것은 터널이 testnet에 있다는 것을 알려줍니다! - -2. 환경을 변경합니다. +```bash +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" +``` - 불일치를 해결하기 위해 `N/A`를 반환하는 환경의 반대 환경으로 변경합니다. +DoubleZero 클라이언트 CLI(`doublezero`)와 데몬(`doublezerod`)을 **DoubleZero mainnet-beta**에 연결하도록 구성하려면: - ```bash - DESIRED_DOUBLEZERO_ENV=testnet \ - && sudo mkdir -p /etc/systemd/system/doublezerod. \ No newline at end of file +```bash +DESIRED_DOUBLEZERO_ENV=mainnet-beta \ + && sudo mkdir -p /etc/systemd/system/doublezerod.service.d \ + && echo -e "[Service]\nExecStart=\nExecStart=/usr/bin/doublezerod -sock-file /run/doublezerod/doublezerod. \ No newline at end of file diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md index e01c7e6..b70c246 100644 --- a/docs/troubleshooting.md +++ b/docs/troubleshooting.md @@ -314,6 +314,36 @@ This is not an error, but can be an optimization. Below is a best practice which ``` notice in the above output that we `Connected to device: dz-ny7-sw01` this is the desired result from our initial investigation in step 1, where we discovered that `dz-ny7-sw01` was the device with the lowest latency. +### Issue: wrong DoubleZero environment + +Mainnet-Beta and Testnet use different package repos. `doublezero status` shows which network the client is on (`Network` column). If a user installed the wrong client, or the daemon is still pointed at the other env, use these copy-paste switches. + +To configure the DoubleZero Client CLI (`doublezero`) and daemon (`doublezerod`) to connect to **DoubleZero testnet**: + +```bash +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" +``` + +To configure the DoubleZero Client CLI (`doublezero`) and daemon (`doublezerod`) to connect to **DoubleZero mainnet-beta**: + +```bash +DESIRED_DOUBLEZERO_ENV=mainnet-beta \ + && 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" +``` + +You should see: `✅ doublezerod configured for environment mainnet-beta` (or `testnet`). Then `doublezero status` should show the matching `Network`. + ### Issue: `doublezero status` returns some fields with N/A This issue is generally related to a mismatch between the current daemon and client, vs the daemon and client the connected DZ tunnel was established in. @@ -340,32 +370,8 @@ This issue is generally related to a mismatch between the current daemon and cli This is indicative of an open tunnel on your machine which is not in your current environment. In this case the `up` status, with no found `Current Device` on `mainnet-beta` reveals to us that our tunnel is on testnet! -2. Change your environment. - - In order to rectify the mismatch you will change your environment to the opposite of the environment returning the `N/A` - - ```bash - 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" - ``` +2. Switch environment using the copy-paste commands in [wrong DoubleZero environment](#issue-wrong-doublezero-environment). Use the opposite of the `Network` value that is returning `N/A`. - To configure the DoubleZero Client CLI (`doublezero`) and daemon (`doublezerod`) to connect to **DoubleZero mainnet-beta**: - - ```bash - DESIRED_DOUBLEZERO_ENV=mainnet-beta \ - && 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" - ``` - 3. Check your status After switching environments run: diff --git a/docs/troubleshooting.pt.md b/docs/troubleshooting.pt.md index 14dde1b..1da3085 100644 --- a/docs/troubleshooting.pt.md +++ b/docs/troubleshooting.pt.md @@ -2,15 +2,15 @@ description: Diagnostique problemas comuns de conexão DoubleZero com comandos de referência, saídas esperadas e onde obter suporte adicional. --- -# Resolução de Problemas +# Solução de Problemas -Este guia cobrirá uma variedade de problemas e está em constante atualização. Se você concluir o guia e ainda precisar de ajuda, pode buscar suporte adicional no discord [DoubleZero Tech](https://discord.com/channels/1341597747932958802/1344323790464880701). +Este guia cobrirá uma variedade de problemas, e está em constante atualização. Se você completar o guia, pode buscar suporte adicional no discord [DoubleZero Tech](https://discord.com/channels/1341597747932958802/1344323790464880701). ## Comandos Comuns e Saídas -Para começar, examine a saída dos seguintes comandos e suas saídas esperadas. Eles irão auxiliá-lo em uma resolução de problemas mais detalhada. -Se você abrir um ticket, poderá ser solicitado a fornecer essas saídas. +Para começar, examine a saída dos seguintes comandos e suas saídas esperadas. Estes irão auxiliá-lo em uma solução de problemas mais detalhada. +Se você abrir um ticket, poderão solicitar suas saídas. #### 1. Verificar Versão Comando: @@ -34,9 +34,9 @@ MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2 ``` [comment]: # () -#### 3. Verificar seu Passe de Acesso +#### 3. Verificar seu Access Pass -Pubkey de exemplo: `MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2` substitua isso pela sua pubkey ao executar o comando. +Pubkey de exemplo: `MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2` substitua pela sua pubkey ao executar o comando. Comando: @@ -94,8 +94,8 @@ Saída de Exemplo: ``` [comment]: # () -# Exemplos de Resolução de Problemas -Agora que examinamos as saídas básicas e o que é esperado em uma implantação saudável, podemos examinar alguns exemplos comuns de resolução de problemas. +# Exemplos de Solução de Problemas +Agora que examinamos as saídas básicas, e o que é esperado em uma implantação saudável, podemos examinar alguns exemplos comuns de solução de problemas. ### Problema: ❌ Error creating user @@ -124,13 +124,13 @@ Este problema geralmente está relacionado a uma incompatibilidade entre o par p FHyoPs7U23MuSTtepEyXUtSAEffEpFpJGoYvug8X2sWY | prepaid | 141.14.14.14 | MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2 | MAX | MAX | 0 | requested | DZfHh2vjXFqt8zfNbT1afm8PGuCm3BrQKegC5THtKFdn ``` - A pubkey de `doublezero address` deve corresponder à pubkey user_payer e o Endereço IP a partir do qual você está tentando conectar deve corresponder ao ip no Passe de Acesso. + A pubkey de `doublezero address` deve corresponder à pubkey user_payer e o Endereço IP de onde você está tentando conectar deve corresponder ao ip no Access-Pass. `doublezero address` é obtido do arquivo id.json em ~/.config/doublezero/ por padrão. Veja o [passo 6 aqui]() 3. Se o acima parecer correto e você estiver recebendo um erro ao conectar, ou se o mapeamento acima estiver incorreto, entre em contato com o suporte em [DoubleZero Tech](https://discord.com/channels/1341597747932958802/1344323790464880701) ### Problema: ❌ Error provisioning service: malformed stuff: cannot provision multiple tunnels at the same time -Este erro significa que um dispositivo já está conectado ao DoubleZero. +Este erro indica que um dispositivo já está conectado ao DoubleZero. **Sintomas:** - O usuário tenta conectar ao DoubleZero @@ -148,7 +148,7 @@ Este erro significa que um dispositivo já está conectado ao DoubleZero. 2. -`up`- indica uma conexão saudável. 3. O erro aparece porque um túnel para o DoubleZero com o IP DoubleZero específico já está ativo nesta máquina. - Este erro é frequentemente encontrado após uma atualização do cliente DoubleZero. As atualizações do DoubleZero reiniciam automaticamente o serviço doublezerod e irão reconectá-lo se você estava conectado antes da reinicialização do serviço. + Este erro é frequentemente encontrado após uma atualização do cliente DoubleZero. As atualizações do DoubleZero reiniciam automaticamente o serviço doublezerod e irão reconectá-lo se você estava conectado antes do reinício do serviço. ### Problema: Status do DoubleZero é unknown ou down @@ -177,7 +177,7 @@ Este problema geralmente está relacionado ao túnel GRE sendo ativado com suces **Soluções:** 1. Verifique suas regras de firewall! - O DoubleZero usa o espaço de endereços link local: 169.254.0.0/16 para as interfaces do túnel GRE entre sua máquina e o Dispositivo DoubleZero. 169.254.0.0/16 é tipicamente um espaço "não roteável" e, portanto, boas práticas de segurança recomendam bloquear comunicações de/para este espaço. Você precisará permitir uma regra no seu firewall que habilite src 169.254.0.0/16 a se comunicar com dst 169.254.0.0/16 na porta tcp 179. Essa regra precisará ser colocada acima de quaisquer regras que neguem tráfego para 169.254.0.0/16. + O DoubleZero usa espaço de endereço link local: 169.254.0.0/16 para as interfaces de túnel GRE entre sua máquina e o Dispositivo DoubleZero. 169.254.0.0/16 é tipicamente um espaço "não roteável" e, portanto, boas práticas de segurança recomendam bloquear comunicações de/para este espaço. Você precisará permitir uma regra no seu firewall que habilite src 169.254.0.0/16 a comunicar com dst 169.254.0.0/16 na porta tcp 179. Essa regra precisará ser colocada acima de quaisquer regras que neguem tráfego para 169.254.0.0/16. Em um firewall como ufw você pode executar `sudo ufw status` para visualizar as regras do firewall e @@ -200,13 +200,13 @@ Este problema geralmente está relacionado ao túnel GRE sendo ativado com suces 192.168.0.0/16 DENY OUT Anywhere ``` - Na saída acima, você pode ver que todo o tráfego para 169.254.0.0/16, exceto para as portas especificadas, é negado. - `sudo ufw insert allow proto tcp from 169.254.0.0/16 to 169.254.0.0/16 port 179` para inserir a regra na posição . ou seja, se N = 1 então você inserirá esta regra como a primeira regra. + Na saída acima, você vê que todo o tráfego para 169.254.0.0/16, exceto pelas portas especificadas, é negado. + `sudo ufw insert allow proto tcp from 169.254.0.0/16 to 169.254.0.0/16 port 179` para inserir a regra na posição . Ou seja, se N = 1 então você inserirá esta regra como a primeira regra. `sudo ufw status numbered` mostrará a ordenação numérica das regras. ### Problema: O dispositivo DoubleZero mais próximo mudou -Isso não é um erro, mas pode ser uma otimização. Abaixo está uma boa prática que pode ser executada periodicamente ou automatizada. +Isto não é um erro, mas pode ser uma otimização. Abaixo está uma melhor prática que pode ser executada de tempos em tempos, ou automatizada. **Soluções:** @@ -224,17 +224,17 @@ Isso não é um erro, mas pode ser uma otimização. Abaixo está uma boa práti ``` note acima que o dispositivo mais próximo é `dz-ny7-sw01` - Queremos conectar a este dispositivo.: + Queremos conectar a este dispositivo: 2. Determine se você já está conectado ao dispositivo alvo - - execute `doublezero user list --env testnet | grep 111.11.11.11` substitua `111.11.11.11` pelo endereço IPv4 público do seu dispositivo que está conectado ao DoubleZero. Você também pode usar seu ID de validador ou ID DoubleZero. + - execute `doublezero user list --env testnet | grep 111.11.11.11` substitua `111.11.11.11` pelo endereço IPv4 público do seu dispositivo que está conectado ao DoubleZero. Você também pode usar seu ID de validador, ou ID do DoubleZero. saída ``` account | user_type | groups | device | location | cyoa_type | client_ip | dz_ip | accesspass | tunnel_id | tunnel_net | status | owner 6QRU1ivJnKGHpom2BdzH9PiTRkJ5WhunPNLtfYcqVisW | IBRL | | dz-ny7-sw01 | New York | GREOverDIA | 111.11.11.11 | 111.11.11.11 | Prepaid: (MAX) | 514 | 111.254.1.111/31 | activated | DZfHh2vjXFqt8zfNbT1afm8PGuCm3BrQKegC5THtKFdn ``` - Neste exemplo, já estamos conectados ao dispositivo mais próximo. Nenhum passo adicional é necessário, podemos parar aqui. + Neste exemplo, já estamos conectados ao dispositivo mais próximo. Nenhuma etapa adicional é necessária, podemos parar aqui. Vamos considerar, em vez disso, se a saída fosse @@ -244,12 +244,12 @@ Isso não é um erro, mas pode ser uma otimização. Abaixo está uma boa práti ``` Esta seria uma conexão sub-ótima. Vamos considerar se a reconexão é necessária. - Antes de conectar, verificaremos se o dispositivo possui túneis de usuário disponíveis. + Antes da conexão, verificaremos se o dispositivo tem túneis de usuário disponíveis. 3. Opcional: examine a rede para dispositivos disponíveis Para fins educacionais, primeiro: - - execute `doublezero device list` para uma lista completa de dispositivos. Selecionamos 2 dispositivos como exemplo para explicar a saída. + - execute `doublezero device list` para uma lista completa de dispositivos. Extraímos 2 dispositivos como exemplo para explicar a saída. saída: ``` @@ -257,13 +257,13 @@ Isso não é um erro, mas pode ser uma otimização. Abaixo está uma boa práti GphgLkA7JDVtkDQZCiDrwrDvaUs8r8XczEae1KkV6CGQ | ams001-dz002 | jump_ | EQX-AM4 | ams | switch | 149.11.64.57 | 38.246.201.64/27 | 69 | 128 | activated | | H647kAwTcWsGXZUK3BTr1JyTBZmbNcYyCmRFFCEnXUVp 7FfrX8YbvbzM8A1ojNynP9BjiKpK9rrmhdEdchB2myhG | dz-fr5-sw01 | glxy | EQX-FR5 | fra | switch | 89.222.118.225 | 89.222.118.228/30 | 0 | 0 | activated | | 5YbNrJHJJoiRwVEvgAWRGdFRG9gRdZ47hLCKSym8bqbp ``` - Note acima que `ams001-dz002` tem 69 usuários e 128 usuários máximos. Este dispositivo pode adicionar 59 usuários. + Note acima que `ams001-dz002` tem 69 usuários e 128 máximo de usuários. Este dispositivo pode adicionar 59 usuários. - No entanto, `dz-fr5-sw01` tem 0 usuários e 0 usuários máximos. Você não poderá conectar a este dispositivo. Com max users igual a 0, o dispositivo não está aceitando nenhuma conexão. + No entanto, `dz-fr5-sw01` tem 0 usuários e 0 máximo de usuários. Você não conseguirá conectar a este dispositivo. Com máximo de usuários em 0, o dispositivo não está aceitando nenhuma conexão. Agora vamos retornar à conexão com nosso dispositivo mais próximo. -4. Determine se o dispositivo alvo possui uma conexão disponível +4. Determine se o dispositivo alvo tem uma conexão disponível - execute `doublezero device list | grep dz-ny7-sw01` substitua `dz-ny7-sw01` pelo seu dispositivo alvo saída @@ -312,11 +312,41 @@ Isso não é um erro, mas pode ser uma otimização. Abaixo está uma boa práti Service provisioned with status: ok ✅ User Provisioned ``` - observe na saída acima que nos `Connected to device: dz-ny7-sw01` este é o resultado desejado da nossa investigação inicial no passo 1, onde descobrimos que `dz-ny7-sw01` era o dispositivo com a menor latência. + note na saída acima que nos conectamos com `Connected to device: dz-ny7-sw01` — este é o resultado desejado de nossa investigação inicial no passo 1, onde descobrimos que `dz-ny7-sw01` era o dispositivo com a menor latência. + +### Problema: Ambiente DoubleZero incorreto + +Mainnet-Beta e Testnet usam repositórios de pacotes diferentes. `doublezero status` mostra em qual rede o cliente está (coluna `Network`). Se um usuário instalou o cliente errado, ou o daemon ainda está apontando para o outro ambiente, use estas trocas de copiar e colar. + +Para configurar a CLI do Cliente DoubleZero (`doublezero`) e o daemon (`doublezerod`) para conectar ao **DoubleZero testnet**: + +```bash +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" +``` + +Para configurar a CLI do Cliente DoubleZero (`doublezero`) e o daemon (`doublezerod`) para conectar ao **DoubleZero mainnet-beta**: + +```bash +DESIRED_DOUBLEZERO_ENV=mainnet-beta \ + && 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" +``` + +Você deverá ver: `✅ doublezerod configured for environment mainnet-beta` (ou `testnet`). Então `doublezero status` deverá mostrar o `Network` correspondente. ### Problema: `doublezero status` retorna alguns campos com N/A -Este problema geralmente está relacionado a uma incompatibilidade entre o daemon e cliente atuais, em relação ao daemon e cliente com os quais o túnel DZ conectado foi estabelecido. +Este problema geralmente está relacionado a uma incompatibilidade entre o daemon e cliente atuais, versus o daemon e cliente com os quais o túnel DZ conectado foi estabelecido. **Sintomas:** - Ao executar `doublezero status` o usuário encontra `N/A` em alguns campos @@ -335,40 +365,16 @@ Este problema geralmente está relacionado a uma incompatibilidade entre o daemo up | 2025-10-20 20:06:18 UTC | doublezero0 | 149.28.38.64 | 64.86.249.22 | 149.28.38.64 | IBRL | N/A | ✅ dz-ny7-sw01 | N/A | mainnet-beta ``` - Observe na nossa saída de exemplo acima que o `Tunnel status` é `up`. Nossa `Network` é `mainnet-beta`. No entanto, `Current Device` e `Metro` são `N/A` + Note em nosso exemplo de saída acima que o `Tunnel status` é `up`. Nossa `Network` é `mainnet-beta`. No entanto, `Current Device` e `Metro` são `N/A` - Isso é indicativo de um túnel aberto na sua máquina que não está no seu ambiente atual. - Neste caso, o status `up`, sem `Current Device` encontrado em `mainnet-beta`, nos revela que nosso túnel está no testnet! + Isto é indicativo de um túnel aberto na sua máquina que não está no seu ambiente atual. + Neste caso, o status `up`, sem `Current Device` encontrado em `mainnet-beta`, nos revela que nosso túnel está na testnet! -2. Mude seu ambiente. - - Para corrigir a incompatibilidade, você mudará seu ambiente para o oposto do ambiente que está retornando `N/A` - - ```bash - 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" - ``` +2. Troque o ambiente usando os comandos de copiar e colar em [Ambiente DoubleZero incorreto](#problema-ambiente-doublezero-incorreto). Use o oposto do valor `Network` que está retornando `N/A`. - Para configurar o CLI do Cliente DoubleZero (`doublezero`) e o daemon (`doublezerod`) para conectar ao **DoubleZero mainnet-beta**: - - ```bash - DESIRED_DOUBLEZERO_ENV=mainnet-beta \ - && 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" - ``` - 3. Verifique seu status - Após trocar de ambiente, execute: + Após trocar os ambientes execute: ``` doublezero status diff --git a/docs/troubleshooting.zh.md b/docs/troubleshooting.zh.md index 0a74266..57ff908 100644 --- a/docs/troubleshooting.zh.md +++ b/docs/troubleshooting.zh.md @@ -4,13 +4,13 @@ description: 诊断常见的 DoubleZero 连接问题,包含参考命令、预 # 故障排除 -本指南将涵盖各种问题,并持续更新。如果您完成了本指南仍未解决问题,可以在 [DoubleZero Tech](https://discord.com/channels/1341597747932958802/1344323790464880701) Discord 中寻求进一步支持。 +本指南将涵盖各种问题,并持续更新。如果您完成本指南后仍需进一步支持,可以在 [DoubleZero Tech](https://discord.com/channels/1341597747932958802/1344323790464880701) Discord 中寻求帮助。 -## 常用命令与输出 +## 常用命令和输出 -首先,检查以下命令的输出及其预期输出。这些将帮助您进行更详细的故障排除。 -如果您提交工单,可能会被要求提供这些输出。 +首先,检查以下命令的输出及其预期结果。这些将帮助您进行更详细的故障排除。 +如果您提交工单,可能会被要求提供这些命令的输出。 #### 1. 检查版本 命令: @@ -36,7 +36,7 @@ MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2 #### 3. 验证您的 Access Pass -示例公钥:`MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2`,运行命令时请替换为您的公钥。 +示例公钥:`MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2`,运行命令时请将其替换为您的公钥。 命令: @@ -49,7 +49,7 @@ account | accesspass_type 2XHCWm8Sef1GirhAhAJVA8WTXToPT6gFYP7fA9mWMShR | prepaid | 141.14.14.14 | MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2 | MAX | MAX | 0 | requested | DZfHh2vjXFqt8zfNbT1afm8PGuCm3BrQKegC5THtKFdn ``` [comment]: # () -#### 4. 检查 DoubleZero 账本余额 +#### 4. 检查 DoubleZero 账本积分 命令: `doublezero balance` @@ -95,7 +95,7 @@ account | accesspass_type [comment]: # () # 故障排除示例 -既然我们已经检查了基本输出以及健康部署中的预期结果,接下来我们可以看一些常见的故障排除示例。 +现在我们已经了解了基本输出以及健康部署中的预期结果,接下来我们可以查看一些常见的故障排除示例。 ### 问题:❌ Error creating user @@ -114,7 +114,7 @@ account | accesspass_type ``` MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2 ``` -2. 验证该地址是否在允许列表中: +2. 验证此地址是否在允许列表中: `doublezero access-pass list | awk 'NR==1 || /MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2/'` @@ -124,16 +124,16 @@ account | accesspass_type FHyoPs7U23MuSTtepEyXUtSAEffEpFpJGoYvug8X2sWY | prepaid | 141.14.14.14 | MTAwoHgKyTwwDGJo2dye6EWqyTn27JRwXxaDEaeMqe2 | MAX | MAX | 0 | requested | DZfHh2vjXFqt8zfNbT1afm8PGuCm3BrQKegC5THtKFdn ``` - `doublezero address` 的公钥必须与 user_payer 公钥匹配,并且您尝试连接的 IP 地址必须与 Access-Pass 中的 ip 匹配。 - `doublezero address` 默认从 ~/.config/doublezero/ 中的 id.json 文件获取。参见[此处的步骤 6]() + `doublezero address` 输出的公钥必须与 user_payer 公钥匹配,并且您尝试连接时使用的 IP 地址必须与 Access-Pass 中的 ip 匹配。 + `doublezero address` 默认从 ~/.config/doublezero/ 中的 id.json 文件获取。请参阅[此处的步骤 6]() -3. 如果以上信息看起来正确但您在连接时仍然出错,或者上述映射不正确,请在 [DoubleZero Tech](https://discord.com/channels/1341597747932958802/1344323790464880701) 联系支持团队 +3. 如果以上信息看起来正确但您在连接时仍然收到错误,或者如果以上映射不正确,请在 [DoubleZero Tech](https://discord.com/channels/1341597747932958802/1344323790464880701) 联系支持 ### 问题:❌ Error provisioning service: malformed stuff: cannot provision multiple tunnels at the same time 此错误表示设备已经连接到 DoubleZero。 **症状:** -- 用户尝试连接 DoubleZero +- 用户尝试连接到 DoubleZero - 遇到 `❌ Error provisioning service: malformed stuff: cannot provision multiple tunnels at the same time` **解决方案:** @@ -145,14 +145,14 @@ account | accesspass_type 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 ``` -2. -`up`- 表示连接健康。 -3. 此错误出现是因为使用特定 DoubleZero IP 到 DoubleZero 的隧道在此机器上已经处于活动状态。 +2. -`up`- 表示连接正常。 +3. 出现此错误是因为使用该特定 DoubleZero IP 到 DoubleZero 的隧道已经在此机器上处于活动状态。 - 此错误通常在 DoubleZero 客户端升级后遇到。DoubleZero 升级会自动重启 doublezerod 服务,如果您在服务重启前已连接,升级后会自动重新连接。 + 此错误通常在 DoubleZero 客户端升级后遇到。DoubleZero 升级会自动重启 doublezerod 服务,如果您在服务重启前已连接,则会自动重新连接。 ### 问题:DoubleZero 状态为 unknown 或 down -此问题通常与 GRE 隧道在服务器和 DoubleZero 设备之间已成功激活有关,但防火墙阻止了 BGP 会话的建立。因此,您无法从网络接收路由,也无法通过 DoubleZero 发送流量。 +此问题通常与 GRE 隧道在服务器和 DoubleZero 设备之间成功激活,但防火墙阻止了 BGP 会话建立有关。因此,您无法从网络接收路由或通过 DoubleZero 发送流量。 **症状:** - `doublezero connect ibrl` 执行成功。但是,`doublezero status` 返回 `down` 或 `unknown` @@ -177,11 +177,11 @@ account | accesspass_type **解决方案:** 1. 检查您的防火墙规则! - DoubleZero 使用链路本地地址空间 169.254.0.0/16 作为您的机器与 DoubleZero 设备之间的 GRE 隧道接口。169.254.0.0/16 通常是"不可路由"的地址空间,因此良好的安全实践会建议您阻止与此地址空间的通信。您需要在防火墙中添加一条规则,允许源 169.254.0.0/16 与目的 169.254.0.0/16 在 tcp 端口 179 上进行通信。该规则需要放在任何拒绝 169.254.0.0/16 流量的规则之前。 + DoubleZero 使用链路本地地址空间 169.254.0.0/16 作为您的机器和 DoubleZero 设备之间的 GRE 隧道接口。169.254.0.0/16 通常是"不可路由"的地址空间,因此良好的安全实践会建议您阻止与该地址空间的通信。您需要在防火墙中允许一条规则,使源 169.254.0.0/16 能够与目标 169.254.0.0/16 在 tcp 端口 179 上通信。该规则需要放置在任何拒绝 169.254.0.0/16 流量的规则之前。 - 在像 ufw 这样的防火墙中,您可以运行 `sudo ufw status` 来查看防火墙规则 + 在 ufw 等防火墙中,您可以运行 `sudo ufw status` 来查看防火墙规则 - 示例输出,可能与 Solana 验证节点的配置类似: + 示例输出,可能类似于 Solana 验证者的配置。 ``` To Action From -- ------ ---- @@ -200,13 +200,13 @@ account | accesspass_type 192.168.0.0/16 DENY OUT Anywhere ``` - 在上述输出中,您可以看到除指定端口外,所有到 169.254.0.0/16 的流量都被拒绝。 - `sudo ufw insert allow proto tcp from 169.254.0.0/16 to 169.254.0.0/16 port 179` 将规则插入到第 个位置。例如,如果 N = 1,则将此规则插入为第一条规则。 - `sudo ufw status numbered` 将显示规则的数字排序。 + 在上面的输出中,您可以看到除了指定的端口外,所有到 169.254.0.0/16 的流量都被拒绝了。 + `sudo ufw insert allow proto tcp from 169.254.0.0/16 to 169.254.0.0/16 port 179` 将规则插入到第 个位置。即如果 N = 1,则此规则将作为第一条规则插入。 + `sudo ufw status numbered` 将显示规则的编号顺序。 ### 问题:最近的 DoubleZero 设备已更改 -这不是一个错误,而是一个优化建议。以下是一个最佳实践,可以不时手动运行或设置自动化。 +这不是一个错误,而是一个优化建议。以下是一个可以不时手动运行或自动化的最佳实践。 **解决方案:** @@ -222,19 +222,19 @@ account | accesspass_type 8J691gPwzy9FzUZQ4SmC6jJcY7By8kZXfbJwRfQ8ns31 | nyc002-dz002 | 38.122.35.137 | 2.33ms | 2.39ms | 2.37ms | true FEML4XsDPN3WfmyFAXzE2xzyYqSB9kFCRrMik8JqN6kT | nyc001-dz001 | 38.104.167.29 | 2.29ms | 2.59ms | 2.40ms | true ``` - 注意上方最近的设备是 `dz-ny7-sw01` + 注意上面延迟最低的设备是 `dz-ny7-sw01` - 我们要连接到这个设备。 + 我们希望连接到此设备。: -2. 确认您是否已经连接到目标设备 - - 运行 `doublezero user list --env testnet | grep 111.11.11.11`,将 `111.11.11.11` 替换为连接到 DoubleZero 的设备公网 IPv4 地址。您也可以使用您的验证节点 ID 或 doublezero ID。 +2. 确认您是否已连接到目标设备 + - 运行 `doublezero user list --env testnet | grep 111.11.11.11`,将 `111.11.11.11` 替换为已连接到 DoubleZero 的设备的公共 IPv4 地址。您也可以使用您的验证者 ID 或 doublezero ID。 输出 ``` account | user_type | groups | device | location | cyoa_type | client_ip | dz_ip | accesspass | tunnel_id | tunnel_net | status | owner 6QRU1ivJnKGHpom2BdzH9PiTRkJ5WhunPNLtfYcqVisW | IBRL | | dz-ny7-sw01 | New York | GREOverDIA | 111.11.11.11 | 111.11.11.11 | Prepaid: (MAX) | 514 | 111.254.1.111/31 | activated | DZfHh2vjXFqt8zfNbT1afm8PGuCm3BrQKegC5THtKFdn ``` - 在此示例中,我们已经连接到最近的设备。无需更多步骤,可以在此停止。 + 在此示例中,我们已经连接到了最近的设备。无需更多步骤,可以在此停止。 让我们考虑如果输出是这样的情况 @@ -248,7 +248,7 @@ account | accesspass_type 3. 可选:检查网络中的可用设备 - 出于教学目的,我们首先: + 为了教学目的,我们首先: - 运行 `doublezero device list` 获取完整的设备列表。我们提取了 2 个设备作为示例来解释输出。 输出: @@ -257,11 +257,11 @@ account | accesspass_type GphgLkA7JDVtkDQZCiDrwrDvaUs8r8XczEae1KkV6CGQ | ams001-dz002 | jump_ | EQX-AM4 | ams | switch | 149.11.64.57 | 38.246.201.64/27 | 69 | 128 | activated | | H647kAwTcWsGXZUK3BTr1JyTBZmbNcYyCmRFFCEnXUVp 7FfrX8YbvbzM8A1ojNynP9BjiKpK9rrmhdEdchB2myhG | dz-fr5-sw01 | glxy | EQX-FR5 | fra | switch | 89.222.118.225 | 89.222.118.228/30 | 0 | 0 | activated | | 5YbNrJHJJoiRwVEvgAWRGdFRG9gRdZ47hLCKSym8bqbp ``` - 注意上方 `ams001-dz002` 有 69 个用户,最大用户数为 128。该设备还可以添加 59 个用户。 + 注意上面 `ams001-dz002` 有 69 个用户,最大用户数为 128。该设备还可以添加 59 个用户。 然而,`dz-fr5-sw01` 有 0 个用户,最大用户数也为 0。您将无法连接到此设备。最大用户数为 0 意味着该设备不接受任何连接。 - 现在让我们回到连接最近设备的操作。 + 现在让我们回到连接最近设备的步骤。 4. 确认目标设备是否有可用连接 - 运行 `doublezero device list | grep dz-ny7-sw01`,将 `dz-ny7-sw01` 替换为您的目标设备 @@ -270,7 +270,7 @@ account | accesspass_type ``` 2hPMFJHh5BPX42ygBvuYYJfCv9q7g3rRR3ZRsUgtaqUi | dz-ny7-sw01 | glxy | EQX-NY7 | nyc | switch | 137.239.213.162 | 137.239.216.164/31 | 29 | 128 | activated | | 5YbNrJHJJoiRwVEvgAWRGdFRG9gRdZ47hLCKSym8bqbp ``` - 在这里我们可以看到 `dz-ny7-sw01` 有可用的连接空间。 + 在此我们可以看到 `dz-ny7-sw01` 有可用的连接空间。 5. 连接到最近的 DoubleZero 设备 @@ -289,7 +289,7 @@ account | accesspass_type 🔍 User Account deleted ✅ Deprovisioning Complete ``` - 现在我们检查状态以确认断开连接 + 现在我们通过以下命令检查状态以确认断开连接 - `doublezero status` 输出 @@ -298,7 +298,7 @@ account | accesspass_type Tunnel status | Last Session Update | Tunnel Name | Tunnel src | Tunnel dst | Doublezero IP | User Type disconnected | no session data | | | | | ``` - 最后我们重新连接 + 最后我们通过以下命令重新连接 - `doublezero connect ibrl` 输出 @@ -312,14 +312,44 @@ account | accesspass_type Service provisioned with status: ok ✅ User Provisioned ``` - 注意上方输出中我们 `Connected to device: dz-ny7-sw01`,这是我们在步骤 1 中初始调查的预期结果,当时我们发现 `dz-ny7-sw01` 是延迟最低的设备。 + 注意上面的输出中我们 `Connected to device: dz-ny7-sw01`,这是我们在步骤 1 中初始调查的预期结果,当时我们发现 `dz-ny7-sw01` 是延迟最低的设备。 -### 问题:`doublezero status` 部分字段返回 N/A +### 问题:错误的 DoubleZero 环境 -此问题通常与当前的守护进程和客户端与建立已连接 DZ 隧道时的守护进程和客户端不匹配有关。 +Mainnet-Beta 和 Testnet 使用不同的软件包仓库。`doublezero status` 显示客户端所在的网络(`Network` 列)。如果用户安装了错误的客户端,或者守护进程仍然指向另一个环境,请使用以下可直接复制粘贴的切换命令。 + +将 DoubleZero 客户端 CLI (`doublezero`) 和守护进程 (`doublezerod`) 配置为连接到 **DoubleZero testnet**: + +```bash +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" +``` + +将 DoubleZero 客户端 CLI (`doublezero`) 和守护进程 (`doublezerod`) 配置为连接到 **DoubleZero mainnet-beta**: + +```bash +DESIRED_DOUBLEZERO_ENV=mainnet-beta \ + && 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 mainnet-beta`(或 `testnet`)。然后 `doublezero status` 应该显示匹配的 `Network`。 + +### 问题:`doublezero status` 返回某些字段为 N/A + +此问题通常与当前守护进程和客户端与建立已连接 DZ 隧道时使用的守护进程和客户端不匹配有关。 **症状:** -- 运行 `doublezero status` 时,用户在某些字段中遇到 `N/A` +- 运行 `doublezero status` 时,用户在某些字段中看到 `N/A` @@ -335,37 +365,13 @@ account | accesspass_type up | 2025-10-20 20:06:18 UTC | doublezero0 | 149.28.38.64 | 64.86.249.22 | 149.28.38.64 | IBRL | N/A | ✅ dz-ny7-sw01 | N/A | mainnet-beta ``` - 注意我们上方的示例输出中 `Tunnel status` 为 `up`。我们的 `Network` 是 `mainnet-beta`。然而,`Current Device` 和 `Metro` 为 `N/A` + 注意上面的示例输出中,`Tunnel status` 为 `up`。我们的 `Network` 是 `mainnet-beta`。然而,`Current Device` 和 `Metro` 为 `N/A` - 这表明您的机器上有一个打开的隧道不属于您当前的环境。 - 在这种情况下,`up` 状态以及在 `mainnet-beta` 上未找到 `Current Device` 告诉我们隧道实际在 testnet 上! + 这表明您的机器上有一个不在当前环境中的开放隧道。 + 在这种情况下,`up` 状态加上在 `mainnet-beta` 上未找到 `Current Device`,告诉我们隧道实际上在 testnet 上! -2. 切换您的环境。 - - 为了纠正这种不匹配,您需要将环境切换到返回 `N/A` 的环境的另一个环境 - - ```bash - 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" - ``` +2. 使用[错误的 DoubleZero 环境](#问题错误的-doublezero-环境)中的复制粘贴命令切换环境。使用与返回 `N/A` 的 `Network` 值相反的环境。 - 要将 DoubleZero 客户端 CLI (`doublezero`) 和守护进程 (`doublezerod`) 配置为连接到 **DoubleZero mainnet-beta**: - - ```bash - DESIRED_DOUBLEZERO_ENV=mainnet-beta \ - && 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" - ``` - 3. 检查您的状态 切换环境后运行: @@ -378,6 +384,4 @@ account | accesspass_type ``` 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-21 12:32:12 UTC | doublezero0 | 149.28.38.64 | 64.86.249.22 | 149.28.38.64 | IBRL | nyc-dz001 | ✅ nyc-dz001 | New York | testnet - ``` -所有字段都已填充,说明您现在处于正确的环境中。 \ No newline at end of file + up | 2025-10-21 12:32:12 UTC | doublezero0 | 149.28.38.64 | 64.86.249.22 | 149.28.38.64 | IBRL | nyc-dz001 | ✅ nyc-dz001 | New York | test \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index 62909a9..1f5b4da 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -91,6 +91,7 @@ nav: - Connect validator (IBRL Testnet): DZ Testnet Connection.md - Publish shreds (Edge): Validator Multicast Connection.md - Subscribe to shreds (Edge): Edge Subscriber Connection.md + - Subscribe to shreds (CLI legacy): Edge Subscriber CLI.md - Permissioned / RPC: Permissioned Connection.md - Other multicast: Other Multicast Connection.md - Troubleshoot Edge: troubleshooting.md