很多人都有疑问,到底是什么因素决定了一个人能成为以太坊核心开发者(Ethereum core developer),或者说,这个词到底意味着什么。
历史
以太坊 “core team”(核心团队)的称呼可以回溯到 2014 年 7 月的 Reddit 论坛上的一个 “有问必答” 帖子中,是由早期的以太坊团队回答的。在该帖子中,以太坊团队在自己的名字中添加了一个词,于是成为 “Ethereum core team”。到 2015 年底,以太坊联合创始人 Gavin Wood 创建了一个名为 “AllCoreDevs” 的 Gitter 频道,以太坊的核心开发者可以在其中沟通协议的开发事项。第一场以太坊核心开发者视频会议也是在这个频道中组织的。
定义
以太坊核心开发者就是那些正在(currently)为以太坊底层协议开发提供重要贡献的人。重大贡献的一个例子就是给以太坊软件(在比 dApp 层更底层的层面,比如客户端代码)提交多个代码。(核心开发者的)另一个例子就是在为以太坊 2.0 撰写协议规范(protocol specification)的人。在这里使用 “currently” 一词是因为,“核心开发者” 并不是一个授予某人的头衔,也绝不是永久性的。如果你不再提供贡献了,那你就只是一个 “前以太坊核心开发者”。举例而言,虽然以太坊联合创始人 Gavin Wood 曾经为早期的以太坊作出重大贡献,他现在已经不再被认为是以太坊核心开发者了,只是前核心开发者。
那研究员怎么归类呢?
现在有很多 “技术生态会议”,以太坊核心开发者会议、Eth2.0 会议、无状态以太坊会议。人们有时觉得以太坊核心开发者只包括那些参加了以太坊核心开发者会议的人,但这其实是不准确的。以太坊 2.0 的研究员和其他正在做重要研究(比如 beam sync 和无状态以太坊)的也是核心开发者。ICmarkets中文网觉得以太坊 2.0 研究员被叫做 “Eth2 研究员” 在先、“核心开发者” 在后,只是因为他们所参与的会议名字和跟他们相关的事情。毕竟,通过会议而非 GitHub 库的代码提交来区分核心开发者和 Eth2.0 研究员,要更容易。
谁来决定某个人是不是核心开发者?
没有人能做这样的决定。没有谁被指定去决定谁有资格当以太坊的核心开发者。它是由贡献和声誉来主导的突变过程。下面这句话,来自 Jameson Lopp 的精彩博文 “谁控制着 Bitcon Core?”,说明了如何定义比特币核心维护者:
谁算是比特币核心维护者?在一段时间内做出高质量贡献、从而具备可观社会认可度的贡献者。
这个定义也适用于以太坊核心开发者。
有没有人能自称是核心开发者?
没有什么硬性手段能阻止一个人自称是以太坊的核心开发者。本来也是,任何人都能为以太坊协议开发作贡献(虽然他们的贡献不一定会被接受)。在以太坊社区中,我们还没有遇到 “冒名核心开发者” 引发的大问题。如果此类问题抬头,我猜怎么点出来还是取决于社区。而且就算那样,最终来说那也不过是一个帽子,我们不应该太过认真。
我曾经遇到一些人要求剥夺某人的核心开发者头衔的情况(因为该人在社区中的意见和行为)。因为这个头衔本身不是由某个人指定的,那整个社区自然完全有权宣布某人不是核心开发者。但这既不会把某个人对以太坊协议的贡献一笔勾销,也不意味着 TA 不再能参加核心开发者会议。这只为以太坊协议开发的团队和个人太多了,数不胜数。此外,还有些人虽然在开发协议,但并不希望被挂上这个头衔,也不想在什么博客中露面。以太坊客户端开发的美丽之处在于,以太坊 1.0 和 2.0 都有多个用不同语言开发的客户端,为网络提供了冗余性。客户端们致力于实现一个技术规范,而不是让某个客户端本身变成规范,让大家都来跟随它。
结论
标签和头衔当然重要,但也不该过分看重。定义一组人为核心开发者,在你对以太坊协议层开发有疑问、想要问人的时候,是很有帮助的。但不用太在意谁是或不是以太坊核心开发者,因为最终来说,这是根据声誉和贡献而授予的荣誉,你不能把那些贡献都一笔抹消。