為比特幣寫程式碼有多苦逼?多位core開發者的親身體驗告訴你答案
在區塊鏈世界,若要論程式碼更新最困難的專案,莫過於bitcoin core了,例如,前比特幣程式碼維護者Gavin Andresen和Jeff Garzik ,兩者皆因自己的大區塊提議未被core接受並遭到社群部分人的抨擊而離開社群,而在bitcoin core開發組,提議和程式碼被拒絕的情況是非常多見的,可以說,選擇為比特幣貢獻程式碼,需經歷重重的考驗,也因此,bitcoin core可稱得上是區塊鏈世界的修羅之地。
最近,比特幣程式碼貢獻者David A. Harding便提到了core開發者的不容易,他寫道:
從open到合併用了31個月的時間; 更新或重新調整152次; 建立了近十幾個衍生PR; 來自所有評論者近200多條評論; 這就是獻身。 ”
這就好比我們寫一篇文章,需要反反覆覆修改150多次,且歷經數年的時間才能夠發表,這樣的體驗,恐怕鮮有人能夠持續去做吧。
比特幣core軟體維護者Jonas Schnelli則感嘆道:
“我深有感受,在bitcoin core 工作會降低效率。你需要找到極度耐心的源泉。大多數開發人員都習慣了自己編寫的程式碼會被合併。而在Core,即使是一個簡單的修復,也可能需要一個月的時間。但這是有原因的,永不言棄。”
當然,除了感嘆之外,也有人在反思說core的流程是失敗的,例如比特幣core軟體程式碼貢獻者Jeremy Rubin就評論說:
“我認為這是一種失敗,考慮到有能力完成這類工作和審查的天才工程師的數量之少,而且還存在工作倦怠和對流程失望的因素。”
此後,另一位比特幣開發者Greg Maxwell評論說:
他因為自己不慎引入了漏洞,而失去了信心(我認為個人責任感讓他更加沮喪)。
最近,他突然提出了一個 共識清理軟分叉 方案... 但即便如此,這也已被一些小障礙所困擾,比如說郵件列表已經沉了幾個星期。
其他一些人因“segwit2x”和相關的攻擊和戲劇而受到嚴重的動機性傷害,他們覺得沒有好的工作可以使得自己不引入注意。(譯者注:似乎是在說Maxwell自己,他因擴容爭論被惡意攻擊,最終辭去了core維護者和Blockstream CTO的身份)
就我個人而言,我覺得總體上來說,生產性工作(甚至只是樂趣)已被逐出我們的社群空間……例如,比特幣開發(#bitcoin-dev)頻道被比特幣專案的所有活躍開發者拋棄了,這是因為一個不活躍的貢獻者反對禁止邁克·赫恩(當時他對 Wladimir進行了侮辱),#bitcoin-wizards頻道被它的創始人和最活躍的貢獻者(我和peter todd)拋棄了,因為在那裡有一些人反對做任何事情。你可以堅持一個對每個人都開放的場所,但你不能堅持認為任何有價值的人,都會選擇在那裡度過他們的時間。
在過去一年左右,我用比特幣做的唯一特別有趣的事情,基本上都是在(半)私人場所(比如1:1聊天)做的,比如TapRoot和GraftRoot的協作部分(比如命名)就發生在山頂的一家早餐餐廳,當時我正在拜訪sipa,或者minisketch這個提議,關於它的大多數工作都發生在一個 IRC頻道里,這是一個你可在不必為荒謬的攻擊辯護的情況下完成一個想法的地方。但這隻涉及幾個人,部分原因是私人場所沒有規模,但這也存在著問題。
不同的人關心不同的事情——例如,sipa經常認為困擾我的事情是沒有問題的——但事實證明,可能會有多個問題。
”
所以,請善待每個為比特幣貢獻程式碼的開發者,他們是區塊鏈世界最無私的人,最值得去尊敬的人。