211 lines
6.4 KiB
Markdown
211 lines
6.4 KiB
Markdown
# 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 NRPC4.0协议
|
||
|
||
| 端口 | 服务名称 | 协议 | 说明 | 状态 |
|
||
|------|---------|------|------|------|
|
||
| **9547** | NRPC4.0 HTTP | HTTP | NAC RPC Protocol 4.0 | 🟢 规划 |
|
||
| **9548** | NRPC4.0 WebSocket | WebSocket | NRPC4.0 实时通信 | 🟢 规划 |
|
||
|
||
### 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 (NRPC4.0) | ⚠️ 待清理 |
|
||
| **8546** | Geth WebSocket | 9548 (NRPC4.0 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
|