Skip to content

Commit db85666

Browse files
committed
WIP
1 parent 4cf2b44 commit db85666

File tree

2 files changed

+125
-7
lines changed

2 files changed

+125
-7
lines changed

zips/zip-0001.md

Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
2+
ZIP: 1
3+
Title: Network Upgrade Policy and Scheduling
4+
Owners: Kris Nuttycombe <kris@nutty.land>
5+
Daira-Emma Hopwood <daira-emma@electriccoin.co>
6+
Status: Draft
7+
Category: Process
8+
Created: 2025-08-25
9+
License: MIT
10+
Discussions-To: <https://github.com/zcash/zips/issues/343>
11+
12+
13+
# Terminology
14+
15+
The key words "MUST", "REQUIRED", "MUST NOT", "SHOULD", and "MAY" in this
16+
document are to be interpreted as described in BCP 14 [^BCP14] when, and
17+
only when, they appear in all capitals.
18+
19+
The terms "Mainnet" and "Testnet" in this document are to be interpreted as
20+
defined in the Zcash protocol specification [^protocol-networks].
21+
22+
23+
# Abstract
24+
25+
This document aims to describe the process of preparing and executing a
26+
Zcash Network Upgrade, including:
27+
28+
- The interaction of EoS halts with the release of NU-supporting software.
29+
- When must nodes halt by that do not support an upcoming NU?
30+
- How NU activation heights are chosen, and the point at which they're made
31+
public in sw releases.
32+
- The minimum time that the ecosystem needs to have to upgrade to an
33+
NU-supporting release.
34+
- Audit requirements for upgrades.
35+
- Boilerplate requirements:
36+
- activation ZIP
37+
- consensus branch ID (partially covered by ZIP 200)
38+
- version group ID if needed
39+
- protocol spec changes
40+
- differences between Testnet and Mainnet
41+
- peer protocol versions
42+
- ZIP Editors' responsibilities for an NU
43+
- Governance issues
44+
- What happens if there is a security issue or other problem that necessitates a change
45+
to the NU-supporting release?
46+
- before Testnet activation
47+
- after Testnet activation & before release of node s/w that sets the Mainnet activation height
48+
- after the release of node s/w that sets the Mainnet activation height & before Mainnet activation
49+
- after Mainnet activation
50+
51+
52+
# Motivation
53+
54+
The Zcash network performs hard-forking upgrades following the full node coordination mechanism specified in ZIP 200 [^zip-0200] when changes are made to the consensus rules. In order for the network to continue operating without interruption at network upgrade boundaries, node implementers must coordinate in order to ensure that the nodes that are active on the network at the time of such an upgrade are all running compatible software.
55+
56+
Various documents have been written in the past that attempted to provide frameworks or documentation for the network upgrade process at an "engineers working on the Zcash protocol" level:
57+
58+
- [Network Upgrade Pipeline 1.0](https://electriccoin.co/blog/the-zcash-network-upgrade-pipeline/)
59+
- Network Upgrade Pipeline 1.1
60+
- [Network Upgrade Pipeline 1.2](https://docs.google.com/drawings/d/1WAvIkVBv_fC4L4wDoAJaMTYVh3dJbwhR5YuP5HgOjFw/edit)
61+
- This was followed for NU3 and NU4.
62+
- [Network Upgrade Pipeline 2.0](https://electriccoin.co/blog/network-upgrade-pipeline-2-0/)
63+
- This was followed for NU5 and (to some extent) NU6.
64+
- [Deadlines for ZIPs that want to be activated in NU7](https://forum.zcashcommunity.com/t/important-deadline-for-zips-that-want-to-be-activated-in-nu7/48998)
65+
66+
These past attempts have suffered from several issues:
67+
- They were designed and used at a time when there was either one single feature being deployed in a network upgrade, or one single entity (usually the Electric Coin Company) developing all the NU's features. As such, and despite best efforts, they were ntot well-suited for parallelization.
68+
- TODO: Document other issues from past attempts that this ZIP is trying to solve.
69+
70+
By following the steps specified by this ZIP, and ensuring that the required timelines are adhered to by node implementers, the Zcash network can maintain uninterrupted continuity of service.
71+
72+
73+
74+
# Requirements
75+
76+
77+
78+
# Non-requirements
79+
80+
81+
82+
# Specification
83+
84+
## End-Of-Service Halts
85+
86+
Prior to a network upgrade, all nodes that do not support the network upgrade MUST have reached their end-of-service halt height at least 16384 blocks prior to the network upgrade's ac
87+
ho do not upgrade their node software until the end-of-service halt occurs have ample ivation height. This ensures that entities w
88+
89+
## Timeline
90+
91+
### Research and Development
92+
93+
### ZIP Review
94+
95+
### Specification
96+
97+
### Auditing
98+
99+
#### Auditor selection
100+
101+
#### Specification auditing
102+
103+
#### Implementation auditing
104+
105+
### Testing
106+
107+
### Partner adoptio
108+
109+
# Reference implementation
110+
111+
112+
113+
# References
114+
115+
[^BCP14]: [Information on BCP 14 — "RFC 2119: Key words for use in RFCs to Indicate Requirement Levels" and "RFC 8174: Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words"](https://www.rfc-editor.org/info/bcp14)
116+
117+
[^protocol]: [Zcash Protocol Specification, Version 2024.5.1 or later](protocol/protocol.pdf)
118+
119+
[^protocol-networks]: [Zcash Protocol Specification, Version 2024.5.1. Section 3.12: Mainnet and Testnet](protocol/protocol.pdf#networks)
120+
121+
[^zip-0000]: [ZIP 0: ZIP Process](zip-0000.rst)
122+
123+
[^zip-0200]: [ZIP 200: Network Upgrade Mechanism](zip-0200.rst)
124+
125+
[^zip-0201]: [ZIP 201: Network Peer Management for Overwinter](zip-0201.rst)

zips/zip-0001.rst

Lines changed: 0 additions & 7 deletions
This file was deleted.

0 commit comments

Comments
 (0)