保姆级教程:在Ubuntu 18.04上从零搭建Mina Berkeley QANet测试网节点(含常见错误排查)

张开发
2026/4/21 13:47:33 15 分钟阅读

分享文章

保姆级教程:在Ubuntu 18.04上从零搭建Mina Berkeley QANet测试网节点(含常见错误排查)
零基础实战Ubuntu 18.04搭建Mina Berkeley QANet测试网全节点指南1. 环境准备与基础配置在开始之前请确保您已准备好以下环境Ubuntu 18.04操作系统物理机或云服务器至少4GB内存和50GB可用存储空间稳定的网络连接建议10Mbps以上带宽提示云服务器用户建议选择计算优化型实例区块同步过程对CPU要求较高1.1 系统依赖安装首先更新系统并安装基础依赖sudo apt-get update sudo apt-get upgrade -y sudo apt-get install -y \ curl \ git \ jq \ pkg-config \ build-essential \ libssl-dev \ libgmp-dev验证关键依赖版本openssl version # 需≥1.1.1 gcc --version # 需≥7.5.01.2 配置SWAP空间可选对于内存小于8GB的设备建议配置SWAP以避免内存不足sudo fallocate -l 4G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile echo /swapfile none swap sw 0 0 | sudo tee -a /etc/fstab2. Mina节点安装与配置2.1 添加Mina软件源执行以下命令添加官方软件源echo deb [trustedyes] http://packages.o1test.net $(lsb_release -cs) unstable | sudo tee /etc/apt/sources.list.d/mina-unstable.list sudo apt-get update2.2 安装核心组件安装最新版Mina Berkeley测试网组件sudo apt-get install -y mina-berkeley1.3.0beta1-release-2.0.0-ba9a0e0验证安装mina version # 应显示1.3.0beta13. 节点启动与网络连接3.1 初始化配置创建配置文件目录并设置权限mkdir -p ~/.mina-config chmod 700 ~/.mina-config3.2 启动测试网节点使用以下命令连接QANet测试网mina daemon \ --peer-list-url https://storage.googleapis.com/seed-lists/berkeley_seeds.txt \ --log-json \ --log-level Info \ --file-log-level Debug \ --rest-port 3085关键参数说明--peer-list-url指定测试网种子节点列表--rest-portGraphQL接口端口默认30853.3 验证节点状态等待约5分钟后检查节点状态mina client status预期输出应包含{ chain_id: da081e702d0e02be30a7351bc2a54898593bb67934b46809400af4c890d13c89, sync_status: Catchup, peers: [...] }4. 同步状态监控与问题排查4.1 同步阶段解析Mina节点同步分为三个阶段阶段描述正常持续时间异常处理Bootstrap初始区块下载10-30分钟超时检查端口配置Catchup追赶最新区块1-6小时查看peer连接数Synced完全同步--4.2 常见错误解决方案问题1长时间卡在Bootstrap# 检查端口转发云服务器需配置 sudo ufw allow 8302/tcp # Mina P2P端口 # 验证端口开放 nc -zv $(hostname -I | awk {print $1}) 8302问题2区块高度不增长# 重置本地数据库慎用 mina client stop-daemon rm -rf ~/.mina-config/berkeley5. 账户管理与测试代币5.1 创建钱包账户生成新的密钥对mkdir -p ~/keys chmod 700 ~/keys mina-generate-keypair --privkey-path ~/keys/my-wallet5.2 获取测试代币访问测试水龙头获取MINA代币curl -X POST https://berkeley.minaexplorer.com/faucet \ -H Content-Type: application/json \ -d {publicKey:YOUR_PUBLIC_KEY}验证余额mina accounts list6. GraphQL接口使用6.1 基础查询示例查询当前链状态curl -X POST -H Content-Type: application/json \ -d {query:query { syncStatus }} \ http://localhost:3085/graphql6.2 常用查询操作# 获取账户余额 query GetBalance { account(publicKey: B62...) { balance { total } } } # 查看交易池 query GetPooledPayments { pooledUserCommands { id amount fee } }7. 进阶操作zkApp开发准备7.1 安装zkApp CLI工具sudo apt-get install -y mina-snapp-test-transaction1.3.0beta1-release-2.0.0-ba9a0e07.2 创建智能合约账户mina-snapp-test-transaction create-snapp-account \ --fee-payer-key ~/.mina-config/wallets/store/YOUR_KEY \ --snapp-account-key ~/keys/my-wallet8. 节点维护与优化8.1 日志监控技巧实时查看节点日志journalctl -u mina -f -o cat关键日志过滤# 查看区块同步进度 grep Downloaded block ~/.mina-config/mina.log # 监控交易处理 grep Transaction_snark ~/.mina-config/mina.log8.2 性能优化建议调整守护进程参数export MINA_PRIVKEY_PASSyour_password mina daemon \ --block-producer-key ~/keys/my-wallet \ --snark-worker-fee 0.025 \ --work-selection seq \ --max-connections 509. 安全配置指南9.1 防火墙设置建议的最小端口规则sudo ufw allow 22/tcp # SSH sudo ufw allow 8302/tcp # Mina P2P sudo ufw allow 3085/tcp # GraphQL sudo ufw enable9.2 密钥安全管理最佳实践使用密码保护私钥文件定期备份~/.mina-config/wallets目录禁止root账户直接运行节点10. 资源监控与告警10.1 系统监控配置安装监控工具sudo apt-get install -y htop sysstat关键指标监控项指标正常范围检查命令CPU使用率80%top -bn1内存占用90%free -m磁盘IO80%iostat -dx 110.2 自动化监控脚本创建简易监控脚本monitor.sh#!/bin/bash ALERT_THRESHOLD90 check_disk() { local usage$(df -h / | awk NR2 {print $5} | tr -d %) [ $usage -ge $ALERT_THRESHOLD ] echo Disk space warning: $usage% } check_memory() { local free$(free -m | awk NR2 {printf %.0f, $3*100/$2}) [ $free -ge $ALERT_THRESHOLD ] echo Memory usage high: $free% } while true; do check_disk check_memory sleep 300 done

更多文章