节点。测试

可用于检查配置是否正确的测试。

常规信息

当你看起来做对了所有事情但仍然无法进入时代时,会感到非常懊恼。

最好多检查几遍。

circle-info

注意! 文本中可能有错误,因为我对服务器配置不太懂。更准确地说是“非常不懂”,但这些测试对我有帮助。

检查密钥是否正确安装

有时候因为多个不同的人配置过节点,或者你在指定 Consensus Public Key 的命令时弄错了,导致节点上的密钥和网络中的密钥不一致。

这样你就肯定进不了时代。请检查!

检查 Consensus Key

🔎 步骤 1. 在节点上查看 Consensus Public Key

circle-info

注意! 检查在 ML 节点(或 Network 节点,我自己还没完全搞清楚,因为我现在这两个节点都在同一台服务器上)所在的服务器上进行。

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

你会得到大致如下:

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

👉 复制字段 "value".+

🔎 步骤 2. 在网络中查看 Consensus Public Key

circle-info

注意! 检查在创建密钥的那台服务器上进行。也就是说,不是在 Network Node 也不在 ML Node 上。

现在查看网络认为你的密钥是什么:

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

circle-info

注意! 将加粗部分替换为你热钥地址。

你将得到:

结果你会得到这样的响应:

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

我们关心的值是 "validator_key"。

🔎 步骤 3. 比较它们。它们必须相同

它们应该一致。但我们这里——不一致。 这也不足为奇,所以我们进不了时代 ))

造成 这种不匹配的原因可能有很多。我想你们自己会弄清楚如何修复它。

如何修复: 我想你们自己会弄明白。并不难。

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

在你的节点上查看模型

注意! 如果没有任何输出,可能是你的 ML Node 在另一个端口。可能的选项有:

  • 5000

  • 8000

  • 8080

  • 9200

也就是说,只需在命令中替换这个数字。

预期响应:

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

注意! 执行该命令后你会进入 Docker 容器。要继续在服务器上使用命令行,需要通过以下命令退出容器: exit

查看节点配置

预期响应:

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

注意! 需要将 mlnode-308 替换为你的节点名称。 如果忘了,可以通过以下命令查看:

预期响应- 以下某一项:

可以列出所有容器的名字:

预期响应

GPU 状态

预期响应:

检查已声明的配置

检查节点设置是否正确:

显示你的 ML Node 使用了哪些设置。显然应在 ML Node 的服务器上执行(如果它们是分开的)。

circle-info

注意! 这些参数仅作示例,肯定已过时。你的情况会不同。

带停止的节点检查

停止节点

预期响应:

{"status":"OK"}

检查节点的状态

预期响应:

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

circle-info

如果看到其他结果——请再次执行停止节点的步骤。

运行强制节点测试

预期响应

通过日志查看测试进度

几分钟后(通常 5–15 分钟)应出现最终结果。PoC 完成后:

预期响应:

重要的是 CUDA 必须 100% 加载完成

要退出测试请按组合键 CTRL+C

启用节点

预期响应

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

检查你的节点状态:

预期响应:

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

查看你节点的 PoV 状态:

非预期响应:

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

我还不知道什么是“预期响应” ))

检查容器

启动后首先要确认你为 node-config.json 选择的那些参数在 mlnode 中生效了

查看容器日志 mlnode

如果看到模型像截图那样加载,总体上可以通过组合键退出容器, CTRL+C

查看容器日志 node

circle-info

在 Network Node 上运行。

如果节点尚未同步,我们应该会看到正在拉取区块链的“块片(chunk)”

625 - 总数量,160 - 最后加载的

通过组合键退出容器 CTRL+C

检查节点与网络的同步情况

预期响应

也就是说这里的数字应该很小。这是自上一个区块创建以来的秒数。

检查网络的最新区块

检查我们的节点所在的区块

目前还不知道怎么查 )

并比较。应该相近。

进入时代的检查清单

帮助你判断应该朝哪个方向查问题。

预期响应:

红色箭头标记的是检测字段, FAIL 几乎所有人都会有。这个参数 PASS 只有 Gonka 的主节点会有(我猜的)。

蓝色箭头标记的是可能对你出现的字段, FAIL - 如果你还没有进入过任何一个时代。

链接

结束

最后更新于