当前位置: 首页 > article >正文

ETH RPC搭建

配置选择

先是看了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


http://www.kler.cn/a/1459.html

相关文章:

  • Vue3+Element给表单设置多个验证+规则Rules自定义
  • java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
  • Taro+Vue实现图片裁剪组件
  • [免费]微信小程序(高校就业)招聘系统(Springboot后端+Vue管理端)【论文+源码+SQL脚本】
  • DAY15 神经网络的参数和变量
  • python常见绘图及代码
  • echart图表之highcharts
  • vue2前端实现html导出pdf功能
  • 灾难性遗忘(catastrophic forgetting)学习笔记
  • Linux中的标准IO【上】
  • FPGA纯verilog实现RIFFA的PCIE通信,提供工程源码和软件驱动
  • C++ 手撸简易服务器(完善版本)
  • 写CSDN博客两年半的收获--总结篇
  • Python3实现AI版贪吃蛇
  • AI_Papers周刊:第六期
  • Java面向对象:接口的学习
  • Vue学习 -- 如何用Axios发送请求(get post)Promise对象 跨域请求问题
  • 使用QT C++编写一个带有菜单和工具条的文本编辑器
  • QT串口助手开发3串口开发
  • C语言实例:字符转换为 ASCII 码,如何计算两个数的商,如何比较两个数的大小,如何交换两个数的值
  • VR全景城市,用720全景树立城市形象,打造3D可视化智慧城市
  • java-day01
  • 《Linux的权限》
  • 考研408每周一题(2019 41)
  • 嵌入式学习笔记——STM32的时钟树
  • 基于 Apache Flink 的实时计算数据流业务引擎在京东零售的实践和落地