以太坊主网节点搭建

Openstack-Rocky 一键安装(多节点搭建)~步骤超详细 1111 阅读详情

0x01 搭建节点需要什么配置

推荐配置:

CPU: 8 core
内存: 16G
硬盘: 500G SSD (固态硬盘)
网络: 5M+

最低配置:(这个配置下会不定时出现节点服务器挂掉)

CPU: 4 core
内存: 8G
硬盘: 500G 高速硬盘
网络: 2M

我自己搭节点用的是这里说的推荐配置,周一下午开始同步,周三早上来上班就已经同步好了。

0x02 节点是放国内还是国外

放国外安装过程会更顺利,国内云服务已经比较成熟了,但由于墙的原因,搭建过程稍微麻烦一点儿。
最近的这次安装,因为买国外服务器走公司财务比较麻烦,就买了阿里云的 VPS,因为公司其它系统用的都是 CentOS 6,这里也用了CentOS 6,其实网上关于 Ubuntu 和 CentOS 7的资料更多。

0x03 具体安装步骤

1. 安装 go 语言

安装 go 主要是为了去编译 go-ethereum 源码
平日里一般我都是用 gvm 去安装和管理不同版本的 go,但 gvm 在阿里云上默认是连不上所需要的 golang 下载服务器的。于是直接用下面一条命令搞定。

yum install golang

安装的版本不是最新的但也还是可以用的。

# go version
go version go1.9.6 linux/amd64

2. 安装 git

安装 git 主要是为了拉取 go-ethereum 源码
直接通过 yum 安装的版本比较老
我是通过下面的命令安装的:

yum install https://centos6.iuscommunity.org/ius-release.rpm
yum install epel-release
yum install git2u

得到下面的 git 版本

# git version
git version 2.16.4

ius 是专门用来提供 RPM 包的一个社区项目,具体可以查看 iuscommunity

3. 获取 go-ethereum 源码

可以通过下面的命令获取 go-ethereum 并切换到指定的 release branch

git clone https://github.com/ethereum/go-ethereum.git
cd go-ethereum/
git checkout release/1.8

接下来对源码进行编译

cd go-ethereum/
make all

编译之后会在 go-ethereum/build/bin 下生成各种二进制文件,其中包括接下来会用到的 geth

# ls
abigen  bootnode  clef  ethkey  evm  examples  faucet  geth  p2psim  puppeth  rlpdump  simulations  swarm  swarm-smoke  wnode

4. 添加 geth 到系统路径

  • 打开 /etc/profile
  • 将 export PATH=$PATH:/opt/ethereum/go-ethereum/build/bin 添加到文件最后
  • 运行 source /etc/profile 将设置加载到当前 shell 环境
  • 看到类似下面的结果说明就配置成功了
# geth version
Geth
Version: 1.8.13-stable
Git Commit: 225171a4bfcc16bd12a1906b1e0d43d0b18c353b
Architecture: amd64
Protocol Versions: [63 62]
Network Id: 1
Go Version: go1.9.6
Operating System: linux
GOPATH=
GOROOT=/usr/lib/golang

5. 启动 geth 重要参数

直接在命令行运行 geth 不就行了么,当然可以,geth 会立马启动主网数据同步的准备工作。当还是建议关注一下下面的参数:

--datadir "xxxx" 指定数据目录,用来存放区块链数据,状态数据,keystore数据等。如果不加这个参数这些数据在不同的系统会放到不同的位置。这个目录占用空间是比较大的,我一般会指定一个目录,并保证这个目录所在分区有足够的磁盘空间。
--cache value 分配给内部缓存的内存MB数量,默认为 128,最后设置大一点儿,起码 1024吧,这个值设大一些可以提高数据同步效率。
--rpc                       启用HTTP-RPC服务器
--rpcaddr value             HTTP-RPC服务器接口地址(默认值:“localhost”),默认只允许本地连接,设置为 0.0.0.0 可以接收任何地址发来的连接请求
--rpcport value             HTTP-RPC服务器监听端口(默认值:8545),可以改为不同的端口
--ws                        启用WS-RPC服务器,几乎所有第三方节点都不启动这个服务,而要监听以太坊事件又必须启动这个服务
--wsaddr value              WS-RPC服务器监听接口地址(默认值:“localhost”)
--wsport value              WS-RPC服务器监听端口(默认值:8546)

