为什么太坊这种几千亿市值的项目,居然连断电保护都做不好? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dw2693734d
V2EX    以太坊

为什么太坊这种几千亿市值的项目,居然连断电保护都做不好?

  •  
  •   dw2693734d 2022-12-18 08:56:16 +08:00 8853 次点击
    这是一个创建于 1027 天前的主题,其中的信息可能已经有所发展或是发生改变。

    家里的电脑突然断电,然后重启 Geth 全节点,然后数据就丢了

    第 1 条附言    2022-12-18 13:03:26 +08:00
    还好只删除了 prysm 信标链的数据,geth 居然又恢复了,看来一台电脑上得多搞一个节点的数据备份才行

    32 条回复    2023-02-21 15:31:20 +08:00
    lloovve
        1
    lloovve  
       2022-12-18 09:02:45 +08:00 via iPhone   1
    这不就骗子项目么,再说你自己断电,跟他也没关
    ltkun
        2
    ltkun  
       2022-12-18 09:09:08 +08:00 via Android   2
    加个 UPS
    smallyu
        3
    smallyu  
       2022-12-18 09:11:00 +08:00
    你断电了,以太坊又没受影响
    wang2tiger
        4
    wang2tiger  
       2022-12-18 09:19:01 +08:00
    不明白,能丢啥?块链信息都在数据库里,断电顶多进度差几个 block ,来电了联网了一般很快就恢复好了。你啥数据能丢?
    jfdnet
        5
    jfdnet  
       2022-12-18 09:24:02 +08:00
    区块链会因为某个小小的节点丢数据?你怕是个假节点吧。
    0o0O0o0O0o
        6
    0o0O0o0O0o  
       2022-12-18 09:27:33 +08:00
    不会修复就重新同步,在家跑加个 UPS
    xinh
        7
    xinh  
       2022-12-18 09:40:57 +08:00 via iPhone
    报道称 FTX 内部有一个名叫“Wirefraud”的秘密聊天群
    这新闻你看看
    lasuar
        8
    lasuar  
       2022-12-18 11:00:17 +08:00   4
    这发言,懂区块链?
    jworg
        9
    jworg  
       2022-12-18 11:06:00 +08:00 via iPhone
    你家数据库意外断电能保证数据完全不损坏吗。
    jworg
        10
    jworg  
       2022-12-18 11:09:38 +08:00 via iPhone
    @wang2tiger 大概率刚好把 head state 弄坏了,然后重建 head state 需要遍历所有区块,本地的 geth 数据也还在,只是验证完毕前不给用,如果是机械硬盘,这个遍历所有数据的速度非常慢。
    baibing
        11
    baibing  
       2022-12-18 11:23:15 +08:00
    Geth 只是 ethereum 的一个客户端而已,你可以说这个客户端做得不咋滴,出现数据不一致后 client 得做一次 full sync 。你也可以试试其它客户端或者自己开发执行层客户端哈。
    Perry
        12
    Perry  
       2022-12-18 11:29:17 +08:00
    丢数据难道不是你硬件的问题么。。。哪有软件可以做好断电保护的?
    ZaneCheney
        13
    ZaneCheney  
       2022-12-18 11:32:14 +08:00 via iPhone
    还是中心化思维在理解区块链。
    你机子上的数据只是一块没被认可碎链。
    dw2693734d
        14
    dw2693734d  
    OP
       2022-12-18 12:50:16 +08:00
    @lasuar 做 Ethereum 开发了有半年了,可能没你懂
    dw2693734d
        15
    dw2693734d  
    OP
       2022-12-18 12:54:42 +08:00
    @ZaneCheney 我说的是我电脑的上面的 block 数据全部丢失

    @jworg 我本地的 PostgresSQL 数据库没有丢

    @wang2tiger 恢复不了,一直 Reparing ,数据全部损坏了

    @lasuar 自己去 Google , “geth power outage”
    dw2693734d
        16
    dw2693734d  
    OP
       2022-12-18 13:04:53 +08:00
    @lasuar 你这种人说话完全不过脑子的
    jworg
        17
    jworg  
       2022-12-18 13:09:42 +08:00 via iPhone
    @dw2693734d 再说一遍你的数据都在,只是 head state 没了,不信你查看前后每个 blk 的 checksum ,然后重建 head state 需要本地的数据和外面的 peer 连接验证,和全量同步是有区别的。
    dw2693734d
        18
    dw2693734d  
    OP
       2022-12-18 13:19:51 +08:00
    @jworg 确实,现在不知道为啥又恢复了
    dw2693734d
        19
    dw2693734d  
    OP
       2022-12-18 13:21:36 +08:00
    @jworg 只不过 log 很多错误:

    Failed to decode block body
    dw2693734d
        20
    dw2693734d  
    OP
       2022-12-18 13:31:00 +08:00
    @jworg 只能获取 7-8 天内的 tx 数据了,超出的直接返回 null
    ryants
        21
    ryants  
       2022-12-18 13:38:06 +08:00   1
    @dw2693734d 那就坏到 blk 数据了,这种情况我没遇到过,建议重新起一个跑,可以把同目录 ancient 文件夹拷贝到新的目标的文件夹,应该会少同步一些。
    dw2693734d
        22
    dw2693734d  
    OP
       2022-12-18 13:46:11 +08:00
    @ryants 好的,谢谢,原来还可以复制 ancient 数据
    Aumujun
        23
    Aumujun  
       2022-12-18 15:11:00 +08:00 via Android
    单节点程序没办法在断电时完美保障数据吧
    leavic
        24
    leavic  
       2022-12-18 15:32:47 +08:00
    几千亿市值是给写客户端的程序员了吗?
    zmy2000
        25
    zmy2000  
       2022-12-18 17:02:51 +08:00
    每日一笑
    meeop
        26
    meeop  
       2022-12-18 17:44:12 +08:00
    这是你的问题,是你挂了,又不是以太坊挂了

    这倒是说明以太坊很稳定,你看你挂了并不影响以太坊网络,说明其非常健壮
    dw2693734d
        27
    dw2693734d  
    OP
       2022-12-18 17:45:44 +08:00
    @meeop 是的,我没有说是以太坊的问题,我说的是 geth 的问题,可能表达欠妥,不好意思
    greensea
        28
    greensea  
       2022-12-19 18:08:54 +08:00 via Android   1
    恭喜楼主入坑,我之前做区块链项目,也是自己跑全节点,结果各种坑层出不穷,都是客户端的锅。
    你以后还会遇到更多的问题,如果已经上线的话,请做好服务中断的准备。
    当时我们用了两台服务器互作热备,也出现过双机失效的情况,最大的原因是这东西数据一坏,就有可能要重头开始同步,没一两周跑不完。
    如果数据库是因为断电坏了那还说得过去,可这东西自己跑着跑着自己就崩溃了,然后数据库就挂了,我真是不知道说什么好。
    geth 和 parity 都有问题,楼主也别想通过更换客户端解决。
    最后建议就是,直接用现成的 RPC 服务,不要自己搭全节点,如果非要自己搭全节点,搞四台服务器,跑不同版本的客户端,每小时停一个节点做个磁盘快照,这可能就样比较稳妥了吧
    DiffView
        29
    DiffView  
       2022-12-19 19:32:11 +08:00
    geth 问题多的一批,你做啥要自己搞 full node ?
    hadesjaky0607
        30
    hadesjaky0607  
       2022-12-21 15:37:04 +08:00
    @greensea 可以自己写脚本对区块数据进行备份, 直接替换,省的每次都 reindex
    greensea
        31
    greensea  
       2022-12-23 23:52:56 +08:00
    @hadesjaky0607 有考虑过,但是上 TB 的数据备份起来也挺花时间的,在这期间数据库一改,全部完蛋,所以只能停了节点再备份。
    然而,就算是停了节点再备份,等备份完毕之后,这节点又要花时间去赶进度,这又多了额外的调度逻辑,越来越复杂了。
    结果最后就是停节点然后做快照是最合适的。
    74123gzy
        32
    74123gzy  
       2023-02-21 15:31:20 +08:00
    你不就是那几千万分之一么,你自己没做好断电保护
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     887 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 20:42 PVG 04:42 LAX 13:42 JFK 16:42
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86