PIP-0001.md 5.9 KB

  PIP: 1
  Title: PIP Purpose and Guidelines
  Type: Process
  Impact: None
  Author: Herman Schoenfeld <[email protected]>
  Comments-URI: https://github.com/PascalCoin/PascalCoin/issues/44
  Status: Draft
  Created: 2017-07-24 

Abstract

A PascalCoin Improvement Proposal (PIP) is a design document for introducing features and/or information into PascalCoin. As of this publication date, this is the standard way for changes to be introduced into PascalCoin. Anyone can submit a PIP and all PIPs are evaluated through the PIP Workflow.

PIPs are intended to be the primary mechanisms for proposing new features and documenting design decisions. It is the responsibility of the PIP author to document community consensus including dissenting opinions.

Copyright

This PIP is dual-licensed under the Open Publication License and BSD 2-clause license.

PIP Workflow

Anyone can author a PIP and submit it to the PIP Maintainer via e-mail or GitHub pull-request. The PIP Maintainer will validate the submission matches the PIP Format, and once corrected, will be added/pulled into the PascalCoin repository. The PIP is then evaluated through the PIP Workflow as follows:

PIP Workflow

Once the PIP is submitted to the PIP Maintainer, the PIP Maintainer maintains the status of the PIP as the workflow progresses.

Consensus

Consensus on a PIP is arrived at by the community and the PascalCoin developers.

Transferring Ownership

If it becomes necessary to transfer ownership of a PIP, the original author is retained as a co-author and the new author is added to the PIP. This process takes place by the new author sending an email to the PIP Maintainer, carbon-copying the original author, explaining the transfer. The original author must consent if reasonably able to do so. The PIP Maintainer can make the decision without the original author.

PIP Maintainer

The current PIP Maintainer is Herman Schoenfeld who can be contacted at [email protected].

PIP Format and Structure

A PIP submission should be written in mark-down (GitHub flavor) and consist of the following structure:

  • Header -- Metadata description of the PIP (see below).
  • Summary -- Short (~200 word) description of the technical issue being addressed.
  • Motivation -- Clear explanation of why current protocol is inadequate to address the problem the PIP solves.
  • Specification -- Full technical description of the proposed new feature, clear enough for implementation.
  • Rationale -- Discussion why was the specification was chosen over alternate designs. Evidence supporting the specification should be provided here, as well as community concerns and consensus.
  • Backwards Compatibility -- Any backwards incompatibilities should be described here, as well as work-arounds/solutions for these incompatibilities.
  • Reference Implementation -- The reference implementation must be provided before PIP is Completed.
  • Links -- References and links to relevant material.

PIP editors can begin by downloading the PIP Template and editing via an online editor.

Header

  PIP: <PIP number, or "?" before being assigned>
  Title: <PIP title; maximum 44 characters>
  Type <The type of PIP, see below for options>
  Author: <list of authors' real names and email addrs>
  Impact <How impactful the proposed changes are, see below for details. Format: Severity - Sub-System(s)>
* Discussions-To: <email address>
* Comments-Summary: <summary tone>
  Comments-URI: <links to wiki page for comments
  Status: <Workflow status, see above>
  Type: <Standards Track | Informational | Process>
  Created: <date created on, in ISO 8601 (yyyy-mm-dd) format>
* Requires: <PIP number(s)>
* Replaces: <PIP number>
* Superseded-By: <PIP number>
  • are optional fields.

PIP Types

PIP Type Description
Protocol Changes to the network protocol relating to Blocks, Operations and the SafeBox.
Backend Changes to the JSON RPC-API, Daemon or implementation-level concern such as storage, etc
Frontend Changes to the the wallet including GUI, UX, JSON-RPC etc
Informational Design issues, general guidelines. Does not require PIP consensus, informational only
Process Describes change in PIP process.

A PIP may have multiple types.

Impact Severity

Impact Description
None can be implemented without impacting network
Soft-Fork changes can be deployed as an optional upgrade whilst retaining backwards compatibility with non-upgraded nodes.
Hard-Fork changes require a scheduled network-wide upgrade whereby non-upgraded nodes will not inter-operate with upgraded nodes.

Impacted Sub-system

Sub-system Description
Protocol changes to the PascalCoin network protocol
API changes to JSON-RPC API
GUI changes to wallet GUI
Mobile changes to mobile GUI or implementation
Other changes to any other aspect of how PascalCoin is implemented. For examples, changes to log format or how persistence-layer would fall other here.
  1. Online Markdown Editor
  2. Template PIP