返回博客

2026年10月28日

常见问题:节点在线但数据为空怎么查

这是最高频的问题。按这篇文档的三层排查法,绝大多数情况能自己定位。

"节点显示在线,但名称、余额、算力全是空的"——这是收到最多的一类问题。这篇文档给一套按层排查的方法。

先说结论

数据分两路采集,两路相互独立:

  • 基础设施路:容器状态、区块高度、端口、整机资源。
  • 账号数据路:Pi 用户名、余额、算力、奖励、闪电状态。

基础设施路只要客户端在跑就能上报,所以"节点在线"证明的是这一路通了。

账号数据路依赖 Pi Desktop,条件更苛刻。所以"在线但数据空"通常意味着:基础设施路正常,账号数据路断了。

关键认识:不要因为"节点在线"就认为采集全正常。这两路是分开的。

第一层:运行时是否起来了

账号数据靠一个独立的采集脚本(node 运行时 + 采集逻辑)。先确认它在跑。

Linux:

pgrep -af monitor_core.js

有输出说明脚本在跑。没输出,继续查为什么起不来:

ldd /opt/pi-admin-agentlite/scripts/node | grep "not found"

如果输出里有 not found,说明缺系统库。Debian/Ubuntu 上装:

apt-get install -y libatomic1 libstdc++6 libgcc-s1

Windows:

打开任务管理器,看进程列表里有没有 node.exe。没有的话,看安装目录下 logs/ 里的日志。

这一层的典型现象:主进程运行正常、服务状态是 running、节点显示在线,但采集脚本是死的。没有任何报错指向根因——这是最容易卡住的一层。

第二层:CDP 端口是否可用

采集脚本通过 Pi Desktop 的本地调试端口读取页面内的数据。先确认这个端口通。

curl -s /json

正常应该返回一段 JSON,包含页面列表。

什么都不返回或连接被拒绝:Pi Desktop 没有开启调试端口,或者没在运行。

返回了 JSON 但列表是空的:Pi Desktop 在跑但页面没加载完,等几十秒再试。

返回里有页面但没有目标数据:继续看第三层。

第三层:数据在哪

Pi Desktop 有两代版本,数据的存放位置不同。这决定了采集脚本要去找哪个位置。

用下面的命令区分:

curl -s /json | grep -o '"type":"[^"]*"' | sort | uniq -c

如果有 `webview` 类型的条目:这是旧版。账号令牌存在这个 webview 的本地存储里。

如果只有 `page` 类型、没有 `webview`:这是新版。令牌存在主页面的本地存储里,键名不同。

采集脚本应该同时支持两种。如果脚本版本较旧只支持第一种,在新版 Pi Desktop 上就会取不到数据——表现为"其他都正常,只有账号数据是空的"。

如果三层都正常

到这里还没找到原因,检查这几项:

Pi Desktop 是否已登录。 打开 Pi Desktop 看一眼,如果停在登录页,数据自然是空的。

账号是否处于挖矿状态。 如果 Pi Desktop 显示 "Turn the Node On" 且节点未启动,算力和奖励会是零。这是真实值,不是故障。

令牌是否有效。 有些情况下页面里的令牌会过期。在 Pi Desktop 里退出重新登录一次。

怎么确认修好了

修完后不用等太久。采集间隔默认 5 分钟,但首次启动会立即采集一次。等待一两分钟后刷新后台:

  • 节点名称应该变成 Pi 账号用户名(不再是容器名或随机串)
  • 余额、算力、奖励有数值
  • 闪电状态显示正确

如果只是名称变了但数值还是空,说明令牌取到了但 API 请求失败,检查节点机器的外网连通性(这些数据需要访问 Pi 的官方接口)。

排查顺序总结

  1. 采集脚本在不在跑(pgrep / 任务管理器)
  2. 脚本依赖齐不齐(ldd)
  3. 调试端口通不通(curl 8888)
  4. Pi Desktop 是几代(看 type 字段)
  5. Pi Desktop 登录了没、在挖矿没

绝大多数问题在 1 到 3 层就能定位。4 层是版本适配问题,5 层是使用状态问题。

—— Pi Admin X 团队