什麼是以太坊核心開發者(Ethereum core developer)?

買賣虛擬貨幣
很多人都有疑問,到底是什麼因素決定了一個人能成為以太坊核心開發者(Ethereum core developer),或者說,這個詞到底意味著什麼。作為以太坊社羣的開發者聯絡人,我深入參與到了以太坊 1.0 協議開發的日常運營中,也一直在運營以太坊核心開發者影片會議(也就是 “AllCoreDevs call”);自 2016 年下半年以來,每兩週一次會議,安排在週五。那麼,下文並不是一個權威意見,只代表我個人看法。本文中的任何內容都不代表我的僱主以太坊基金會的意見。歷史以太坊 “core team”(核心團隊)的稱呼可以回溯到 2014 年 7 月的 Reddit 論壇上的一個 “有問必答” 帖子中,是由早期的以太坊團隊回答的。在該帖子中,以太坊團隊在自己的名字中新增了一個詞,於是成為 “Ethereum core team”。到 2015 年底,以太坊聯合創始人 Gavin Wood 建立了一個名為 “AllCoreDevs” 的 Gitter 頻道,以太坊的核心開發者可以在其中溝通協議的開發事項。第一場以太坊核心開發者影片會議也是在這個頻道中組織的。我也在我的舊文 “以太坊協議開發智力與網路升級協作” 中展開了 “AllCoreDevs” 影片會議的歷史。定義以太坊核心開發者就是那些正在(currently)為以太坊底層協議開發提供重要貢獻的人。重大貢獻的一個例子就是給以太坊軟體(在比 dApp 層更底層的層面,比如客戶端程式碼)提交多個程式碼。(核心開發者的)另一個例子就是在為以太坊 2.0 撰寫協議規範(protocol specification)的人。我在這裡使用 “currently” 一詞是因為,“核心開發者” 並不是一個授予某人的頭銜,也絕不是永久性的。如果你不再提供貢獻了,那你就只是一個 “前以太坊核心開發者”。舉例而言,雖然以太坊聯合創始人 Gavin Wood 曾經為早期的以太坊作出重大貢獻,他現在已經不再被認為是以太坊核心開發者了,只是前核心開發者。這裡還有一個我在幾年前寫的定義,我放在了一個核心開發者會議記錄的程式碼庫裡,用於定義哪些人能參加會議:
底層協議開發者、客戶端開發以及核心的以太坊研究員受邀參與該會議。一般來說,每一種以太坊客戶端都有代表參加,還有 Layer-1 研究/擴充套件方案團隊的重要成員。有時候,雖非核心開發者、但對某個領域有專業經驗的人員也會受邀討論特定議題。如果你覺得你出席會議會對大家有所幫助,請透過 admin@chaindaily 聯絡 Hudson Jameson。因為我承擔了組織以太坊核心開發者會議的責任,我一直在負責挑選參加會議的人選。請求列席會議的絕大多數人都能受到邀請。決定誰來參加會議基本上完全沒有爭議,因為會議實際上非常無聊,如果你對以太坊 1.0 協議改進沒有興趣,你根本就不想來參加。會議的議程是公開的,會議是實時直播的,也會儲存在 YouTube 上,會議記錄也有人撰寫和公開,所以非核心開發者實際上不需要參加會議,可以在 YouTube 上看,或者事後閱讀會議記錄。那研究員怎麼歸類呢?現在有很多 “技術生態會議”,以太坊核心開發者會議、Eth2.0 會議、無狀態以太坊會議。人們有時覺得以太坊核心開發者只包括那些參加了以太坊核心開發者會議的人,但這其實是不準確的。以太坊 2.0 的研究員和其他正在做重要研究(比如 beam sync 和無狀態以太坊)的也是核心開發者,在我看來。我覺得以太坊 2.0 研究員被叫做 “Eth2 研究員” 在先、“核心開發者” 在後,只是因為他們所參與的會議名字和跟他們相關的事情。畢竟,透過會議而非 GitHub 庫的程式碼提交來區分核心開發者和 Eth2.0 研究員,要更容易。誰來決定某個人是不是核心開發者?沒有人能做這樣的決定。沒有誰被指定去決定誰有資格當以太坊的核心開發者。它是由貢獻和聲譽來主導的突變過程。下面這句話,來自 Jameson Lopp 的精彩博文 “誰控制著 Bitcon Core?”,說明了如何定義比特幣核心維護者:
誰算是比特幣核心維護者?在一段時間內做出高質量貢獻、從而具備可觀社會認可度的貢獻者。這個定義也適用於以太坊核心開發者。有沒有人能自稱是核心開發者?沒有什麼硬性手段能阻止一個人自稱是以太坊的核心開發者。本來也是,任何人都能為以太坊協議開發作貢獻(雖然他們的貢獻不一定會被接受)。在以太坊社羣中,我們還沒有遇到 “冒名核心開發者” 引發的大問題。如果此類問題抬頭,我猜怎麼點出來還是取決於社羣。而且就算那樣,最終來說那也不過是一個帽子,我們不應該太過認真。我曾經遇到一些人要求剝奪某人的核心開發者頭銜的情況(因為該人在社羣中的意見和行為)。因為這個頭銜本身不是由某個人指定的,那整個社羣自然完全有權宣佈某人不是核心開發者。但這既不會把某個人對以太坊協議的貢獻一筆勾銷,也不意味著 TA 不再能參加核心開發者會議。這只不過意味著整個社羣覺得某人當不起這個頭銜。就我所知,迄今為止還沒有出現過這種情況。現在的核心 開發者/開發團隊 都有誰?
為以太坊協議開發的團隊和個人太多了,數不勝數。此外,還有些人雖然在開發協議,但並不希望被掛上這個頭銜,也不想在什麼部落格中露面。以太坊客戶端開發的美麗之處在於,以太坊 1.0 和 2.0 都有多個用不同語言開發的客戶端,為網路提供了冗餘性。客戶端們致力於實現一個技術規範,而不是讓某個客戶端本身變成規範,讓大家都來跟隨它。因為我深度參與了以太坊 1.0 客戶端開發的生態,我這裡會列出幾個活躍的以太坊 1.0 客戶端。這個列表沒有包括其他重要的團隊,比如測試團隊和 ConsenSys Quilt 研究開發團隊。geth(Go 語言)Nethermind(.NET Core 語言)OpenEthereum(Rust 語言)Trinity(Python 語言)ethereumJS(JavaScript 語言)
Besu(Java 語言)結論標籤和頭銜當然重要,但也不該過分看重。定義一組人為核心開發者,在你對以太坊協議層開發有疑問、想要問人的時候,是很有幫助的。但不用太在意誰是或不是以太坊核心開發者,因為最終來說,這是根據聲譽和貢獻而授予的榮譽,你不能把那些貢獻都一筆抹消。如果你對以太坊協議開發有興趣,想作出自己的貢獻,不要猶豫,來聯絡我!我會高高興興把你引薦到合適的人那裡去。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;