最后启动 geth 的命令看起来是这样的:

geth --datadir data --cache 4096 --rpc --rpcport 6666 --rpcaddr 0.0.0.0  --ws --wsaddr 0.0.0.0 --wsport 6667 --wsorigins "*" 

这里把 rpcaddr 设为\color{red}{ 0.0.0.0 }是\color{red}{有安全风险}的,最好指定特定 ip 地址或者通过反向代理或防火墙控制对 geth 节点的访问

6. 后台启动 geth

如果直接在 shell 终端直接启动 geth,终端关掉进程也就关掉了,可以通过下面的命令使 geth 在后台运行

nohup geth --datadir data --cache 4096 --rpc --rpcport 6666 --rpcaddr 0.0.0.0  --ws --wsaddr 0.0.0.0 --wsport 6667 --wsorigins "*" & > nohup.out

但如果直接在 shell 终端运行,可以用 CTRL + C 关闭进程,如何关闭运行在后台的 geth 进程呢,写了个简单的脚本如下:

#!/bin/sh
pid=`ps -ef|grep geth|grep -v grep|awk '{print $2}'`
echo $pid
kill -INT $pid

关于关闭 geth 进程,想了解更多可以查看这里。

0x04 监控同步状态

可以通过下面的命令 attach 到运行的节点,这里的 data 为上面启动 geth 时指定的 datadir 目录。

# geth attach data/geth.ipc
Welcome to the Geth JavaScript console!

instance: Geth/SamewayProdNode1/v1.8.13-stable-225171a4/linux-amd64/go1.9.6
 modules: admin:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0

然后调用 eth.syncing, 如下面所示,可以看到当前的同步状态,我这边节点已经运行一段时间了,可以看到当前区块和最新区块高度是比较接近的。刚开始这两个数字差别是比较大的,在运行一天后这两个数字就开始比较接近,给人的感觉好像是快要同步完了,但实际上要再跑一天左右才能真正同步完成。

> eth.syncing
{
  currentBlock: 6143193,
  highestBlock: 6143296,
  knownStates: 91512910,
  pulledStates: 91498893,
  startingBlock: 0
}

在同步的过程中我们通过 eth.blockNumber 去查看当前区块号的话会显示为 0

> eth.blockNumber
0

这个时候看 geth 的输出的话,可以看到下面的日志

INFO [08-14|04:32:20] Imported new block headers
INFO [08-14|04:32:24] Imported new block receipts
INFO [08-14|04:32:33] Imported new state entries

可以通过 net.peerCount 来看自己的这个节点连了多少个其它节点进行数据同步。如果返回结果为0,就要自查一下了。

> net.peerCount
8

当看到 geth 日志里是下面的信息

# tail nohup.out 
INFO [08-16|14:20:15.307] Imported new chain segment               blocks=1  txs=117  mgas=7.979   elapsed=761.592ms mgasps=10.477  number=6156276 hash=56b327…03c068 cache=905.73mB
INFO [08-16|14:20:32.926] Imported new chain segment               blocks=1  txs=42   mgas=2.325   elapsed=143.505ms mgasps=16.204  number=6156277 hash=f577a7…1c6104 cache=905.59mB
INFO [08-16|14:20:35.940] Imported new chain segment               blocks=1  txs=121  mgas=7.992   elapsed=776.752ms mgasps=10.289  number=6156278 hash=c92744…2d1448 cache=905.67mB

调用 eth.blockNumber 得到的数字不再是 0 了,这个调用返回的是节点所同步到的最新区块号

> eth.blockNumber
6156294

这个时候调用 eth.syncing 会返回 false

> eth.syncing
false

恭喜你,区块数据已经同步完成了,该节点可以接收交易请求了。

0x05 常见问题

问题: 如果非正常关闭 geth 进程,比如机器强制重启的时候,如果这个时候以太坊正在执行数据库写操作,下次启动 geth 进程时就很容易碰到下面的错误信息:

Fatal: Error starting protocol stack: missing block number for head header hash

方案: 很不幸,目前还没有特别好的解决办法
需要通过下面的命令移除区块链数据并从新同步数据

# geth removedb --datadir data

问题: 数据同步经常落后主网若干区块,落后也不是很多,往往也就几十个区块,等段时间可以完成同步,可过段时间又落于主网了

