首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >geth -在systemd下运行时,快速同步非常慢。

geth -在systemd下运行时,快速同步非常慢。
EN

Ethereum用户
提问于 2017-03-23 19:09:46
回答 1查看 3.8K关注 0票数 4

我专用于一台英特尔原子笔记本电脑,内存为2GB,SSD作为我的ethereum节点。我正在运行geth作为systemd守护进程。现在,它日夜运行3+,命令如下:

代码语言:javascript
复制
geth --fast --cache=1024 --jitvm 2

但是唉,我打开了ethereum钱包,上面写着我只有1%的区块链没有装载。(我支持10 10Mbps的互联网连接)

使用

代码语言:javascript
复制
geth attach

然后

代码语言:javascript
复制
eth.syncing

给出

{ currentBlock: 178336,highestBlock: 3405682,knownStates: 1069106,pulledStates: 1000195,startingBlock: 105918 }

这太疯狂了!还是我需要一台超级计算机,附在核反应堆上就能下载区块链?现在看来总共需要两个月。

编辑(第二天)

晚上好。今天我们在

{ currentBlock: 258502,highestBlock: 3411279,knownStates: 58508,pulledStates: 21838,startingBlock: 256974 }

从同龄人的数量来看,似乎有24个。

代码语言:javascript
复制
admin.peers.length
24

谢谢你的建议,但同龄人的数目似乎不是问题。如何检查NAT遍历是否是一个问题..?我已将路由器配置为将所有内容转发给我的主服务器。(没有防火墙,NAT,什么都没有)

几天后编辑

依然坚挺

{ currentBlock: 887422,highestBlock: 2283547,knownStates: 2144,pulledStates: 126,startingBlock: 887418 }

这个虚幻的东西太棒了。

编辑(再过几天)

eth.syncing { currentBlock: 908606,highestBlock: 1211334,knownStates: 70444,pulledStates: 7563,startingBlock: 906796 }

我现在在用

代码语言:javascript
复制
geth --fast --cache=512 --nat=none

内存使用情况:

代码语言:javascript
复制
               total       used        free      shared  buff/cache   available
Mem:           1,9G        1,4G         69M         20M        505M        380M
Swap:          2,0G         99M        1,9G

。。所以也没有完全消失。

同样奇怪的是,根据"ethstats.net“3 million+,最高的块应该是。在我这里写的第一个"eth.syncing“中是正确的,但是在上一次更新中它只有一个million+?

不知道这是否是打包前的.deb发行版中的一个bug (很多人似乎对它们有问题。)不然会怎么样。

这对我来说已经足够了,现在..not还没有完全打开

编辑:

所以,我从github下载了go-ethereum,从google下载了golang,现在我已经从源代码中编译了geth。

我和你一起跑

代码语言:javascript
复制
geth --cache=512 --nat=none

还是没有成功。开始的很好..。三个多小时后,我

{ currentBlock: 967477,highestBlock: 3551915,knownStates: 6218249,pulledStates: 6218249,startingBlock: 0}

。。但是在它为24h+运行之后(我现在有9个同伴):

eth.syncing { currentBlock: 989279,highestBlock: 3558249,knownStates: 149529,pulledStates: 127316,startingBlock: 973578 }

我开始相信这是俄罗斯的庞氏骗局(正如有人建议的那样)。!:-o

EN

回答 1

Ethereum用户

回答已采纳

发布于 2017-04-18 16:50:04

嗯,确实如此。

问题的根源是linux系统(或者说我对它的了解很差)。我以systemd守护进程的形式运行geth,但是

代码语言:javascript
复制
systemctl --user enable geth.service

等命令。现在,当systemd用作每个用户的守护进程时,当该用户注销时,它会杀死与某个用户关联的守护进程。

由于这个原因,当我从ethereum节点登录时,geth总是被关闭,当我重新登录时,它总是重新启动(多么隐蔽的f*!)似乎没有任何进展。我在系统日志中发现了这个。

多尴尬啊!很抱歉我的庞氏骗局的评论,但我很沮丧.

希望有人发现这是有用的(如果没有,至少有趣)。

票数 2
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/13447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档