From 33ad157dd6704512119bb6d24dc633f35311f65d Mon Sep 17 00:00:00 2001 From: nacadmin Date: Fri, 27 Feb 2026 13:49:34 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20Issue=20#042=20-=20=E5=85=A8=E5=BA=93?= =?UTF-8?q?=E7=BB=9F=E4=B8=80=E6=9B=B4=E5=90=8D=20NRPC4.0=20=E2=86=92=20NA?= =?UTF-8?q?C=20Lens?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 消除与以太坊 JSON-RPC 的命名混淆 - 129 处引用全部替换为 NAC Lens - nac-nrpc4/ 目录重命名为 nac-lens/ - 更新 api-server.toml、mainnet_config.toml、systemd 服务描述 - NAC Lens API v5.0: 注册=节点=区块,MySQL驱动,空块10KB - 区块高度由节点激活时间+CBPP出块规则计算(非时间推算) 验收: grep NRPC4.0 返回 0 条 ✅ 关联: Issue #042 → 完成 --- DELIVERY_REPORT.md | 6 +- ISSUE_025_COMPLETION_REPORT.md | 4 +- ISSUE_025_MODULE_UPGRADE_ANALYSIS.md | 2 +- NAC_Development_Work_Log_20260217.md | 8 +- NAC开发总结_2026-02-18.md | 2 +- NAC系统完整清单_最终版.md | 2 +- README.md | 2 +- _archive/v1_legacy_nrpc3/README.md | 2 +- docs/ISSUE_026_PROGRESS.md | 6 +- docs/ISSUE_036_COMPLETE_SUMMARY.md | 2 +- docs/ISSUE_038_VERIFICATION_REPORT.md | 2 +- docs/MAINNET_MONITOR_CHECK_REPORT.md | 62 ++++++------- docs/VISION_Wallet_核心要点.md | 2 +- docs/assets/nac_blockview_logo.png | Bin 0 -> 6492 bytes docs/daily-logs/2026-02-22.md | 49 +++++++++++ docs/issues/ISSUE-009_nac-cli.md | 4 +- docs/issues/ISSUE-012_nac-nrpc4.md | 8 +- docs/issues/README.md | 2 +- docs/issues/工单系统部署日志.md | 4 +- docs/modules/nac-nrpc4分析报告.md | 12 +-- docs/modules/完整分析总结报告.md | 2 +- docs/modules/完整模块统计报告.md | 4 +- docs/modules/最终分析总结报告.md | 2 +- docs/modules/模块分析索引.md | 6 +- .../modules/模块真实状态核查报告.md | 2 +- docs/modules/阶段性分析总结.md | 2 +- docs/standards/port_standard_v1.0.0.md | 2 +- docs/工单管理.md | 2 +- nac-api-server/ISSUE_007_NRPC4_UPGRADE.md | 42 ++++----- nac-cli/README.md | 2 +- nac-cli/docs/TICKET_9_COMPLETION_LOG.md | 4 +- nac-explorer-api/src/index.ts | 4 +- nac-lens/Cargo.toml | 2 +- nac-lens/ISSUE_019_COMPLETION.md | 16 ++-- nac-lens/README.md | 6 +- nac-lens/src/lib.rs | 8 +- nac-lens/src/lib.rs.bak.20260222 | 57 ++++++++++++ nac-onboarding-system/TODO.md | 2 +- nac-sdk/Cargo.toml | 1 - nac-sdk/Cargo.toml.bak.20260222 | 83 ++++++++++++++++++ nac-sdk/ISSUE_036_LAYER_ADAPTERS.md | 6 +- nac-sdk/README.md | 4 +- nac-sdk/src/adapters/l1_protocol.rs | 2 +- nac-sdk/src/adapters/l2_layer.rs | 2 +- nac-sdk/src/adapters/l4_ai.rs | 2 +- nac-sdk/src/adapters/l5_application.rs | 2 +- nac-sdk/src/client/mod.rs | 2 +- 开发状态追踪_每日更新.md | 2 +- 模块真实状态核查报告.md | 2 +- 49 files changed, 321 insertions(+), 133 deletions(-) create mode 100644 docs/assets/nac_blockview_logo.png create mode 100644 docs/daily-logs/2026-02-22.md create mode 100644 nac-lens/src/lib.rs.bak.20260222 create mode 100644 nac-sdk/Cargo.toml.bak.20260222 diff --git a/DELIVERY_REPORT.md b/DELIVERY_REPORT.md index 1d7af98..622f9d2 100644 --- a/DELIVERY_REPORT.md +++ b/DELIVERY_REPORT.md @@ -40,7 +40,7 @@ | **宪法层** | 6 | nac-cee, nac-constitution-state等 | | **钱包系统** | 4 | nac-wallet-core, nac-wallet-cli等 | | **工具链** | 6 | charter-compiler, cnnl-compiler等 | -| **NAC Lens** | 1 | nac-nrpc4 | +| **NAC Lens** | 1 | nac-lens | | **VISION钱包** | 2 | nac-vision-wallet, nac-vision-cli | ### 2.2 技术栈 @@ -93,7 +93,7 @@ ### 3.2 NAC Lens协议升级 -**模块**: `nac-nrpc4/` +**模块**: `nac-lens/` **版本**: 4.0.0-alpha **实现状态**: Phase 1完成(L1-L3层) @@ -422,7 +422,7 @@ NAC_Clean_Dev/ ├── nac-bridge-ethereum/ # 以太坊桥接 ├── nac-contract-deployer/ # 合约部署器 ├── xtzh-ai/ # XTZH AI -├── nac-nrpc4/ # NAC Lens ⭐ 新增 +├── nac-lens/ # NAC Lens ⭐ 新增 ├── nac-vision-wallet/ # VISION钱包核心 ⭐ 新增 └── nac-vision-cli/ # VISION钱包CLI ⭐ 新增 ``` diff --git a/ISSUE_025_COMPLETION_REPORT.md b/ISSUE_025_COMPLETION_REPORT.md index 0aded45..37a286d 100644 --- a/ISSUE_025_COMPLETION_REPORT.md +++ b/ISSUE_025_COMPLETION_REPORT.md @@ -139,7 +139,7 @@ nac-upgrade-framework/ - nac-deploy, nac-ftan - nac-integration-tests - nac-ma-rcm, nac-monitor -- nac-nrpc, nac-nrpc4, nac-nvm +- nac-nrpc, nac-lens, nac-nvm - nac-rwa-exchange - nac-sdk, nac-serde, nac-test - nac-uca, nac-udm @@ -287,7 +287,7 @@ match module.upgrade(target, upgrade_data) { - nac-nvm - nac-cbpp - nac-csnp - - nac-nrpc4 + - nac-lens 2. ✅ 添加升级监控和日志 3. ✅ 实现升级回滚测试 diff --git a/ISSUE_025_MODULE_UPGRADE_ANALYSIS.md b/ISSUE_025_MODULE_UPGRADE_ANALYSIS.md index 21ad555..669b6c5 100644 --- a/ISSUE_025_MODULE_UPGRADE_ANALYSIS.md +++ b/ISSUE_025_MODULE_UPGRADE_ANALYSIS.md @@ -210,7 +210,7 @@ pub struct UpgradeRecord { - [ ] nac-nvm (虚拟机) - [ ] nac-cbpp (共识) - [ ] nac-csnp (网络) -- [ ] nac-nrpc4 (RPC) +- [ ] nac-lens (RPC) - [ ] nac-constitution-state (宪法状态) ### Phase 3: 集成到ACC协议模块(3天) diff --git a/NAC_Development_Work_Log_20260217.md b/NAC_Development_Work_Log_20260217.md index 449e352..2656da9 100644 --- a/NAC_Development_Work_Log_20260217.md +++ b/NAC_Development_Work_Log_20260217.md @@ -35,7 +35,7 @@ NAC公链是一套完全自主开发的RWA(Real World Assets)专用区块链 ### 2.1 核心协议层 -#### ✅ nac-nrpc4 - NAC Lens元协议 +#### ✅ nac-lens - NAC Lens元协议 **功能描述:** NRPC(NAC Remote Procedure Call)4.0是NAC公链的核心通信协议,实现了六层协议栈(L1-L6),支持高效的节点间通信、数据传输和协议升级。 @@ -56,7 +56,7 @@ NAC公链是一套完全自主开发的RWA(Real World Assets)专用区块链 **编译产物:** -- 库文件:`target/release/libnac_nrpc4.rlib` +- 库文件:`target/release/libnac_lens.rlib` - 文档:完整的API文档和使用示例 --- @@ -558,7 +558,7 @@ done ``` NAC_Clean_Dev/ -├── nac-nrpc4/ # NAC Lens元协议 +├── nac-lens/ # NAC Lens元协议 ├── nac-vision-wallet/ # VISION钱包核心库 ├── nac-vision-cli/ # VISION CLI工具 ├── nac-acc-1410/ # ACC-1410部分同质化资产协议 @@ -661,7 +661,7 @@ ACC协议族 | 模块 | 单元测试 | 集成测试 | 总计 | 通过率 | |------|---------|---------|------|-------| -| nac-nrpc4 | 10 | 0 | 10 | 100% | +| nac-lens | 10 | 0 | 10 | 100% | | nac-vision-wallet | 4 | 0 | 4 | 100% | | nac-vision-cli | 0 | 0 | 0 | N/A | | nac-acc-1410 | 12 | 1 | 13 | 100% | diff --git a/NAC开发总结_2026-02-18.md b/NAC开发总结_2026-02-18.md index 297bf99..317bbce 100644 --- a/NAC开发总结_2026-02-18.md +++ b/NAC开发总结_2026-02-18.md @@ -24,7 +24,7 @@ NAC公链系统已完成核心开发,共计**48个模块**已完成并通过 6. **nac-csnp-l0** - CSNP L0层(3个Rust文件) 7. **nac-csnp-l1** - CSNP L1层(1个Rust文件) 8. **nac-nrpc** - NAC RPC协议(2个Rust文件) -9. **nac-nrpc4** - NAC RPC 4.0(9个Rust文件) +9. **nac-lens** - NAC RPC 4.0(9个Rust文件) ### AI智能系统(2个) 10. **nac-ai-valuation** - AI资产估值系统(8个Rust文件,11个测试通过) diff --git a/NAC系统完整清单_最终版.md b/NAC系统完整清单_最终版.md index b0723c7..2c01442 100644 --- a/NAC系统完整清单_最终版.md +++ b/NAC系统完整清单_最终版.md @@ -29,7 +29,7 @@ ### 5. RPC协议 - ✅ **nac-nrpc** - NAC远程过程调用协议 -- ✅ **nac-nrpc4** - NAC Lens版本 +- ✅ **nac-lens** - NAC Lens版本 ### 6. AI系统 - ✅ **nac-ai-valuation** - AI资产估值系统(11个测试通过) diff --git a/README.md b/README.md index d724a51..a966497 100644 --- a/README.md +++ b/README.md @@ -372,7 +372,7 @@ NAC_Clean_Dev/ ├── ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ │ ├── nac-nrpc/ # NRPC 1.0 -├── nac-nrpc4/ # NAC Lens +├── nac-lens/ # NAC Lens ├── nac-api-server/ # API服务器 │ ├── ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ diff --git a/_archive/v1_legacy_nrpc3/README.md b/_archive/v1_legacy_nrpc3/README.md index 4bc416b..0799641 100644 --- a/_archive/v1_legacy_nrpc3/README.md +++ b/_archive/v1_legacy_nrpc3/README.md @@ -15,6 +15,6 @@ ## 当前最新版本 -- **协议**: `nac-lens/` (NAC Lens, 原 NRPC4.0) +- **协议**: `nac-lens/` (NAC Lens, 原 NAC Lens) - **SDK 客户端**: `nac-sdk/src/client/` (使用 nac-lens 依赖) - **版本**: nac-lens v0.1.0, nac-sdk v2.0.0 diff --git a/docs/ISSUE_026_PROGRESS.md b/docs/ISSUE_026_PROGRESS.md index 43f9305..e3e77b8 100644 --- a/docs/ISSUE_026_PROGRESS.md +++ b/docs/ISSUE_026_PROGRESS.md @@ -138,8 +138,8 @@ cd /home/ubuntu/NAC_Clean_Dev/nac-onboarding-system/src/services grep -n "adapter\." *.rs ``` -### 2. 使用NRPC4.0协议 -不使用JSON-RPC,使用NAC原生的NRPC4.0协议。 +### 2. 使用NAC Lens协议 +不使用JSON-RPC,使用NAC原生的NAC Lens协议。 ### 3. 无MANUS依赖 所有代码都在NAC_Clean_Dev开发文件夹中,无任何MANUS内联。 @@ -201,7 +201,7 @@ grep -n "adapter\." *.rs ### 已验证 - ✅ 所有服务模块都调用SDK适配器API -- ✅ 使用NRPC4.0协议 +- ✅ 使用NAC Lens协议 - ✅ 无MANUS依赖 - ✅ 完整的错误处理 - ✅ 完整的数据模型 diff --git a/docs/ISSUE_036_COMPLETE_SUMMARY.md b/docs/ISSUE_036_COMPLETE_SUMMARY.md index a025e51..d787b42 100644 --- a/docs/ISSUE_036_COMPLETE_SUMMARY.md +++ b/docs/ISSUE_036_COMPLETE_SUMMARY.md @@ -263,7 +263,7 @@ ```toml nac-nvm = { path = "../nac-nvm" } nac-cbpp = { path = "../nac-cbpp" } -nac-nrpc4 = { path = "../nac-nrpc4" } +nac-lens = { path = "../nac-lens" } hex = "0.4" ``` diff --git a/docs/ISSUE_038_VERIFICATION_REPORT.md b/docs/ISSUE_038_VERIFICATION_REPORT.md index a80911e..14321f1 100644 --- a/docs/ISSUE_038_VERIFICATION_REPORT.md +++ b/docs/ISSUE_038_VERIFICATION_REPORT.md @@ -117,7 +117,7 @@ NAC SDK的适配器部分实现状态: - 这些功能为CNNL编译器提供了完整的底层API支持 **关联Issue**: -- Issue #40: NAC SDK CSNP网络客户端与NRPC4.0协议客户端实现(紧急) +- Issue #40: NAC SDK CSNP网络客户端与NAC Lens协议客户端实现(紧急) - 该Issue引用了#38,表明SDK实现工作正在持续推进 --- diff --git a/docs/MAINNET_MONITOR_CHECK_REPORT.md b/docs/MAINNET_MONITOR_CHECK_REPORT.md index 8ff8e59..e4892fe 100644 --- a/docs/MAINNET_MONITOR_CHECK_REPORT.md +++ b/docs/MAINNET_MONITOR_CHECK_REPORT.md @@ -25,7 +25,7 @@ |--------|------|------| | 当前区块高度 | ❌ 获取失败 | 无法获取区块链高度数据 | | CBPP共识状态 | ✅ 运行中 | 宪政区块生产协议正常运行 | -| 网络协议 | NRPC4.0 | 显示使用NRPC4.0协议 | +| 网络协议 | NAC Lens | 显示使用NAC Lens协议 | | 共识机制 | CBPP | 宪政区块生产协议 | ### 2.2 系统状态消息 @@ -36,37 +36,37 @@ NAC主网正常运行中... --- -## 三、NRPC4.0部署状态分析 +## 三、NAC Lens部署状态分析 -### 3.1 监控系统中的NRPC4.0 +### 3.1 监控系统中的NAC Lens -✅ **NRPC4.0已在监控系统中显示** +✅ **NAC Lens已在监控系统中显示** 监控面板明确显示: -- 网络协议卡片:**NRPC4.0** -- 说明监控系统已配置NRPC4.0相关监控项 +- 网络协议卡片:**NAC Lens** +- 说明监控系统已配置NAC Lens相关监控项 ### 3.2 问题分析 ❌ **当前区块高度获取失败** **可能原因**: -1. **NRPC4.0 API端点未完全部署** - 监控系统配置了NRPC4.0,但实际的RPC服务未启动 -2. **API端点配置错误** - 监控系统连接的NRPC4.0端点地址不正确 -3. **NRPC4.0服务未运行** - 虽然代码已编译,但服务进程未启动 -4. **网络连接问题** - 监控系统无法访问NRPC4.0服务端口 +1. **NAC Lens API端点未完全部署** - 监控系统配置了NAC Lens,但实际的RPC服务未启动 +2. **API端点配置错误** - 监控系统连接的NAC Lens端点地址不正确 +3. **NAC Lens服务未运行** - 虽然代码已编译,但服务进程未启动 +4. **网络连接问题** - 监控系统无法访问NAC Lens服务端口 ### 3.3 代码库状态 根据之前的检查: -**NRPC4.0代码**: -- 位置:`/root/NAC_Blockchain/nac-nrpc4/` +**NAC Lens代码**: +- 位置:`/root/NAC_Blockchain/nac-lens/` - 版本:v1.0.0 - 编译状态:✅ 已成功编译(release版本) -- 编译产物:`/root/NAC_Blockchain/nac-nrpc4/target/release/libnac_nrpc4.rlib` (887KB) +- 编译产物:`/root/NAC_Blockchain/nac-lens/target/release/libnac_lens.rlib` (887KB) -**NRPC4.0架构**: +**NAC Lens架构**: - L1层:Cell Layer (细胞层) - L2层:Civilization Layer (文明层) - L3层:Aggregation Layer (聚合层) @@ -80,29 +80,29 @@ NAC主网正常运行中... ### 4.1 立即行动 -1. **检查NRPC4.0服务进程** +1. **检查NAC Lens服务进程** ```bash ps aux | grep nrpc ``` 2. **检查主网节点配置** - 查看`/root/NAC_Blockchain/mainnet_config.toml` - - 确认NRPC4.0端点配置 + - 确认NAC Lens端点配置 3. **检查监控系统配置** - 查看监控系统的API配置文件 - - 确认NRPC4.0 API端点地址 + - 确认NAC Lens API端点地址 -4. **启动NRPC4.0服务** - - 如果服务未运行,需要启动NRPC4.0服务进程 +4. **启动NAC Lens服务** + - 如果服务未运行,需要启动NAC Lens服务进程 - 确保服务监听正确的端口 ### 4.2 部署验证 需要验证的关键点: -- [ ] NRPC4.0服务进程是否运行 -- [ ] NRPC4.0 API端点是否可访问 -- [ ] 监控系统能否成功调用NRPC4.0 API +- [ ] NAC Lens服务进程是否运行 +- [ ] NAC Lens API端点是否可访问 +- [ ] 监控系统能否成功调用NAC Lens API - [ ] 区块高度数据能否正常获取 --- @@ -111,25 +111,25 @@ NAC主网正常运行中... ### 5.1 当前状态 -**NRPC4.0处于"半部署"状态**: +**NAC Lens处于"半部署"状态**: - ✅ 代码已完成并编译 -- ✅ 监控系统已配置NRPC4.0监控项 -- ❌ NRPC4.0服务可能未运行或配置不正确 +- ✅ 监控系统已配置NAC Lens监控项 +- ❌ NAC Lens服务可能未运行或配置不正确 - ❌ 监控系统无法获取区块链数据 ### 5.2 核心问题 -**NRPC4.0的库文件已编译,但可能缺少以下部分**: -1. **独立的NRPC4.0服务进程** - 需要一个运行的RPC服务器 -2. **与NAC节点的集成** - NRPC4.0需要集成到NAC主网节点程序中 +**NAC Lens的库文件已编译,但可能缺少以下部分**: +1. **独立的NAC Lens服务进程** - 需要一个运行的RPC服务器 +2. **与NAC节点的集成** - NAC Lens需要集成到NAC主网节点程序中 3. **API端点暴露** - 需要暴露HTTP/WebSocket端点供监控系统调用 ### 5.3 建议 **不应该使用以太坊的JSON-RPC方式部署**,而应该: -1. 将NRPC4.0作为库集成到NAC核心节点 -2. 通过CSNP网络层提供原生的NRPC4.0协议支持 -3. 为监控系统提供专门的NRPC4.0查询接口 +1. 将NAC Lens作为库集成到NAC核心节点 +2. 通过CSNP网络层提供原生的NAC Lens协议支持 +3. 为监控系统提供专门的NAC Lens查询接口 --- diff --git a/docs/VISION_Wallet_核心要点.md b/docs/VISION_Wallet_核心要点.md index 51a0b30..47fe76e 100644 --- a/docs/VISION_Wallet_核心要点.md +++ b/docs/VISION_Wallet_核心要点.md @@ -237,7 +237,7 @@ VISION内置宪政免疫系统客户端: | nac-cee | 宪法收据获取与验证 | | nac-udm | GNACS解析 | | nac-nrpc | RPC通信 | -| nac-nrpc4 | 跨链与多宇宙功能 | +| nac-lens | 跨链与多宇宙功能 | --- diff --git a/docs/assets/nac_blockview_logo.png b/docs/assets/nac_blockview_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..cd2c7d3f8bc7aa63f45a3346f0be9a0f6b643bbf GIT binary patch literal 6492 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