NAC_Blockchain/MAINNET_DEPLOYMENT_GUIDE.md

372 lines
5.7 KiB
Markdown
Raw Permalink 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主网部署指南
# 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.**