NAC_Blockchain/logs/HEARTBEAT_BLOCK_FIX_2026022...

67 lines
2.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 心跳块展示修复日志
## 工单编号
Issue #52(心跳块展示问题)
## 修复时间
2026-02-28
## 问题描述
explorer.newassetchain.io 区块浏览器显示所有区块交易数均为 0
用户误以为所有区块都是空块,实际上是 CBPP 协议的心跳块。
## 根本原因分析
### 1. 数据层nac-explorer-api
- **旧版本**:使用 MySQL 注册数据伪造区块数据,未对接 CBPP 节点
- **新版本 v6.0.0**100% 对接 CBPP 节点9545端口使用 NAC 原生查询协议nac_* 方法)
### 2. 展示层nac-quantum-browser PHP
- **旧版本**无心跳块标注txCount=0 的块无任何区分
- **新版本**:心跳块显示黄色 badge 心跳块,鼠标悬停显示 CBPP 宪法原则四说明
## 修复内容
### nac-explorer-api v6.0.0/opt/nac-explorer-api/src/index.ts
- 所有区块数据从 CBPP 节点 RPC 9545 读取dataSource: CBPP-Node-9545
- 新增字段isHeartbeat, blockType, blockTypeLabel, blockTypeNote, epoch, confirmations
- 心跳块判断逻辑txCount=0 且 CBPP 节点确认为心跳块
- 协议标识protocol: NAC Lens非以太坊 JSON-RPC
### nac-quantum-browser PHP 层
**Index.php processBlock()**
- 新增字段isHeartbeat, blockType, blockTypeLabel, blockTypeNote, blockTypeBadge, confirmations, epoch, dataSource
**blocks.html区块列表页**
- 新增类型列:心跳块显示
- 新增确认数列
- 心跳块行背景微黄rgba(255,193,7,0.05)
- 心跳块交易数列显示—而非 0
**index.html首页**
- PHP volist 区块行心跳块显示黄色心跳badge
- JS WebSocket prependBlock实时推送的新块也正确标注心跳
**block.html区块详情页**
- 区块号旁显示类型 badge
- 心跳块显示 CBPP 宪法原则四说明文字
## 技术说明
心跳块是 CBPP 协议的正当行为(宪法原则四),不是 Bug
- 无交易时每 60 秒产生一个心跳块
- 证明网络存活,维持 CBPP 共识状态
- 心跳块 txCount=0blockType=heartbeat
## 验证结果
- API 健康检查blockProductionMode: transaction-driven+heartbeat
- 区块列表页:心跳块正确显示黄色 badge
- 首页实时推送:心跳块正确标注
- 区块详情页:显示心跳块说明
## 相关文件
- /opt/nac-explorer-api/src/index.tsv6.0.0
- /opt/nac-quantum-browser/app/controller/Index.php
- /opt/nac-quantum-browser/view/index/blocks.html
- /opt/nac-quantum-browser/view/index/index.html
- /opt/nac-quantum-browser/view/index/block.html