家里的电脑突然断电,然后重启 Geth 全节点,然后数据就丢了
1
lloovve 2022-12-18 09:02:45 +08:00 via iPhone 1
这不就骗子项目么,再说你自己断电,跟他也没关
|
2
ltkun 2022-12-18 09:09:08 +08:00 via Android 2
加个 UPS
|
3
smallyu 2022-12-18 09:11:00 +08:00
你断电了,以太坊又没受影响
|
4
wang2tiger 2022-12-18 09:19:01 +08:00
不明白,能丢啥?块链信息都在数据库里,断电顶多进度差几个 block ,来电了联网了一般很快就恢复好了。你啥数据能丢?
|
5
jfdnet 2022-12-18 09:24:02 +08:00
区块链会因为某个小小的节点丢数据?你怕是个假节点吧。
|
6
0o0O0o0O0o 2022-12-18 09:27:33 +08:00
不会修复就重新同步,在家跑加个 UPS
|
7
xinh 2022-12-18 09:40:57 +08:00 via iPhone
报道称 FTX 内部有一个名叫“Wirefraud”的秘密聊天群
这新闻你看看😂 |
8
lasuar 2022-12-18 11:00:17 +08:00 4
这发言,懂区块链?
|
9
jworg 2022-12-18 11:06:00 +08:00 via iPhone
你家数据库意外断电能保证数据完全不损坏吗。
|
10
jworg 2022-12-18 11:09:38 +08:00 via iPhone
@wang2tiger 大概率刚好把 head state 弄坏了,然后重建 head state 需要遍历所有区块,本地的 geth 数据也还在,只是验证完毕前不给用,如果是机械硬盘,这个遍历所有数据的速度非常慢。
|
11
baibing 2022-12-18 11:23:15 +08:00
Geth 只是 ethereum 的一个客户端而已,你可以说这个客户端做得不咋滴,出现数据不一致后 client 得做一次 full sync 。你也可以试试其它客户端或者自己开发执行层客户端哈。
|
12
Perry 2022-12-18 11:29:17 +08:00
丢数据难道不是你硬件的问题么。。。哪有软件可以做好断电保护的?
|
13
ZaneCheney 2022-12-18 11:32:14 +08:00 via iPhone
还是中心化思维在理解区块链。
你机子上的数据只是一块没被认可碎链。 |
14
dw2693734d OP @lasuar 做 Ethereum 开发了有半年了,可能没你懂
|
15
dw2693734d OP @ZaneCheney 我说的是我电脑的上面的 block 数据全部丢失
@jworg 我本地的 PostgresSQL 数据库没有丢 @wang2tiger 恢复不了,一直 Reparing ,数据全部损坏了 @lasuar 自己去 Google , “geth power outage” |
16
dw2693734d OP @lasuar 你这种人说话完全不过脑子的
|
17
jworg 2022-12-18 13:09:42 +08:00 via iPhone
@dw2693734d 再说一遍你的数据都在,只是 head state 没了,不信你查看前后每个 blk 的 checksum ,然后重建 head state 需要本地的数据和外面的 peer 连接验证,和全量同步是有区别的。
|
18
dw2693734d OP @jworg 确实,现在不知道为啥又恢复了
|
19
dw2693734d OP |
20
dw2693734d OP @jworg 只能获取 7-8 天内的 tx 数据了,超出的直接返回 null
|
21
ryants 2022-12-18 13:38:06 +08:00 1
@dw2693734d 那就损坏到 blk 数据了,这种情况我没遇到过,建议重新起一个跑,可以把同目录 ancient 文件夹拷贝到新的目标的文件夹,应该会少同步一些。
|
22
dw2693734d OP @ryants 好的,谢谢,原来还可以复制 ancient 数据
|
23
Aumujun 2022-12-18 15:11:00 +08:00 via Android
单节点程序没办法在断电时完美保障数据吧
|
24
leavic 2022-12-18 15:32:47 +08:00
几千亿市值是给写客户端的程序员了吗?
|
25
zmy2000 2022-12-18 17:02:51 +08:00
每日一笑
|
26
meeop 2022-12-18 17:44:12 +08:00
这是你的问题,是你挂了,又不是以太坊挂了
这倒是说明以太坊很稳定,你看你挂了并不影响以太坊网络,说明其非常健壮 |
27
dw2693734d OP @meeop 是的,我没有说是以太坊的问题,我说的是 geth 的问题,可能表达欠妥,不好意思
|
28
greensea 2022-12-19 18:08:54 +08:00 via Android 1
恭喜楼主入坑,我之前做区块链项目,也是自己跑全节点,结果各种坑层出不穷,都是客户端的锅。
你以后还会遇到更多的问题,如果已经上线的话,请做好服务中断的准备。 当时我们用了两台服务器互作热备,也出现过双机失效的情况,最大的原因是这东西数据一坏,就有可能要重头开始同步,没一两周跑不完。 如果数据库是因为断电坏了那还说得过去,可这东西自己跑着跑着自己就崩溃了,然后数据库就挂了,我真是不知道说什么好。 geth 和 parity 都有问题,楼主也别想通过更换客户端解决。 最后建议就是,直接用现成的 RPC 服务,不要自己搭全节点,如果非要自己搭全节点,搞四台服务器,跑不同版本的客户端,每小时停一个节点做个磁盘快照,这可能就样比较稳妥了吧 |
29
DiffView 2022-12-19 19:32:11 +08:00
geth 问题多的一批,你做啥要自己搞 full node ?
|
30
hadesjaky0607 2022-12-21 15:37:04 +08:00
@greensea 可以自己写脚本对区块数据进行备份, 直接替换,省的每次都 reindex
|
31
greensea 2022-12-23 23:52:56 +08:00
@hadesjaky0607 有考虑过,但是上 TB 的数据备份起来也挺花时间的,在这期间数据库一改,全部完蛋,所以只能停了节点再备份。
然而,就算是停了节点再备份,等备份完毕之后,这节点又要花时间去赶进度,这又多了额外的调度逻辑,越来越复杂了。 结果最后就是停节点然后做快照是最合适的。 |
32
74123gzy 2023-02-21 15:31:20 +08:00
你不就是那几千万分之一么,你自己没做好断电保护
|