步骤 | 操作说明 | 命令/配置示例 | 注意事项 |
---|---|---|---|
准备运行环境 | 安装 .NET 6 SDK 与 Git | Ubuntu 20.04 示例: wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb sudo apt update && sudo apt install -y dotnet-sdk-6.0 git | Windows/macOS 同理,保证 dotnet –version ≥ 6.0 |
获取源码 | 克隆 Neo-CLI 与 Neo-Node 仓库 | git clone https://github.com/neo-project/neo-node.git cd neo-node git checkout v3.5.0 | 标签号与后续插件版本保持一致 |
编译节点 | 还原并生成 | dotnet restore dotnet publish -c Release -o ./neo-cli | 输出目录可自定义 |
安装共识插件 | 下载 DBFTPlugin 到 Plugins 目录 | cd neo-cli/Plugins wget https://github.com/neo-project/neo-modules/releases/download/v3.5.0/Neo.Plugins.DBFTPlugin.zip unzip Neo.Plugins.DBFTPlugin.zip | 版本号与节点一致 |
创建四共识钱包 | 用 neo-cli 生成四个多签地址 | dotnet neo-cli.dll neo> create wallet consensus1.json 重复 4 次,记录每个公钥 | 密码自行设定,后续配置需用 |
生成创世块 | 使用 Neo-Express 或手动写 Protocol.json | 示例 Protocol.json 关键字段: "Validators": [ "03b…", "02c…", "03d…", "04e…" ], "SeedList": [ "127.0.0.1:20333", … ], "Magic": 1234567890 | Magic 值与主网不同即可 |
配置 config.json | 关闭主网种子、改端口 | "P2P": { "Port": 20333, "WsPort": 20334 }, "RPC": { "Port": 20332, "SslCert": "", "SslCertPassword": "" } | 同一台机器跑多节点时端口递增 |
复制节点目录 | 为每个共识节点准备独立文件夹 | cp -r neo-cli node1 cp -r neo-cli node2 | 每个目录放对应钱包文件 |
启动首个节点 | 指定钱包并打开 RPC | dotnet neo-cli.dll –rpc neo> open wallet consensus1.json neo> start consensus | 看到 “OnStart” 即成功 |
启动其余节点 | 依次打开另外三个钱包 | 同上,端口依次+1,如 20334/20335… | 日志出现 “ChangeView” 说明网络连通 |
查看区块高度 | 任意节点 RPC 查询 | curl -d '{ "jsonrpc": "2.0", "method": "getblockcount", "params": [], "id": 1 }' http://127.0.0.1:20332 | 高度持续增长即共识正常 |
创建普通钱包 & 转账 | 用 RPC 或客户端 | curl -d '{ "jsonrpc": "2.0", "method": "sendfrom", "params": ["consensus1", "NNN…", 100], "id": 1 }' … | 先给新地址打一点 GAS 做手续费 |
部署合约 | 编译 NEF/Manifest 后 RPC invoke | curl -F file=@contract.nef http://127.0.0.1:20332/api/contract/deploy | 私有链 Gas 价格可设 0 |
持久化 & 开机自启 | systemd 服务示例 | /etc/systemd/system/neo-node1.service ExecStart=/usr/bin/dotnet /opt/neo/node1/neo-cli.dll –rpc | 多节点同理,加 After=network.target |
备份与升级 | 停节点→备份 chain、 wallets→替换二进制→启动 | tar czf chain.backup.tar.gz ~/.neo-node/chain* | 升级前确保插件版本匹配 |
完成以上 15 步,即可在本地或局域网得到一条 4 共识节点的 NEO3 私有链,后续可按需增减节点、调整区块时间或 Gas 参数。