2019-07-19 13:39:58 -07:00
|
|
|
::
|
|
|
|
|
|
|
|
ZIP: Unassigned {numbers are assigned by ZIP editors}
|
|
|
|
Title: {Something Short and To the Point}
|
|
|
|
Owners: First Owner <email>
|
|
|
|
...
|
2020-01-01 08:28:27 -08:00
|
|
|
Credits: First Credited
|
2019-07-19 13:39:58 -07:00
|
|
|
...
|
|
|
|
Status: Draft
|
2019-08-01 01:18:23 -07:00
|
|
|
Category: {Consensus | Standards Track | Network | RPC | Wallet | Informational | Process}
|
2019-07-19 13:39:58 -07:00
|
|
|
Created: yyyy-mm-dd
|
|
|
|
License: {usually MIT}
|
2020-09-14 06:16:43 -07:00
|
|
|
Pull-Request: <https://github.com/zcash/zips/pull/253>
|
2019-07-19 13:39:58 -07:00
|
|
|
|
|
|
|
|
2019-07-23 07:37:59 -07:00
|
|
|
Don't Panic
|
|
|
|
===========
|
|
|
|
|
|
|
|
If this is your first time writing a ZIP, the structure and format may look
|
|
|
|
intimidating. But really, it's just meant to reflect common-sense practice and
|
|
|
|
some technical conventions. Feel free to start with a simple initial draft that
|
|
|
|
gets ideas across, even if it doesn't quite follow this format. The community
|
|
|
|
and ZIP editors will help you figure things out and get it into shape later.
|
|
|
|
|
|
|
|
{Delete this section.}
|
|
|
|
|
|
|
|
|
2019-07-19 13:39:58 -07:00
|
|
|
Terminology
|
|
|
|
===========
|
|
|
|
|
|
|
|
{Edit this to reflect the key words that are actually used.}
|
|
|
|
The key words "MUST", "MUST NOT", "SHOULD", and "MAY" in this document are to
|
|
|
|
be interpreted as described in RFC 2119. [#RFC2119]_
|
|
|
|
|
|
|
|
The terms below are to be interpreted as follows:
|
|
|
|
|
|
|
|
{Term to be defined}
|
|
|
|
{Definition.}
|
|
|
|
{Another term}
|
|
|
|
{Definition.}
|
|
|
|
|
|
|
|
|
|
|
|
Abstract
|
|
|
|
========
|
|
|
|
|
2019-09-03 06:19:44 -07:00
|
|
|
{Describe what this proposal does, typically in a few paragraphs.
|
2019-07-19 13:39:58 -07:00
|
|
|
|
2019-09-03 06:19:44 -07:00
|
|
|
The Abstract should only provide a summary of the ZIP; the ZIP should remain
|
|
|
|
complete without the Abstract.
|
|
|
|
|
2020-11-09 07:59:51 -08:00
|
|
|
Use links where applicable, e.g. [#protocol]_ [#protocol-introduction]_.}
|
2019-07-19 13:39:58 -07:00
|
|
|
|
|
|
|
|
|
|
|
Motivation
|
|
|
|
==========
|
|
|
|
|
|
|
|
{Why is this proposal needed?
|
|
|
|
|
|
|
|
This is one of the most important sections of the ZIP, and should be detailed
|
|
|
|
and comprehensive. It shouldn't include any of the actual specification --
|
|
|
|
don't put conformance requirements in this section.
|
|
|
|
|
|
|
|
Explain the status quo, why the status quo is in need of improvement,
|
|
|
|
and if applicable, the history of how this area has changed. Then describe
|
|
|
|
*at a high level* why this proposed solution addresses the perceived issues.
|
|
|
|
It is ok if this is somewhat redundant with the abstract, but here you can
|
|
|
|
go into a lot more detail.}
|
|
|
|
|
|
|
|
|
|
|
|
Requirements
|
|
|
|
============
|
|
|
|
|
|
|
|
{Describe design constraints on, or goals for the solution -- typically one
|
|
|
|
paragraph for each constraint or goal. Again, don't actually specify anything
|
|
|
|
here; this section is primarily for use as a consistency check that what is
|
|
|
|
specified meets the requirements.}
|
|
|
|
|
|
|
|
|
|
|
|
Non-requirements
|
|
|
|
================
|
|
|
|
|
|
|
|
{This section is entirely optional. If it is present, it describes issues that
|
|
|
|
the proposal is *not* attempting to address, that someone might otherwise think
|
|
|
|
it does or should.}
|
|
|
|
|
|
|
|
|
|
|
|
Specification
|
|
|
|
=============
|
|
|
|
|
|
|
|
{This section describes what should change, using precise language and conformance
|
|
|
|
key words. Anything that is *required in order to implement the ZIP* (or follow its
|
|
|
|
process, in the case of a Process ZIP) should be in this section.
|
|
|
|
|
|
|
|
Avoid overspecification! Also avoid underspecification. Specification is hard.
|
|
|
|
Don't be afraid to ask for help.
|
|
|
|
|
|
|
|
Unless the specification is particularly simple, you will need to organise it under
|
|
|
|
subheadings.}
|
|
|
|
|
|
|
|
Example subheading
|
|
|
|
------------------
|
|
|
|
|
|
|
|
{At least while the ZIP is in Draft, we encourage writing open questions and TODOs.}
|
|
|
|
|
|
|
|
Open questions
|
|
|
|
''''''''''''''
|
|
|
|
|
|
|
|
* What happens if a full node can't parse the fandangle as a doohicky?
|
|
|
|
|
|
|
|
TODO: define byte encoding for the Jabberwock.
|
|
|
|
|
|
|
|
{Feel free to copy from other ZIPs doing similar things, e.g. defining RPC calls,
|
|
|
|
consensus rules, etc.}
|
|
|
|
|
|
|
|
Valid reStructuredText
|
|
|
|
----------------------
|
|
|
|
|
|
|
|
This is optional before publishing a PR, but to check whether a document is valid
|
2021-04-23 15:34:10 -07:00
|
|
|
reStructuredText, first install ``rst2html5``. E.g. on Debian-based distros::
|
2019-07-19 13:39:58 -07:00
|
|
|
|
2021-04-23 15:34:10 -07:00
|
|
|
sudo apt-get install python3-pip pandoc perl sed
|
2020-09-14 07:55:33 -07:00
|
|
|
sudo pip3 install rst2html5
|
2019-07-19 13:39:58 -07:00
|
|
|
|
2019-08-06 11:53:28 -07:00
|
|
|
Then, with ``zip-xxxx.rst`` in the root directory of a clone of this repo, run::
|
2019-07-19 13:39:58 -07:00
|
|
|
|
2019-08-06 11:53:28 -07:00
|
|
|
make zip-xxxx.html
|
2019-07-19 13:39:58 -07:00
|
|
|
|
2021-04-23 15:34:10 -07:00
|
|
|
(or just ``make``) and view ``zip-xxxx.html`` in a web browser.
|
2019-07-19 13:39:58 -07:00
|
|
|
|
|
|
|
|
|
|
|
Reference implementation
|
|
|
|
========================
|
|
|
|
|
|
|
|
{This section is entirely optional; if present, it usually gives links to zcashd or
|
|
|
|
zebrad PRs.}
|
|
|
|
|
|
|
|
|
|
|
|
References
|
|
|
|
==========
|
|
|
|
|
2020-11-09 07:59:51 -08:00
|
|
|
.. [#RFC2119] `RFC 2119: Key words for use in RFCs to Indicate Requirement Levels <https://www.rfc-editor.org/rfc/rfc2119.html>`_
|
2021-04-23 13:57:22 -07:00
|
|
|
.. [#protocol] `Zcash Protocol Specification, Version 2020.1.24 or later <protocol/protocol.pdf>`_
|
|
|
|
.. [#protocol-introduction] `Zcash Protocol Specification, Version 2020.1.24. Section 1: Introduction <protocol/protocol.pdf#introduction>`_
|
2021-09-09 07:02:46 -07:00
|
|
|
.. [#zip-0000] `ZIP 0: ZIP Process <zip-0000.rst>`_
|