方案: 确保节点监听端口 30303 已经在防火墙打开,此端口在防火墙放行后,可大大提高主网数据同步的稳定性

链接:https://www.jianshu.com/p/719a34fe484d
 

最新-以太坊POA共识三个出块节点搭建教程 自己搭建以太坊POA共识的三个出块节点 踩坑 最新 阅读详情

相关推荐

centOS7系统虚拟机节点的搭建

随着计算机的发展,越来越多的人认识到大数据的优点,这时就不得不提Hadoop,Hadoop能够处理海量数据的存储和海量数据的分析计算问题,具有4高优势:(1)高可靠性:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失。(2)高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。(3)高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度。(4)高容错性:能够自动将失败的任务重新分配。

m0_63945545的博客 2763

如何使用云服务器构建ABEL节点?教你搭建Abel Network节点新手教程(上篇)

2020年11月19日,ABEL团队发布公告,将如期上线Abel Network测试主网,同时对外分布可运行的程序及bootnode节点信息,到时节点将可以同步ABEL测试主网的区块数据,对ABEL的生态建设及发展有重要作用! 构建ABEL节点的参与者均有机会获得相应的奖励!本文手把手教大家搭建Abel Network节点,以阿里云服务器为例,投入成本仅96元一年,构建ABEL节点新手教程如下: 一、必备条件 1、一台电脑,笔记本或台式机均可,用于连接服务器; 2、阿里云服务器一个,用于运行ABEL

云计算技术达人 9975

以太坊2.0 主网节点搭建最新详细教程

以太坊2.0 节点搭建

J_Lee 5823

以太坊全节点部署

以太坊全节点部署

cacique111的博客 2438

Latex下使用JabRef添加参考文献

文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 前言 Latex可以手动添加参考文献,但文献过多时,使用JabRef软件相对方便。 提示:以下是本篇文章正文内容,下面案例可供参考 一、JabRef安装 网址:http://www.jabref.org 打开网址后,点击“Download” 进入如下页面后,选择 portable (便携版,无需安装),下载后是一压缩包,打开即可使用。 二、使用 1.创建库 ...

sz3076799的博客 3467

WPT无线电能传输公式推导、编程计算、仿真验证全过程

主要分为5大模块,分别为无补偿,SS,SP,PP,PS,每个模块对应有公式推导,matlab编程计算相关参数以及将计算参数和仿真验证观察是否对应。采用matlab编程计算参数以及simulink仿真验证

zzhao2580的博客 7758

以太坊主网 PoS 节点搭建指南

自从以太坊在2022年9月完成"合并"(The Merge)升级后,以太坊网络已从工作量证明(PoW)转变为权益证明(PoS)共识机制。

JavaPub 1641

什么是Claude 的 Agent Skills?

摘要: Claude的Agent Skills功能支持通过结构化技能包(含指令、脚本、工具)实现任务自动化,如数据分析、文档生成等。核心能力包括:1)技能包管理(如Python脚本+模板);2)工具调用(API/数据库交互);3)子代理协作(拆分复杂任务)。快速上手步骤:创建技能包(如Excel报表生成)、配置工具权限、触发执行;支持多代理并行处理(如SQL查询+可视化)。关键技巧:工具需明确定义参数、利用子代理共享上下文、注重权限管控。官方文档与社区资源提供进阶指导,使Claude成为可编程的数字助手。

jobleap.cn求职助手首页 1729

【钱包·RPC搭建】以太坊主网节点搭建

01. 搭建节点需要什么配置 推荐配置: CPU: 8 core 内存: 16G 硬盘: 500G SSD (固态硬盘) 网络: 5M+ 最低配置: CPU: 4 core 内存: 8G 硬盘: 500G SSD (固态硬盘) 网络: 5M+ 我自己搭节点用的是这里说的推荐配置,下午开始同步,三四天才可以完全同步完成!(2018-11-15) 02. 节点是放国内还是国外 放...

9570

ipc$漏洞攻击(实验)

