Geth v1.13.14 多节点私链搭建:Windows 下 2 节点互通与 RPC 端口 8545/8546 配置 📅 2026/7/13 7:48:55 Geth v1.13.14 多节点私链搭建Windows 下 2 节点互通与 RPC 端口 8545/8546 配置在区块链开发与测试中搭建私有链是验证智能合约、测试交易流程的理想环境。本文将详细介绍如何在 Windows 系统上基于 Geth v1.13.14 版本从零构建一个双节点互联的以太坊私有链网络并配置 8545/8546 端口的 RPC 服务。1. 环境准备与基础配置1.1 Geth 客户端安装首先需要从以太坊官方下载页面获取 Windows 版 Geth 客户端# 下载地址请替换为实际版本 https://geth.ethereum.org/downloads/安装时需注意修改默认安装路径如D:\Geth勾选DEVELOPMENT TOOLS组件包含 puppeth 工具将安装目录添加到系统环境变量 PATH 中验证安装是否成功geth version提示若出现 puppeth 不是命令 错误说明 DEVELOPMENT TOOLS 未正确安装。1.2 创世区块配置创建两个节点目录结构D:\private_chain ├── node1 │ ├── data │ └── password.txt └── node2 ├── data └── password.txt使用 puppeth 生成创世配置cd D:\private_chain\node1 puppeth交互流程示例输入网络名称不含空格myprivnet选择配置新创世块 → Clique (PoA) 共识设置出块间隔5秒添加预分配账户可选指定 ChainID12345需记录保存为genesis.json2. 双节点部署实战2.1 节点初始化分别在两个节点目录执行初始化# 节点1 geth --datadir ./data --networkid 12345 init genesis.json # 节点2 geth --datadir ./data --networkid 12345 init genesis.json创建账户并设置密码文件geth --datadir ./data account new # 将密码存入 password.txt无后缀2.2 启动脚本配置节点1启动脚本start_node1.batgeth --allow-insecure-unlock --unlock 0 --password ./password.txt \ --networkid 12345 --datadir ./data \ --http --http.api admin,debug,web3,eth,txpool,personal,ethash,miner,net \ --http.corsdomain * --http.port 8545 --http.addr 0.0.0.0 \ --port 30303 --ipcpath \\.\pipe\geth1.ipc --nodiscover console节点2启动脚本start_node2.batgeth --allow-insecure-unlock --unlock 0 --password ./password.txt \ --networkid 12345 --datadir ./data \ --http --http.api admin,debug,web3,eth,txpool,personal,ethash,miner,net \ --http.corsdomain * --http.port 8546 --http.addr 0.0.0.0 \ --port 30304 --ipcpath \\.\pipe\geth2.ipc --nodiscover console关键参数对比参数节点1节点2http.port85458546port3030330304ipcpathgeth1.ipcgeth2.ipc3. 节点互联与验证3.1 获取节点连接信息在节点2控制台执行admin.nodeInfo.enode输出示例enode://a3b...d7f[::]:30304?discport0注意需将[::]替换为实际本地IP如 192.168.1.1003.2 添加对等节点在节点1控制台执行admin.addPeer(enode://a3b...d7f192.168.1.100:30304)验证连接状态// 查看已连接节点数 net.peerCount // 查看详细节点信息 admin.peers3.3 区块同步测试在节点1启动挖矿miner.start(1)在节点2观察区块同步eth.blockNumber停止挖矿miner.stop()4. RPC 接口安全配置4.1 端口访问控制建议通过防火墙限制 RPC 端口访问# 允许本地访问8545 New-NetFirewallRule -DisplayName Geth Node1 RPC -Direction Inbound -LocalPort 8545 -Protocol TCP -Action Allow # 限制特定IP访问8546 New-NetFirewallRule -DisplayName Geth Node2 RPC -Direction Inbound -LocalPort 8546 -Protocol TCP -RemoteAddress 192.168.1.50 -Action Allow4.2 API 权限管理敏感接口建议单独配置--http.api eth,net,web3 # 生产环境限制 --http.api admin,debug,personal # 开发测试使用4.3 跨域访问控制根据实际需求调整--http.corsdomain https://yourdomain.com # 替代通配符*5. 常见问题排查5.1 节点无法互联检查要点确认networkid一致验证防火墙是否放行 TCP/UDP 端口检查创世区块哈希是否相同eth.getBlock(0).hash5.2 RPC 接口无响应诊断步骤确认服务已启动netstat -ano | findstr 8545测试基础接口curl -X POST --data {jsonrpc:2.0,method:web3_clientVersion,params:[],id:1} http://localhost:85455.3 账户锁定问题解决方案临时解锁账户personal.unlockAccount(eth.accounts[0], password, 300)或在启动参数添加--allow-insecure-unlock --unlock 0 --password ./password.txt通过以上步骤您已成功搭建具备完整功能的双节点以太坊私有链网络。这种环境特别适合进行智能合约的并行测试、交易流程验证以及共识机制实验。实际开发中可根据需要扩展更多节点或调整挖矿参数。