编者按:本文来自?加密谷Live,作者:MicahZoltu,翻译:李翰博,Odaily星球日报经授权转载。
以太坊客户端开发者?-任何维护以太坊客户端的人。这包括Geth、OpenEthereum、Nethermind开发者以及Besu开发者和维护这些客户端的EthereumClassic分叉的开发者。
用户--使用以太坊进行交易的人。这包括使用dapp的人,发送/接收币的人等。
用户委托?-通常情况下,用户会将自己的决策权委托给第三方。Infura和中心化交易所是两个非常常见的委托人。主流的dapp是另一类常见的用户委托,用户会去他们最喜欢的dapp所在链上。当我们说到用户做决定的时候,很多时候会委托给其他地方,但最终还是用户的决定。
流程
每个客户端都有自己的开发者,他们有自己的动机、愿景等。每一个产品的开发者之间都会决定他们想要在客户端中放入什么,什么时候发布客户端,以及发布更新时客户端会有什么功能。
现在不同客户端对于开发者来说是可选的,但在过去,客户端开发者表示希望彼此保持兼容,所以他们通常会派一名代表参与交流,试图与其他客户端开发者协调。?
最终,每个客户端团队都会发布他们认为合适的客户端更新,这些更新将与其他客户端兼容,并拥有与其他客户端一致的分叉块号。如果客户端发布兼容的代码,共享一个fork块触发器,那么客户端在用户运行时将能够相互通信。
一旦客户端发布,客户端开发者和/或他们的支持者会向用户做公告,用户会选择是否更新客户端,或者可能切换客户端。用户通常会将这一决定委托给第三方,如Infura或中心化交易所,但最终用户可以决定他们想要在什么哪里进行交易。在委托投票的情况下,如果他们不同意他们的委托人,他们通常可以切换供应商。
谁来做决定?
这里没有单一的决策者。任何人都可以发布一个客户端,宣布一个客户端,分叉一个客户端等等,用户可以选择使用任何他们想要的客户端。
每个客户端的核心开发者都有一套他们个人所关心的特殊内容,他们通常会向其他客户端开发者表达。如果所有的客户端开发者都同意开发同样的功能,那么事情就会很顺利,他们会在发布时间表上进行协调。
如果客户端开发者没有就发布什么功能或何时发布达成一致,那么他们中的一些人可能会开发、宣布并推出不同的功能集。我们之前在ETH/ETC的分叉中就看到了这种情况,并不是所有的客户端开发者都同意如何进行,所以我们最终得到了两条不同的链,由不同的群体来维护。
没有一个核心开发人员认为这是一个好主意,他们都决定不把它集成到他们维护的客户端中。
一些核心开发人员认为这是一个好主意,但不愿意分叉,而另一些人认为这是一个坏主意,愿意分叉。
有些核心开发人员认为这是个好主意,愿意分叉,而有些人认为这是个坏主意,不愿意分叉。
一些核心开发人员认为这是一个好主意,愿意分叉,而另一些人认为这是不好的,愿意分叉。
所有核心开发人员都认为这是一个好主意。
在1和5的情况下,事情进展非常顺利。
在2和3的情况下,通常会进行讨论,试图通过了解人们产生分歧的根本原因来达成共识,如果可能的话,试图为这些问题找到一个可行的解决方案,但如果不能达成"粗略的共识",那么信念更坚定的一方可能会获胜。
在4的情况下,我们有一个类似ETH/ETC的分叉。
用户如何参与其中?
作为以太坊的用户,您可以选择是否运行一个给定的客户端,这意味着如果您认为改变不好,您可以选择干脆不升级。事实上你也鼓励您尝试说服其他人和您一起运行不同的客户端,如果您认为这样做是最好的。
如果你有技术头脑,你也可以通过向核心开发人员提出新的技术想法来参与。你也可以通过加入现有的团队、维护自己的fork或者从头开始构建一个新的客户端来参与客户端的开发。
开发者如何决定要写什么代码?
每个以太坊客户端开发者都有自己的动机,有些是众所周知的,有些是保密的。这些动机有些是经济上的,有些动机是利他的。
然而,由于上文提到的"用户决定运行什么"的特点,核心开发者通常会构建他们认为用户现在和未来会想要运行的软件。大多数以太坊客户端开发者对编写没有人使用的软件不感兴趣,所以最终他们通常以他们认为用户想要的东西,或者对用户有利的东西为指导。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。