[CBPP核心] 出块算法修正:从定时器驱动改为交易驱动出块 #49
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
问题描述
当前 nac-cbpp-node 节点程序使用定时器每 3 秒强制产生一个区块,无论是否有真实用户交易。这违反了 CBPP 宪法核心原则:
交易扩展区块大小 — 区块大小和内容应由真实交易量决定,而非定时器
当前错误行为
正确行为(修正目标)
场景 A:有真实交易
场景 B:无真实交易
技术范围
需要修改 nac-cbpp-node 的核心出块逻辑(Go/Rust 层面):
影响范围
关联工单
优先级
高 — 在钱包上线、更多节点加入之前必须修正,否则垃圾数据将成倍增长
备注
此工单由工单 #047/#048 完成时发现并记录,属于 CBPP 核心协议层修正,需要核心开发团队介入。
CBPP v2 算法修复完成(2026-02-22)
问题根源
旧版算法:节点启动后 latest_block=0,但节点编号=1,出现"节点=1,区块=0"的矛盾。
修复方案
CBPP 宪法原则四:节点产生的同时,同步生成区块
区块编号规则:
验证结果
节点=1,区块=1,不变式满足 ✓
✅ 已完成(部分):NAC Lens API v5.0 已修正区块数据逻辑。
CBPP 出块原则(已实现):
nac-cbpp-node 心跳块:
文件路径: /opt/nac/nac-explorer-api/src/index.ts(NAC Lens API v5.0)