碼農日常-『驗證人』我炸了我的節點,然後借屍還魂!
其實這是三週前的事情了。
10月月底時,我正好在公司接到了一項新的開發任務,然後心想「Oh sxxt, 真衰」的時候,沒想到我運營了,培育了3個多月,應該跟我如膠似漆、感情濃厚的瑪機(驗證人節點)居然掉線了!
驚!好吧!掉線就掉線,通常這時候只需要一個重開、然後摸摸他的頭(想像),他就會很開心地繼續為大家服務了
But!就是這個But!!
哪尼?這次居然沒有成功復歸??花姿黑噴??
後來認真看了一下Log,結果..
Error: error during handshake: error on replay: wrong Block.Header.AppHash. Expected FBEF6433CE1F04DE5D12DA01A6BE82CA960F93F3D98383A8D2C884677900CE9A, got 41441A4396D1C3837B0D2B50B21312A69497AB3555E3667776352BF2EA3B850E
(這本來就是給程序員看的,看不懂無所謂)
重點是那句wrong Block.Header.AppHash,這句後來我去問了社區,得到了這個答覆:
好,其實我也是看得霧煞煞,但是主要是這個
OK,大致的意義就是,這個基本上是他們在升級IBC時遇到的一個bug,而解套方式就是清除你現在驗證人節點內的資料,然後再將它們提供的資料丟進節點,然後就能繼續跑了
了解、了解,大致明白的説
但是要怎麼做啊!!崩潰OTZ
是的,從這步開始,我即將邁向碼機1.0的毀滅之路
再次搗鼓Linux
說來慚愧,實際上我本人並非資工系畢業的(我電機),所以我其實是不會Linux系統的操作的,架驗證人時也只是看到有什麼指令然後就去嘟嘟看,然後就給我這麼嘟出驗證人來了
而今天遇上了這樣的狀況,自然是一個什麽都搞不懂的狀態;所以只能一直不斷地search一些指令,然後一點一滴地去嘗試....
但嘗試不是重點,重點是我真的太緊張了!我居然從頭到尾沒有做備份!!
於是我在嘗試時大概就是這樣一種感覺
而更實際上應該會像這樣
然後,就在我不斷嘗試的過程中,我的瑪機就....
於是,就在我桑心難過至極,加上催產魔的逼迫,於是便誕生了這邊很瘋的文章
馬特宇宙共建計畫21 | 囚禁的靈魂
當天我的心情:
說真的,要多崩潰就有多崩潰啊QQ
好啦!講點技術上的原因!!
實際上,我的節點是用Linode這個公司所提供的服務架起來的,而一般來說我們首先會先租用一個VM(虛擬主機)
然後,通常我們會在一個主機上外掛一顆磁碟(Volumes)
那,為什麼我當時會把節點炸掉呢?原因就是當時我本身是把LikeCoin-chain的操作資料夾放在Volumes裡面,然後我為了要Resize(重新調整Volume的容量)Volume,我不小心執行了這道指令:
mkfs.ext4 "/dev/disk/by-id/scsi-0Linode_Volume_backup"
這句指令的意思是初始化磁碟...也就是格式化整個磁碟,然後...
...被懷念惹QwQ
一趟努力回覆節點的旅程
其實寫到這邊為止,都是2天內發生的事。那麼,為什麼我處理了一週?
實際上,我的節點從週一確定被坐牢(jail)並且完全炸掉之後,我實際上就是在搗鼓一個重架的過程,所以實際上我花了三天的時間等待節點同步
但偏偏!!!
同步的速度簡直是烏龜到不行,老實說我原本是使用東京(日本)的伺服器,雖然偶爾會掉線,但是整體來說尚可...直到這次,他同步的速度簡直是令我著急;明明才幾天的資料要同步而已,經我掐指一算...居然還得要好幾天才會同步完成
搗鼓到這裡,我的心情你說有多差就有多差,我的嘴唇已經開始因為壓力過大開始破皮了
於是我去尋求@catding 的幫助,他大神跟我說「可以考慮改用亞特蘭大(美國)的伺服器,因為那裡的硬體設施最近剛更新過」
OK,好,沒問題!我就抱著重新嘗試的心情把節點給弄過去了,想不到這節點簡直像吃了OO大補丸一樣
同步飛快!!!
原本我預計要到週末才會同步好的節點,OK!太好了,到了週五的中午就同步完成了!非常好!!
於是,我就run了脫獄的指令:
docker-compose run --rm liked-command \ tx slashing unjail \ --from validator \ --chain-id likecoin-mainnet-2 \ --node tcp://liked-service:26657
好!我成功看到我的瑪機「Activity」了,但...
奇怪,為什麼格子沒有轉換燈號?明明我的節點顯示已經同步呀!
❌
⭕️
疑惑到不行的我,決定再一次向社區求助
後來,召喚了nnkken之後,他幫我比對了一些東西,結果....
瑪機R.I.P
東山再起
這時候的時間是星期五的中午,老實說我當時的心情就像是家裡可愛的狗勾去世一樣,無比地桑心難過;難過到週五的工作完全做不下去,心心念念只想回家睡覺
這其中不得不說,@樹懶的生活 真的很貼心,一直不斷開導我、安慰我,一直聽我講話;這時我也不斷地公告委託我的所有好朋友
抱歉,讓你們失望了,我的瑪機死掉了,請你們把委託拿走吧!
但同時,還是有非常貼心的幾位好友@Carol.W 、@星星點燈 等人,私訊告訴我沒關係,我會等你建立新節點後再轉移過去的等等話語
你知道嗎?有時候當一個人最窩心的事情就是有人在無論何時都站在你這邊,這世界上真的沒有比這件事情更寶貴的了
這時我只得告訴他們:謝謝你們,但是我想要先平復心情再回頭來架新的瑪機
...講是這樣講啦,不過當天晚上我被樹懶開導開導後,我突然跟樹懶說:
欸,我來直播架節點好不好?
樹懶:.....What?那晚一點好嗎?(樹懶傻眼成就get)
我:OK呀
對,我大概做了一件真正地前無古人、後無來者的事情,那就是直播架驗證人節點(大笑)
然後就真的有一群瘋子@樹懶的生活@矛盾妞 @雞蛋糕 GCAKE @貓咪旅行中〔Erica〕 @鑫大叔 真的進來看我架節點了!!!!!XDDDDDDDD
然後更好笑的是,新節點就這麼上線了!!!(大笑)
我.傻.眼
那你問,為什麼那麼容易上線?其實有時候只能說是一個運氣問題;因為當時有很多人跟我一樣出現Bug,導致暫時離線;因此當時的委託只要超過3萬多就可以輕鬆上線...沒錯,我當時直接塞了自己15,000,再加上他們在場的都把LikeCoin梭哈給我後我就上線了(原本我是打算慢慢等的...)
而且在我公布上線後,後來當時有很多像@Carol.W這樣的人陪我共生死,於是他們立馬轉移委託給我,所以我就又進一步離開了危險區...沒錯..
我.就.飛.了
然後既然舊節點死了,那我就來拿他亂玩(笑);於是我們一群人就各出主意把舊節點改了一個很蠢的名字...
好啦,後來因為我有必要公告給社區知道,因此還是改了個正經的名字
然後這裡是新節點的位置:
https://likecoin.bigdipper.live/validators/cosmosvaloper1fdpmw3k73asq89gt0qvf9j97pgg2kapkk99yl2
麻...我不強迫大家委託我,畢竟他才上線沒幾週而已,加上我之前曾經炸過節點、有前科,所以大家斟酌委託就好...
痛定思痛,我做了什麼事?
俗話說得好
哪裡跌倒,就先不要急著爬起來,你可以先看一看地上有沒有錢(笑)
在這次經驗後,我痛定思痛,絕對要極力避免犯下相同的錯;於是我做了以下幾件事
- 開啟Linode自動備份(一個月多2.5美金支出)
- 備份節點資料(區塊資料以外的)到我自己的PC
- 增加一個Volume,並讓他來存節點資料的備份(約1XX多G,每個月多15美金)
- 寫技術文,幫助自己也幫助別人架節點->文章在此
所以總計起來,我的節點每個月的營運費用將會來到$60美金上下,不過因為我自己有炸過節點的緣故,我也是甘願吸收了;就等著我繼續努力服務,把大家的信任賺回來吧!
結語
D. 代幣持有人關心驗證人對社區的貢獻 根據調查,委託人在選擇驗證人的時候所關心的事項依次為: 名聲 社群貢獻 安全審計結果 委託排名 透明度 長壽(驗證人驗證交易多久了?)
其實驗證人揀選指標中,有一項是「長壽」的問題,坦白說我就是剛好在「長壽」這部分可以說是打了個不及格,因為我真的有太多太多要改進的地方
但是同時我也有另外一個極端,那就是我同時是一個開發/教育者;我再成為驗證人之前我開發了一款小小的APP-碼農日常-『科技』Likecoin餘額小工具正式上架!!(內附IOS操作方法),未來我還正在計畫完成Matters-Tools以及LikeCoin-Market,以及還有在計畫接手重製@糾古 的OTC場外交易平台(已獲取本人同意)
在教育面,我跟@樹懶的生活 共同創辦了#阿瑪線上工作坊,主旨在於推廣LikeCoin寫作生態以及教育LikeCoin社區體系;明年預計有將此工坊推往別的寫作平台,並且最終目標是發行線上錄影課程。
最後講點比較辛辣的,最近不知道為何多了很多新興驗證人,我覺得這是非常好的一件事!
但是我想說的是,雖然大家好像都覺得阿瑪我輕輕鬆鬆就上線,輕輕鬆鬆就不靠社區拿到30萬的委託,但有一句我的肺腑之言
請問,你看過我努力的多久嗎?
我的宣傳也好,我的努力也好;我甚至都還推崇大家去委託優秀驗證人@catding 、@JohnShao 甚至我比較不熟的@Nicholas 、@leafwind 等人,雖然我也是要賺錢,但是我也不打算真的把他當賺錢工具,對我來說驗證人是一個頭銜,是方便我做教育推廣用的而已,到最後我得來的這些錢還不是都支持給大家了?所以真正受益的是誰呢?我還是希望可以好好想想。
所以,我邀請現在新興的驗證人們,或者想成為驗證人的人們;請你們好好想一下自己接下來要對社區做的貢獻,擬定方針,給一個確實有可能做得到的目標,然後
我的人生座右銘 -"人生就是要ㄎㄧㄤ爆"...喔不是,是Just do it.
做,然後宣傳,並實際告訴大家其效益在哪裡,能怎麼貢獻給大家,有些東西理念很好,但是太過抽象,不知道實際效益在哪,這樣是真的很可惜的