
概述
ADAMANT Node v0.10.2 改进了同步恢复机制,为派生状态引入已验证检查点,扩展了 REST 与 Socket.IO 功能,修复了多个 API 边界情况,优化了数据库查询,并更新了依赖项。本次发布保留了现有协议行为,未引入共识分叉。
完整更新日志可在 GitHub 上查看。
同步恢复
去中心化网络依赖于独立运营者在各种条件下运行节点。如果节点软件需要持续干预或专家级恢复操作,参与门槛将提高,网络在实践中也会变得不够去中心化。
此前,同步流水线中的回调中断或数据库错误可能导致节点误认为仍在同步,即使其区块高度已停止增长。节点将持续卡住,直到运营者发现并重启。
v0.10.2 新增了基于进度的同步看门狗,能够区分仍在应用区块的慢速节点与真正停滞的同步运行。如果在配置的时间窗口内没有区块高度进展,节点将安全中止该次运行,排空所有进行中的状态变更,并允许同步重新开始。本次发布还修复了数据库拒绝路径中可能导致区块处理回调静默未完成的问题。
这不是共识变更。它不决定哪些区块有效;它帮助节点在周围执行流水线停滞时恢复正常运行。
派生状态的已验证检查点
ADAMANT 节点维护派生的 mem_* 表,用于余额、代表、轮次及相关状态。区块链保持为权威来源,但在成熟链上中断关闭后重建所有派生状态可能耗时很长。
v0.10.2 为这些派生状态引入了轮转持久化检查点。每个检查点绑定到已知区块和网络,携带规范摘要,并在使用前经过验证。当节点启动时发现内存镜像不一致,它可以恢复最新的已验证检查点,并仅重放其后的区块。
安全模型是保守的。检查点仅在其元数据、摘要、链引用、网络和状态不变量全部验证通过后才被接受。未确认状态将被重建而非从检查点中信任。如果任何验证或部分重放步骤失败,节点将回退到现有的完整确定性重建。规范区块和确定性重放仍然是真实来源,因此检查点是更快的恢复路径,而非协议状态。
REST API 改进
ADAMANT 是通信产品的去中心化信任层,而不仅仅是区块链数据库。v0.10.2 新增了一致的 top-accounts 端点,支持确定性排序、分页、代表过滤和仅计数请求,消除了浏览器和分析工具中针对特定节点的变通方案。
本次发布还暴露了节点的活跃共识代号、有效激活计划、完整奖励里程碑计划以及每个代表的终身锻造量。监控系统和浏览器现在可以直接从节点读取有效计划,而无需在每个客户端中重复配置。
多个现有代表 API 更加准确。单代表响应再次报告真实排名和生产力上下文。代表投票者查询在使用地址列表过滤时不再可能返回无关账户。下一锻造者预测现在在轮次边界使用正确的下一区块高度。
区块 API 同时获得了正确性和性能修复:现在正确处理 numberOfTransactions=0,新的复合数据库索引防止了在使用默认高度排序查询未知生成器时的昂贵扫描。
Socket.IO 实时事件
需要及时更新的应用现在可以选择订阅两个新的客户端 Socket.IO 事件系列:紧凑的 newBlock 通知,以及针对已确认余额、未确认余额或两者的 balances/change 通知。
节点维护专用的订阅索引,并在区块应用和回滚时批量处理受影响的账户读取,因此不会扫描每个已连接的客户端或在无人订阅变更数据时执行不必要的账户查询。
这些事件是尽力而为且非持久化的。应用应在重连后恢复订阅,并继续通过 REST 对关键状态进行对账。实时事件减少了轮询,但不能替代验证。
依赖基线
本次发布在现有主版本范围内更新了依赖项,移除了一个未使用的直接 npm 运行时依赖及其庞大的捆绑子树,并为一个传递性工具链依赖应用了窄范围兼容性覆盖。已验证的 npm 审计基线从四个中度和一个高危发现降至零中度、高危或严重发现。
作为此次维护的一部分,未更改任何加密协议、签名、助记词、对等握手或交易验证行为。
升级说明
升级到 v0.10.2 不是强制性的,不影响网络兼容性。本次发布未更改区块或交易序列化、签名、代表排序、奖励、费用、激活高度、时隙时间或确定性重放。现有兼容节点可以继续参与。cryptofoundry 建议希望获得更好同步恢复、中断关闭后更快恢复、安全维护、查询性能提升和新 API 功能的运营者进行更新。
ADAMANT Node 继续要求 Node.js 22.13.0 或更高版本。升级后的首次启动将应用新的数据库迁移。运营者应遵循常规备份流程,优雅停止节点,等待 Cleaned up successfully,并为检查点表和新索引的创建预留足够的时间和磁盘空间。启动后,验证节点状态、同步进度、实时区块处理以及已连接服务使用的任何 REST 或 Socket.IO 功能。
更多资源可在 ADAMANT Node 文档、ADAMANT API 架构 和 技术发布讨论 中获取。