Nœud. Tests
Tests que vous pouvez effectuer pour vérifier la bonne configuration.
Informations générales
C'est très frustrant quand on a l'impression d'avoir tout fait correctement et qu'on n'arrive quand même pas à entrer dans l'époque.
Il vaut mieux tout vérifier plusieurs fois.
Attention ! Il peut y avoir des erreurs dans le texte, car je ne maîtrise pas très bien la configuration des serveurs. Plus précisément, on peut dire "je ne maîtrise vraiment pas", mais ces tests m'ont aidé.
Vérifiez la bonne installation des clés
Il arrive que plusieurs personnes ayant configuré les nœuds ou que vous ayez confondu la commande d'attribution de la Consensus Public Key fassent que vous ayez des clés différentes sur le nœud et sur le réseau.
Dans ce cas vous n'entrerez certainement pas dans l'époque. Vérifiez !
Vérification de la Consensus Key
🔎 ÉTAPE 1. Connaître la Consensus Public Key sur le nœud
Attention ! La vérification se fait sur le serveur où se trouve le ML Node (ou le Network Node, je ne me suis pas encore complètement clarifié, car pour l'instant ces deux nœuds sont sur le même serveur chez moi).
docker exec node wget -qO- "http://127.0.0.1:26657/status" | jq -r '.result.validator_info.pub_key.value'vous obtiendrez à peu près :
{
"value": "AD+NQncKPBzqw0u8KcSmlIMqogg7i4nhDfLIgIkGYiY="
}👉 Copiez le champ "value".+
🔎 ÉTAPE 2. Connaître la Consensus Public Key sur le réseau
Attention ! La vérification se fait sur le serveur où vous avez créé les clés. C’est-à-dire pas sur le Network Node et pas sur le ML Node.
Maintenant regardez ce que le réseau considère comme votre clé :
curl -s http://node2.gonka.ai:8000/chain-api/productscience/inference/inference/participant/gonka1yplcem8kfe6vm06t4sl8fskm0we2zslxxu90ta | jq
Attention ! Remplacez ce qui est en gras par l'adresse de votre clé Hot.
Vous obtiendrez :
En résultat vous recevrez une réponse comme celle-ci :
{ "participant": { "index": "gonka1yplcem8kfe6vm06t4sl8fskm0we2zslxxu90ta", "address": "gonka1yplcem8kfe6vm06t4sl8fskm0we2zslxxu90ta", "weight": -1, "join_time": "1771876365572", "join_height": "2792955", "last_inference_time": "0", "inference_url": "http://203.168.252.195:8000", "status": "ACTIVE", "coin_balance": "0", "validator_key": "7GEr4jV5GjCv+C+jKOq3Eh4bwxMVs7kafm7tcWP0EOo=", "consecutive_invalid_inferences": "0", "worker_public_key": "", "epochs_completed": 0, "current_epoch_stats": { "inference_count": "0", "missed_requests": "0", "earned_coins": "0", "rewarded_coins": "0", "burned_coins": "0", "validated_inferences": "0", "invalidated_inferences": "0", "invalidLLR": { "value": "0", "exponent": 0 }, "inactiveLLR": { "value": "0", "exponent": 0 }, "confirmationPoCRatio": null }
Nous nous intéressons à la valeur "validator_key".
🔎 ÉTAPE 3. Comparez-les. Elles doivent être identiques
Elles doivent correspondre. Mais ici elles ne correspondent pas. Il n'est pas surprenant que nous n'entrions pas dans l'époque ))
Les raisons de cette différence peuvent être diverses. Je pense que vous saurez vous-même comment corriger cela.
Comment corriger : Je pense que vous vous en sortirez. Ce n'est pas compliqué.
---------------------------------------------------------------------------
Connaître le modèle sur votre nœud
Attention ! Si rien n'apparaît, il se peut que votre ML Node écoute sur un autre port. Possibles variantes :
5000
8000
8080
9200
c’est-à-dire il suffit de remplacer ce chiffre dans la commande.
Réponse attendue :
root@mlnode-308:/app# curl http://localhost:5000/v1/models {"object":"list","data":[{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507-FP8","object":"model","created":1772106402,"owned_by":"vllm","root":"/root/models/Qwen3-235B-A22B-Instruct-2507-FP8","parent":null,"max_model_len":240000,"permission":[{"id":"modelperm-f9056e19f4b1494c9854c8df9887394b","object":"model_permission","created":1772106402,"allow_create_engine":false,"allow_sampling":true,"allow_logprobs":true,"allow_search_indices":false,"allow_view":true,"allow_fine_tuning":false,"organization":"*","group":null,"is_blocking":false}]}]}root@mlnode-308:/app#
Attention ! Après avoir exécuté cette commande vous serez dans le conteneur Docker. Pour continuer à travailler avec la ligne de commande sur le serveur, il faut sortir du conteneur avec la commande :
exit

Connaître la configuration du nœud
Réponse attendue :
/usr/bin/python3.12 -m vllm.entrypoints.openai.api_server --model Qwen/Qwen3-235B-A22B-Instruct-2507-FP8 --dtype float16 --port 5001 --host 0.0.0.0 --max-model-len 240000 --enable-auto-tool-choice --tool-call-parser hermes --tensor-parallel-size 4 --pipeline-parallel-size 2 --enable-expert-parallel --quantization fp8 --gpu-memory-utilization 0.846 --kv-cache-dtype fp8 --swap-space 4 --enforce-eager --cpu-offload-gb 4 --model /root/models/Qwen3-235B-A22B-Instruct-2507-FP8 --served-model-name Qwen/Qwen3-235B-A22B-Instruct-2507-FP8 root@ecs-99605001-024:~#
Attention ! Il faut remplacer mlnode-308 par le nom de votre nœud. Si vous l'avez oublié, vous pouvez le découvrir avec la commande :
Réponse attendue- l'un de ceux-ci :

Vous pouvez afficher les noms de tous les conteneurs :
Réponse attendue

État du GPU
Réponse attendue :

Vérifiez la configuration déclarée
Vérifions la bonne configuration du nœud :

Montre avec quelles options votre ML Node fonctionne. S'exécute apparemment sur le serveur ML Node (si vos nœuds sont séparés).
Attention ! Ces paramètres sont fournis à titre d'exemple. Ils sont certainement obsolètes. Ce sera différent chez vous.
Vérification du nœud avec arrêt
Arrêtez le nœud
Réponse attendue :
{"status":"OK"}
Vérifiez l'état (le statut) du nœud
Réponse attendue :
{"state":"STOPPED"}root@submodel-sxA100-19-14:~/gonka/deploy/join#
Si vous voyez autre chose - répétez l'étape d'arrêt du nœud.
Lancez un test forcé du nœud
Réponse attendue

Suivez la progression du test dans les logs
Après quelques minutes (généralement 5–15) le résultat final devrait apparaître. Après la fin du PoC :
Réponse attendue :

Il est important que CUDA se charge à 100 %


Pour quitter le test appuyez sur la combinaison CTRL+C
Activation du nœud
Réponse attendue
{"message":"node enabled successfully","node_id":"node1"} root@submodel-sxA100-19-14:~/gonka/deploy/join#
Vérifiez l'état de votre nœud :
Réponse attendue :
root@ecs-99605001-024:# curl http://localhost:8080/api/v1/state {"state":"INFERENCE"}root@ecs-99605001-024:#
Connaître le statut PoV de votre nœud :
Réponse inattendue :
"detail":"Cannot run POW because MLNode is currently in ServiceState.INFERENCE mode. Please stop ServiceState.INFERENCE first."}root@ecs-99605001-024:~#
Quel est le "réponse attendue" je ne sais pas encore ))
Vérification des conteneurs
Après le démarrage, il faut d'abord s'assurer que les paramètres que vous avez choisis pour votre node-config.json ont bien été appliqués dans le mlnode
Lançons les logs du conteneur mlnode

