本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
Hyperledger Besu是开源企业级以太坊客户端,符合以太坊企业联盟(EEA)规范,支持公共以太坊网络、私有网络及联盟网络。本Docker镜像封装了Besu客户端,提供便捷部署方式,确保环境一致性,简化节点配置与维护,适用于开发、测试及生产环境。
通过Docker Hub获取官方镜像:
# 最新版本 docker pull hyperledger/besu:latest # 指定版本(示例:23.10.0) docker pull hyperledger/besu:23.10.0
docker run -d \ --name besu-mainnet \ -p 30303:30303 \ # P2P端口(节点通信) -p 8545:8545 \ # HTTP RPC端口(外部调用) -v /host/path/to/data:/data \ # 数据持久化目录 hyperledger/besu:latest \ --network=mainnet \ # 连接以太坊主网 --data-path=/data \ # 区块链数据存储路径 --rpc-http-enabled=true \ # 启用HTTP RPC --rpc-http-host=0.0.0.0 \ # RPC绑定所有网络接口 --rpc-http-cors-origins=* # 允许跨域请求(开发环境)
docker run -d \ --name besu-goerli \ -p 30303:30303 \ -p 8545:8545 \ -v /host/path/to/goerli/data:/data \ hyperledger/besu:latest \ --network=goerli \ # 连接Goerli测试网 --data-path=/data \ --rpc-http-enabled=true \ --rpc-http-host=0.0.0.0 \ --rpc-http-api=ETH,NET,WEB3 # 启用常用RPC API模块
需提前准备创世文件(定义网络初始状态),示例genesis.json(PoA共识):
{ "config": { "chainId": 1337, "muirGlacierBlock": 0, "constantinopleFixBlock": 0, "petersburgBlock": 0, "ethash": {} }, "nonce": "0x0", "timestamp": "0x5f8d78b0", "extraData": "0x0000000000000000000000000000000000000000000000000000000000000000", "gasLimit": "0x1fffffffffffff", "difficulty": "0x1", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "coinbase": "***", "alloc": {}, "number": "0x0", "gasUsed": "0x0", "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000" }
启动私有网络节点命令:
docker run -d \ --name besu-private \ -p 30303:30303 \ -p 8545:8545 \ -v /host/path/to/genesis.json:/config/genesis.json \ # 挂载创世文件 -v /host/path/to/private/data:/data \ # 数据持久化 hyperledger/besu:latest \ --genesis-file=/config/genesis.json \ # 指定创世文件 --network-id=1337 \ # 自定义网络ID --data-path=/data \ --rpc-http-enabled=true \ --rpc-http-host=0.0.0.0 \ --p2p-host=192.168.1.100 # 节点对外IP(供其他节点连接)
创建docker-compose.yml部署2节点私有网络:
version: '3' services: node1: image: hyperledger/besu:latest container_name: besu-node1 ports: - "8545:8545" # RPC端口 - "30303:30303" # P2P端口 volumes: - ./genesis.json:/config/genesis.json - ./node1/data:/data command: > --genesis-file=/config/genesis.json --network-id=1337 --data-path=/data --rpc-http-enabled=true --rpc-http-host=0.0.0.0 --rpc-http-api=ETH,NET,IBFT --p2p-host=node1 --p2p-port=30303 -***-enabled=true -***-coinbase=*** # 矿工地址 node2: image: hyperledger/besu:latest container_name: besu-node2 ports: - "8546:8545" # 节点2 RPC端口 - "30304:30303" # 节点2 P2P端口 volumes: - ./genesis.json:/config/genesis.json - ./node2/data:/data command: > --genesis-file=/config/genesis.json --network-id=1337 --data-path=/data --rpc-http-enabled=true --rpc-http-host=0.0.0.0 --rpc-http-api=ETH,NET,IBFT --p2p-host=node2 --p2p-port=30303 --p2p-bootnodes=enode://<node1-enode-url> # 替换为node1的enode地址 depends_on: - node1
获取enode地址:启动node1后,执行
docker exec -it besu-node1 besu --data-path=/data public-key export --to=/data/enode.txt,从node1/data/enode.txt获取enode地址并更新node2配置。
| 参数 | 描述 | 示例 |
|---|---|---|
--genesis-file | 指定创世文件路径,定义网络初始状态 | --genesis-file=/config/genesis.json |
--network | 预定义网络(主网/测试网) | --network=goerli |
--network-id | 自定义网络ID(私有网络) | --network-id=1337 |
--data-path | 区块链数据存储路径 | --data-path=/data |
--rpc-http-enabled | 启用HTTP RPC接口 | --rpc-http-enabled=true |
--rpc-http-api | 启用的RPC API模块 | --rpc-http-api=ETH,NET,WEB3,IBFT |
--p2p-bootnodes | 启动节点列表(加入现有网络) | --p2p-bootnodes=enode://<enode>@192.168.1.100:30303 |
-***-enabled | 启用挖矿(PoW/PoA模式) | -***-enabled=true |
--logging | 日志级别(TRACE/DEBUG/INFO/WARN/ERROR) | --logging=INFO |
-v /host/path:/data挂载本地目录,避免容器重启数据丢失docker logs -f <容器名>实时查看日志;添加--logging=DEBUG调整日志详细度节点启动后,通过RPC接口验证状态:
curl -X POST http://localhost:8545 \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
返回当前区块高度,确认节点正常同步。
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429