欢迎光临散文网 会员登陆 & 注册

ETH RPC搭建

2023-03-19 15:51 作者:苏慕白丶sumubai  | 我要投稿

配置选择

先是看了aws、谷歌云、阿里云
这个配置都要1-2wrmb一个月,太贵了
问了很多朋友,打算用hetzner,50欧一个月足以

我选的配置:64gb,2tb ssd
开好后在邮箱收到信息

链接后
按以下步骤安装系统:https://0o0.me/server/hetzner-reinstall-with-raid0.html
系统选ubuntu 22

搭建RPC节点

搭建eth rpc指令:

mkdir /data cd /data wget https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-1.11.2-73b01f40.tar.gz tar -zxvf geth-linux-amd64-1.11.2-73b01f40.tar.gz mkdir prysm cd prysm curl https://raw.githubusercontent.com/prysmaticlabs/prysm/master/prysm.sh --output prysm.sh chmod +x prysm.sh ./prysm.sh beacon-chain generate-auth-secret cd /data/ cd geth-linux-amd64-1.11.2-73b01f40 输入完,按两次回车: nohup ./geth  --datadir "/data/eth/" --maxpeers 75  --cache=2048 --authrpc.jwtsecret /data/prysm/jwt.hex  --http --http.addr "127.0.0.1" --http.port "18181" >&1 & cd /data/prysm/ 输入完,按两次回车: nohup ./prysm.sh beacon-chain --execution-endpoint=http://localhost:8551 --jwt-secret=./jwt.hex --suggested-fee-recipient=0x91a0982397BEB2B65DFF9a6436695e362135cBa6  --accept-terms-of-use   & 查看eth执行层日志 tail -f /data/geth-linux-amd64-1.11.2-73b01f40/nohup.out 查看eth共识层日志 tail -f /data/prysm/nohup.out

等待同步最新块,over~
大概要1周内

使用老版本执行层同步

eth执行层如果只想太慢可以用老版本
用老版本同步到分叉的那个块,再运行新版本
运行老版本之前要先关掉新版本的进程并且删除eth文件夹

ps -ef | grep geth kill -9 123456 rm -rf /data/eth wget https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-1.10.24-972007a5.tar.gz tar -zxvf geth-linux-amd64-1.10.24-972007a5.tar.gz cd geth-linux-amd64-1.10.24-972007a5/ nohup ./geth --datadir "/data/eth/" --maxpeers 75 --cache=2048 --http --http.addr "127.0.0.1" --http.port "18181" 1>&1 &

使用Python3执行脚本

等两个层都同步完成之后
就可以用python3来调用自己的rpc节点了
像我搭建的节点
ipc地址:/data/eth/geth.ipc
http地址:http://127.0.0.1:18181/

这里会出现pip3不存在的情况
需要先安装pip3
然后再安装web3

wget https://bootstrap.pypa.io/get-pip.py get-pip.py && sudo python3 get-pip.py
pip3 -V
pip3 install web3

python3 demo 代码:

from web3 import Web3 my_provider = Web3.IPCProvider('/data/eth/geth.ipc') my_provider = Web3.HTTPProvider("http://127.0.0.1:18181/") w3 = Web3(my_provider) # 当前区块高度 blockNumber = w3.eth.blockNumber print(blockNumber)

更多的操作可以在网上找资料
还可以用nodejs写,用golong的话最快

博客原文: https://sumubai.cc/post/96

ETH RPC搭建的评论 (共 条)

分享到微博请遵守国家法律