NAC_Blockchain/docs/nac-docs-center/docs/architecture/ARCH-001-multi-server-plan.md

168 lines
9.1 KiB
Markdown
Raw 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.

# NAC 公链多服务器体系架构规划
**文档编号**ARCH-001
**版本**v1.0
**日期**2026-02-28
**状态**:规划草案
---
## 一、架构原则
NAC 公链的多服务器体系建立在以下核心原则之上:
**参与即是共识**。区块链的本质不是集中式服务,而是每个服务节点独立运行、独立验证、独立扩展。当前将所有服务集中在一台或两台服务器上,违背了这一原则,也带来了单点故障风险。未来的目标是将每一类服务部署到独立的服务器,通过 NRPC 4.0 协议通信,形成真正的分布式服务网络。
**服务边界清晰**。每台服务器只负责一类核心职责,不承担其他服务的运行压力。这既符合微服务架构的最佳实践,也符合区块链节点独立性的要求。
**数据主权分离**。用户数据注册系统、链上数据CBPP 节点、合规数据AI 知识引擎)、交易数据(交易所)各自存储在独立的数据库服务器上,互不干扰,互不依赖。
---
## 二、目标多服务器体系(七层架构)
### 第一层链核心层Chain Core
这是整个体系的基础,负责区块生产、共识和链上状态维护。
| 服务器角色 | 部署服务 | 域名 | 当前状态 |
|-----------|---------|------|---------|
| **主链节点服务器** | CBPP 节点nac-cbpp-node、NRPC 4.0 网关 | `rpc.newassetchain.io` | 已部署(备份服务器) |
| **备用链节点服务器** | CBPP 节点副本(热备) | — | 待规划 |
**独立理由**CBPP 节点是整个公链的心脏,必须独立运行,不能与任何应用层服务共享服务器资源。链节点的 CPU 和 I/O 需求与应用服务完全不同,混合部署会导致出块延迟。
---
### 第二层身份层Identity Layer
负责用户注册、KYC 验证、DID 身份管理。
| 服务器角色 | 部署服务 | 域名 | 当前状态 |
|-----------|---------|------|---------|
| **注册系统服务器** | nac-id-systemLaravel/PHP、MySQLnac_id 数据库) | `id.newassetchain.io` | 已部署(备份服务器),**待迁出** |
| **认证网关** | nac-auth-service端口 8081 | — | 已部署(备份服务器),随注册系统迁移 |
**独立理由**注册系统存储用户的最敏感数据身份证、KYC 文件),必须部署在专用服务器上,配备独立的数据库备份策略和更严格的访问控制。注册系统与链节点的耦合应通过 NRPC 4.0 协议完成,而非直接数据库访问。
---
### 第三层AI 智能层AI Intelligence Layer
负责合规分析、资产估值、审批辅助、知识库管理。
| 服务器角色 | 部署服务 | 域名 | 当前状态 |
|-----------|---------|------|---------|
| **AI 知识引擎服务器** | nac-adminNode.js、MongoDBnac_knowledge_engine | `admin.newassetchain.io` | 已部署(备份服务器),**待迁出** |
| **AI 估值服务器**(未来) | nac-ai-valuationRust、xtzh-aiTransformer 模型) | `aivl.newassetchain.io` | 待规划 |
**独立理由**AI 推理(尤其是 Transformer 模型)对 GPU/CPU 的需求远高于普通 Web 服务。将 AI 服务独立到专用服务器可以在不影响其他服务的情况下进行模型升级和算力扩展。MongoDB 知识库35 条规则,持续增长)也需要独立的存储和索引优化。
---
### 第四层资产上链层Asset Onboarding Layer
负责 RWA 资产的上链流程、合规验证、DNA 生成。
| 服务器角色 | 部署服务 | 域名 | 当前状态 |
|-----------|---------|------|---------|
| **资产上链服务器** | nac-onboardingPython FastAPI、CIB 服务 | `onboarding.newassetchain.io`、`cib.newassetchain.io` | 已部署(备份服务器),待迁出 |
**独立理由**:资产上链是 NAC 的核心业务流程涉及文件上传、AI 合规验证、链上交易提交等多个步骤,处理时间长、资源消耗大,必须独立运行以保证服务质量。
---
### 第五层数据服务层Data Service Layer
负责链上数据的聚合、查询、可视化。
| 服务器角色 | 部署服务 | 域名 | 当前状态 |
|-----------|---------|------|---------|
| **区块浏览器服务器** | nac-quantum-browserPHP WorkerMan + WebSocket | `explorer.newassetchain.io` | 已部署(备份服务器),待迁出 |
| **数据服务器** | NAC LensNode.js、NAC API ServerRust | `lens.newassetchain.io`、`api.newassetchain.io` | 已部署(备份服务器),待迁出 |
**独立理由**:区块浏览器和数据服务是面向公众的高流量服务,需要独立的 CDN 加速和负载均衡,不能与链节点共享带宽。
---
### 第六层金融服务层Financial Service Layer
负责 XTZH 稳定币、钱包、交易所。
| 服务器角色 | 部署服务 | 域名 | 当前状态 |
|-----------|---------|------|---------|
| **钱包与稳定币服务器** | nac-wallet-serviceRust、xtzh-pricing-servicePython | `wallet.newassetchain.io` | 已部署(备份服务器),待迁出 |
| **交易所服务器** | nac-exchange-serviceRust | `exchange.newassetchain.io`、`exchange-admin.newassetchain.io` | 已部署(备份服务器),待迁出 |
**独立理由**:金融服务涉及资金安全,必须部署在符合金融级安全标准的服务器上,配备独立的 HSM硬件安全模块和审计日志系统。
---
### 第七层展示与门户层Portal Layer
负责公开网站、ICO 门户、营销页面。
| 服务器角色 | 部署服务 | 域名 | 当前状态 |
|-----------|---------|------|---------|
| **主站服务器** | www.newassetchain.ioNode.js | `www.newassetchain.io` | 已部署(主服务器 103.43.188.244 |
| **ICO 门户服务器** | NILA Token 购买页面(静态 HTML | `ico.newassetchain.io`、`trc-ico.newassetchain.io` | 已部署(主服务器) |
---
## 三、服务间通信规范
所有服务器之间的通信必须通过 **NRPC 4.0 协议**,禁止直接数据库访问跨服务器调用。
| 通信场景 | 发起方 | 接收方 | 协议 | 说明 |
|---------|--------|--------|------|------|
| 注册用户上链 | 注册系统服务器 | 主链节点服务器 | NRPC 4.0 `nac_sendTx` | 工单 REG-001 |
| AI 合规查询链上状态 | AI 知识引擎服务器 | 主链节点服务器 | NRPC 4.0 `nac_getBlock` | — |
| 资产上链提交交易 | 资产上链服务器 | 主链节点服务器 | NRPC 4.0 `nac_sendTx` | — |
| 区块浏览器读取数据 | 数据服务层 | 主链节点服务器 | NRPC 4.0 `nac_getBlock` | — |
| 钱包发送交易 | 金融服务层 | 主链节点服务器 | NRPC 4.0 `nac_sendTx` | — |
---
## 四、迁移优先级与路线图
迁移应按照对链核心的影响程度从低到高进行,优先迁移独立性最强的服务。
| 优先级 | 服务 | 迁移难度 | 预计工期 | 前置条件 |
|--------|------|---------|---------|---------|
| **P1立即** | AI 知识引擎nac-admin | 低 | 1 天 | 新服务器 + MongoDB + MySQL |
| **P2近期** | 注册系统nac-id-system | 中 | 2 天 | 新服务器 + MySQL + 工单 REG-001 完成 |
| **P3中期** | 区块浏览器 + 数据服务 | 中 | 3 天 | 新服务器 + NRPC 4.0 网关稳定 |
| **P4中期** | 资产上链服务 | 高 | 5 天 | 新服务器 + AI 知识引擎迁移完成 |
| **P5远期** | 金融服务(钱包/交易所) | 高 | 7 天 | 金融级安全审计完成 |
| **P6远期** | 链节点独立扩展(多节点) | 极高 | 持续 | CSNP 网络协议完善 |
---
## 五、数据库独立化策略
当前所有数据库MySQL + MongoDB集中在备份服务器上这是单点故障的最大风险。未来应建立独立的数据服务器
| 数据库 | 当前位置 | 目标位置 | 数据内容 |
|--------|---------|---------|---------|
| `nac_id`MySQL | 备份服务器 | 独立数据服务器 | 用户账号、KYC 信息 |
| `nac_knowledge_engine`MongoDB | 备份服务器 | AI 知识引擎服务器本地 | 35 条合规规则、对话历史 |
| `gnacs_db`MongoDB | 备份服务器 | 独立数据服务器 | GNACS 编码、资产分类 |
| `nac_onboarding`MongoDB | 备份服务器 | 资产上链服务器本地 | 上链申请、合规记录 |
| 链上状态RocksDB | 备份服务器 | 主链节点服务器本地 | 区块数据、账户状态 |
---
## 六、与区块链去中心化原则的对应关系
| 区块链原则 | NAC 多服务器体系的实现方式 |
|-----------|------------------------|
| **节点独立性** | 每台服务器独立运行,单台服务器故障不影响整体网络 |
| **数据主权** | 每类数据存储在对应职责的服务器上,无跨服务器直接访问 |
| **协议通信** | 所有服务间通信通过 NRPC 4.0 协议,而非内网直连 |
| **参与即是共识** | 注册系统通过 `nac_sendTx` 将每次注册写入链上,每台服务器的运行本身就是对网络的贡献 |
| **可扩展性** | 每层服务可独立横向扩展,无需整体重构 |
---
*文档归档路径:`nac-docs-center/docs/architecture/ARCH-001-multi-server-plan.md`*