Aller au contenu

Connexion d'un validateur au Testnet en mode IBRL

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 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 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 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 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, relatifs à la Solution.

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

Note

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, ce qui est détaillé sur cette page.

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.

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 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 d'enregistrer 1 validateur principal et jusqu'à 3 machines de secours/basculement en même temps.

Prérequis

  • 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

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.

À 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. Confirmer le réseau client

Veuillez suivre les instructions de configuration 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. 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 :

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.

Après environ 30 secondes, vous verrez les dispositifs DoubleZero disponibles :

doublezero latency
Exemple de sortie (testnet)
doublezero latency
 pubkey                                       | code         | ip             | min      | max      | avg      | reachable
 6E1fuqbDBG5ejhYEGKHNkWG5mSTczjy4R77XCKEdUtpb | nyc-dz001    | 64.86.249.22   | 2.44ms   | 2.63ms   | 2.50ms   | true
 CT8mP6RUoRcAB67HjKV9am7SBTCpxaJEwfQrSjVLdZfD | lax-dz001    | 207.45.216.134 | 71.97ms  | 72.01ms  | 71.99ms  | true
 Cpt3doj17dCF6bEhvc7VeAuZbXLD88a1EboTyE8uj6ZL | lon-dz001    | 195.219.120.66 | 71.94ms  | 72.08ms  | 72.00ms  | true
 4Wr7PQr5kyqCNJo3RKa8675K7ZtQ6fBUeorcexgp49Zp | ams-dz001    | 195.219.138.50 | 76.55ms  | 76.65ms  | 76.61ms  | true
 29ghthsKeH2ZCUmN2sUvhJtpEXn2ZxqAuq4sZFBFZmEs | fra-dz001    | 195.219.220.58 | 83.01ms  | 83.10ms  | 83.05ms  | true
 hWffRFpLrsZoF5r9qJS6AL2D9TEmSvPUBEbDrLc111Y  | fra-dz-001-x | 195.12.227.250 | 84.87ms  | 84.91ms  | 84.89ms  | true
 8jyamHfu3rumSEJt9YhtYw3J4a7aKeiztdqux17irGSj | prg-dz-001-x | 195.12.228.250 | 95.27ms  | 95.30ms  | 95.29ms  | true
 5tqXoiQtZmuL6CjhgAC6vA49JRUsgB9Gsqh4fNjEhftU | tyo-dz001    | 180.87.154.78  | 180.96ms | 181.08ms | 181.02ms | true
 D3ZjDiLzvrGi5NJGzmM7b3YZg6e2DrUcBCQznJr3KfC8 | sin-dz001    | 180.87.102.98  | 220.87ms | 221.14ms | 220.97ms | true
La sortie mainnet sera identique dans sa structure, mais avec beaucoup plus de dispositifs disponibles.

2. Ouvrir le port 44880

Les utilisateurs doivent ouvrir le port 44880 pour utiliser certaines fonctionnalités de routage.

Pour ouvrir le port 44880, vous pouvez mettre à jour les tables IP comme suit :

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

notez les options -i doublezero0, -o doublezero0 qui limitent cette règle à l'interface DoubleZero uniquement

Ou UFW comme suit :

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

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

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 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 se trouver dans ~/.config/doublezero/id.json sur toutes les machines du cluster.

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 calendrier des leaders.

Sortie attendue :

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

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 secours sur lesquelles vous prévoyez d'exécuter votre validateur principal, exécutez la commande suivante :

doublezero-solana passport find-validator -ut

Sortie attendue :

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.
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 secours sur lesquelles vous prévoyez d'utiliser le compte de vote et l'identité de votre validateur principal.

Préparer la connexion

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 \
  --doublezero-address YourDoubleZeroAddress11111111111111111111111111111 \
  --primary-validator-id ValidatorIdentity111111111111111111111111111 \
  --backup-validator-ids ValidatorIdentity222222222222222222222222222,ValidatorIdentity33333333333333333333333333,ValidatorIdentity444444444444444444444444444>

Exemple de sortie :

DoubleZero Passport - Prepare Validator Access Request
Connected to Solana: testnet

Primary validator 🖥️  💎:
  ID: ValidatorIdentity111111111111111111111111111
  Gossip: ✅ OK 11.11.11.111)
  Leader scheduler: ✅ OK (Stake: 1,050,000.00 SOL)

Backup validator 🖥️ 🛡️:
  ID: ValidatorIdentity222222222222222222222222222
  Gossip: ✅ OK (22.22.22.222)
  Leader scheduler:  ✅ OK (not a leader scheduled validator)


Backup validator 🖥️ 🛡️:
  ID: ValidatorIdentity333333333333333333333333333
  Gossip: ✅ OK (33.33.33.333)
  Leader scheduler:  ✅ OK (not a leader scheduled validator)


  Backup validator 🖥️ 🛡️:
  ID: ValidatorIdentity444444444444444444444444444
  Gossip: ✅ OK (33.33.33.333)
  Leader scheduler:  ✅ OK (not a leader scheduled validator)

  To request access, sign the following message with your validator's identity key:

  solana sign-offchain-message \
     service_key=YourDoubleZeroAddress11111111111111111111111111111,backup_ids=ValidatorIdentity222222222222222222222222222,ValidatorIdentity33333333333333333333333333,ValidatorIdentity444444444444444444444444444 \
     -k <identity-keypair-file.json>
Notez la sortie à la fin de cette commande. C'est la structure pour l'étape suivante.

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 exécuterons cette commande sur la machine du validateur principal.

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

Sortie :

``` Signature111111rrNykT