我们总在说ipc$漏洞ipc$漏洞,其实,ipc$并不是真正意义上的漏洞,它是为了方便管理员的远程管理而开放的远程网络登陆功能,而且还打开了默认共享,即所有的逻辑盘(c$,d$,e$……利用IPC$,连接者甚至可以与目标主机建立一个空的连接而无需用户名与密码(当然,对方机器必须开了ipc$共享,否则你是连接不上的),而利用这个空的连接,连接者还可以得到目标主机上的用户列表(不过负责的管理员会禁止导出用户列表的)。5.然后,我们物理连接到靶机上,到了两分钟后,我们可以用命令看到,这个pp45的用户就出现了。

2301_76361674的博客 3255

uniapp - [全端兼容] 实现精美Editor富文本编辑器功能,uniApp全平台兼容的富文本插件组件用户可上传图片及对接服务器存储文件等,手机移动端H5网页富文本/小程序富文本/App富文本!

uni-app,h5移动端网页,微信小程序,支付宝小程序,Android安卓,苹果ios,app,nvue,uniapp富文本编辑器,uniapp中如何实现各平台都兼容的富文本编辑器,Editor富文本插件,uniApp微信小程序富文本,UNI-APP安卓苹果ios系统App端富文本组件,editor富文本编辑器如何实现上传图片,图片上传后不显示怎么办,如何配置图像上传功能,富文本图片上传怎么传到服务器中,获取图片路径,editor插入图片,富文本编辑器上传图片,报错怎么办,跨域CORS处理,配置不行无效

🏆 前端领域优质创作者 1万+

01_以太坊主网节点搭建

0x01 搭建节点需要什么配置 推荐配置: CPU: 4 core 内存: 8G 硬盘: 500G SSD (固态硬盘) 网络: 5M+ 最低配置: CPU: 2 core 内存: 4G 硬盘: 500G 高速硬盘 网络: 2M 我自己搭节点用的是这里说的推荐配置,周一下午开始同步,周三早上来上班就已经同步好了。 0x02 节点是放国内还是国外 放国外安装过程会更顺利,国内云服务已经比较成...

架构师亮哥的博客 642

鸿蒙开发实战项目(九十二):HUAWEI Health血压测量

是华为开发的用于运动健康领域的一个开放平台, 三方APP可以借助HUAWEI Health开放平台提供的。

斌擎科技 1133

Geth搭建以太坊主网公有节点笔记

注意 同步节点在10M网速下大概需要同步2天300G数据 安装最简单高效就是直接用Docker下载已封装好的镜像docker pull ethereum/client-go 在命令建立容器启动节点即可 命令:nohup geth --rpc --rpcapi web3,eth,net,db,personal --rpcaddr 0.0.0.0 --rpcport 8545 默认dat...

大IT职男日志 2408

DDR5 输入时钟抖动规范全解析!技术宅必看

简单说,时钟抖动就是时钟信号边沿的“颤抖”——信号本来应该在某个固定时间跳变,但实际时刻可能会前后波动。这种波动可能是随机的,也可能是确定性的。随机抖动(Random Jitter, Rj):符合高斯分布,像是你家猫咪不经意的晃动。确定性抖动(Deterministic Jitter, Dj):受限于特定周期或模式,像是邻居装修时的规律敲击声。⚠️ 注意,如果时钟抖动超出规格,DDR5可能无法正确接收或发送数据,内存错误、系统崩溃可就跟着来了!

weixin_43199439的博客 392

【Flink】Flink 消费一段时间1万多条数据就卡死

我们有个现场环境,发现了奇怪的现象,就是每次启动任务后,消费1万多条数据后就会卡死,然后整个流不消费,也不往下输出,看起来卡死了一样。缺图这里面出现的网闸原因导致的,但是经过我们写了一个简单的kafka消费程序,然后在出问题的节点上消费数据,实际排查,发现不是这个问题。这个问题,发现也不是,这段时间没有进行过kafka数据清理。里面的问题。因为这个问题,我们后面的代码刻意规范了,不这样操作。后来是在没办法了,然后我们dump了线程,发现有如下代码。

九师兄 351

多节点私链搭建教程(一)

向导 geth的安装和使用过程 windows下安装Geth 配置和使用 搭建私有网络 windows下安装Geth 1.下载地址: https://geth.ethereum.org/downloads/ 下载windows版 2.安装geth时,只需将默认地址更改,并且勾中DEVELOPMENT TOOLS这个选项即可。 3.配置geth的环境变量: 3.1右键此电脑选中属性 3.2在相关设置中找到高级系统设置(如果没找到可以直接在windows设置中查找高级系统设置这个功能) .

m0_55932113的博客 3758

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

以太坊启动参数详解

文章以及资料(开源):github地址 文章目录命令ETHEREUM 选项开发者模式ETHASH选项交易池选项性能调优选项账户选项API 和控制台选项网络选项矿工选项GAS 价格选项:虚拟机的选项:日志和调试选项:WHISPER 实验选项:弃用选项:其他选项: 命令 account 管理账户 attach 启动交互式JavaScript环境(连接到节点) bug 上报bug Issues console 启动交互式JavaScript环境 copydb 从文件夹.

mindcarver 1402

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

ETH-服务节点部署(全网最新)

ETH-服务节点部署(全网最新)

HYXRX的博客 7787

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

万字长文,只为给小白说明白搭建一个单节点多工作节点k8s如何操作!!!

Kubernetes 是一个开源的容器编排平台,能够自动化应用程序的部署、扩展和管理。它主要用于管理容器化应用程序在集群环境中的运行。

舒一笑的博客 1730

搭建节点.

如果提示curl: command not found,先复制下面的代码安装curl,再执行上面的脚本。安装完成后,脚本会提示需要重启 VPS,输入 y 并回车后重启。返回值有 tcp_bbr 模块即说明 bbr 已启动。注意:并不是所有的 VPS 都会有此返回值,若没有也属正常。浏览器地址栏输入你的IP后加端口就可以访问x-ui了。查看内核版本,显示为新版内核就表示 OK 了。遇到这里输入“y”,然后回车。

qq_48947519的博客 2624

以太坊geth报错fatal error: runtime: out of memory

首先注意使用geth的时候要设置 --cache value ,这个是设置最大缓存的

呆萌的代Ma 2075

节点搭建原理(1) 网络通信的基本过程

通过这次详细的解析,我们理解了一个简单的网站访问请求背后复杂的网络通信过程。从应用层的HTTP请求开始,经过传输层、网络层、数据链路层和物理层的封装和传输,通过交换机和路由器,跨越庞大的互联网,进行DNS解析,最终到达目的服务器并返回。每一步都至关重要,共同确保我们能够在全球范围内高效、准确地交换数据。在后续的“节点搭建系列”文章中,我们将进一步探索网络通信和服务器管理的其他关键方面。敬请期待!

tang7mj的博客 3219

Ubuntu18.04 基于以太坊搭建多机多节点私有链

1. 多机多节点的规划 主机名 IP 节点identity master 192.168.1.120 lucy slave1 192.168.1.121 slave1 slave2 192.168.1.122 slave2 要求多台主机之间能相互ping通,这里我为每台主机设置的是静态ip。 如何设置静态IP可以参考: ubuntu18.04配置静态ip和动态ip ...

lucyLee的博客 3046

搭建独立节点通常涉及哪些步骤

1.了解独立节点搭建的基础概念和原理。这包括理解独立节点搭建的含义,即通过云服务器等方式单独搭建自己的网站,以。这包括根据需求选择合适的服务器,如云服务器、物理服务器等,并配置相应的硬件和软件环境。5.网站测试和部署。这包括进行网站的功能测试、性能测试等,以确保网站能够满足需求,并进行网站的正式部署。3.系统安装和环境配置。这包括安装操作系统、数据库管理系统等,以确保网站能够正常运行。这包括安装网站运行所需的软件,如网站程序、数据库管理等。确保网站的专属性和自主性,并更好地控制数据流动和安全性。

2301_78491269的博客 1274

【设备节点创建】

创建设备节点1、静态创建设备文件节点2、动态创建设备文件节点 本文章详细讲解如何在dev/下面创建设备节点,有通过mknod 静态创建方式和使用Linux为我们提供的接口动态创建两种方式。 1、静态创建设备文件节点 我们可以在启动脚本里面提前创建好一个设备节点。 /* 设备节点名称为create_node , 设备的主设备号为 1300, 从设备号为 0, 设备为字符设备 */ mknode /dev/create_node c 1300 0 然后我们编写设备的驱动文件。 #include &lt

weixin_43300893的博客 3730
上一篇: usdt充值btc网络(非节点钱包地址)
下一篇: PHP RSA 报错 openssl_sign(): supplied key param cannot be coerced into a private key
梦夏夜
博客等级 码龄10年 531粉丝 56原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值