mirror of https://github.com/zcash/zips.git
Merge pull request #744 from nuttycom/protocol_nu6_boilerplate
Protocol spec: Add macro and Makefile support for NU6
This commit is contained in:
commit
11e3fab0ee
21
Makefile
21
Makefile
|
@ -1,6 +1,6 @@
|
|||
# Dependencies: see zip-guide.rst and protocol/README.rst
|
||||
|
||||
.PHONY: all all-zips tag-release protocol discard
|
||||
.PHONY: all-zips all tag-release protocol all-protocol discard
|
||||
all-zips: .Makefile.uptodate
|
||||
echo "$(patsubst zips/%,%,$(sort $(wildcard zips/zip-*.rst) $(wildcard zips/zip-*.md)))" >.zipfilelist.new
|
||||
diff .zipfilelist.current .zipfilelist.new || cp -f .zipfilelist.new .zipfilelist.current
|
||||
|
@ -11,13 +11,16 @@ all-zips: .Makefile.uptodate
|
|||
$(MAKE) README.rst
|
||||
$(MAKE) rendered/index.html $(addprefix rendered/,$(addsuffix .html,$(basename $(patsubst zips/%,%,$(sort $(wildcard zips/*.rst) $(wildcard zips/*.md))))))
|
||||
|
||||
all: all-zips protocol
|
||||
all: all-zips all-protocol
|
||||
|
||||
tag-release:
|
||||
$(MAKE) -C protocol tag-release
|
||||
|
||||
protocol:
|
||||
$(MAKE) -C protocol
|
||||
$(MAKE) -C protocol protocol
|
||||
|
||||
all-protocol:
|
||||
$(MAKE) -C protocol all
|
||||
|
||||
discard:
|
||||
git checkout -- 'rendered/*.html' 'README.rst' 'rendered/protocol/*.pdf'
|
||||
|
@ -50,11 +53,13 @@ rendered/%.html: zips/%.md edithtml.sh
|
|||
README.rst: .zipfilelist.current .draftfilelist.current makeindex.sh README.template $(wildcard zips/zip-*.rst) $(wildcard zips/zip-*.md) $(wildcard zips/draft-*.rst) $(wildcard zips/draft-*.md)
|
||||
./makeindex.sh | cat README.template - >README.rst
|
||||
|
||||
.PHONY: linkcheck
|
||||
linkcheck: all-zips
|
||||
$(MAKE) -C protocol all-specs
|
||||
./links_and_dests.py --check $(filter-out $(wildcard rendered/draft-*.html),$(wildcard rendered/*.html)) rendered/protocol/protocol.pdf rendered/protocol/canopy.pdf rendered/protocol/heartwood.pdf rendered/protocol/blossom.pdf rendered/protocol/sapling.pdf
|
||||
.PHONY: linkcheck clean all-clean
|
||||
linkcheck: all
|
||||
./links_and_dests.py --check $(filter-out $(wildcard rendered/draft-*.html),$(wildcard rendered/*.html)) $(filter-out rendered/protocol/sprout.pdf,$(wildcard rendered/protocol/*.pdf))
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
rm -f .zipfilelist.* README.rst rendered/index.html $(addprefix rendered/,$(addsuffix .html,$(basename $(patsubst zips/%,%,$(sort $(wildcard zips/*.rst) $(wildcard zips/*.md))))))
|
||||
|
||||
all-clean:
|
||||
$(MAKE) clean
|
||||
$(MAKE) -C protocol clean
|
||||
|
|
|
@ -20,12 +20,16 @@ PDFDIR=../rendered/protocol
|
|||
# Use EXTRAOPT=-pvc for "continuous preview" mode. For example, "make auxblossom EXTRAOPT=-pvc".
|
||||
# In this case the updated .pdf will be in the aux/ directory.
|
||||
|
||||
.PHONY: all all-specs release discard
|
||||
.PHONY: all protocol all-specs tag-release discard
|
||||
all: .Makefile.uptodate
|
||||
$(MAKE) nu5 canopy heartwood blossom sapling
|
||||
$(MAKE) $(PDFDIR)/nu6.pdf $(PDFDIR)/nu5.pdf $(PDFDIR)/canopy.pdf $(PDFDIR)/heartwood.pdf $(PDFDIR)/blossom.pdf $(PDFDIR)/sapling.pdf
|
||||
$(MAKE) protocol
|
||||
|
||||
protocol: $(PDFDIR)/nu5.pdf
|
||||
cp -f $(PDFDIR)/nu5.pdf $(PDFDIR)/protocol.pdf
|
||||
|
||||
all-specs: .Makefile.uptodate
|
||||
$(MAKE) $(PDFDIR)/nu5.pdf $(PDFDIR)/canopy.pdf $(PDFDIR)/heartwood.pdf $(PDFDIR)/blossom.pdf $(PDFDIR)/sapling.pdf
|
||||
$(MAKE) nu6 nu5 canopy heartwood blossom sapling
|
||||
|
||||
tag-release:
|
||||
ifeq ($(shell git tag --points-at HEAD |wc -l),0)
|
||||
|
@ -47,22 +51,25 @@ discard:
|
|||
$(MAKE) clean
|
||||
touch .Makefile.uptodate
|
||||
|
||||
$(PDFDIR)/sapling.pdf: protocol.tex zcash.bib incremental_merkle.png key_components_sapling.png
|
||||
$(PDFDIR)/sapling.pdf: protocol.tex zcash.bib jubjub.png key_components_sapling.png key_components_orchard.png incremental_merkle.png
|
||||
$(MAKE) sapling
|
||||
|
||||
$(PDFDIR)/blossom.pdf: protocol.tex zcash.bib incremental_merkle.png key_components_sapling.png
|
||||
$(PDFDIR)/blossom.pdf: protocol.tex zcash.bib jubjub.png key_components_sapling.png key_components_orchard.png incremental_merkle.png
|
||||
$(MAKE) blossom
|
||||
|
||||
$(PDFDIR)/heartwood.pdf: protocol.tex zcash.bib incremental_merkle.png key_components_sapling.png
|
||||
$(PDFDIR)/heartwood.pdf: protocol.tex zcash.bib jubjub.png key_components_sapling.png key_components_orchard.png incremental_merkle.png
|
||||
$(MAKE) heartwood
|
||||
|
||||
$(PDFDIR)/canopy.pdf: protocol.tex zcash.bib incremental_merkle.png key_components_sapling.png
|
||||
$(PDFDIR)/canopy.pdf: protocol.tex zcash.bib jubjub.png key_components_sapling.png key_components_orchard.png incremental_merkle.png
|
||||
$(MAKE) canopy
|
||||
|
||||
$(PDFDIR)/nu5.pdf: protocol.tex zcash.bib incremental_merkle.png key_components_sapling.png
|
||||
$(PDFDIR)/nu5.pdf: protocol.tex zcash.bib jubjub.png key_components_sapling.png key_components_orchard.png incremental_merkle.png
|
||||
$(MAKE) nu5
|
||||
|
||||
.PHONY: auxsapling
|
||||
$(PDFDIR)/nu6.pdf: protocol.tex zcash.bib jubjub.png key_components_sapling.png key_components_orchard.png incremental_merkle.png
|
||||
$(MAKE) nu6
|
||||
|
||||
.PHONY: auxsapling sapling
|
||||
auxsapling:
|
||||
printf '\\toggletrue{issapling}\n\\renewcommand{\\docversion}{Version %s [\\SaplingSpec]}' "$$(git describe --tags --abbrev=6)" |tee protocol.ver
|
||||
mkdir -p aux
|
||||
|
@ -70,12 +77,11 @@ auxsapling:
|
|||
cp mymakeindex.sh aux
|
||||
$(LATEXMK) -jobname=sapling -auxdir=aux -outdir=aux $(EXTRAOPT) protocol $(NOCRUFT)
|
||||
|
||||
.PHONY: sapling
|
||||
sapling:
|
||||
$(MAKE) auxsapling
|
||||
mv -f aux/sapling.pdf $(PDFDIR)
|
||||
|
||||
.PHONY: auxblossom
|
||||
.PHONY: auxblossom blossom
|
||||
auxblossom:
|
||||
printf '\\toggletrue{isblossom}\n\\renewcommand{\\docversion}{Version %s [\\BlossomSpec]}' "$$(git describe --tags --abbrev=6)" |tee protocol.ver
|
||||
mkdir -p aux
|
||||
|
@ -83,12 +89,11 @@ auxblossom:
|
|||
cp mymakeindex.sh aux
|
||||
$(LATEXMK) -jobname=blossom -auxdir=aux -outdir=aux $(EXTRAOPT) protocol $(NOCRUFT)
|
||||
|
||||
.PHONY: blossom
|
||||
blossom:
|
||||
$(MAKE) auxblossom
|
||||
mv -f aux/blossom.pdf $(PDFDIR)
|
||||
|
||||
.PHONY: auxheartwood
|
||||
.PHONY: auxheartwood heartwood
|
||||
auxheartwood:
|
||||
printf '\\toggletrue{isheartwood}\n\\renewcommand{\\docversion}{Version %s [\\HeartwoodSpec]}' "$$(git describe --tags --abbrev=6)" |tee protocol.ver
|
||||
mkdir -p aux
|
||||
|
@ -96,12 +101,11 @@ auxheartwood:
|
|||
cp mymakeindex.sh aux
|
||||
$(LATEXMK) -jobname=heartwood -auxdir=aux -outdir=aux $(EXTRAOPT) protocol $(NOCRUFT)
|
||||
|
||||
.PHONY: heartwood
|
||||
heartwood:
|
||||
$(MAKE) auxheartwood
|
||||
mv -f aux/heartwood.pdf $(PDFDIR)
|
||||
|
||||
.PHONY: auxcanopy
|
||||
.PHONY: auxcanopy canopy
|
||||
auxcanopy:
|
||||
printf '\\toggletrue{iscanopy}\n\\renewcommand{\\docversion}{Version %s [\\CanopySpec]}' "$$(git describe --tags --abbrev=6)" |tee protocol.ver
|
||||
mkdir -p aux
|
||||
|
@ -109,12 +113,11 @@ auxcanopy:
|
|||
cp mymakeindex.sh aux
|
||||
$(LATEXMK) -jobname=canopy -auxdir=aux -outdir=aux $(EXTRAOPT) protocol $(NOCRUFT)
|
||||
|
||||
.PHONY: canopy
|
||||
canopy:
|
||||
$(MAKE) auxcanopy
|
||||
mv -f aux/canopy.pdf $(PDFDIR)
|
||||
|
||||
.PHONY: auxnu5
|
||||
.PHONY: auxnu5 nu5
|
||||
auxnu5:
|
||||
printf '\\toggletrue{isnufive}\n\\renewcommand{\\docversion}{Version %s [\\NUFiveSpec]}' "$$(git describe --tags --abbrev=6)" |tee protocol.ver
|
||||
mkdir -p aux
|
||||
|
@ -122,73 +125,22 @@ auxnu5:
|
|||
cp mymakeindex.sh aux
|
||||
$(LATEXMK) -jobname=nu5 -auxdir=aux -outdir=aux $(EXTRAOPT) protocol $(NOCRUFT)
|
||||
|
||||
.PHONY: nu5
|
||||
nu5:
|
||||
$(MAKE) auxnu5
|
||||
mv -f aux/nu5.pdf $(PDFDIR)
|
||||
cp -f $(PDFDIR)/nu5.pdf $(PDFDIR)/protocol.pdf
|
||||
|
||||
.PHONY: nolatexmk-sapling
|
||||
nolatexmk-sapling:
|
||||
printf '\\toggletrue{issapling}\n\\renewcommand{\\docversion}{Version %s [\\SaplingSpec]}' "$$(git describe --tags --abbrev=6)" |tee protocol.ver
|
||||
# If $(LATEX) fails, touch an input so that 'make' won't think it is up-to-date next time.
|
||||
rm -f sapling.aux sapling.bbl sapling.blg sapling.brf sapling.bcf
|
||||
$(LATEX) -jobname=sapling protocol.tex || { touch incremental_merkle.png; exit 1; }
|
||||
biber sapling
|
||||
$(LATEX) -jobname=sapling protocol.tex || { touch incremental_merkle.png; exit 1; }
|
||||
$(LATEX) -jobname=sapling protocol.tex || { touch incremental_merkle.png; exit 1; }
|
||||
sh mymakeindex.sh -o sapling.ind sapling.idx
|
||||
$(LATEX) -jobname=sapling protocol.tex || { touch incremental_merkle.png; exit 1; }
|
||||
.PHONY: auxnu6 nu6
|
||||
auxnu6:
|
||||
printf '\\toggletrue{isnusix}\n\\renewcommand{\\docversion}{Version %s [\\NUSixSpec]}' "$$(git describe --tags --abbrev=6)" |tee protocol.ver
|
||||
mkdir -p aux
|
||||
rm -f aux/nu6.*
|
||||
cp mymakeindex.sh aux
|
||||
$(LATEXMK) -jobname=nu6 -auxdir=aux -outdir=aux $(EXTRAOPT) protocol $(NOCRUFT)
|
||||
|
||||
.PHONY: nolatexmk-blossom
|
||||
nolatexmk-blossom:
|
||||
printf '\\toggletrue{isblossom}\n\\renewcommand{\\docversion}{Version %s [\\BlossomSpec]}' "$$(git describe --tags --abbrev=6)" |tee protocol.ver
|
||||
# If $(LATEX) fails, touch an input so that 'make' won't think it is up-to-date next time.
|
||||
rm -f blossom.aux blossom.bbl blossom.blg blossom.brf blossom.bcf
|
||||
$(LATEX) -jobname=blossom protocol.tex || { touch incremental_merkle.png; exit 1; }
|
||||
biber blossom
|
||||
$(LATEX) -jobname=blossom protocol.tex || { touch incremental_merkle.png; exit 1; }
|
||||
$(LATEX) -jobname=blossom protocol.tex || { touch incremental_merkle.png; exit 1; }
|
||||
sh mymakeindex.sh -o blossom.ind blossom.idx
|
||||
$(LATEX) -jobname=blossom protocol.tex || { touch incremental_merkle.png; exit 1; }
|
||||
cp -f blossom.pdf protocol.pdf
|
||||
|
||||
.PHONY: nolatexmk-heartwood
|
||||
nolatexmk-heartwood:
|
||||
printf '\\toggletrue{isheartwood}\n\\renewcommand{\\docversion}{Version %s [\\HeartwoodSpec]}' "$$(git describe --tags --abbrev=6)" |tee protocol.ver
|
||||
# If $(LATEX) fails, touch an input so that 'make' won't think it is up-to-date next time.
|
||||
rm -f heartwood.aux heartwood.bbl heartwood.blg heartwood.brf heartwood.bcf
|
||||
$(LATEX) -jobname=heartwood protocol.tex || { touch incremental_merkle.png; exit 1; }
|
||||
biber heartwood
|
||||
$(LATEX) -jobname=heartwood protocol.tex || { touch incremental_merkle.png; exit 1; }
|
||||
$(LATEX) -jobname=heartwood protocol.tex || { touch incremental_merkle.png; exit 1; }
|
||||
sh mymakeindex.sh -o heartwood.ind heartwood.idx
|
||||
$(LATEX) -jobname=heartwood protocol.tex || { touch incremental_merkle.png; exit 1; }
|
||||
|
||||
.PHONY: nolatexmk-canopy
|
||||
nolatexmk-canopy:
|
||||
printf '\\toggletrue{iscanopy}\n\\renewcommand{\\docversion}{Version %s [\\CanopySpec]}' "$$(git describe --tags --abbrev=6)" |tee protocol.ver
|
||||
# If $(LATEX) fails, touch an input so that 'make' won't think it is up-to-date next time.
|
||||
rm -f canopy.aux canopy.bbl canopy.blg canopy.brf canopy.bcf
|
||||
$(LATEX) -jobname=canopy protocol.tex || { touch incremental_merkle.png; exit 1; }
|
||||
biber canopy
|
||||
$(LATEX) -jobname=canopy protocol.tex || { touch incremental_merkle.png; exit 1; }
|
||||
$(LATEX) -jobname=canopy protocol.tex || { touch incremental_merkle.png; exit 1; }
|
||||
sh mymakeindex.sh -o canopy.ind canopy.idx
|
||||
$(LATEX) -jobname=canopy protocol.tex || { touch incremental_merkle.png; exit 1; }
|
||||
|
||||
.PHONY: nolatexmk-nu5
|
||||
nolatexmk-nu5:
|
||||
printf '\\toggletrue{isnufive}\n\\renewcommand{\\docversion}{Version %s [\\NUFiveSpec]}' "$$(git describe --tags --abbrev=6)" |tee protocol.ver
|
||||
# If $(LATEX) fails, touch an input so that 'make' won't think it is up-to-date next time.
|
||||
rm -f nu5.aux nu5.bbl nu5.blg nu5.brf nu5.bcf
|
||||
$(LATEX) -jobname=nu5 protocol.tex || { touch incremental_merkle.png; exit 1; }
|
||||
biber nu5
|
||||
$(LATEX) -jobname=nu5 protocol.tex || { touch incremental_merkle.png; exit 1; }
|
||||
$(LATEX) -jobname=nu5 protocol.tex || { touch incremental_merkle.png; exit 1; }
|
||||
sh mymakeindex.sh -o nu5.ind nu5.idx
|
||||
$(LATEX) -jobname=nu5 protocol.tex || { touch incremental_merkle.png; exit 1; }
|
||||
nu6:
|
||||
$(MAKE) auxnu6
|
||||
mv -f aux/nu6.pdf $(PDFDIR)
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
rm -f aux/* html/* protocol.ver $(PDFDIR)/protocol.pdf $(PDFDIR)/nu5.pdf $(PDFDIR)/canopy.pdf $(PDFDIR)/heartwood.pdf $(PDFDIR)/blossom.pdf $(PDFDIR)/sapling.pdf
|
||||
rm -f aux/* protocol.ver $(PDFDIR)/protocol.pdf $(PDFDIR)/nu6.pdf $(PDFDIR)/nu5.pdf $(PDFDIR)/canopy.pdf $(PDFDIR)/heartwood.pdf $(PDFDIR)/blossom.pdf $(PDFDIR)/sapling.pdf
|
||||
|
|
|
@ -552,6 +552,7 @@
|
|||
\newcommand{\HeartwoodSpec}{Overwinter+Sapling+Blossom+Heartwood}
|
||||
\newcommand{\CanopySpec}{Overwinter+Sapling+Blossom+Heartwood+Canopy}
|
||||
\newcommand{\NUFiveSpec}{NU5}
|
||||
\newcommand{\NUSixSpec}{NU6}
|
||||
\newtoggle{issapling}
|
||||
\togglefalse{issapling}
|
||||
\newtoggle{isblossom}
|
||||
|
@ -562,6 +563,8 @@
|
|||
\togglefalse{iscanopy}
|
||||
\newtoggle{isnufive}
|
||||
\togglefalse{isnufive}
|
||||
\newtoggle{isnusix}
|
||||
\togglefalse{isnusix}
|
||||
\InputIfFileExists{protocol.ver}{}{}
|
||||
|
||||
\newcommand{\doctitle}{Zcash Protocol Specification}
|
||||
|
@ -594,10 +597,26 @@ electronic commerce and payment, financial privacy, proof of work, zero knowledg
|
|||
\newcommand{\canopycolorname}{purple}
|
||||
\newcommand{\nufivecolor}{black!25!blue!65!green!65}
|
||||
\newcommand{\nufivecolorname}{slate blue}
|
||||
\newcommand{\nusixcolor}{magenta!75}
|
||||
\newcommand{\nusixcolorname}{pink}
|
||||
\newcommand{\labelcolor}{yellow!20}
|
||||
|
||||
\iftoggle{isnufive}{
|
||||
\iftoggle{isnusix}{
|
||||
\providecommand{\baseurl}{https://zips.z.cash/protocol/protocol.pdf}
|
||||
\toggletrue{isnufive}
|
||||
\newcommand{\setnusix}{\color{\nusixcolor}}
|
||||
\newcommand{\nusix}[1]{\texorpdfstring{{\setnusix{#1}}}{#1}}
|
||||
\newcommand{\notnusix}[1]{}
|
||||
\newcommand{\notbeforenusix}[1]{#1}
|
||||
} {
|
||||
\newcommand{\setnusix}{}
|
||||
\newcommand{\nusix}[1]{}
|
||||
\newcommand{\notnusix}[1]{#1}
|
||||
\newcommand{\notbeforenusix}[1]{}
|
||||
}
|
||||
|
||||
\iftoggle{isnufive}{
|
||||
\providecommand{\baseurl}{https://zips.z.cash/protocol/nu5.pdf}
|
||||
\toggletrue{iscanopy}
|
||||
\newcommand{\setnufive}{\color{\nufivecolor}}
|
||||
\newcommand{\nufive}[1]{\texorpdfstring{{\setnufive{#1}}}{#1}}
|
||||
|
@ -725,17 +744,13 @@ electronic commerce and payment, financial privacy, proof of work, zero knowledg
|
|||
\newcommand{\Sprout}{\termbf{Sprout}}
|
||||
\newcommand{\SproutText}{\textbf{Sprout}}
|
||||
\newcommand{\Overwinter}{\termbf{Overwinter}}
|
||||
\newcommand{\OverwinterText}{\textbf{Overwinter}}
|
||||
\newcommand{\Sapling}{\termbf{Sapling}}
|
||||
\newcommand{\SaplingText}{\textbf{Sapling}}
|
||||
\newcommand{\Blossom}{\termbf{Blossom}}
|
||||
\newcommand{\BlossomText}{\textbf{Blossom}}
|
||||
\newcommand{\Heartwood}{\termbf{Heartwood}}
|
||||
\newcommand{\HeartwoodText}{\textbf{Heartwood}}
|
||||
\newcommand{\Canopy}{\termbf{Canopy}}
|
||||
\newcommand{\CanopyText}{\textbf{Canopy}}
|
||||
\newcommand{\NUFive}{\readasunicode{004e200b0055200b0035}{\termbf{NU5}}\xspace}
|
||||
%\newcommand{\NUFiveText}{\textbf{NU5}}
|
||||
\newcommand{\NUSix}{\readasunicode{004e200b0055200b0036}{\termbf{NU6}}\xspace}
|
||||
\newcommand{\Orchard}{\termbf{Orchard}}
|
||||
\newcommand{\OrchardText}{\textbf{Orchard}}
|
||||
\newcommand{\SaplingOrOrchard}{\Sapling{}\nufive{ or \Orchard{}}\xspace}
|
||||
|
@ -2451,6 +2466,8 @@ electronic commerce and payment, financial privacy, proof of work, zero knowledg
|
|||
\newcommand{\consensusrule}[1]{\needspace{4ex}\vspace{2ex}\callout{}{Consensus rule:}{#1}}
|
||||
\newenvironment{consensusrules}{\introlist\callout{}{Consensus rules:}\begin{itemize}}{\end{itemize}}
|
||||
|
||||
\newcommand{\prenusixitem}[1]{\item \prenusix{#1}}
|
||||
\newcommand{\nusixonwarditem}[1]{\nusix{\item {[\NUSix onward]}\, {#1}}}
|
||||
\newcommand{\prenufiveitem}[1]{\item \prenufive{#1}}
|
||||
\newcommand{\nufiveonwarditem}[1]{\nufive{\item {[\NUFive onward]}\, {#1}}}
|
||||
\newcommand{\precanopyitem}[1]{\item \precanopy{#1}}
|
||||
|
@ -2470,6 +2487,8 @@ electronic commerce and payment, financial privacy, proof of work, zero knowledg
|
|||
\newcommand{\overwinterprenufiveitem}[1]{\overwinter{\item \overwinterprenufive{#1}}}
|
||||
\newcommand{\sproutspecificitem}[1]{\item \sproutspecific{#1}}
|
||||
|
||||
\newcommand{\prenusix}[1]{\notbeforenusix{\nusix{[Pre-\NUSix\!]\,}} {#1}}
|
||||
\newcommand{\nusixonward}[1]{\nusix{[\NUSix onward]\, {#1}}}
|
||||
\newcommand{\prenufive}[1]{\notbeforenufive{\nufive{[Pre-\NUFive\!]\,}} {#1}}
|
||||
\newcommand{\nufiveonward}[1]{\nufive{[\NUFive onward]\, {#1}}}
|
||||
\newcommand{\precanopy}[1]{\notbeforecanopy{\canopy{[Pre-\Canopy\!]\,}} {#1}}
|
||||
|
@ -2497,6 +2516,8 @@ electronic commerce and payment, financial privacy, proof of work, zero knowledg
|
|||
\newcommand{\nnote}[1]{\needspace{4ex}\vspace{2ex}\callout{}{Non-normative note:}{#1}}
|
||||
\newenvironment{nnotes}{\introlist\callout{}{Non-normative notes:}\begin{itemize}}{\end{itemize}}
|
||||
|
||||
\newcommand{\nusixonwardnnote}[1]{\nusix{\callout{[\NUSix onward]\,\,}{Non-normative note:}{#1}}}
|
||||
\newcommand{\nusixonwardpnote}[1]{\nusix{\callout{[\NUSix onward]\,\,}{Note:}{#1}}}
|
||||
\newcommand{\nufiveonwardnnote}[1]{\nufive{\callout{[\NUFive onward]\,\,}{Non-normative note:}{#1}}}
|
||||
\newcommand{\nufiveonwardpnote}[1]{\nufive{\callout{[\NUFive onward]\,\,}{Note:}{#1}}}
|
||||
\newcommand{\canopyonwardnnote}[1]{\canopy{\callout{[\Canopy onward]\,\,}{Non-normative note:}{#1}}}
|
||||
|
@ -2544,26 +2565,15 @@ It attempted to address the problem of mining centralization by use of the \Equi
|
|||
memory-hard \proofOfWork algorithm.
|
||||
|
||||
\vspace{1.5ex}
|
||||
\notblossom{\sapling{\noindent This specification defines the \Zcash consensus protocol
|
||||
at launch; after the upgrade codenamed \Overwinter; and after the
|
||||
subsequent upgrade codenamed \Sapling. It is a work in progress.
|
||||
Protocol differences from \Zerocash and \Bitcoin are also explained.}}
|
||||
\notheartwood{\blossom{\noindent This specification defines the \Zcash consensus protocol
|
||||
at launch, and after each of the upgrades codenamed \Overwinter, \Sapling, and
|
||||
\Blossom. It is a work in progress. Protocol differences from \Zerocash and
|
||||
\Bitcoin are also explained.}}
|
||||
\notcanopy{\heartwood{\noindent This specification defines the \Zcash consensus protocol
|
||||
at launch, and after each of the upgrades codenamed \Overwinter, \Sapling, \Blossom,
|
||||
and \Heartwood. It is a work in progress. Protocol differences from \Zerocash and
|
||||
\Bitcoin are also explained.}}
|
||||
\notnufive{\canopy{\noindent This specification defines the \Zcash consensus protocol
|
||||
at launch, and after each of the upgrades codenamed \Overwinter, \Sapling, \Blossom,
|
||||
\Heartwood, and \Canopy. It is a work in progress. Protocol differences from \Zerocash and
|
||||
\Bitcoin are also explained.}}
|
||||
\nufive{\noindent This specification defines the \Zcash consensus protocol
|
||||
at launch, and after each of the upgrades codenamed \Overwinter, \Sapling, \Blossom,
|
||||
\Heartwood, \Canopy, and \NUFive. It is a work in progress. Protocol differences from
|
||||
\Zerocash and \Bitcoin are also explained.}
|
||||
\newcommand{\thisspecdefines}[1]{This specification defines the \Zcash consensus protocol at launch, and after each of the upgrades codenamed {#1}.}
|
||||
\noindent \notblossom{\sapling{\thisspecdefines{\Overwinter and \Sapling}}}%
|
||||
\notheartwood{\blossom{\thisspecdefines{\Overwinter, \Sapling, and \Blossom}}}%
|
||||
\notcanopy{\heartwood{\thisspecdefines{\Overwinter, \Sapling, \Blossom, and \Heartwood}}}%
|
||||
\notnufive{\canopy{\thisspecdefines{\Overwinter, \Sapling, \Blossom, \Heartwood, and \Canopy}}}%
|
||||
\notnusix{\nufive{\thisspecdefines{\Overwinter, \Sapling, \Blossom, \Heartwood, \Canopy, and \NUFive}}}%
|
||||
\nusix{This specification defines the \Zcash consensus protocol at launch; after each of the upgrades
|
||||
codenamed \Overwinter, \Sapling, \Blossom, \Heartwood, \Canopy, and \NUFive; and proposed changes for \NUSix.} %
|
||||
It is a work in progress. Protocol differences from \Zerocash and \Bitcoin are also explained.
|
||||
|
||||
\vspace{2.5ex}
|
||||
\noindent \textbf{Keywords:}~ \StrSubstitute[0]{\keywords}{,}{, }.
|
||||
|
@ -2632,6 +2642,9 @@ are highlighted in \canopy{\canopycolorname}.}
|
|||
\notbeforenufive{Changes specific to the \NUFive upgrade following \Canopy
|
||||
are highlighted in \nufive{\nufivecolorname}.}
|
||||
|
||||
\notbeforenusix{Changes specific to the proposed \NUSix upgrade following \NUFive
|
||||
are highlighted in \nusix{\nusixcolorname}.}
|
||||
|
||||
All of these are also changes from \Zerocash.
|
||||
The name \Sprout is used for the \Zcash protocol prior to \Sapling
|
||||
(both before and after \Overwinter), and in particular its shielded protocol.
|
||||
|
@ -12428,10 +12441,15 @@ at \blockHeight $1687104$ \cite{Zcash-Nu5}. Its specifications are described in
|
|||
\cite{ZIP-212}, \cite{ZIP-213}, and \cite{ZIP-221}.
|
||||
Additional information and rationale is given in \cite{Zcash-Orchard} and \cite{Zcash-halo2}.}
|
||||
|
||||
\nusix{
|
||||
This draft specification describes the set of changes proposed for the \NUSix \networkUpgrade
|
||||
(for which a \Mainnet activation height has not yet been set).
|
||||
} %nusix
|
||||
|
||||
\introlist
|
||||
\vspace{1ex}
|
||||
This section summarizes the strategy for upgrading from \Sprout to subsequent versions
|
||||
of the protocol (\Overwinter, \Sapling, \Blossom, \Heartwood, \Canopy, and \NUFive),
|
||||
of the protocol (\Overwinter, \Sapling, \Blossom, \Heartwood, \Canopy, \NUFive, and \NUSix),
|
||||
and for future upgrades.
|
||||
|
||||
\defining{The \networkUpgrade mechanism is described in \cite{ZIP-200}.}
|
||||
|
@ -14811,7 +14829,7 @@ Peter Newell's illustration of the Jubjub bird, from \cite{Carroll1902}.
|
|||
\intropart
|
||||
\lsection{Change History}{changehistory}
|
||||
|
||||
\historyentry{Unreleased}{2024-04-14}
|
||||
\historyentry{2024.5.0}{2024-08-28}
|
||||
|
||||
\begin{itemize}
|
||||
\item Add the hyphen in \nh{Daira-Emma} Hopwood.
|
||||
|
@ -14819,6 +14837,7 @@ Peter Newell's illustration of the Jubjub bird, from \cite{Carroll1902}.
|
|||
\item Prevent incorrect line-breaking on hyphens.
|
||||
\item In \crossref{concretesinsemillahash}, declare use of $\LEBStoIP{}$ instead of $\LEOStoIP{}$.
|
||||
\item Add an acknowledgement to Conrado Gouvea for discussions on the Zcash protocol.
|
||||
\item Add boilerplate support for \NUSix.
|
||||
\end{itemize}
|
||||
|
||||
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue