zips/protocol
Daira Hopwood f1230509d8 Regenerate PDFs (and add heartwood.pdf).
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2019-12-27 11:57:21 +00:00
..
Makefile Add Makefile changes and macros for Heartwood spec. 2019-12-27 11:57:20 +00:00
README.rst Protocol spec Makefile improvements to suppress unneeded output. 2019-09-03 20:51:01 +01:00
heartwood.pdf Regenerate PDFs (and add heartwood.pdf). 2019-12-27 11:57:21 +00:00
incremental_merkle.odg Change coin commitments in Merkle tree diagram back to cm. 2016-02-11 18:37:28 +00:00
incremental_merkle.pdf Change coin commitments in Merkle tree diagram back to cm. 2016-02-11 18:37:28 +00:00
incremental_merkle.png Cosmetics. 2018-03-18 21:00:16 +00:00
incremental_merkle.svg Regenerate PDFs. 2017-12-02 02:11:41 +00:00
jubjub.png Add macros and Makefile support for building the Blossom specification. 2019-02-22 13:49:08 +00:00
key_components.odg Remove viewing keys (except for sk_enc) for now. 2016-03-13 02:16:30 +00:00
key_components.pdf Cosmetics. 2016-09-04 04:33:45 +01:00
key_components.png Cosmetics. 2018-03-18 21:00:16 +00:00
key_components.svg Separate viewing keys (a_pk, sk_enc) from receiving keys sk_enc. 2017-12-16 23:40:34 +00:00
key_components_sapling.png Sapling consensus changes. 2018-04-20 04:22:06 +01:00
key_components_sapling.svg Sapling consensus changes. 2018-04-20 04:22:06 +01:00
latexmkrc Protocol spec: Initial index support. 2019-07-08 22:42:16 +01:00
mymakeindex.sh Protocol spec: Initial index support. 2019-07-08 22:42:16 +01:00
protocol.pdf Regenerate PDFs (and add heartwood.pdf). 2019-12-27 11:57:21 +00:00
protocol.tex Blossom clarifications. 2019-12-27 11:57:20 +00:00
sapling.pdf Regenerate PDFs (and add heartwood.pdf). 2019-12-27 11:57:21 +00:00
sprout.pdf Regenerate PDFs (and add heartwood.pdf). 2019-12-27 11:57:21 +00:00
zcash.bib Blossom clarifications. 2019-12-27 11:57:20 +00: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 sapling`` to make the specification for the Overwinter and
  Sapling upgrades (``protocol.pdf``);
* ``make blossom`` to make the draft specification for the Blossom upgrade
  (``blossom.pdf``);
* ``make sprout`` to make a version of the specification that does not
  include Overwinter or Sapling.

``make all`` is equivalent to ``make sapling blossom 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.

There is also support for using the incremental (``-pvc``) mode of
``latexmk`` to automatically rebuild when changes in the source files are
detected: ``make pvcsapling``, ``make pvcblossom``, or ``make pvcsprout``.
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.