首頁>科技>

作者 | Micah Zoltu

參與者

以太坊客戶端開發者 - 任何維護以太坊客戶端的人。這包括Geth、OpenEthereum、Nethermind開發者以及Besu開發者和維護這些客戶端的Ethereum Classic分叉的開發者(對於ETC分叉的維護者,他們的參與有點特殊,我今天不會在這裡討論這個問題)。使用者--使用以太坊進行交易的人。這包括使用dapp的人,傳送/接收幣的人等。使用者委託 - 通常情況下,使用者會將自己的決策權委託給第三方。Infura和中心化交易所是兩個非常常見的委託人。主流的dapp是另一類常見的使用者委託,使用者會去他們最喜歡的dapp所在鏈上。當我們說到使用者做決定的時候,很多時候會委託給其他地方,但最終還是使用者的決定。

流程

每個客戶端都有自己的開發者,他們有自己的動機、願景等。每一個產品的開發者之間都會決定他們想要在客戶端中放入什麼,什麼時候釋出客戶端,以及釋出更新時客戶端會有什麼功能。

現在不同客戶端對於開發者來說是可選的,但在過去,客戶端開發者表示希望彼此保持相容,所以他們通常會派一名代表參與交流,試圖與其他客戶端開發者協調。

最終,每個客戶端團隊都會發布他們認為合適的客戶端更新,這些更新(理想情況下)將與其他客戶端相容,並擁有與其他客戶端一致的分叉塊號。如果客戶端釋出相容的程式碼,共享一個fork塊觸發器,那麼客戶端在使用者執行時將能夠相互通訊。

一旦客戶端釋出,客戶端開發者和/或他們的支持者會向用戶做公告,使用者會選擇是否更新客戶端,或者可能切換客戶端。使用者通常會將這一決定委託給第三方,如Infura或中心化交易所,但終端使用者可以決定他們想要在什麼哪裡進行交易。在委託投票的情況下,如果他們不同意他們的委託人,他們通常可以切換供應商(這對於託管委託來說有點棘手,因為託管人可能會拒絕把你的錢交給託管人不同意的鏈上)。

誰來做決定?

這裡沒有單一的決策者。任何人都可以釋出一個客戶端,宣佈一個客戶端,分叉一個客戶端(它們都是開源的)等等,使用者可以選擇使用任何他們想要的客戶端。

每個客戶端的核心開發者都有一套他們個人所關心的特殊內容,他們通常會向其他客戶端開發者表達。如果所有的客戶端開發者都同意開發同樣的功能,那麼事情就會很順利,他們會在釋出時間表上進行協調。

如果客戶端開發者沒有就釋出什麼功能或何時釋出達成一致,那麼他們中的一些人可能會開發、宣佈並推出不同的功能集。我們之前在ETH/ETC的分叉中就看到了這種情況,並不是所有的客戶端開發者都同意如何進行,所以我們最終得到了兩條不同的鏈,由不同的群體來維護。

如何處理分歧?

沒有一個核心開發人員認為這是一個好主意,他們都決定不把它整合到他們維護的客戶端中。一些核心開發人員認為這是一個好主意,但不願意分叉,而另一些人認為這是一個壞主意,願意分叉。有些核心開發人員認為這是個好主意,願意分叉,而有些人認為這是個壞主意,不願意分叉。一些核心開發人員認為這是一個好主意,願意分叉,而另一些人認為這是不好的,願意分叉。所有核心開發人員都認為這是一個好主意。在1和5的情況下,事情進展非常順利。在2和3的情況下,通常會進行討論,試圖通過了解人們產生分歧的根本原因來達成共識,如果可能的話,試圖為這些問題找到一個可行的解決方案,但如果不能達成 "粗略的共識",那麼信念更堅定的一方可能會獲勝。在4的情況下,我們有一個類似ETH/ETC的分叉。

使用者如何參與其中?

作為以太坊的使用者,您可以選擇是否執行一個給定的客戶端,這意味著如果您認為改變不好,您可以選擇乾脆不升級。事實上你也鼓勵您嘗試說服其他人(在適當的場合)和您一起執行不同的客戶端,如果您認為這樣做是最好的。

如果你有技術頭腦,你也可以透過向核心開發人員提出新的技術想法來參與(例如,透過https://ethresear.ch)。你也可以透過加入現有的團隊、維護自己的fork或者從頭開始構建一個新的客戶端來參與客戶端的開發。

開發者如何決定要寫什麼程式碼?

每個以太坊客戶端開發者都有自己的動機,有些是眾所周知的,有些是保密的。這些動機有些是經濟上的(例如,他們被別人贊助,而別人也有自己的動機),有些動機是利他的(例如,他們想建立一個更抗審查的未來)。

然而,由於上文提到的 "使用者決定執行什麼 "的特點,核心開發者通常會構建他們認為使用者現在和未來會想要執行的軟體。大多數以太坊客戶端開發者對編寫沒有人使用的軟體不感興趣,所以最終他們通常以他們認為使用者想要的東西,或者對使用者有利的東西為指導。

Micah Zoltu 作者

李翰博 翻譯

李翰博 編輯

內容僅供參考 不作為投資建議 風險自擔

12
最新評論
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 蜻蜓FM的「全站暢聽」,撕開了音訊行業哪層口子?