-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
-
-
-
-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)"
+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 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