Portaldot 黑客屋 2026 | POT Watch — 节点健康度、质押分析及链上警报

项目介绍

POT Watch 是一款针对 Portaldot 的节点健康度、质押分析和链上警报套件。该 TypeScript 监控器从 Substrate RPC 中获取区块、Era 和 Session 数据流,而零后端仪表盘则在浏览器中直接从原始链上数据计算所有数值——无需服务器、无需索引器、无需数据库、无需 API 密钥。其核心功能是警报循环:订阅信息存储在 Portaldot EVM 上的一个 Solidity 合约中,监控器自动触发这些警报,并将每次警报作为真实交易写入链上。

解决的问题

Portaldot 的运维人员运行节点后,往往是通过余额下降才发现出了问题。有三个问题没有面向运维人员的答案:我的验证者此刻是否真的健康?网络的质押集中度是否足以将我挤出活跃验证者集合?是否有人被罚没,依据是什么?

第二个问题比听起来更糟糕。我在 2026 年 11 月 3 日扫描了主网,发现**质押的 POT 总量为 42,118,870,其中 99.35%(即 4,180 万 POT)闲置在提名者账本中,没有提供任何安全保障。**实际上只有 274,170 POT 绑定在验证者上。虽然验证者集合本身是健康的(HHI 为 0.1005,最大验证者占比 10.94%,对于 10 个节点而言接近完美的均匀分布),但其背后的质押量却毫无作用。

链接

:laptop: GitHub: GitHub - iscyman/pot-watch: Node monitoring & staking analytics for Portaldot Network · GitHub

:bar_chart: 演示文稿 (Pitch Deck): https://github.com/iscyman/pot-watch/raw/main/docs/PITCH_DECK.pdf

:clapper_board: 演示视频: https://youtube.com/shorts/axDVIVpM01E

:page_facing_up: 测量证据: pot-watch/docs/SECURITY_REPORT.md at main · iscyman/pot-watch · GitHub

技术亮点

1. 警报即交易,而非消息

位于 0xeae1fb99ac651fd8a8bc23fb65dc51acb925429d 的 AlertRegistry 合约(大小 3,430 字节,区块 133,258,已最终确定)存储订阅信息——类型、目标、阈值、通道。监控器读取这些订阅,对照实时链上状态进行评估,并通过原生接口提交 recordFire,每次触发花费约 0.015 tPOT。当前有三个活跃订阅;记录了两次触发,最近一次在区块 206,608,交易哈希 0x722b270c…9ddf。警报通过 Discord 和 Telegram 投递。交易即为证明;消息只是辅助手段。

2. 无人公布过的测量数据

npx tsx src/scan.ts 生成了仓库中的两份扫描结果,格式为原始 JSON。除了 99.35% 的闲置质押外:在观察到的 209 个 Era 中,没有任何验证者进入或离开活跃集合——大约 2,500 小时内集合保持不变,而 15 个有意参与验证的节点争夺 10 个席位。罚没状态显示主网上有 11 个 SlashingSpans、13 条 SpanSlash 记录和 414 条违规报告。所有数字均可通过一条命令复现。

3. 双元数据支持:主网 v13,测试网 v14

Portaldot 在各条链上提供不同的元数据版本,因此硬编码的存储键会静默失效。遍历器会解析运行时元数据,并在运行时发现存储结构。twox-128 哈希算法结合 blake2b 是手工实现的,未使用任何库,并已对照三个已知有效的存储键进行验证——Balances.TotalIssuance、Session.Validators、Staking.Ledger。

4. 零后端,零索引器

仪表盘是一个静态页面,直接打开到节点的 WebSocket 连接。SCALE 解码、SS58 格式处理和 Solidity 事件解码均为手工编写——eth_getLogs 在此链上返回空值,因此合约事件从 System.Events 中读取,并从 revive.ContractEmitted 中解码。可部署在任何地方;无需部署任何后端服务。

5. 真实的测试网部署与双虚拟机费用壁垒

合约已上线且可验证。在部署过程中,我测量到同一合约**通过 EVM 和 MetaMask 部署花费 289 tPOT,而原生部署仅需 0.36 tPOT——相差约 800 倍。**原生部署工具已开源,以便下一个团队不会遇到同样的问题。66 个监控器测试通过;TypeScript 类型检查无误;MIT 许可证。

团队

iscyman — 独立开发

  • GitHub: @iscyman
  • 邮箱: iscnani@gmail.com
  • 项目性质:针对“节点运维与工具”赛道的单人提交项目,专注于 Portaldot 此前从未有工具解决的一个运维问题:网络中的质押是否真正发挥作用。

技术很好理解,创新基本功扎实,商业潜力可见,生态贡献可期。79分