/rfcs

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

Primary LanguagePythonMIT LicenseMIT

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:

  • Standards Track - RFC that is intended to be standard followed by protocols, clients and applications in Nervos network.
  • Informational - Anything related to Nervos network.

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

Number Title Author Category Status
1 The Nervos Network Positioning Paper The Nervos Team Informational Final
2 Nervos CKB: A Common Knowledge Base for Crypto-Economy Jan Xie Informational Final
3 CKB-VM Xuejie Xiao Informational Final
4 CKB Block Synchronization Protocol Ian Yang Informational Final
5 Privileged architecture support for CKB VM Xuejie Xiao Informational Withdrawn
6 Merkle Tree for Static Data Ke Wang Standards Track Active
7 P2P Scoring System And Network Security Jinyang Jiang Standards Track Withdrawn
8 Serialization Boyu Yang Standards Track Active
9 VM Syscalls Xuejie Xiao Standards Track Active
10 Eaglesong (Proof-of-Work Function for Nervos CKB) Alan Szepieniec Standards Track Active
11 Transaction Filter Quake Wang Standards Track Withdrawn
12 Node Discovery Linfeng Qian, Jinyang Jiang Standards Track Active
13 Block Template Dingwei Zhang Standards Track Active
14 VM Cycle Limits Xuejie Xiao Standards Track Active
15 Crypto-Economics of the Nervos Common Knowledge Base Kevin Wang, Jan Xie, Jiasun Li, David Zou Informational Final
17 Transaction Since Precondition Jinyang Jiang, Ian Yang, Jordan Mack Standards Track Proposal
19 Data Structures Xuejie Xiao Informational Withdrawn
20 CKB Consensus Protocol Ren Zhang Informational Draft
21 CKB Address Format Cipher Wang, Axel Wan Standards Track Active
22 CKB Transaction Structure Ian Yang Informational Draft
23 Deposit and Withdraw in Nervos DAO Jan Xie, Xuejie Xiao, Ian Yang Standards Track Active
24 CKB Genesis Script List Dylan Duan Informational Final
25 Simple UDT Xuejie Xiao Standards Track Proposal
26 Anyone-Can-Pay Lock Xuejie Xiao Standards Track Proposal
27 CKB Block Structure Ian Yang Informational Draft
37 CKB Consensus Change (Edition CKB2021) Ian Yang Informational Draft
39 Cheque Lock Dylan Duan Standards Track Proposal
42 Omnilock Xu Jiandong Standards Track Proposal
43 CKB Softfork Activation Dingwei Zhang Standards Track Proposal
44 CKB Light Client Protocol Boyu Yang Standards Track Proposal
45 CKB Client Side Block Filter Protocol Quake Wang Standards Track Proposal
46 CKB VM Syscalls Summary Shan Informational Draft

License

This repository is being licensed under terms of MIT license.