Ethereum节点搭建
Ethereum节点搭建可基于源码或基于docker。这里介绍基于docker的方式搭建。
- 拉取镜像
docker pull ethereum/client-go
建议将镜像源配置为阿里云的镜像源
-
启动容器
docker run -itd -p 8545:8545 -p 30303:30303 --name eth -v /data/eth:/root/.ethereum/ ethereum/client-go console --http --http.addr "0.0.0.0"
数据默认存放在 容器的~/.ethereum/目录下 可添加参数 --datadir 指定目录,这里使用 -v参数挂载文件,将数据存放在/data/eth下。容器启动后需等待几分钟到几十分钟可能才会开始同步数据。可通过进入geth客户端进入查看同步情况。
Arbitrum节点搭建
这里也介绍使用docker的方式搭建节点,在装有docker的环境中,打开终端执行此命令即可。
docker run -itd --name=arb -v /data/arbitrum:/home/user/.arbitrum -p 0.0.0.0:8547:8547 -p 0.0.0.0:8548:8548 offchainlabs/nitro-node:v2.0.14-2baa834 --l1.url=https://ethereum.publicnode.com --l2.chain-id=42161 --http.api=net,web3,eth,debug,admin --http.corsdomain=* --http.addr=0.0.0.0 --http.vhosts=* --node.feed.input.url=wss://arb1.arbitrum.io/feed --init.url="https://snapshot.arbitrum.io/mainnet/nitro.tar" --node.rpc.classic-redirect="https://arb-mainnet.g.alchemy.com/v2/rwQ5PfDeqB11Ptak2pb_SEI0zR9TjZXH"
参数解释:
/data/arbitrum为数据存放磁盘上的路径
offchainlabs/nitro-node:v2.0.14-2baa834为镜像名
--l1.url=https://ethereum.publicnode.com 主链数据同步的链接地址
--init.url="https://snapshot.arbitrum.io/mainnet/nitro.tar" 初始化链数据链接
Optimism节点搭建
搭建optimism节点有两种方式,基于docker和基于源码。基于源码的方式比较复杂且过程中遇到的问题较多。这里介绍使用docker的方式搭建。先启动节点,从头同步区块的方式较慢且不稳定,所以我们使用先下载快照数据再进行同步的方式。
官方参考资料
https://community.optimism.io/docs/developers/build/run-a-node/#non-docker-configuration
https://github.com/smartcontracts/simple-optimism-node
拉取镜像
optimism节点依赖的镜像中op-node镜像和op-geth镜像在谷歌云上。国内无法直接拉取,需通过谷歌云上传至阿里云,再通过阿里云拉取到本地。
镜像地址
https://console.cloud.google.com/artifacts/docker/oplabs-tools-artifacts/us/images/op-node
https://console.cloud.google.com/artifacts/docker/oplabs-tools-artifacts/us/images/op-geth
参考教程
使用GoogleCloudShell解决99%的镜像拉取问题 - 知乎
2:下载快照
下载
aria2c -c -o /data/op/mainnet-bedrock.tar.zst https://datadirs.optimism.io/mainnet-bedrock.tar.zst > aria2c.log 2>&1 &
解压
zstd -d /bigdata/op/mainnet-bedrock.tar.zst -o /bigdata/op/mainnet-bedrock.tar.zst/torrent_downloads/bedrock.tar
参考链接
https://github.com/smartcontracts/simple-optimism-node/issues/84
3:启动容器
进入simple-optimism-node文件夹
启动:
docker compose --profile current up -d
停止:
docker compose --profile current down
日志查看:
docker compose logs <service name>
启动成功后若没有报错,需等待几分钟到几十分钟才会开始同步。