Installer et enregistrer un nœud AeroNyx

AeroNyx14 min de lecture

Installez le nœud AeroNyx open source sur un serveur Linux avec la commande quickstart du dépôt, enregistrez-le avec un code Nodeboard à usage unique et vérifiez son admission dans le réseau. Couvre aussi les rôles de relais, l'adhésion sans autorisation, le déploiement TEE et les installations assistées par IA.

Ce guide installe le logiciel de nœud AeroNyx open source sur un serveur Linux, l'enregistre auprès de votre compte d'opérateur Nodeboard au moyen d'un code à usage unique, puis vérifie que le réseau l'a admis. La méthode prise en charge est le script du dépôt deploy/node/aeronyx-node.sh quickstart, qui est la même commande que celle générée pour vous par Nodeboard.

Avant d'exploiter un nœud, lisez la Politique des opérateurs de nœuds.

Avant de commencer

ÉlémentExigence
Système d'exploitationLinux avec systemd. Le programme d'installation installe les paquets avec apt-get (Debian, Ubuntu), dnf ou yum.
AccèsUn shell root. Chaque commande de ce guide suppose d'avoir exécuté sudo -i au préalable.
Périphérique TUN/dev/net/tun doit exister pour le plan de données VPN.
MémoireLe programme d'installation émet un avertissement en dessous de 2 Go et poursuit. Le nœud est compilé à partir des sources sur le serveur ; 4 Go ou plus constituent donc un choix plus sûr.
DisqueLe programme d'installation émet un avertissement en dessous de 4 Go d'espace libre et poursuit. Prévoyez 20 Go ou plus pour le cache de compilation et les sauvegardes de versions conservées par le processus de mise à niveau.
Ports entrants51820/UDP (écouteur VPN) et 8422/TCP (découverte signée et API entre pairs). Ouvrez-les dans le pare-feu de votre fournisseur cloud ; le programme d'installation ne modifie pas les règles de pare-feu entrantes.
Local uniquement127.0.0.1:8421 est l'API locale de santé et de gestion. Ne l'exposez pas.

Pourquoi root : le dépôt se trouve dans /root/open/AeroNyx, le programme d'installation écrit /etc/aeronyx et /var/lib/aeronyx avec le mode 700, et server.toml avec le mode 600. Les commandes qui lisent ces chemins échouent pour les autres utilisateurs, et Git refuse de lire une copie de travail appartenant à root depuis un autre compte (« dubious ownership »).

Ce que fait quickstart

quickstart exécute quatre étapes et s'arrête avant toute modification de l'hôte jusqu'à ce que vous donniez votre accord :

  1. Affiche le plan d'installation résolu (lecture seule).
  2. Attend que vous tapiez INSTALL. Appuyer sur Entrée arrête le processus sans risque.
  3. Exécute les vérifications préalables, installe les paquets et la chaîne d'outils Rust épinglée par le dépôt, écrit /etc/aeronyx/server.toml s'il n'existe pas (un fichier existant est conservé), configure le transfert IP et le NAT, compile le nœud, installe l'unité systemd aeronyx-server, enregistre l'identité du nœud avec votre code, démarre le service et attend jusqu'à 120 secondes l'admission dans le réseau.
  4. Affiche status et un résumé health --json.

L'attente d'admission vérifie que l'état de santé local indique ok, que le backend a renvoyé une politique récente (l'aller-retour du signal de présence fonctionne), que la découverte dispose d'au moins un pair signé validé et a terminé un cycle de diffusion (gossip) et, pour les nœuds publics, que le nœud figure dans le pool public.

Étape 1 : créer un code d'enregistrement

  1. Connectez-vous à Nodeboard et ouvrez Registration Codes.
  2. Sélectionnez Generate Code.
  3. Gardez le code confidentiel. Il expire au bout de 15 minutes, ne fonctionne qu'une seule fois et lie le nouveau nœud au compte qui l'a créé.

Nodeboard affiche ensuite une commande quickstart, des commandes d'aperçu étape par étape et d'installation, une commande d'état et une invite pour assistant IA. Sa colonne Install Progress suit le programme d'installation au fil des états not_started → planning → running → completed | failed.

