eth节点搭建-------------交易所

eth

Geth 安装:

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

安装go编译器

sudo apt-getinstall -ybuild-essential golang

3. 最后,构建geth

cdgo-ethereum

make geth

gethhelp

把getn加入到配置文件里etc/profile

#geth

exportPATH=$PATH:/root/soft/go-ethereum/build/bin

source/tc/profile

[root@BC-OL-Host-1/]# vim ~/.bashrc


4. 链接节点命令:

nohup geth --syncmode

"full" --cache 2048 --datadir /root/data/ethData --ipcpath./geth.ipc --rpc --rpcaddr 0.0.0.0 --port 8445 --maxpeers 999 &

参考地址:https://blog.csdn.net/ULi_cloud/article/details/80668590

https://blog.csdn.net/qq_25870633/article/details/82931782

性能调节选项:

–cache value 调整内存分配 最小16MB,默认128MB

–trie-cache-gens value 内存中存储节点数,默认为120

--datadir “/your/database/path”

指定以太坊数据和密钥目录,在开启私有链时需指定私有链目录,默认为公有链目录。

--ipcpath "geth.ipc" 指定IPC接口

--rpcaddr value 指定HTTP-RPC 服务监听地址,默认为“localhost”

--rpcport value 指定HTTP-RPC 服务监听端口,默认为8545

--maxpeers value 设置允许最大连接节点数目,默认为25

--ws 开启 WS-RPC 服务

--wsaddr value 指定WS-RPC 服务监听地址,默认为 “localhost”

--wsport value 指定 WS-RPC 服务监听端口,默认值:8546

--wsapi value 指定WS-RPC 开启API,默认为 “eth,net,web3”

--wsorigins value 指定允许“websockets”请求的地址


5. 监控同步状态

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

# geth attachdata/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

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

6. 常见问题

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

Fatal: Error

starting protocol stack: missing block number for head header hash

方案: 很不幸,目前还没有特别好的解决办法

需要通过下面的命令移除区块链数据并从新同步数据

# geth removedb--datadir data

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

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

有相关需求的,可以定制交易所服务

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,133评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,682评论 3 390
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,784评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,508评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,603评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,607评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,604评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,359评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,805评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,121评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,280评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,959评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,588评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,206评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,442评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,193评论 2 367
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,144评论 2 352

推荐阅读更多精彩内容