发点感慨:大神 vs 弱鸡
hive-105017·@oflyhigh·
0.000 HBD发点感慨:大神 vs 弱鸡
前两天发文说见证人节点的`block_log`莫名其妙地损坏,导致我又重新replay节点,而在replay之前,需要先对`block_log`进行修复。  (图源 :[pixabay](https://pixabay.com/photos/despaired-businessman-business-2261021/)) # 我的方法 我采取的修复方式是将`block_log`截短一小段,然后去和@gtg提供的`block_log`同步,这样就得到一个完好的`block_log`文件。 然后再去replay,不过因为`block_log`与`block_log.index`文件快高不一致,所以replay时要重新计算更新`block_log.index`文件,要耗费很长时间。 当时我在想,如果我知道`block_log`与`block_log.index`文件文件的具体格式,或许可以直接修复`block_log`,而不用去和别人同步。 # A神的方法 和A神说了这个问题后,A神马上给我一套解决方案,大致思路就是通过`block_log.index`计算出指定的区块在`block_log`中的位置。 然后根据计算结果将`block_log`截短到指定区块的前一区块,同理将`block_log.index`截短到指定区块的前一区块。 比如说通过`block_log.index`可以计算出最近的不可逆块(当然也可以根据实际情况再向前切5到10个块),然后在`block_log`以及`block_log.index`切除掉这个块对应的数据,这样就达到切除坏数据的目的了。 # 优劣对比 首先,A神的方法精准定位后仅需对`block_log`的切除一点点,相比我不知道具体数据盲切一大块要好多了。 A神的方法有个好处就是***无需依赖于别人提供的block_log来同步***。尽管@gtg提供了靠谱的block_log文件,但是能不用同步别人的总比去同步别人的要好。 另一个好处就是因为都是依据同一区块高度处理,所以***不会存在区块高度不一致的问题***,replay时省却了重新计算`block_log.index`的过程,大幅节省时间。 如果比较我和A神处理方法,那么我的方法大概是:病人手指尖有病灶,我直接把病入的手剁掉(截肢),然后移植一个新手过来,然后耗费大量的时间等病人的手长好。 而A神的方法,好比知道病人的手指间有病灶,那么通过微创手术直接切掉病灶部位,病人的手可以很快地长好恢复。 都能解决问题的情况下,截肢并移植 vs 微创手术,花销多少,孰优孰劣一目了然了吧?我不禁为我之前的处理故障时还觉得自己很厉害而感到惭愧不已。  (图源 :[pixabay](https://pixabay.com/photos/apple-books-still-life-fruit-food-256261/)) A神之所以如此厉害,是因为他对整个系统的代码都很熟悉而且有着深刻的理解,像我这样大把时间都用在游山玩水以及喝酒聚会上的人,几乎不用指望做到A神这种程度了。😓 其实每次和A神沟通都有很多收获,不过因为知晓他实在是太忙,不忍心打扰他,也不忍心浪费他的宝贵时间。我还是~~慢慢摸索吧~~出去喝酒吧。 什么?你不知道A神是谁?那你OUT了,A神YYDS!为了避免打扰到A神,我就不艾特他了,哈哈。 # 相关链接 * [晕,见证人节点真的炸掉了 & 在内存中replay HIVE节点](https://hive.blog/hive-105017/@oflyhigh/and-replay-hive)
👍 gangstalking, cnfund, justinashby, btshuang, mygod, lnakuma, gerber, ezzy, exyle, steem.leo, mice-k, dcityrewards, hivecur, reazuliqbal, dune69, unconditionalove, bestboom, steem.services, linco, dlike, mfblack, triplea.bot, ribary, jelly13, dcrops, iansart, shitsignals, felander, caladan, memez, swisswitness, bobby.madagascar, followjohngalt, determine, milu-the-dog, tiffin, dpend.active, dine77, janaveda, joele, ebargains, votehero, msp-makeaminnow, firefuture, drricksanchez, dineroconopcion, planosdeunacasa, zonabitcoin, fsegredo1, helengutier2, hendersonp, ubikalo, juanmanuellopez1, julian2013, mamaloves, catwomanteresa, yogacoach, soufianechakrouf, archisteem, holoferncro, nextgen622, mermaidvampire, kimzwarch, dallas27, ffcrossculture, travelgirl, davidke20, japanguide, itchyfeetdonica, namchau, joeliew, vamos-amigo, iipoh06, pet.society, bichen, steemegg, mia-cc, fintian, voxmortis, jywahaha, ioioioioi, vickyli, alexis555, steemaction, rasalom, joythewanderer, etherpunk, hmayak, dailyke20, moleah, magicmonk, roberto58, nanosesame, steemfriends, jimhawkins, aafeng, bert0, memeteca, tresor, bnk, meanbees, patronpass, mangou007, chenlocus, dses, gtpjfoodbank, dbfoodbank, weddinggift, cconn, gustavoadolfodca, kymio, bai123, tvb, fusion.lover, omnivori, winniex, bboyady, kabasakal, logic, steemcleaners, seikatsumkt, hivewatchers, eturnerx-honey, yanhan, annepink, sasaadrian, weisheng167388, azazqwe, mrspointm, grafinx, fauzipase, sweetsssj, everlandd, mrpointp, alpha-omega, nostalgic1212, blind-spot, lovequeen, lovelemon, idx, laoyao, midnightoil, oflyhigh, helene, ethansteem, bxt, exec, deanliu, xiaohui, lingfei, abit, dengyanping888, victory622, tingjie, jychbetter, philipmak, lazy001, ace108, trafalgar, julesquirin, sam99, fatman, investegg, arcange, steemitboard, hivebuzz, jasonbu, lizanomadsoul, manncpt, globalschool, schmidi, tinyhousecryptos, laruche, walterjay, pboulet, louis00334, oldman28, mammasitta, passion-fruit, fortune-master, floatinglin, davidesimoncini, susanli3769, sunflor, fengchao, lovelingling, blogstats, eyesthewriter, nazomimatute1998, rivalhw, cn-reader, adm, kgsupport,