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

**URL:** <https://portaldot.discourse.group/t/topic/233>\
**Category:** Hackathon\
**Created:** [2026 年11 月 9 日 09:17 UTC](https://portaldot.discourse.group/t/topic/233 "2026-11-09T09:17:57Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

作者： ![Iscy](https://avatars.discourse-cdn.com/v4/letter/i/bbce88/32.png) [@Iscy](https://portaldot.discourse.group/u/Iscy)\
发布日期： [2026 年11 月 9 日 09:17 UTC](https://portaldot.discourse.group/t/topic/233/1 "2026-11-09T09:17:57Z")

</div>

**项目介绍**

**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 个节点而言接近完美的均匀分布），但其背后的质押量却毫无作用。

**链接**

💻 GitHub: [GitHub - iscyman/pot-watch: Node monitoring & staking analytics for Portaldot Network · GitHub](https://github.com/iscyman/pot-watch)

📊 演示文稿 (Pitch Deck): [https://github.com/iscyman/pot-watch/raw/main/docs/PITCH\_DECK.pdf](https://github.com/iscyman/pot-watch/raw/main/docs/PITCH_DECK.pdf)

🎬 演示视频: [https://youtube.com/shorts/axDVIVpM01E](https://youtube.com/shorts/axDVIVpM01E)

📄 测量证据: [pot-watch/docs/SECURITY\_REPORT.md at main · iscyman/pot-watch · GitHub](https://github.com/iscyman/pot-watch/blob/main/docs/SECURITY_REPORT.md)

**技术亮点**

**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](mailto:iscnani@gmail.com)_
- 项目性质：针对“节点运维与工具”赛道的单人提交项目，专注于 Portaldot 此前从未有工具解决的一个运维问题：网络中的质押是否真正发挥作用。

---

<div class="post-metadata">

作者： ![ympangbill](https://avatars.discourse-cdn.com/v4/letter/y/779978/32.png) [@ympangbill](https://portaldot.discourse.group/u/ympangbill)\
发布日期： [2026 年11 月 9 日 13:28 UTC](https://portaldot.discourse.group/t/topic/233/2 "2026-11-09T13:28:54Z")

</div>

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

---

<div class="post-metadata">

作者： ![Jungle](https://avatars.discourse-cdn.com/v4/letter/j/df788c/32.png) [@Jungle](https://portaldot.discourse.group/u/Jungle)\
发布日期： [2026 年11 月 10 日 09:02 UTC](https://portaldot.discourse.group/t/topic/233/3 "2026-11-10T09:02:30Z")

</div>

**POT Watch (74)**

POT Watch is a node operations tool project with relatively high completeness and good data support. It implements on-chain alerts and mainnet data scanning, and reveals the issue of idle staking. The materials are also relatively complete, and it proactively documents deployment cost differences.