Le backend vérifie le code lorsque le programme d'installation atteint son étape d'enregistrement, qui intervient après la compilation. Une première compilation sur un petit serveur peut durer plus de 15 minutes. Si l'enregistrement échoue alors parce que le code a expiré, générez un nouveau code et relancez quickstart ; la deuxième exécution réutilise le cache de compilation.

Étape 2 : obtenir ou mettre à jour le dépôt

aeronyx-node.sh n'est pas une commande système. Il est livré dans le dépôt. Voici la ligne de clonage ou de mise à jour qu'utilise Nodeboard :

bash
mkdir -p /root/open && cd /root/open
if [ -d AeroNyx/.git ]; then cd AeroNyx && git fetch origin main && git checkout main && git pull --ff-only origin main; else git clone https://github.com/AeroNyxNetwork/AeroNyx.git AeroNyx && cd AeroNyx; fi
git rev-parse HEAD

Passez toujours --repo-dir "$PWD" (ou --repo-dir /root/open/AeroNyx) au script. Sans cette option, install, upgrade, health et status utilisent par défaut /opt/aeronyx/AeroNyx.

Étape 3 : exécuter quickstart

Exécutez quickstart sans code sur la ligne de commande. Lorsqu'il s'exécute dans un terminal, il demande le code au moyen d'une invite masquée : le code n'est donc ni affiché, ni enregistré dans l'historique du shell, ni transmis comme argument de processus :

bash
cd /root/open/AeroNyx
./deploy/node/aeronyx-node.sh quickstart --repo-dir "$PWD" --branch main --quick \
  --node-name "Example1" --region DE --public-vpn
  • --node-name est le nom affiché dans Nodeboard et dans la liste des nœuds VPN.
  • --region est un code de pays ISO 3166-1 alpha-2.
  • --public-vpn publie le nœud dans le pool VPN public. Omettez-le pour garder le nœud privé.

À l'invite Nodeboard registration code:, collez le code et appuyez sur Entrée. Examinez le plan, puis tapez INSTALL.

À propos de la commande générée par Nodeboard

La commande quickstart de Nodeboard place le code directement dans la ligne, par exemple AERONYX_REGISTRATION_CODE='<code>' ./deploy/node/aeronyx-node.sh quickstart --repo-dir "$PWD" --branch main --quick. Cela fonctionne, mais le code est enregistré dans l'historique de votre shell. Si vous l'utilisez :

  • Vérifiez echo "$HISTCONTROL". S'il contient ignorespace ou ignoreboth, commencez la commande par une espace et Bash ne l'enregistre pas.
  • Sinon, supprimez l'entrée ensuite avec history -d <number>.

Le code est à usage unique et expire au bout de 15 minutes, ce qui limite l'exposition, mais ne le collez pas dans des tickets, des captures d'écran ou des discussions.

Installation non interactive

Pour l'automatisation, prévisualisez d'abord, puis transmettez le code sur l'entrée standard. read -rs le garde hors de l'écran et de l'historique :

bash
cd /root/open/AeroNyx
./deploy/node/aeronyx-node.sh plan --repo-dir "$PWD" --branch main
read -rs AERONYX_CODE
printf '%s\n' "$AERONYX_CODE" | ./deploy/node/aeronyx-node.sh install \
  --repo-dir "$PWD" --branch main --quick --registration-code-stdin \
  --node-name "Example1" --region DE --public-vpn
unset AERONYX_CODE

install --quick ne demande pas INSTALL. Ne l'utilisez qu'après avoir examiné le plan.

Étape 4 : vérifier le nœud

bash
cd /root/open/AeroNyx
systemctl is-active aeronyx-server
./deploy/node/aeronyx-node.sh status --repo-dir "$PWD"
./deploy/node/aeronyx-node.sh health --repo-dir "$PWD" --json

Un nouveau nœud en bonne santé présente les éléments suivants :

  • aeronyx-server est active, et health indique fail=0
  • le programme d'installation a affiché [OK] Node admission accepted avec health=ok, management=fresh et discovery=ready (et public_pool=online pour un nœud public)
  • status affiche operator_status=ok et une étape suivante
  • la dernière ligne JSON de health --json contient "success":true ; les avertissements apparaissent sous checks

