NAC_Blockchain/docs/standards/NAC_Port_Standard.md

211 lines
6.4 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 (New Asset Chain) 专属端口标准
**版本**: 1.0.0
**日期**: 2026-02-20
**状态**: 正式标准
---
## 一、设计原则
### 1.1 去以太坊化原则
-**禁止使用以太坊端口**8545, 8546, 30303等
-**使用NAC专属端口段**9500-9599核心服务、39000-39999网络协议
-**端口命名规则**基于NAC技术栈而非以太坊习惯
### 1.2 分层架构映射
- **L0层网络层**39000-39099
- **L1层协议层**9500-9549
- **L2层应用层**9550-9599
- **管理服务**9090-9099
---
## 二、NAC标准端口列表
### 2.1 L0层 - 网络层CSNP协议
| 端口 | 服务名称 | 协议 | 说明 | 状态 |
|------|---------|------|------|------|
| **39303** | CSNP主节点 | TCP/UDP | Constitutional Structured Network Protocol | 🟢 规划 |
| **39304** | CSNP发现服务 | UDP | 节点发现协议 | 🟢 规划 |
| **39305** | CSNP同步服务 | TCP | 区块同步服务 | 🟢 规划 |
### 2.2 L1层 - 协议层
#### 2.2.1 CBPP共识协议
| 端口 | 服务名称 | 协议 | 说明 | 状态 |
|------|---------|------|------|------|
| **9545** | CBPP节点RPC | HTTP | Constitutional Block Production Protocol | 🟢 规划 |
| **9546** | CBPP WebSocket | WebSocket | CBPP实时通信 | 🟢 规划 |
#### 2.2.2 NVM虚拟机
| 端口 | 服务名称 | 协议 | 说明 | 状态 |
|------|---------|------|------|------|
| **9549** | NVM RPC | HTTP | NAC Virtual Machine RPC接口 | 🟢 规划 |
#### 2.2.3 NAC Lens协议
| 端口 | 服务名称 | 协议 | 说明 | 状态 |
|------|---------|------|------|------|
| **9547** | NAC Lens HTTP | HTTP | NAC RPC Protocol 4.0 | 🟢 规划 |
| **9548** | NAC Lens WebSocket | WebSocket | NAC Lens 实时通信 | 🟢 规划 |
### 2.3 L2层 - 应用层
| 端口 | 服务名称 | 协议 | 说明 | 状态 |
|------|---------|------|------|------|
| **9550** | NAC API Gateway | HTTP/HTTPS | 统一API网关对外主入口 | ✅ 运行中 |
| **9554** | CNNL编译服务 | HTTP | Constitutional Neural Network Language | 🟢 规划 |
| **9555** | Charter编译服务 | HTTP | Charter智能合约编译器 | 🟢 规划 |
| **9556** | ACC-20协议服务 | HTTP | Asset Compliance Code 20 | 🟢 规划 |
### 2.4 管理和监控服务
| 端口 | 服务名称 | 协议 | 说明 | 状态 |
|------|---------|------|------|------|
| **9090** | Prometheus | HTTP | 监控指标采集 | ✅ 运行中 |
| **9091** | Prometheus Metrics | HTTP | NAC节点指标暴露端口 | 🟢 规划 |
| **3000** | 量子浏览器 | HTTP | NAC Quantum Explorer | ✅ 运行中 |
| **3333** | Gitea | HTTP | Git仓库管理 | ✅ 运行中 |
| **8081** | 认证服务 | HTTP | NAC Auth Service | ✅ 运行中 |
### 2.5 Web服务Nginx代理
| 端口 | 服务名称 | 协议 | 说明 | 状态 |
|------|---------|------|------|------|
| **80** | HTTP | HTTP | Web入口重定向到HTTPS | ✅ 运行中 |
| **443** | HTTPS | HTTPS | 安全Web入口 | ✅ 运行中 |
| **888** | 宝塔面板 | HTTPS | 服务器管理面板 | ✅ 运行中 |
---
## 三、以太坊端口清理清单
### 3.1 需要废弃的以太坊端口
| 以太坊端口 | 原用途 | NAC替代端口 | 清理状态 |
|-----------|--------|------------|---------|
| **8545** | Geth HTTP RPC | 9547 (NAC Lens) | ⚠️ 待清理 |
| **8546** | Geth WebSocket | 9548 (NAC Lens WS) | ⚠️ 待清理 |
| **30303** | P2P网络 | 39303 (CSNP) | ⚠️ 待清理 |
| **8080** | 通用API | 9550 (NAC API) | ✅ 已替换 |
### 3.2 清理操作
```bash
# 1. 检查是否有进程占用以太坊端口
netstat -tlnp | grep -E "8545|8546|30303"
# 2. 停止相关服务
systemctl stop ethereum-node 2>/dev/null
# 3. 禁用自启动
systemctl disable ethereum-node 2>/dev/null
# 4. 删除以太坊容器
docker ps -a | grep -E "ethereum|geth" | awk '{print $1}' | xargs docker rm -f
# 5. 清理防火墙规则
ufw delete allow 8545/tcp
ufw delete allow 8546/tcp
ufw delete allow 30303/tcp
ufw delete allow 30303/udp
```
---
## 四、端口分配规则
### 4.1 端口段划分
| 端口段 | 用途 | 示例 |
|--------|------|------|
| **9500-9519** | L1层核心协议 | CBPP(9545), NRPC(9547-9548), NVM(9549) |
| **9520-9549** | L1层扩展服务 | 预留给未来协议 |
| **9550-9569** | L2层应用服务 | API Gateway(9550), CNNL(9554), Charter(9555) |
| **9570-9599** | L2层扩展服务 | 预留给未来应用 |
| **39000-39099** | L0层网络服务 | CSNP(39303-39305) |
| **39100-39199** | L0层扩展服务 | 预留给未来网络协议 |
### 4.2 命名规范
- **服务命名**`nac-<layer>-<service>`
- 示例:`nac-l0-csnp`, `nac-l1-cbpp`, `nac-l2-api`
- **配置文件**`/opt/nac/config/<service>.toml`
- **日志文件**`/opt/nac/logs/<service>.log`
- **systemd服务**`/etc/systemd/system/nac-<service>.service`
---
## 五、域名映射
| 域名 | 后端端口 | 服务 | 说明 |
|------|---------|------|------|
| **api.newassetchain.io** | 9550 | NAC API Gateway | 主API入口 |
| **mainnet-monitor.newassetchain.io** | 80/443 | 监控系统 | 主网监控面板 |
| **explorer.newassetchain.io** | 3000 | 量子浏览器 | 区块链浏览器 |
| **git.newassetchain.io** | 3333 | Gitea | 代码仓库 |
---
## 六、安全配置
### 6.1 防火墙规则
```bash
# 允许Web服务
ufw allow 80/tcp
ufw allow 443/tcp
# 允许NAC API对外
ufw allow 9550/tcp
# 允许CSNP网络对外
ufw allow 39303/tcp
ufw allow 39303/udp
# 内部服务仅localhost
# 9545, 9546, 9547, 9548, 9549 - 通过API Gateway访问
# 9090 - Prometheus通过Nginx代理访问
```
### 6.2 Nginx代理配置
所有内部端口9545-9549, 9554-9556应通过Nginx反向代理访问不直接暴露到公网。
---
## 七、迁移检查清单
- [ ] 停止所有以太坊相关服务
- [ ] 更新所有配置文件使用NAC端口
- [ ] 更新systemd服务配置
- [ ] 更新Nginx配置
- [ ] 更新防火墙规则
- [ ] 更新监控配置Prometheus
- [ ] 更新文档和API说明
- [ ] 测试所有服务连通性
- [ ] 验证API Gateway路由正确
- [ ] 同步到Git仓库
---
## 八、NAC 3.0愿景端口规划
### 8.1 硬件节点端口(未来)
| 端口 | 用途 | 说明 |
|------|------|------|
| **9600-9699** | USB节点通信 | NAC 3.0硬件节点专用 |
| **9700-9799** | ASIC芯片接口 | 硬件加速接口 |
| **9800-9899** | DLL模块接口 | 动态链接库接口 |
---
**文档维护者**: NAC技术团队
**最后更新**: 2026-02-20
**下次审查**: 2026-03-20