372 lines
5.7 KiB
Markdown
372 lines
5.7 KiB
Markdown
# NAC主网部署指南
|
||
# NewAssetChain Mainnet Deployment Guide
|
||
|
||
版本: 1.0.0
|
||
更新时间: 2026-02-15
|
||
作者: NewAssetChain开发团队
|
||
|
||
---
|
||
|
||
## 📋 目录
|
||
|
||
1. [系统要求](#系统要求)
|
||
2. [部署前准备](#部署前准备)
|
||
3. [编译和构建](#编译和构建)
|
||
4. [配置文件](#配置文件)
|
||
5. [启动节点](#启动节点)
|
||
6. [验证部署](#验证部署)
|
||
7. [监控和维护](#监控和维护)
|
||
8. [故障排除](#故障排除)
|
||
|
||
---
|
||
|
||
## 系统要求
|
||
|
||
### 硬件要求
|
||
|
||
**最低配置**:
|
||
- CPU: 4核心
|
||
- 内存: 8GB RAM
|
||
- 存储: 500GB SSD
|
||
- 网络: 100Mbps
|
||
|
||
**推荐配置**:
|
||
- CPU: 8核心+
|
||
- 内存: 16GB+ RAM
|
||
- 存储: 1TB+ NVMe SSD
|
||
- 网络: 1Gbps
|
||
|
||
### 软件要求
|
||
|
||
- 操作系统: Ubuntu 22.04 LTS或更高版本
|
||
- Rust: 1.75.0或更高版本
|
||
- Git: 2.34.0或更高版本
|
||
- 其他依赖: build-essential, pkg-config, libssl-dev
|
||
|
||
---
|
||
|
||
## 部署前准备
|
||
|
||
### 1. 安装Rust
|
||
|
||
```bash
|
||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
||
source $HOME/.cargo/env
|
||
rustup update
|
||
```
|
||
|
||
### 2. 安装系统依赖
|
||
|
||
```bash
|
||
sudo apt update
|
||
sudo apt install -y build-essential pkg-config libssl-dev git
|
||
```
|
||
|
||
### 3. 克隆代码仓库
|
||
|
||
```bash
|
||
git clone https://github.com/newassetchain/nac-mainnet.git
|
||
cd nac-mainnet
|
||
```
|
||
|
||
---
|
||
|
||
## 编译和构建
|
||
|
||
### 1. 编译所有模块
|
||
|
||
```bash
|
||
# Charter编译器
|
||
cd charter-compiler
|
||
cargo build --release
|
||
cargo test --release
|
||
|
||
# CNNL编译器
|
||
cd ../cnnl-compiler
|
||
cargo build --release
|
||
cargo test --release
|
||
|
||
# NAC-UDM
|
||
cd ../nac-udm
|
||
cargo build --release
|
||
|
||
# NVM-L0
|
||
cd ../nvm_v2/nvm-l0
|
||
cargo build --release
|
||
|
||
# NVM-L1
|
||
cd ../nvm-l1
|
||
cargo build --release
|
||
|
||
# NAC-SDK
|
||
cd ../../nac-sdk
|
||
cargo build --release
|
||
|
||
# NAC宪法宏
|
||
cd ../nac-constitution-macros
|
||
cargo build --release
|
||
```
|
||
|
||
### 2. 验证编译结果
|
||
|
||
```bash
|
||
# 检查所有二进制文件
|
||
find . -name "*.so" -o -name "*.rlib" | grep release
|
||
```
|
||
|
||
---
|
||
|
||
## 配置文件
|
||
|
||
### 1. 主网配置
|
||
|
||
复制并编辑主网配置文件:
|
||
|
||
```bash
|
||
cp mainnet_config.toml /etc/nac/mainnet.toml
|
||
```
|
||
|
||
### 2. 关键配置项
|
||
|
||
**网络配置**:
|
||
```toml
|
||
[network]
|
||
chain_id = 1
|
||
network_type = "mainnet"
|
||
```
|
||
|
||
**共识配置**:
|
||
```toml
|
||
[consensus]
|
||
protocol = "CBPP"
|
||
initial_soft_limit = 1048576 # 1MB
|
||
max_soft_limit = 8388608 # 8MB
|
||
```
|
||
|
||
**安全配置**:
|
||
```toml
|
||
[security]
|
||
constitutional_receipt_enabled = true
|
||
gnacs_enabled = true
|
||
sovereignty_rules_enabled = true
|
||
```
|
||
|
||
---
|
||
|
||
## 启动节点
|
||
|
||
### 1. 创建系统服务
|
||
|
||
创建 `/etc/systemd/system/nac-node.service`:
|
||
|
||
```ini
|
||
[Unit]
|
||
Description=NAC Mainnet Node
|
||
After=network.target
|
||
|
||
[Service]
|
||
Type=simple
|
||
User=nac
|
||
Group=nac
|
||
WorkingDirectory=/opt/nac
|
||
ExecStart=/opt/nac/bin/nac-node --config /etc/nac/mainnet.toml
|
||
Restart=always
|
||
RestartSec=10
|
||
StandardOutput=journal
|
||
StandardError=journal
|
||
|
||
[Install]
|
||
WantedBy=multi-user.target
|
||
```
|
||
|
||
### 2. 启动服务
|
||
|
||
```bash
|
||
sudo systemctl daemon-reload
|
||
sudo systemctl enable nac-node
|
||
sudo systemctl start nac-node
|
||
```
|
||
|
||
### 3. 查看日志
|
||
|
||
```bash
|
||
sudo journalctl -u nac-node -f
|
||
```
|
||
|
||
---
|
||
|
||
## 验证部署
|
||
|
||
### 1. 检查节点状态
|
||
|
||
```bash
|
||
curl http://localhost:8545 -X POST -H "Content-Type: application/json" \
|
||
--data '{"jsonrpc":"2.0","method":"nac_nodeInfo","params":[],"id":1}'
|
||
```
|
||
|
||
### 2. 检查区块同步
|
||
|
||
```bash
|
||
curl http://localhost:8545 -X POST -H "Content-Type: application/json" \
|
||
--data '{"jsonrpc":"2.0","method":"nac_blockNumber","params":[],"id":1}'
|
||
```
|
||
|
||
### 3. 检查连接的节点
|
||
|
||
```bash
|
||
curl http://localhost:8545 -X POST -H "Content-Type: application/json" \
|
||
--data '{"jsonrpc":"2.0","method":"nac_peerCount","params":[],"id":1}'
|
||
```
|
||
|
||
---
|
||
|
||
## 监控和维护
|
||
|
||
### 1. 性能监控
|
||
|
||
使用Prometheus监控节点性能:
|
||
|
||
```bash
|
||
# 访问Prometheus metrics
|
||
curl http://localhost:9091/metrics
|
||
```
|
||
|
||
### 2. 健康检查
|
||
|
||
```bash
|
||
# 访问健康检查端点
|
||
curl http://localhost:9090/health
|
||
```
|
||
|
||
### 3. 日志管理
|
||
|
||
```bash
|
||
# 查看实时日志
|
||
tail -f /var/log/nac/mainnet.log
|
||
|
||
# 查看错误日志
|
||
grep ERROR /var/log/nac/mainnet.log
|
||
```
|
||
|
||
### 4. 数据库备份
|
||
|
||
```bash
|
||
# 停止节点
|
||
sudo systemctl stop nac-node
|
||
|
||
# 备份数据库
|
||
tar -czf nac-backup-$(date +%Y%m%d).tar.gz /var/lib/nac/mainnet
|
||
|
||
# 启动节点
|
||
sudo systemctl start nac-node
|
||
```
|
||
|
||
---
|
||
|
||
## 故障排除
|
||
|
||
### 1. 节点无法启动
|
||
|
||
**问题**: 节点启动失败
|
||
|
||
**解决方案**:
|
||
```bash
|
||
# 检查配置文件
|
||
cat /etc/nac/mainnet.toml
|
||
|
||
# 检查日志
|
||
sudo journalctl -u nac-node -n 100
|
||
|
||
# 检查端口占用
|
||
sudo netstat -tulpn | grep -E '(8545|8546|30303)'
|
||
```
|
||
|
||
### 2. 区块同步缓慢
|
||
|
||
**问题**: 区块同步速度慢
|
||
|
||
**解决方案**:
|
||
```bash
|
||
# 检查网络连接
|
||
ping -c 5 mainnet.newassetchain.io
|
||
|
||
# 检查磁盘IO
|
||
iostat -x 1 5
|
||
|
||
# 增加连接数
|
||
# 编辑 /etc/nac/mainnet.toml
|
||
max_peers = 100
|
||
```
|
||
|
||
### 3. 内存不足
|
||
|
||
**问题**: 节点内存使用过高
|
||
|
||
**解决方案**:
|
||
```bash
|
||
# 减少缓存大小
|
||
# 编辑 /etc/nac/mainnet.toml
|
||
cache_size = 512
|
||
|
||
# 重启节点
|
||
sudo systemctl restart nac-node
|
||
```
|
||
|
||
---
|
||
|
||
## 安全建议
|
||
|
||
### 1. 防火墙配置
|
||
|
||
```bash
|
||
# 允许P2P端口
|
||
sudo ufw allow 30303/tcp
|
||
sudo ufw allow 30303/udp
|
||
|
||
# 允许RPC端口(仅本地)
|
||
sudo ufw allow from 127.0.0.1 to any port 8545
|
||
sudo ufw allow from 127.0.0.1 to any port 8546
|
||
|
||
# 启用防火墙
|
||
sudo ufw enable
|
||
```
|
||
|
||
### 2. SSH安全
|
||
|
||
```bash
|
||
# 禁用密码登录
|
||
sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
|
||
sudo systemctl restart sshd
|
||
|
||
# 使用SSH密钥认证
|
||
ssh-keygen -t ed25519
|
||
```
|
||
|
||
### 3. 定期更新
|
||
|
||
```bash
|
||
# 更新系统
|
||
sudo apt update && sudo apt upgrade -y
|
||
|
||
# 更新NAC节点
|
||
cd /opt/nac
|
||
git pull
|
||
cargo build --release
|
||
sudo systemctl restart nac-node
|
||
```
|
||
|
||
---
|
||
|
||
## 联系支持
|
||
|
||
- 官网: https://newassetchain.io
|
||
- 文档: https://docs.newassetchain.io
|
||
- GitHub: https://github.com/newassetchain
|
||
- 社区: https://community.newassetchain.io
|
||
- 邮箱: support@newassetchain.io
|
||
|
||
---
|
||
|
||
**NAC主网部署指南 v1.0.0**
|
||
**© 2026 NewAssetChain. All rights reserved.**
|