Many people have questions about what factors determine that a person can become an Ethereum core developer, or what the word means. As the developer liaison of the Ethereum community, I have been deeply involved in the daily operation of the Ethereum 1.0 protocol development, and have been operating the Ethereum core developer video conference (also known as "AllCoreDevs call"); since the second half of 2016 , A meeting every two weeks, scheduled on Friday. So, the following is not an authoritative opinion, only my personal opinion. Nothing in this article represents the opinion of my employer, the Ethereum Foundation.
History
The term "core team" of Ethereum can be traced back to a "Question and Answer" post on the Reddit forum in July 2014, which was answered by the early Ethereum team. In this post, the Ethereum team added a word to its name, which became the "Ethereum core team". By the end of 2015, Ethereum co-founder Gavin Wood created a Gitter channel called "AllCoreDevs", where the core developers of Ethereum can communicate about the development of the protocol. The first Ethereum core developer video conference was also organized in this channel. I also launched the history of "AllCoreDevs" video conference in my old article "Ethereum Protocol Development Intelligence and Network Upgrade Collaboration".
Definition
The core developers of Ethereum are those who are currently providing important contributions to the development of the underlying protocols of Ethereum. An example of a major contribution is the submission of multiple codes to Ethereum software (at a lower level than the dApp layer, such as client code). Another example (of a core developer) is someone who is writing a protocol specification for Ethereum 2.0. I use the term "currently" here because "core developer" is not a title granted to someone, nor is it permanent. If you no longer contribute, then you are just a "former Ethereum core developer". For example, although Ethereum co-founder Gavin Wood once made a significant contribution to the early Ethereum, he is no longer considered a core developer of Ethereum, but a former core developer.
There is also a definition for defining who can attend the meeting:
Low-level protocol developers, client developers, and core Ethereum researchers were invited to participate in the conference. Generally speaking, every Ethereum client has representatives to participate, as well as important members of the Layer-1 research/expansion project team. Sometimes, people who are not core developers but have professional experience in a certain field are also invited to discuss specific topics. If you think your presence at the conference will be helpful to everyone, please contact Hudson Jameson at [email protected].
Most people who request to attend the meeting can be invited. There is basically no controversy in deciding who will attend the meeting, because the meeting is actually very boring. If you are not interested in the improvement of the Ethereum 1.0 protocol, you don't want to attend at all. The agenda of the meeting is public, the meeting is live broadcast in real time, and will also be saved on YouTube. The meeting records are also written and published, so non-core developers don’t actually need to attend the meeting, they can watch it on YouTube or read the meeting afterwards. recording.
How to classify researchers?
There are many "technological ecological conferences", Ethereum core developer conferences, Eth2.0 conferences, and stateless Ethereum conferences. People sometimes think that Ethereum core developers only include those who participated in the Ethereum core developer conference, but this is actually inaccurate. The researchers of Ethereum 2.0 and others who are doing important research (such as beam sync and stateless Ethereum) are also core developers, in my opinion. I think Ethereum 2.0 researchers are called "Eth2 researchers" first and "core developers" second, just because of the names of the conferences they participated in and things related to them. After all, it is easier to distinguish between core developers and Eth2.0 researchers through meetings rather than code submissions from the GitHub repository.
Who decides whether someone is a core developer?
No one can make such a decision. No one is appointed to decide who is eligible to be the core developer of Ethereum. It is a mutation process dominated by contribution and reputation. The following sentence, from Jameson Lopp’s wonderful blog post "Who controls Bitcon Core?", explains how to define Bitcoin Core maintainers:
Who is the maintainer of Bitcoin Core? Contributors who have made high-quality contributions over a period of time and thus have considerable social recognition.
This definition is also used by Ethereum core developers.
Can anyone claim to be a core developer?
There is no hard way to stop a person from claiming to be the core developer of Ethereum. Originally, anyone can contribute to the development of the Ethereum protocol (although their contributions may not necessarily be accepted). In the Ethereum community, we have not yet encountered major problems caused by "impersonated core developers". If such problems arise, I guess it depends on the community. And even so, in the end it is just a hat, and we should not take it too seriously.
Who are the current core developers/development team?
There are too many teams and individuals developing the Ethereum protocol. In addition, there are some people who are developing the protocol, but don’t want to be given this title, nor do they want to show up on any blog. The beauty of Ethereum client development is that Ethereum 1.0 and 2.0 have multiple clients developed in different languages, providing redundancy for the network. Clients are committed to implementing a technical specification, rather than letting a certain client itself become a specification and letting everyone follow it. Because I have been deeply involved in the ecology of Ethereum 1.0 client development, I will list several active Ethereum 1.0 clients here. This list does not include other important teams, such as the test team and the ConsenSys Quilt research and development team.
- geth (Go language)
- Nethermind (.NET Core language)
- OpenEthereum (Rust language)
- Trinity (Python language)
- ethereumJS (JavaScript language)
- Besu (Java language)
in conclusion
Labels and titles are of course important, but they should not be overemphasized. Defining a group of people as core developers is very helpful when you have questions about the development of the Ethereum protocol layer and want to ask people. But don't care too much about who is or is not the core Ethereum developer, because in the end, this is an honor awarded based on reputation and contribution, and you can't erase all those contributions.
If you are interested in the development of the Ethereum protocol and want to make your own contribution, don't hesitate to contact me! I will happily recommend you to the right person.