Dans Nodeboard, le code indique completed, et le nœud apparaît sous Nodes avec son nom, sa région, sa visibilité et un signal de présence récent. La page de détail du nœud affiche une Capacity Decision valant ready, watch, blocked ou waiting.

Pour les vérifications courantes, les journaux, les mises à niveau et le retour arrière, consultez Exploiter et vérifier un nœud AeroNyx.

Facultatif : rejoindre le relais chiffré

Un nœud VPN et un nœud de relais chiffré sont des choix distincts. La participation au relais comporte trois éléments : une API entre pairs publique joignable, le rôle aveugle de stockage et retransmission ChatRelay et le rôle OnionMiddle sans sortie. Les deux rôles sont désactivés dans la configuration par défaut.

  1. Assurez-vous que 8422/TCP est joignable depuis Internet.

  2. Modifiez /etc/aeronyx/server.toml (par exemple nano /etc/aeronyx/server.toml) et définissez ces clés dans la section [discovery], en utilisant votre adresse publique :

    toml
    public_endpoint = "http://203.0.113.10:8422"
    public_discovery = true
    region = "DE"
    
  3. Validez le fichier :

    bash
    cd /root/open/AeroNyx
    ./target/release/aeronyx-server validate -c /etc/aeronyx/server.toml
    
  4. Activez ChatRelay sans redémarrer. L'outil d'assistance sauvegarde la configuration, vous demande de taper ENABLE CHATRELAY, valide la configuration et restaure la sauvegarde si la validation échoue :

    bash
    ./deploy/node/aeronyx-node.sh chat-relay --repo-dir "$PWD" --enable-chat-relay
    
  5. Activez OnionMiddle et redémarrez en une seule étape protégée. L'outil vous demande de taper ENABLE ONIONMIDDLE et refuse de redémarrer si le nœud a des sessions actives ou ne peut pas indiquer de nombre de sessions :

    bash
    ./deploy/node/aeronyx-node.sh onion-middle --repo-dir "$PWD" --enable-onion-middle --restart
    

    S'il refuse, activez le Maintenance Mode du nœud dans Settings de Nodeboard, attendez que le nombre de sessions actives tombe à zéro, puis relancez la commande. N'ajoutez pas --yes : cette option ignore la confirmation et la protection contre les sessions actives.

  6. Vérifiez que le relais est prêt :

    bash
    ./deploy/node/aeronyx-node.sh relay-probe --repo-dir "$PWD" --two-hop --json
    

Activer un rôle ne revient pas à être utilisé pour des routes. Un nœud ne devient candidat aux routes qu'après que ses pairs le considèrent comme joignable et qu'il existe des preuves de chemin récentes. Consultez Découverte des nœuds et relais chiffré.

Rejoindre sans Nodeboard

join installe le nœud et soumet son descripteur signé à un nœud d'amorçage pour une admission de Stage-A, sans code d'enregistrement ni compte Nodeboard :

bash
cd /root/open/AeroNyx
./deploy/node/aeronyx-node.sh join --repo-dir "$PWD" \
  --seed http://SEED_PUBLIC_IP:8422 \
  --public-endpoint http://YOUR_PUBLIC_IP:8422 --json
  • --seed accepte de 1 à 8 nœuds d'amorçage publics ; la requête est envoyée au premier. --public-endpoint est l'API entre pairs joignable de votre nœud. Les deux doivent être des URL http ou https comportant une adresse IP publique, et non un nom d'hôte.
  • La commande s'exécute en tant que root sous Linux avec systemd et nécessite Python 3.11 ou ultérieur, ou python3 avec le paquet tomli.
  • Elle définit six valeurs de [discovery] (enabled, advertise_self, public_discovery, gossip_enabled, public_endpoint, seed_endpoints) et laisse le reste du fichier intact.
  • Si le service est déjà en cours d'exécution avec des paramètres différents, elle s'arrête sans rien modifier.
  • --commit <40-hex SHA> épingle le commit source exact. --dry-run affiche le résultat prévu sans rien modifier. --check-only vérifie un nœud déjà rejoint sans rien envoyer.

Un résultat réussi est "admission_stage":"stage_a_candidate" avec "route_authority":false et "route_ready":false. L'admission de Stage-A signifie que le nœud d'amorçage a accepté votre descripteur. Elle ne rend pas le nœud routable, ne l'inscrit ni dans Nodeboard ni dans le pool VPN, et ne le rend pas éligible à une rémunération. La réponse du nœud d'amorçage transite en HTTP simple, sauf si celui-ci utilise HTTPS ; ce n'est donc pas un reçu cryptographique.

Déploiement TEE avec Docker

Le dépôt contient également un déploiement en conteneur pour les machines virtuelles confidentielles qui exécutent dstack (Phala Cloud ou Intel TDX auto-hébergé) : deploy/node/Dockerfile, deploy/node/compose.tee.yaml, deploy/node/server.tee.toml et deploy/node/tee-entrypoint.sh.

Ce rôle n'est pas un nœud VPN :

  • vpn.enabled = false : pas de périphérique TUN, pas de proxy DNS, pas de MemChain. Le conteneur s'exécute avec toutes les capacités Linux retirées et no-new-privileges.
  • Il exécute le relais en oignon (advertise_onion_middle = true), ChatRelay et la boîte aux lettres anonyme, et n'expose que 8422.
  • L'identité du nœud provient du service de gestion des clés de dstack ([server_key] source = "dstack"). Il n'y a aucun fichier de clé.
  • Amorces épinglées. server.tee.toml épingle quatre nœuds amorces avec discovery.pinned_seeds. Un nœud sans instantané d'opérateur n'a pas d'autre ancre de confiance, et chaque amorce épinglée n'est jointe que par TLS lié à l'identité. Conservez ou remplacez les amorces épinglées ; voir Découverte des nœuds et relais chiffré multisaut.

Pour déployer :

  1. Choisissez une image de version dans ghcr.io/aeronyxnetwork/aeronyx-node. La CI construit des images linux/amd64 à partir des tags node-v* et y joint une attestation de provenance de compilation. Trouvez le condensé (digest), par exemple avec docker buildx imagetools inspect ghcr.io/aeronyxnetwork/aeronyx-node:<tag>.
  2. Dans compose.tee.yaml, remplacez IMAGE_DIGEST par ce condensé. Épinglez toujours par condensé, et non par tag ; dans une VM dstack, le fichier compose fait partie du déploiement mesuré.
  3. Définissez AERONYX_PUBLIC_ENDPOINT sur l'origine https:// que la passerelle dstack attribue au port 8422. Le point d'entrée refuse tout autre schéma.
  4. Définissez éventuellement AERONYX_REGION (valeur par défaut tee).
  5. Pour le premier démarrage uniquement, fournissez AERONYX_REGISTRATION_CODE sous forme de secret chiffré. Le point d'entrée le transmet par tube à aeronyx-server register --code-stdin. Une fois que node_info.json existe dans le volume /var/lib/aeronyx, le code n'est plus nécessaire.

Le conteneur n'inclut pas aeronyx-node.sh. Surveillez un nœud TEE dans Nodeboard et au moyen de son API de découverte publique.

Installer avec un assistant de programmation IA

Des assistants en terminal tels que Claude Code, Codex, OpenClaw ou Hermes peuvent exécuter cette procédure. Nodeboard propose une AI assistant prompt prête à l'emploi à côté de chaque code. Ces règles s'appliquent quel que soit l'assistant utilisé.

L'opérateur humain :

  • fournit le serveur et approuve chaque modification de l'hôte
  • tape lui-même INSTALL après avoir lu le plan
  • garde le code d'enregistrement confidentiel. L'invite IA de Nodeboard contient le code ; la coller revient donc à partager le code avec le fournisseur de l'assistant. Pour l'éviter, laissez l'assistant mettre à jour le dépôt et exécuter plan, qui ne nécessite pas de code, puis exécutez vous-même quickstart et tapez le code à l'invite masquée. Rendez ensuite la main à l'assistant pour la vérification.

