参与者
- 以太坊客户端开发者 – 任何维护以太坊客户端的人。这包括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或者从头开始构建一个新的客户端来参与客户端的开发。
开发者如何决定要写什么代码?
每个以太坊客户端开发者都有自己的动机,有些是众所周知的,有些是保密的。这些动机有些是经济上的(例如,他们被别人赞助,而别人也有自己的动机),有些动机是利他的(例如,他们想建立一个更抗审查的未来)。
然而,由于上文提到的 “用户决定运行什么 “的特点,核心开发者通常会构建他们认为用户现在和未来会想要运行的软件。大多数以太坊客户端开发者对编写没有人使用的软件不感兴趣,所以最终他们通常以他们认为用户想要的东西,或者对用户有利的东西为指导。
本文来自投稿,不代表星空财经BlockGlobe立场,如若转载,请注明出处:加密谷Live,https://mp.weixin.qq.com/s/59eZvqk9I4ClQhCCt-iOdw