Si l'on voit que le modèle s'est chargé comme sur la capture, en général on peut sortir du conteneur avec la combinaison CTRL+C
Lançons les logs du conteneur node
S'exécute sur le Network Node.
Si le nœud n'était pas synchronisé, on devrait voir le téléchargement des "chunks" de la blockchain

625 - nombre total, 160 - dernier chargé
quitter le conteneur avec la combinaison CTRL+C
Vérifiez la synchronisation du nœud avec le réseau
Réponse attendue

C’est-à-dire ici le chiffre doit être petit. C’est le temps en secondes depuis la création du dernier bloc.
Vérifiez le bloc actuel du réseau
Vérifier le bloc sur lequel se trouve notre nœud
Je ne sais pas encore comment )
Et comparez. Ils doivent être proches.
Checklist pour entrer dans l'époque
Aide à comprendre dans quelle direction chercher le problème.
Réponse attendue :

Le champ de vérification marqué par la flèche rouge est celui qui FAIL absolument chez tout le monde. Ce paramètre PASS seulement pour les master-nodes de Gonka (je pense).
Le champ indiqué par la flèche bleue est celui qui peut être FAIL - si vous n'êtes encore jamais entré dans aucune époque.
Liens
Article sur Telegram : Gonka - Lancement. Ou des mineurs en quête de rentabilité. PART_1
Article sur Telegram : Gonka - Lancement. Ou des mineurs en quête de rentabilité. PART_2
FIN
Mis à jour