Skip to content

Draft protocol spec refactoring for Ironwood#1300

Draft
daira wants to merge 9 commits into
zcash:mainfrom
daira:ironwood-spec
Draft

Draft protocol spec refactoring for Ironwood#1300
daira wants to merge 9 commits into
zcash:mainfrom
daira:ironwood-spec

Conversation

@daira

@daira daira commented Jun 16, 2026

Copy link
Copy Markdown
Collaborator

Work in progress.

daira and others added 9 commits June 13, 2026 23:56
Signed-off-by: Daira-Emma Hopwood <daira@jacaranda.org>
(Jubjub) rather than r_P (Orchard).

Signed-off-by: Daira-Emma Hopwood <daira@jacaranda.org>
Signed-off-by: Daira-Emma Hopwood <daira@jacaranda.org>
Signed-off-by: Daira-Emma Hopwood <daira@jacaranda.org>
…n for

TODOs, so that those colours can be reused.

Signed-off-by: Daira-Emma Hopwood <daira@jacaranda.org>
…pools

via semantic *type markup.

This is preparation for Ironwood: the main practical reason to make the
distinction is that the Orchard shielded protocol will be used for both
the Orchard and Ironwood shielded pools. It has also always been annoying
that "Sapling" named a Network Upgrade as well as a shielded protocol and
its pool.

Introduce a "concept -> typeface" indirection: low-level typeface macros
(\strongtype, \slantedtype, \mathsanstype, \mathsansitalictype, ...) and
semantic macros mapping each concept to one of them (\upgradetype,
\topprotocoltype, \subprotocoltype, \pooltype, \softwaretype,
\fieldnametype, ...), so the typeface for a concept is chosen in one
place. Rework \emph/\schoolbook to override the variant typefaces rather
than the previous \fakebold hack, and retire \mathsfit. Add the
\term<concept> wrappers and \ChainValuePoolBalance.

Redefine the existing top-level-protocol, Network Upgrade,
shielded-protocol, and pool name macros (Zcash; Overwinter ... NU6.1;
the Sprout, Sapling, and Orchard protocols and pools) to use the semantic
markup, and apply it throughout the existing text: upgrades bold,
protocols upright math sans, pools slanted.

Some of the references to shielded protocols become references to
corresponding pools, but not the ones that are entangled with subsequent
changes.

Note that the refactoring, in particular the switch from associating
notes, etc. with shielded protocols to associating them with shielded
pools, is applied also to the Change History. Since shielded protocols
were in one-to-one correspondence with shielded pools throughout this
history, I believe this isn't too much of a misrepresentation.

Signed-off-by: Daira-Emma Hopwood <daira@jacaranda.org>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Daira-Emma Hopwood <daira@jacaranda.org>
Signed-off-by: Daira-Emma Hopwood <daira@jacaranda.org>
Comment thread protocol/protocol.tex

% \indexstyle is normally plain, but is overridden to be \strongitalictype while in \defining.

@daira daira Jun 16, 2026

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
% \indexstyle is normally plain, but is overridden to be \strongitalictype while in \defining.
% \indextype is normally normalstyle (plain), but is overridden to be strongitalictype while in \defining.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant