Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merging 'main' branch into 'zsa1' to catch up with upstream changes #68

Merged
merged 133 commits into from
Sep 26, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
133 commits
Select commit Hold shift + click to select a range
43a7ca8
Add Zcash Sustainability Fund ZIP draft
tomekpiotrowski Aug 16, 2023
22b954c
Add the ZSF draft HTML
tomekpiotrowski Aug 16, 2023
3e4ca01
Smooth Out The Block Subsidy Issuance
tomekpiotrowski Aug 28, 2023
7d2929f
Update draft-zsf.md
tomekpiotrowski Aug 31, 2023
9488fce
Update draft-zsf.md
tomekpiotrowski Aug 31, 2023
c7cad3e
Update draft-zsf.md
tomekpiotrowski Aug 31, 2023
8840011
Update draft-zsf.md
tomekpiotrowski Aug 31, 2023
e085c88
Remove restriction on future protocol changes
tomekpiotrowski Aug 31, 2023
c48f5b1
Slim down the motivation section
tomekpiotrowski Aug 31, 2023
af56e30
Update the ZSF balance formula
tomekpiotrowski Aug 31, 2023
dbab6a6
Remove redundant requirements
tomekpiotrowski Aug 31, 2023
15542d7
ZSF_DEPOSIT in older non-coinbase transactions
tomekpiotrowski Aug 31, 2023
f5462c7
Update draft-zsf.md
tomekpiotrowski Aug 31, 2023
3437abe
Update draft-zsf.md
tomekpiotrowski Aug 31, 2023
0374cb4
Update draft-zsf.md
tomekpiotrowski Aug 31, 2023
8c7dd06
Update draft-zsf.md
tomekpiotrowski Aug 31, 2023
dd17988
Update draft-zsf.md
tomekpiotrowski Sep 1, 2023
73f879a
Update draft-zsf.md
tomekpiotrowski Sep 1, 2023
903c7d5
Update draft-zsf.md
tomekpiotrowski Sep 1, 2023
d7e5b28
Update draft-zsf.md
tomekpiotrowski Sep 1, 2023
06b77c8
Update draft-zsf.md
tomekpiotrowski Sep 1, 2023
1e2cec0
Update draft-zsf.md
tomekpiotrowski Sep 1, 2023
eb91d2b
draft-zsf.md updates
tomekpiotrowski Sep 1, 2023
d9eb846
Merge branch 'zsf' of github.com:eigerco/zips into eigerco/zsf
aphelionz Sep 12, 2023
e5d2cca
Update draft-zsf.md
aphelionz Sep 19, 2023
85df047
Update draft-zsf.md
aphelionz Sep 19, 2023
bb4835b
Update draft-zsf.md
aphelionz Sep 19, 2023
450d47b
Update draft-zsf.md
aphelionz Sep 19, 2023
ccd9eba
Update draft-zsf.md
aphelionz Sep 19, 2023
eac8efa
Update draft-zsf.md
aphelionz Sep 19, 2023
d6cd39f
Update draft-zsf.md
aphelionz Sep 19, 2023
753d180
Update draft-issuance.md
aphelionz Sep 19, 2023
b0c142f
Update draft-issuance.md
aphelionz Sep 19, 2023
54317ed
Update draft-issuance.md
aphelionz Sep 19, 2023
2d691eb
Update draft-issuance.md
aphelionz Sep 19, 2023
66dab1e
Update draft-issuance.md
aphelionz Sep 19, 2023
907fe1c
update: add ZSF_BALANCE and ZsfBalanceAfter(h)
aphelionz Sep 19, 2023
8b725d8
Update draft-issuance.md
aphelionz Sep 19, 2023
087f7b9
Update draft-issuance.md
aphelionz Sep 19, 2023
e3a28eb
Update draft-issuance.md
aphelionz Sep 19, 2023
609a3c6
Update draft-issuance.md
aphelionz Sep 19, 2023
2e5f390
Update draft-zsf.md
aphelionz Sep 27, 2023
5e8f30b
Merge branch 'zsf' of github.com:eigerco/zips into eigerco/zsf
aphelionz Sep 27, 2023
904c7af
chore: ZIP html
aphelionz Sep 27, 2023
5e6c367
update: references and definitions
aphelionz Sep 27, 2023
013dcc1
Update draft-issuance.md
aphelionz Sep 27, 2023
bf090f4
Update draft-issuance.md
aphelionz Sep 27, 2023
dca1174
Update draft-issuance.md
aphelionz Sep 27, 2023
de30fea
Update draft-issuance.md
aphelionz Sep 27, 2023
45ff587
Update draft-issuance.md
aphelionz Sep 27, 2023
8cc6f92
Update draft-issuance.md
aphelionz Sep 27, 2023
9f4e7fd
Update draft-issuance.md
aphelionz Sep 27, 2023
78b6c52
fix: date
aphelionz Sep 29, 2023
09e70fe
fix: revert accidental changes to other files
aphelionz Sep 29, 2023
272b516
fix: revert accidental changes
aphelionz Sep 29, 2023
c2a591a
fix: credits
aphelionz Sep 29, 2023
8ea2ecc
fix: define constants
aphelionz Sep 29, 2023
4983a32
fix: S(h) to BlockSubsidy(h)
aphelionz Sep 29, 2023
c5f83c1
fix: refactor motivation section
aphelionz Sep 29, 2023
1e977ba
update: add more context to motivation
aphelionz Oct 4, 2023
74649db
update: rename requirements from G* to R*
aphelionz Oct 4, 2023
2448c6c
update: add graph
aphelionz Oct 4, 2023
e1aa108
update: render html
aphelionz Oct 4, 2023
f603576
Update draft-issuance.md
aphelionz Oct 4, 2023
5d5bc35
Update draft-issuance.md
aphelionz Oct 4, 2023
31d05c5
Update draft-issuance.md
aphelionz Oct 4, 2023
4b6d62c
Update draft-issuance.md
aphelionz Oct 4, 2023
44d5b95
Update draft-issuance.md
aphelionz Oct 4, 2023
3f77205
Update draft-issuance.md
aphelionz Oct 4, 2023
732e65a
update: fix issuance clarity points
aphelionz Oct 4, 2023
d5ea3da
update: deployment block height
aphelionz Oct 7, 2023
44fc779
Update draft-issuance.md
aphelionz Oct 9, 2023
212244f
Update draft-issuance.md
aphelionz Oct 11, 2023
fedfd9e
Update draft-issuance.md
aphelionz Oct 11, 2023
54e349d
update: provide predictability... bullet point
aphelionz Oct 11, 2023
7c64666
update: 4126/100_000_000
aphelionz Oct 11, 2023
900b868
Update simulation code
tomekpiotrowski Oct 12, 2023
3f6eb54
Update the subsidy fraction. Remove Other Notes.
tomekpiotrowski Oct 12, 2023
776295c
Update plots and simulator outputs
tomekpiotrowski Oct 13, 2023
c315670
typos
tomekpiotrowski Oct 13, 2023
86049bb
Expand the BLOCK_SUBSIDY_FRACTION rationale
tomekpiotrowski Nov 7, 2023
b580625
Add information about deployment after ZSF is deployed
tomekpiotrowski Nov 7, 2023
0c42f7b
Explicitly mention dependency on ZSF
tomekpiotrowski Nov 7, 2023
f5224f8
Add information about ZSF subsidies per block
tomekpiotrowski Nov 7, 2023
be2140a
Update draft-issuance.md
tomekpiotrowski Nov 13, 2023
7133f29
remove network upgrade requirement
tomekpiotrowski Nov 16, 2023
f4d84e9
Move deployoment to top level and move it closer to the end
tomekpiotrowski Nov 16, 2023
20a12da
remove the summary section from motivation
tomekpiotrowski Nov 16, 2023
96169eb
Update draft-issuance.md
tomekpiotrowski Nov 16, 2023
80d66d1
Protocol spec: Add macro and Makefile support for NU6
nuttycom Dec 1, 2023
4c50af9
Update draft-zsf.md
aphelionz Mar 12, 2024
5c19898
feat: add ZIP number 233
aphelionz Apr 9, 2024
adb46fb
lang: add block subsidy
aphelionz Apr 9, 2024
ee88119
Update draft-zsf.md
aphelionz Jul 11, 2024
ded0698
ZIP 253: Fix inter-ZIP references
str4d Aug 6, 2024
246ce15
ZIP 2001: Improvements to specification
str4d Aug 6, 2024
c13d063
Render manually, while the CI-based rendering is broken
str4d Aug 13, 2024
a73fa42
Merge pull request #892 from zcash/zip-sync-editing-2024-08-06
str4d Aug 15, 2024
e0e3f25
Remove the section about `ZsfBalanceAfter` persistence
tomekpiotrowski Aug 22, 2024
435fc73
Remove the mention of zsf balance commitments
tomekpiotrowski Aug 22, 2024
38a21d3
Update zip-0253.md
arya2 Aug 26, 2024
4290ff9
Render zip-0253
nuttycom Aug 26, 2024
eb9391b
Merge pull request #897 from zcash/253-testnet-activation-height
daira Aug 26, 2024
c9df015
draft-nuttycom-funding-allocation: Move alternatives 1 & 4 to "previo…
nuttycom Jul 18, 2024
b6c7a2c
draft-nuttycom-funding-allocation: Move the 20% lockbox proposal to p…
nuttycom Jul 30, 2024
9c5e188
Create ZIP 1015 from the voted-upon funding allocation proposal draft.
nuttycom Aug 26, 2024
92ed400
Restore the draft NU6 funding proposal that was voted on.
nuttycom Aug 26, 2024
e5dc216
Update ZIP 214 to include the ZIP 1015 funding streams as Revision 1
nuttycom Aug 26, 2024
e5c5b19
ZIP 1015: update FPF-related language
conradoplg Aug 26, 2024
57d0fe6
Apply suggestions from code review
nuttycom Aug 26, 2024
718d3c2
Merge pull request #881 from nuttycom/nuttycom-reorg-fund-alternatives
nuttycom Aug 26, 2024
0d5706b
ZIP 253: move to Proposed and fill in assigned ZIP number 1015.
daira Aug 27, 2024
d93d3f4
Re-render HTML.
daira Aug 27, 2024
c63b189
Merge pull request #900 from daira/zip-253-and-rerender
nuttycom Aug 27, 2024
da1abd5
update constraint 1 per suggestion
conradoplg Aug 27, 2024
6fa4073
conformance language
conradoplg Aug 27, 2024
eb6f24f
Merge pull request #898 from zcash/fpf-language
nuttycom Aug 27, 2024
a279a34
Merge remote-tracking branch 'upstream/main' into zsf
nuttycom Aug 27, 2024
54195b1
Add Kris Nuttycombe as a ZIP Editor.
daira Aug 27, 2024
2d8c904
Re-render ZIP 1015.
daira Aug 27, 2024
f9838bf
Move draft-zsf.md to zips/zip-0233.md
nuttycom Aug 27, 2024
d039026
[ZIP 233] Wrap and format math syntax.
nuttycom Aug 27, 2024
1e0431e
Merge pull request #901 from daira/add-kris-as-zip-editor
conradoplg Aug 27, 2024
cd82c28
Merge pull request #902 from nuttycom/zsf
daira Aug 27, 2024
d6028a4
Merge remote-tracking branch 'upstream/main' into issuance
nuttycom Aug 27, 2024
6464118
[ZIP 234] Move issuance zip draft to ZIP 234
nuttycom Aug 27, 2024
996f3b4
[ZIP 234] Format and re-render
nuttycom Aug 27, 2024
a20fcbe
Boilerplate for NU6 (orginally based on Kris' branch 'protocol_nu6_bo…
daira Aug 28, 2024
815b38c
Set Change History date for 2024.5.0.
daira Aug 28, 2024
9cdb4c1
Regenerate PDFs.
daira Aug 28, 2024
11e3fab
Merge pull request #744 from nuttycom/protocol_nu6_boilerplate
daira Aug 28, 2024
93a1a87
Merge pull request #903 from nuttycom/issuance
nuttycom Aug 28, 2024
f5a6dd7
commenting out CI token lines to allow CI to build
vivek-arte Sep 25, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Protocol spec: Add macro and Makefile support for NU6
  • Loading branch information
nuttycom committed Dec 2, 2023
commit 80d66d187666f125396dd33c943735233fd7d90c
35 changes: 32 additions & 3 deletions protocol/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@ NOCRUFT?=|perl -pe 's|[{\<\(]\/[^ ]* ?||g;s|^.* has been referenced but does not

.PHONY: all all-specs release discard
all: .Makefile.uptodate
$(MAKE) nu5 canopy heartwood blossom sapling
$(MAKE) nu6 nu5 canopy heartwood blossom sapling

all-specs: .Makefile.uptodate
$(MAKE) nu5.pdf canopy.pdf heartwood.pdf blossom.pdf sapling.pdf
$(MAKE) nu6.pdf nu5.pdf canopy.pdf heartwood.pdf blossom.pdf sapling.pdf

release:
ifeq ($(shell git tag --points-at HEAD |wc -l),0)
Expand Down Expand Up @@ -60,6 +60,9 @@ canopy.pdf: protocol.tex zcash.bib incremental_merkle.png key_components_sapling
nu5.pdf: protocol.tex zcash.bib incremental_merkle.png key_components_sapling.png
$(MAKE) nu5

nu6.pdf: protocol.tex zcash.bib incremental_merkle.png key_components_sapling.png
$(MAKE) nu6

.PHONY: auxsapling
auxsapling:
printf '\\toggletrue{issapling}\n\\renewcommand{\\docversion}{Version %s [\\SaplingSpec]}' "$$(git describe --tags --abbrev=6)" |tee protocol.ver
Expand Down Expand Up @@ -126,6 +129,20 @@ nu5:
mv -f aux/nu5.pdf .
cp -f nu5.pdf protocol.pdf

.PHONY: auxnu6
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: nu6
nu6:
$(MAKE) auxnu6
mv -f aux/nu6.pdf .
cp -f nu6.pdf protocol.pdf

.PHONY: nolatexmk-sapling
nolatexmk-sapling:
printf '\\toggletrue{issapling}\n\\renewcommand{\\docversion}{Version %s [\\SaplingSpec]}' "$$(git describe --tags --abbrev=6)" |tee protocol.ver
Expand Down Expand Up @@ -187,6 +204,18 @@ nolatexmk-nu5:
sh mymakeindex.sh -o nu5.ind nu5.idx
$(LATEX) -jobname=nu5 protocol.tex || { touch incremental_merkle.png; exit 1; }

.PHONY: nolatexmk-nu6
nolatexmk-nu6:
printf '\\toggletrue{isnusix}\n\\renewcommand{\\docversion}{Version %s [\\NUSixSpec]}' "$$(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 nu6.aux nu6.bbl nu6.blg nu6.brf nu6.bcf
$(LATEX) -jobname=nu6 protocol.tex || { touch incremental_merkle.png; exit 1; }
biber nu6
$(LATEX) -jobname=nu6 protocol.tex || { touch incremental_merkle.png; exit 1; }
$(LATEX) -jobname=nu6 protocol.tex || { touch incremental_merkle.png; exit 1; }
sh mymakeindex.sh -o nu6.ind nu6.idx
$(LATEX) -jobname=nu6 protocol.tex || { touch incremental_merkle.png; exit 1; }

.PHONY: clean
clean:
rm -f aux/* html/* protocol.ver protocol.pdf nu5.pdf canopy.pdf heartwood.pdf blossom.pdf sapling.pdf
rm -f aux/* html/* protocol.ver protocol.pdf nu6.pdf nu5.pdf canopy.pdf heartwood.pdf blossom.pdf sapling.pdf
47 changes: 43 additions & 4 deletions protocol/protocol.tex
Original file line number Diff line number Diff line change
Expand Up @@ -521,6 +521,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}
Expand All @@ -531,6 +532,8 @@
\togglefalse{iscanopy}
\newtoggle{isnufive}
\togglefalse{isnufive}
\newtoggle{isnusix}
\togglefalse{isnusix}
\InputIfFileExists{protocol.ver}{}{}

\newcommand{\doctitle}{Zcash Protocol Specification}
Expand Down Expand Up @@ -563,8 +566,24 @@
\newcommand{\canopycolorname}{purple}
\newcommand{\nufivecolor}{black!25!blue!65!green!65}
\newcommand{\nufivecolorname}{slate blue}
\newcommand{\nusixcolor}{red!92!green!54}
\newcommand{\nusixcolorname}{magenta}
\newcommand{\labelcolor}{yellow!20}

\iftoggle{isnusix}{
\providecommand{\baseurl}{https://zips.z.cash/protocol/nu6.pdf}
\toggletrue{isnusix}
\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/protocol.pdf}
\toggletrue{iscanopy}
Expand Down Expand Up @@ -705,6 +724,8 @@
\newcommand{\CanopyText}{\textbf{Canopy}}
\newcommand{\NUFive}{\termbf{NU5}}
\newcommand{\NUFiveText}{\textbf{NU5}}
\newcommand{\NUSix}{\termbf{NU6}}
\newcommand{\NUSixText}{\textbf{NU6}}
\newcommand{\Orchard}{\termbf{Orchard}}
\newcommand{\OrchardText}{\textbf{Orchard}}
\newcommand{\SaplingOrOrchard}{\Sapling{}\nufive{ or \Orchard{}}\xspace}
Expand Down Expand Up @@ -2377,6 +2398,8 @@
\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}}
Expand All @@ -2396,6 +2419,8 @@
\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}}
Expand Down Expand Up @@ -2423,6 +2448,8 @@
\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}}}
Expand Down Expand Up @@ -2487,10 +2514,14 @@
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 draft specification defines the \Zcash consensus protocol
\notnusix{\nufive{\noindent This specification defines the \Zcash consensus protocol
at launch; after each of the upgrades codenamed \Overwinter, \Sapling, \Blossom,
\Heartwood, and \Canopy; and proposed changes for \NUFive. It is a work in progress.
Protocol differences from \Zerocash and \Bitcoin are also explained.}
\Heartwood, \Canopy, and \NUFive. It is a work in progress. Protocol
differences from \Zerocash and \Bitcoin are also explained.}}
\nusix{\noindent This draft 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}{,}{, }.
Expand Down Expand Up @@ -2560,6 +2591,9 @@
\notbeforenufive{Changes specific to the \NUFive upgrade following \Canopy
are highlighted in \nufive{\nufivecolorname}.}

\notbeforenusix{Changes specific to the \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.
Expand Down Expand Up @@ -12281,10 +12315,15 @@
\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 activation heights have 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}.}
Expand Down