Home

Awesome

<div align="center">

DIPs - Darwinia Improvement Proposals

</div>

Introduction

The Darwinia Improvement Proposals (DIPs) project is inspired by Ethereum's EIPs process. This system is designed to gather, collect, and implement ideas from the Darwinia community to help the Darwinia network evolve. DIPs serve as a formalized way to propose new features, improvements, and changes to the Darwinia ecosystem, ensuring that the community’s best ideas are documented and implemented.

DIP Workflow

The DIP process begins with a community discussion. To propose an idea or improvement, please start a discussion at Darwinia GitHub Discussions. Discussions that attract the most engagement will be prioritized for further consideration.

Once the discussion reaches a consensus, the next step is to formalize the idea into a Darwinia Improvement Proposal (DIP). The natural language description from the discussion will be strictly converted into a formal DIP document, ensuring no ambiguity between what was agreed upon and what is described in the proposal.

The formal DIP will be reviewed by Darwinia's core developers. A DIP is considered approved and can be merged if it receives approval from 2/3 of the core developers. Once merged, the engineering work required to implement the DIP will proceed.

DIP Statuses

Each DIP goes through several stages during its lifecycle. Below are the common statuses used to track the progress of a DIP:

The status of a DIP is updated as it moves through the proposal process, ensuring clear communication of its current state.

Contribution Guidelines

We welcome contributions from everyone! Follow these steps to submit a DIP:

  1. Clone this repository: Start by cloning the DIPs repository from GitHub:
    git clone https://github.com/darwinia-network/DIPs
    
  2. Create a new DIP:
    • Copy the template.md file and paste it into the DIPs folder.
    • Rename the file according to the DIP number you are submitting. For example, if you are submitting DIP-0, rename the file to dip-0.md.
  3. Fill out the template:
    • The template is minimal but comprehensive. Every section must be filled out as none of the sections are optional. You may, however, add additional sections if needed.
    • Ensure the description in the DIP matches precisely with the consensus reached in the discussion. The transition from natural language to formal proposal should be clear and free from ambiguity.
    • If your DIP is related to another DIP, reference it in the relate-to field at the start of the document.
    • If your DIP supersedes another DIP, update the superseded DIP as necessary. You can refer to dip-0.md for an example.
  4. Submit a Pull Request: Once your DIP is ready, submit a pull request to this repository. The proposal will be reviewed by Darwinia's core developers. A DIP will be merged if it receives approval from at least 2/3 of the core developers.

Additional Notes


Thank you for contributing to Darwinia through the DIP process. Your ideas and efforts help shape the future of the Darwinia network!