L'assistant doit :

  • utiliser uniquement deploy/node/aeronyx-node.sh provenant de github.com/AeroNyxNetwork/AeroNyx, et passer --repo-dir
  • utiliser uniquement les options documentées par le script (./deploy/node/aeronyx-node.sh help). Les options inconnues échouent ; par exemple, --api-base arrête le programme d'installation avec Unknown option.
  • afficher ou résumer le plan avant toute modification de l'hôte et attendre l'approbation
  • exécuter status après l'installation ou la mise à niveau et rapporter operator_status, operator_title, operator_detail et operator_next_step, puis health --json lorsque davantage de détails sont nécessaires
  • signaler les avertissements comme des avertissements, et ne pas déclarer la réussite sur la seule base d'un processus en cours d'exécution
  • privilégier upgrade --no-restart, sauf si vous approuvez un redémarrage pendant une fenêtre de maintenance
  • ne jamais utiliser --force ni --yes, et ne jamais redémarrer un nœud ayant des sessions actives, sans votre approbation explicite
  • ne jamais afficher de codes d'enregistrement, de clés privées, de secrets d'API, d'adresses IP publiques de clients, de destinations, de contenus DNS, de charges utiles de paquets ni de texte de discussion en clair

Terminé signifie :

  • le dépôt est sur main et le commit est indiqué
  • quickstart ou install s'est terminé avec Node admission accepted
  • status indique operator_status=ok, ou chaque avertissement est expliqué
  • health --json indique "success":true
  • Nodeboard affiche le nœud avec un signal de présence récent et une Capacity Decision
  • Alerts / Events → Incident Closure ne comporte aucun élément open non examiné pour le nœud
  • vous connaissez la page de détail du nœud dans Nodeboard

Ce que transmet un nœud enregistré

Les diagnostics locaux (status, health, relay-probe) n'affichent que des valeurs agrégées : état du service, capacité, compteurs de paquets, disponibilité de la découverte et résultats des preuves.

Un nœud VPN enregistré transmet également chaque session VPN au backend AeroNyx : identifiant de session, clé du client (client_wallet), adresse IP virtuelle du tunnel, nombre d'octets, horodatages et qualité de la liaison. Il ne transmet pas les adresses IP publiques des clients, les destinations, les contenus DNS ni les charges utiles des paquets. Les opérateurs peuvent consulter ces enregistrements de sessions pour leurs propres nœuds dans Nodeboard ; consultez le Guide de la console d'opérateur Nodeboard. Comme tout serveur VPN, le nœud lui-même traite le trafic des clients en clair à la sortie ; les opérateurs doivent donc respecter la Politique des opérateurs de nœuds.

Pages associées

<!-- faq:start -->

Questions fréquentes

D'où vient aeronyx-node.sh ?

Il s'agit d'un fichier du dépôt du nœud AeroNyx situé à deploy/node/aeronyx-node.sh, et non d'une commande système. Clonez ou mettez à jour https://github.com/AeroNyxNetwork/AeroNyx dans /root/open/AeroNyx et exécutez-le depuis cet emplacement avec --repo-dir "$PWD".

Comment empêcher le code d'enregistrement d'apparaître dans l'historique de mon shell ?

Exécutez quickstart sans le code et tapez-le à l'invite masquée Nodeboard registration code:. Pour les scripts, lisez-le avec read -rs et transmettez-le par tube à install --quick --registration-code-stdin.

Pourquoi le script cherche-t-il dans /opt/aeronyx/AeroNyx ?

C'est la valeur par défaut intégrée au script pour --repo-dir, alors que Nodeboard clone dans /root/open/AeroNyx. Passez --repo-dir à chaque commande afin qu'install, health, status et upgrade utilisent tous la copie de travail à partir de laquelle le service s'exécute.

Que se passe-t-il si mon code expire pendant l'installation ?

L'étape d'enregistrement échoue et le programme d'installation s'arrête avant de démarrer le service. Le code est vérifié après la compilation : générez donc un nouveau code et relancez quickstart ; la deuxième exécution réutilise le cache de compilation.

Ai-je besoin de Nodeboard pour exploiter un nœud ?

Non, join installe un nœud et le soumet à une admission de Stage-A sans code d'enregistrement. Un nœud rejoint de cette façon n'est pas routable, n'est inscrit ni dans Nodeboard ni dans le pool VPN, et n'est pas éligible à une rémunération.

Puis-je exploiter un nœud dans une VM confidentielle ?

Oui, le dépôt inclut un déploiement Docker pour les VM confidentielles dstack qui exécute le relais en oignon, ChatRelay et la boîte aux lettres anonyme. Il ne fournit pas de service VPN et tire son identité du service de gestion des clés de dstack.

<!-- faq:end -->