zips/protocol
Daira Hopwood 2e6cdb3945 Regenerate PDFs. 2021-04-19 00:36:48 +01:00
..
Makefile Add support for link checking to protocol/links_and_dests.py and protocol/Makefile. 2021-04-19 00:12:37 +01:00
README.rst protocol/README.rst updates. 2020-04-27 15:57:30 +01:00
blossom.pdf Regenerate PDFs. 2021-04-19 00:36:48 +01:00
canopy.pdf Regenerate PDFs. 2021-04-19 00:36:48 +01:00
heartwood.pdf Regenerate PDFs. 2021-04-19 00:36:48 +01:00
incremental_merkle.odg
incremental_merkle.png Update incremental Merkle tree diagram. 2020-02-02 16:46:34 +00:00
incremental_merkle.svg Update incremental Merkle tree diagram. 2020-02-02 16:46:34 +00:00
jubjub.png Add macros and Makefile support for building the Blossom specification. 2019-02-22 13:49:08 +00:00
key_components.png Change 'Payment address' to 'Shielded payment address' in key components diagrams. 2020-02-02 16:45:47 +00:00
key_components.svg Change 'Payment address' to 'Shielded payment address' in key components diagrams. 2020-02-02 16:45:47 +00:00
key_components_orchard.png Update the Sprout key component diagram in \crossref{addressesandkeys} to remove magenta highlighting.Remove magenta highlighting 2021-04-01 02:11:35 +01:00
key_components_orchard.svg Update the Sprout key component diagram in \crossref{addressesandkeys} to remove magenta highlighting.Remove magenta highlighting 2021-04-01 02:11:35 +01:00
key_components_sapling.png Update the Sprout key component diagram in \crossref{addressesandkeys} to remove magenta highlighting.Remove magenta highlighting 2021-04-01 02:11:35 +01:00
key_components_sapling.svg Update the Sprout key component diagram in \crossref{addressesandkeys} to remove magenta highlighting.Remove magenta highlighting 2021-04-01 02:11:35 +01:00
latexmkrc Protocol spec: Initial index support. 2019-07-08 22:42:16 +01:00
links_and_dests.py Add support for link checking to protocol/links_and_dests.py and protocol/Makefile. 2021-04-19 00:12:37 +01:00
mymakeindex.sh Protocol spec: Initial index support. 2019-07-08 22:42:16 +01:00
nu5.pdf Regenerate PDFs. 2021-04-19 00:36:48 +01:00
protocol.pdf Regenerate PDFs. 2021-04-19 00:36:48 +01:00
protocol.tex Use a different symbol for each v5 Sapling field cardinality rule. 2021-04-19 00:32:00 +01:00
sapling.pdf Regenerate PDFs. 2021-04-19 00:36:48 +01:00
sprout.pdf Regenerate PDFs. 2021-03-17 20:00:51 +00:00
zcash.bib Fix some URLs in references. 2021-04-19 00:12:37 +01:00

README.rst

==============================
 Zcash Protocol Specification
==============================

Build dependencies on Debian-based systems include, at least:

.. code::

   apt-get install texlive texlive-science texlive-fonts-extra \
     texlive-generic-recommended texlive-bibtex-extra biber latexmk perl awk


Building
--------

Use:

* ``make nufour`` to make the draft specification for NU4 (``nufour.pdf``);
* ``make heartwood`` to make the specification for Heartwood (``protocol.pdf``);
* ``make blossom`` to make the specification for the Blossom upgrade
  (``blossom.pdf``);
* ``make sapling`` to make the specification for the Overwinter and
  Sapling upgrades (``sapling.pdf``);
* ``make sprout`` to make a version of the specification that does not
  include Overwinter or Sapling (``sprout.pdf``).

``make all`` is equivalent to ``make nufour heartwood blossom sapling sprout``.

By default these use ``latexmk``. If you have trouble getting ``latexmk`` to
work, you can instead use ``make nolatexmk-sapling``, etc. That is not the
preferred way of building because it may not run ``pdflatex`` enough times.

It is also possible to use the incremental (``-pvc``) mode of ``latexmk`` to
automatically rebuild when changes in the source files are detected, by adding
``EXTRAOPT=-pvc`` to the ``make`` command line. In this case the updated PDF
files will be in the ``aux/`` directory. Manual intervention is still needed
when there are LaTeX errors.


Alternative TeX engines
-----------------------

There is experimental support for building the specification using LuaTeX
or XeTeX; see the comments at the top of the `Makefile`. However, this will
`currently produce poor output <https://github.com/zcash/zips/issues/249>`_.
A warning is included below the Abstract to indicate this.