【保姆级】| 基于Docker的区块链节点(以太坊)部署教程
·
基于Docker的以太坊节点部署教程(保姆级)
本教程将手把手指导你使用Docker部署以太坊全节点,无需编译源码或处理依赖问题。整个过程约需30分钟(区块链同步时间除外)。
步骤1:准备工作
- 安装Docker
# Ubuntu示例 sudo apt update && sudo apt install docker.io sudo systemctl enable --now docker - 创建数据目录(防止容器重启丢失数据)
mkdir -p ~/ethereum/data
步骤2:拉取以太坊镜像
使用官方Geth客户端镜像:
docker pull ethereum/client-go:stable
验证:
docker images应显示ethereum/client-go
步骤3:启动节点容器
docker run -d --name eth-node \
-p 8545:8545 \ # JSON-RPC端口
-p 30303:30303 \ # 节点通信端口
-v ~/ethereum/data:/root \ # 挂载数据卷
ethereum/client-go \
--syncmode full \ # 全节点模式
--http --http.addr 0.0.0.0 \ # 启用HTTP接口
--http.api eth,net,web3
参数说明:
--syncmode full:完整同步所有区块数据(约1TB存储)- 若需测试网:追加
--goerli参数 - 轻节点模式:替换为
--syncmode light
步骤4:监控节点状态
- 查看实时日志:
docker logs -f eth-node - 检查同步进度(出现
Imported new chain segment即正常):INFO [06-20|14:32] Imported new chain segment blocks=1 elapsed=1.234s
步骤5:与节点交互
通过JSON-RPC查询(需安装curl):
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' http://localhost:8545
正常响应:
{"jsonrpc":"2.0","id":1,"result":"0xc0f4f3"}
常见问题解决
| 问题现象 | 解决方案 |
|---|---|
| 端口冲突 | 修改-p参数,如-p 8546:8545 |
| 磁盘空间不足 | 添加--cache=1024减少内存占用 |
| 同步缓慢 | 添加--maxpeers 100增加连接数 |
| RPC调用失败 | 检查防火墙是否开放8545端口 |
节点维护命令
# 停止节点
docker stop eth-node
# 重启节点(保留数据)
docker start eth-node
# 升级客户端
docker pull ethereum/client-go:latest
docker stop eth-node && docker rm eth-node
# 重新执行步骤3的run命令
注意:首次同步主网数据需数天时间,建议保持设备联网运行。完成部署后,你已拥有一个完全去中心化的以太坊全节点!
更多推荐
所有评论(0)