NAC_Blockchain/logs/HEARTBEAT_BLOCK_FIX_2026022...

2.5 KiB
Raw Permalink Blame History

心跳块展示修复日志

工单编号

Issue #52心跳块展示问题

修复时间

2026-02-28

问题描述

explorer.newassetchain.io 区块浏览器显示所有区块交易数均为 0 用户误以为所有区块都是空块,实际上是 CBPP 协议的心跳块。

根本原因分析

1. 数据层nac-explorer-api

  • 旧版本:使用 MySQL 注册数据伪造区块数据,未对接 CBPP 节点
  • 新版本 v6.0.0100% 对接 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