Node. Testen

Tests die je kunt uitvoeren om te controleren of de configuratie correct is.

Algemene informatie

Het is erg vervelend wanneer het lijkt alsof je alles goed hebt gedaan, en je toch niet in de epoch kunt komen.

Het is beter alles meerdere keren te controleren.

circle-info

Let op! In de tekst kunnen fouten staan, omdat ik niet heel goed thuis ben in serverconfiguratie. Beter gezegd: ik ben er "zeer slecht" in, maar deze tests hebben me geholpen.

Controleer of de sleutels correct zijn geïnstalleerd

Het komt voor dat, doordat meerdere mensen de nodes hebben ingesteld of je per ongeluk de opdracht voor het toewijzen van de Consensus Public Key verwisseld hebt, je verschillende sleutels op de Node en in het netwerk hebt.

Dan kom je zeker niet in de epoch. Controleer het!

Controle Consensus Key

🔎 STAP 1. Vind de Consensus Public Key op de node

circle-info

Let op! De controle gebeurt op de server waar de ML Node zich bevindt (of de Network Node, ik weet het zelf nog niet precies, omdat bij mij beide nodes voorlopig op één server staan).

docker exec node wget -qO- "http://127.0.0.1:26657/status" | jq -r '.result.validator_info.pub_key.value'

je krijgt ongeveer:

{
  "value": "AD+NQncKPBzqw0u8KcSmlIMqogg7i4nhDfLIgIkGYiY="
}

👉 Kopieer het veld "value".+

🔎 STAP 2. Vind de Consensus Public Key in het netwerk

circle-info

Let op! De controle gebeurt op die server waar je de sleutels hebt aangemaakt. Dus niet op de Network Node en niet op de ML Node.

Nu kijken we wat het netwerk als jouw sleutel beschouwt:

curl -s http://node2.gonka.ai:8000/chain-api/productscience/inference/inference/participant/gonka1yplcem8kfe6vm06t4sl8fskm0we2zslxxu90ta | jq

circle-info

Let op! Vervang hetgeen vetgedrukt is door het adres van je Hot Key.

Je krijgt:

Als resultaat ontvang je zo'n antwoord:

{ "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 }

We zijn geïnteresseerd in de waarde "validator_key".

🔎 STAP 3. Vergelijk ze. Ze moeten gelijk zijn

Ze moeten overeenkomen. Bij ons - komen ze niet overeen. Het is niet verwonderlijk dat we niet in de epoch terechtkomen ))

Redenen voor deze mismatch kunnen verschillend zijn. Ik denk dat je zelf uitvindt hoe dit te verhelpen.

Hoe te repareren: Ik denk dat je er zelf uitkomt. Het is niet moeilijk.

---------------------------------------------------------------------------

Vind het model op jouw node

Let op! Als er niets wordt weergegeven, dan staat je ML Node mogelijk op een andere poort. Mogelijke opties:

  • 5000

  • 8000

  • 8080

  • 9200

d.w.z. vervang dit cijfer gewoon in de code.

Verwacht antwoord:

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#

circle-info

Let op! Na het uitvoeren van deze opdracht kom je in de Dockercontainer. Om verder in de commandoregel op de server te werken, moet je de container verlaten met de opdracht: exit

Ontdek de configuratie van de node

Verwacht antwoord:

/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:~#

Let op! Je moet in plaats van mlnode-308 de naam van jouw node invullen. Als je het vergeten bent, kun je het opvragen met de opdracht:

Verwacht antwoord- een van de volgende:

Je kunt alle containernamen weergeven:

Verwacht antwoord

GPU-status

Verwacht antwoord:

Controleer de opgegeven configuratie

We controleren of de node correct is ingesteld:

Toont met welke instellingen jouw ML Node draait. Wordt waarschijnlijk uitgevoerd op de ML Node-server (als ze apart zijn).

circle-info

Let op! Deze parameters zijn ter voorbeeld. Ze zijn zeker verouderd. Bij jou zal het anders zijn.

Controle van de node met stoppen

Stop de node

Verwacht antwoord:

{"status":"OK"}

Controleer de status van de node

Verwacht antwoord:

{"state":"STOPPED"}root@submodel-sxA100-19-14:~/gonka/deploy/join#

circle-info

Als je iets anders ziet - voer de stap om de node te stoppen nogmaals uit.

Start een gedwongen test van de node

Verwacht antwoord

Bekijk de voortgang van de test via de logs

Na een paar minuten (meestal 5–15) zou het definitieve resultaat moeten verschijnen. Na voltooiing van de PoC:

Verwacht antwoord:

Het is belangrijk dat CUDA voor 100% geladen is

Om de test te verlaten, druk op de toetscombinatie CTRL+C

Node inschakelen

Verwacht antwoord

{"message":"node enabled successfully","node_id":"node1"} root@submodel-sxA100-19-14:~/gonka/deploy/join#

Controleer de status van jouw node:

Verwacht antwoord:

root@ecs-99605001-024:# curl http://localhost:8080/api/v1/state {"state":"INFERENCE"}root@ecs-99605001-024:#

Ontdek de PoV-status van jouw node:

Niet verwacht antwoord:

"detail":"Cannot run POW because MLNode is currently in ServiceState.INFERENCE mode. Please stop ServiceState.INFERENCE first."}root@ecs-99605001-024:~#

Welk "verwacht antwoord" is weet ik nog niet ))

Controleren van containers

Na het opstarten moet je allereerst controleren of de parameters die je voor je node-config.json hebt gekozen in de mlnode werken

Start de containerlogs mlnode

Als we zien dat het model geladen is zoals op de screenshot, kunnen we over het algemeen de container verlaten met de toetscombinatie CTRL+C

Start de containerlogs node

circle-info

Draait op de Network Node.

Als de node niet gesynchroniseerd was, zouden we het binnenhalen van blockchain "chunks" moeten zien

625 - totaal aantal, 160 - laatst geladen

verlaat de container met de toetscombinatie CTRL+C

Controleer de synchronisatie van de node met het netwerk

Verwacht antwoord

Dus hier moet het getal klein zijn. Dit is de tijd in seconden sinds de creatie van het laatste blok.

Controleer het actuele blok van het netwerk

Controleer het blok waarop onze node zit

Dat weet ik nog niet hoe )

En vergelijk. Ze moeten dicht bij elkaar liggen.

Checklist om in de epoch te komen

Helpt begrijpen in welke richting je naar het probleem moet zoeken.

Verwacht antwoord:

Het met de rode pijl aangegeven veld is de controle die FAIL absoluut bij iedereen voorkomt. Deze parameter PASS alleen bij de Gonka master-nodes (denk ik).

Het met de blauwe pijl aangegeven veld kan bij jou FAIL - als je nog nooit in een epoch bent gekomen.

EINDE

Laatst bijgewerkt