Home

Awesome

Nervos Network RFCs

This repository contains proposals, standards and documentations related to Nervos Network.

The RFC (Request for Comments) process is intended to provide an open and community driven path for new protocols, improvements and best practices, so that all stakeholders can be confident about the direction of Nervos network is evolving in.

RFCs publication here does not make it formally accepted standard until its status becomes Standard.

Categories

Not all RFCs are standards, there are 2 categories:

Process

The RFC process attempts to be as simple as possible at beginning and evolves with the network.

1. Discuss Your Idea with Community

Before submitting a RFC pull request, you should send the draft to community to solicit initial feedbacks. The #rfc-chat discord channel or Nervos Talk are both good places to go.

2. Create A Pull Request

After discussion, please create a pull request to propose your RFC:

Copy 0000-template as rfcs/0000-feature-name, where feature-name is the descriptive name of the RFC. Don't assign a number yet. Reserve a RFC number in this issue.

Nervos RFCs should be written in English, but translated versions can be provided to help understanding. English version is the canonical version, check english version when there's ambiguity.

Nervos RFCs should follow the keyword conventions defined in RFC 2119, RFC 6919.

A RFC should be put in either Informational Track or Standards Track. A RFC on Standards Track is a technical specification for software developers to facilitate an interoperable ecosystem. A RFC on Informational Track is a descriptive document providing necessary and/or helpful information to users and builders.

A RFC on Informational Track has 3 statuses:

  1. Draft (initial status)
  2. Withdrawn
  3. Final

A RFC on Standards Track has 5 statuses:

  1. Proposal (initial status)
  2. Active
  3. Withdrawn
  4. Rejected
  5. Obsolete

3. Review / Accept

The maintainers of RFCs and the community will review the PR, and you should update the RFC according to feedbacks. When a RFC is ready and get enough supports, it will be accepted and merged into this repository. The acceptance of a RFC is based on rough consensus at this early stage, we'll keep improving it as the network and ecosystem develops, until we reached the decentralized governance stage.

RFCs

NumberTitleAuthorCategoryStatus
1The Nervos Network Positioning PaperThe Nervos TeamInformationalFinal
2Nervos CKB: A Common Knowledge Base for Crypto-EconomyJan XieInformationalFinal
3CKB-VMXuejie XiaoInformationalFinal
4CKB Block Synchronization ProtocolIan YangInformationalFinal
5Privileged architecture support for CKB VMXuejie XiaoInformationalWithdrawn
6Merkle Tree for Static DataKe WangStandards TrackActive
7P2P Scoring System And Network SecurityJinyang JiangStandards TrackWithdrawn
8SerializationBoyu YangStandards TrackActive
9VM SyscallsXuejie XiaoStandards TrackActive
10Eaglesong (Proof-of-Work Function for Nervos CKB)Alan SzepieniecStandards TrackActive
11Transaction FilterQuake WangStandards TrackWithdrawn
12Node DiscoveryLinfeng Qian, Jinyang JiangStandards TrackActive
13Block TemplateDingwei ZhangStandards TrackActive
14VM Cycle LimitsXuejie XiaoStandards TrackActive
15Crypto-Economics of the Nervos Common Knowledge BaseKevin Wang, Jan Xie, Jiasun Li, David ZouInformationalFinal
17Transaction Since PreconditionJinyang Jiang, Ian Yang, Jordan MackStandards TrackProposal
19Data StructuresXuejie XiaoInformationalWithdrawn
20CKB Consensus ProtocolRen ZhangInformationalDraft
21CKB Address FormatCipher Wang, Axel WanStandards TrackActive
22CKB Transaction StructureIan YangInformationalDraft
23Deposit and Withdraw in Nervos DAOJan Xie, Xuejie Xiao, Ian YangStandards TrackActive
24CKB Genesis Script ListDylan DuanInformationalFinal
25Simple UDTXuejie XiaoStandards TrackProposal
26Anyone-Can-Pay LockXuejie XiaoStandards TrackProposal
27CKB Block StructureIan YangInformationalDraft
37CKB Consensus Change (Edition CKB2021)Ian YangInformationalDraft
39Cheque LockDylan DuanStandards TrackProposal
42OmnilockXu JiandongStandards TrackProposal
43CKB Softfork ActivationDingwei ZhangStandards TrackProposal
44CKB Light Client ProtocolBoyu YangStandards TrackProposal
45CKB Client Side Block Filter ProtocolQuake WangStandards TrackProposal
46CKB VM Syscalls SummaryShanInformationalDraft

License

This repository is being licensed under terms of MIT license.