The Nervos Foundation strives to create a transparent, decentralized and community involved platform, hence the Nervos Network technology is and always will be open-source. This applies as well to decision making for the future of Nervos. In this article, you will learn how you or anyone can voice an opinion to play a role in influencing the technological direction of the Nervos Network.
Technological decision making affecting the Layer 1 protocol of Nervos starts by creating a publicly accessible document called an RFC (request for comment).
We welcome our community to contribute to our notable RFCs for future improvements. The Major Protocol Upgrade actually started with formal proposals called RFCs which were open for feedback from the community to make improvements to the Nervos Layer 1.
For example, there is RFC37 – CKB Consensus Change (Edition CKB2021) which details all the related changes to the Layer 1 protocol to complete the Major Protocol Upgrade. Click here to see where this concrete document was added and the feedback was gathered. RFC37 links to other RFCs which together form a collection of RFCs detailing all the required changes for the protocol upgrade.
Future hard forks and soft forks proposals will also land in nervosnetwork/rfcs and will be waiting for your contribution to improve them.
Alright, back to the basics!
What is a Nervos RFC?
A Nervos RFC is a standard or document related to Nervos Network that has been reviewed and accepted by the community. The acronym “RFC” stands for “Request for Comments” and it is intended to be an open and transparent community-driven process for new protocols, improvements and best practices. This is designed to give Nervos stakeholders confidence about the path forward as the Nervos ecosystem continues to evolve.
A few notable examples that the community might be familiar with:
- The Nervos Positioning Paper
- The NervosDAO
- CKB-VM (the virtual machine that powers smart contracts on Nervos L1)
- Eaglesong (the PoW algorithm used on Nervos L1)
- CKB address format (the encoding used by every L1 address)
- Simple UDT (SUDT) (the L1 token standard)
A complete list of existing RFCs can be seen on: https://github.com/nervosnetwork/rfcs/blob/master/README.md.
Contributing to existing RFC
The easiest way to get involved is to contribute to existing RFCs by providing feedback. Your contribution may range from fixing typos to asking questions to propose heavy structural changes to the document or providing code examples.
Go to the Nervos RFC Github repository RFCs list and look for RFCs in “Draft” or “Proposal” status. Pick one, read through it and see if you can add something to the discussion. If you run out of RFCs in the readme file, feel free to browse Issues and Pull requests. You can also add feedback to them. It is highly appreciated.
There’s no limit to what you can contribute to the RFC. No contribution is too small. Pick something that you’re comfortable with at the time of reading this article and you can scale up as you get more confident.
One of the requirements to get involved is to have a Github account if you want to add something to RFCs that have landed already in the Nervos RFC Github repository. It is free to create an account and you’re encouraged to do so.
It is common for a technical discussion to start in a different place than Github – for example on “CKB Development & Technical Discussion” forum. If you’d rather get involved there then you also need to create a free account.
Creating your own RFC
Creating your own RFC might require more effort than contributing to an existing one. Jordan Mack from the Developer Relations team at Nervos Foundation prepared some tips for you to maximize your RFC success:
- Begin discussing your concept with the community informally to get early feedback. Talking with others on Discord and Telegram are good places to start. Usually, #dev-chat channel on Nervos Discord is a decent place for technical discussions.
- Create a thorough write up of your proposal. This should be detailed enough so that everyone can understand exactly what is being proposed, why it is being proposed, and the exact technical details of how it would be implemented. Post your write up publicly where it can be viewed and begin formally collecting feedback from other developers and users. Posting it on talk.nervos.org in the “CKB Development & Technical Discussion” forum is very common since this is a regular place of interaction in the Nervos technical community. Formal feedback collection is important to easily highlight community’s point of view in further steps. Link to the previous discussion or quotes might be a valuable addition to the actual RFC (just post it in the comments and not as part of the RFC).
- Once you have collected feedback and attracted support from the community, refine your proposal and make a formal RFC. Be sure to use the guidelines set in the Nervos Network RFCs README (https://github.com/nervosnetwork/rfcs/blob/master/README.md). Make a pull request for your proposal on GitHub to the Nervos Network RFCs repository (https://github.com/nervosnetwork/rfcs).
- After your proposal has been reviewed and merged, it will begin in the “Draft” status for informational proposals, or “Proposal” status for standards proposals. At this point, your proposal will undergo review and scrutiny by the Nervos community and stakeholders. The acceptance of an RFC is based on rough consensus (https://en.wikipedia.org/wiki/Rough_consensus), meaning that the Nervos Foundation has determined that the proposal has been reviewed and gained support from a significant amount of the community and stakeholders. In the future, acceptance of RFCs will be handled with decentralized governance, likely using DAO voting
The process of RFC acceptance can take months to years since your proposal must be reviewed by a significant amount of the community, but there is no obligation by anyone to do this quickly or at all. Be patient, but also do not be afraid to continue to promote your proposal within the community to gain more support and attention. Those with something to gain from your proposal are more likely to review and support it, and they will only review it if they are aware it exists.
- After your proposal has been accepted, it will become a standard and remain part of the Nervos Network RFCs repository as long as it is relevant. However, a standard is only as good as the projects it is used by. Therefore, you should continue to promote and encourage others to use the standard until it firmly establishes itself within the ecosystem.
Regardless of whether you choose to contribute to the existing RFC, create your own or simply observe what’s going on with the protocol we’re happy you’re part of the community!
Stay involved and help provide input into the future of the Nervos platform just like what was done by the community to help usher through the Nervos Layer 1Major Protocol Upgrade.