From 6eba997083249270d2d3540450552532c7274851 Mon Sep 17 00:00:00 2001 From: Francisco Gindre Date: Sat, 18 Jul 2026 21:33:18 -0300 Subject: [PATCH] Update Zcashd End-of-Life info: 6.20.0 halted at block 3417100 Zcashd reached End-of-Life. The final release, 6.20.0, hit its automatic End-of-Support halt at block height 3417100 (mined July 18th 2026, 22:51 UTC), ahead of the NU6.3 ("Ironwood") mainnet activation which it does not support. - Rewrite zcashd_cycle.mdx: add EOL notice, convert the metronome section to past tense, and replace outdated EOS/NU7 projections with the actual outcome. - index.mdx: deprecation is now complete rather than "targeted for end of 2025". - resources.mdx: Zcashd legacy blurb now reflects EOL and Zebra-only consensus. Co-Authored-By: Claude Opus 4.8 --- src/content/zcash-z3/index.mdx | 7 +- src/content/zcash-z3/resources.mdx | 15 +++-- src/content/zcash-z3/zcashd_cycle.mdx | 94 +++++++++++++++------------ tsconfig.json | 26 ++++++-- 4 files changed, 89 insertions(+), 53 deletions(-) diff --git a/src/content/zcash-z3/index.mdx b/src/content/zcash-z3/index.mdx index 81a8e64..592e3df 100644 --- a/src/content/zcash-z3/index.mdx +++ b/src/content/zcash-z3/index.mdx @@ -16,8 +16,11 @@ Zaino an indexer called developed by ZingoLabs. ECC would be in charge of developing the full-node wallet that would connect to Zaino and Zebra called Zallet. -Zcashd deprecation is a cross-team ecosystem-wide effort which is targeted for -end of 2025. +Zcashd deprecation was a cross-team ecosystem-wide effort, and it is now +complete: the final Zcashd release, **6.20.0**, reached its End-of-Life halt at +block 3417100 on July 18th 2026, and Zcash consensus now runs on the Z3 stack. +See the +[Zcashd version lifecycle](/zcash-z3/zcashd_cycle) page for details. ## Zcashd Deprecation is now Z^3 diff --git a/src/content/zcash-z3/resources.mdx b/src/content/zcash-z3/resources.mdx index e32c42e..01135de 100644 --- a/src/content/zcash-z3/resources.mdx +++ b/src/content/zcash-z3/resources.mdx @@ -30,12 +30,15 @@ wallet developed entirely in RustLang by [ECC](https://electriccoin.co/) ## Legacy (Zcashd) Zcashd is the originary consensus node for Zcash. Forked from Bitcoin-core in 2015, -Zcashd has gone through six Network Upgrades and has been the main consensus node -since the Zcash network was deployed in October 28th 2016. It's currently being -deprecated and will soon be replaced by Zebra when the Network Upgrade 7 (NU7) is -deployed. - -ECC Engineers will be posting updates on this website: +Zcashd has gone through several Network Upgrades and was the main consensus node +since the Zcash network was deployed in October 28th 2016. It has now reached +End-of-Life: the final release, 6.20.0, halted at block 3417100 on July 18th 2026, +ahead of the NU6.3 ("Ironwood") network upgrade that it does not support. Zcash +consensus now +runs on Zebra. See the +[Zcashd End-of-Life notice](https://zcash.github.io/zcash/user/end-of-life.html). + +Zcash Engineers will be posting updates on this website: https://z.cash/support/zcashd-deprecation/ diff --git a/src/content/zcash-z3/zcashd_cycle.mdx b/src/content/zcash-z3/zcashd_cycle.mdx index 1240285..471587b 100644 --- a/src/content/zcash-z3/zcashd_cycle.mdx +++ b/src/content/zcash-z3/zcashd_cycle.mdx @@ -1,48 +1,62 @@ -# Zcashd version lifecycle: the Zcash ecosystem metronome. - -Every 16 weeks a Zcashd version *dies* and a new one *is born*. This happens -whether Zcashd code is being substantially changed or not. Once a version is -released, *it can’t be stopped*. Nobody can tell you which version of Zcashd to -run. Zcashd is designed to stop running at a given blockheight and operators have -to update their version to keep validating (or mining) blocks. This means that -if you need to release a new version of Zcashd, for the case it requires the -current supported version to stop working, you need to wait until the -End-of-Support (EOS) of the current version. - -This means that the feature that you finish developing today in Zcashd, will -only see the light of day on mainnet after the EOS date of the current version, -when the version that includes that feature becomes the current version (provided -that it doesn’t need a transition cycle). Sometimes that could mean a day, others -it can mean 16 weeks. That’s how this metronome keeps a decentralized, -permissionless and censorship-resistant protocol keeps everyone coordinated in -terms of software releases. - -The timeline below shows the current Zcash version and the milestones where the -support of the next three versions end. +# Zcashd version lifecycle: the Zcash ecosystem metronome. + +> **Update: Zcashd has reached End-of-Life.** The final release, +> **Zcashd 6.20.0**, reached its automatic **End-of-Support halt** at **block +> height 3417100**, mined on **July 18th 2026 at 22:51 UTC**, and will not +> restart. Zcashd will **not** support the **NU6.3 ("Ironwood")** network +> upgrade, which activates on mainnet around **July 28th 2026**. From that point +> on, Zcash consensus runs on the Rust-based stack (Zebra + Zaino + Zallet). See +> the official +> [Zcashd End-of-Life notice](https://zcash.github.io/zcash/user/end-of-life.html) +> for the migration path. + +## How the metronome worked + +Every 16 weeks a Zcashd version *died* and a new one *was born*. This happened +whether Zcashd code was being substantially changed or not. Once a version was +released, *it couldn't be stopped*. Nobody could tell you which version of Zcashd +to run. Zcashd was designed to stop running at a given blockheight and operators +had to update their version to keep validating (or mining) blocks. This meant +that if you needed to release a new version of Zcashd, for the case it required +the current supported version to stop working, you had to wait until the +End-of-Support (EOS) of the current version. + +This meant that the feature you finished developing on a given day in Zcashd +would only see the light of day on mainnet after the EOS date of the current +version, when the version that included that feature became the current version +(provided it didn’t need a transition cycle). Sometimes that could mean a day, +others it could mean 16 weeks. That’s how this metronome kept a decentralized, +permissionless and censorship-resistant protocol coordinated in terms of +software releases. ![Zcash release cycle](/assets/zcashd_release_cycle.png) -The next Zcashd EOS is January 21st 2026\. This entails that whenever the Zcash -development teams have consensus that Zcashd deprecation development is complete, -then the ecosystem will need a whole EOS cycle to occur in order to deploy the -proper versions that will stop the current supported Zcashd version and allow -the Zcash maintainers to create and deploy the **End-of-Life** version of Zcashd. +## The final cycle -The Z3 development cross-team group gathered and estimated that it is acceptable -to assess that Zcashd deprecation development completion window could span between -now and May 2026 (Zcashd 6.10.1 EOS). This leaves the 16 weeks between 6.10.1 and -6.10.2 to be the cycle buffer where the Z3 infrastructure could co-exist in -production with Zcashd for the case NU7 is set to activate in September 2026 +Zcashd deprecation was a cross-team, ecosystem-wide effort, and it is now +complete. The **End-of-Life** version of Zcashd, **6.20.0**, was created and +deployed with an automatic End-of-Support halt at **block height 3417100**, which +was mined on **July 18th 2026 at 22:51 UTC** +(`00000000001d20ddc7ae13b910c1a12929f753ae779a3c62207e53bc0d30d52f`). Once the +network passed that block, every Zcashd 6.20.0 binary shut down and refused to +restart. -This means that NU7 could be targeted for activation after September 2026 indicated -by Zcashd 6.10.2 EOS Milestone provided that it is feature complete and the NU -process can be carried out by then, with the good practices that the Zcash core -developers have been doing all of these years. +That halt was deliberately scheduled *before* the **NU6.3 ("Ironwood")** mainnet +activation (around **July 28th 2026**), which Zcashd does not support. Timing the +halt ahead of the upgrade guarantees that no legacy Zcashd nodes remain on the +network when NU6.3 activates, leaving Zcash consensus running entirely on the +Rust-based stack. + +Node operators and miners who don't rely on the Zcashd wallet should migrate to +**Zebra**. Those who depend on Zcashd's wallet functionality should move to +**Zallet**, which supports migrating existing `wallet.dat` files. Full details +are in the official +[Zcashd End-of-Life notice](https://zcash.github.io/zcash/user/end-of-life.html). ## Towards a friction-less Network Upgrade process -Zcash core developers are researching ways to reduce the impact of Network -Upgrades that include transaction changes. This means less hassle for wallet and -infrastructure providers and a higher pace for smaller updates even if they do -include transaction format changes. Core developers are committed to improve UX -for all ecosystem actors including the most tech savvy ones. \ No newline at end of file +Zcash core developers are researching ways to reduce the impact of Network +Upgrades that include transaction changes. This means less hassle for wallet and +infrastructure providers and a higher pace for smaller updates even if they do +include transaction format changes. Core developers are committed to improve UX +for all ecosystem actors including the most tech savvy ones. diff --git a/tsconfig.json b/tsconfig.json index fb86185..262667c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,7 +1,11 @@ { "compilerOptions": { "target": "ES2017", - "lib": ["dom", "dom.iterable", "esnext"], + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], "allowJs": true, "skipLibCheck": true, "strict": true, @@ -11,7 +15,7 @@ "moduleResolution": "bundler", "resolveJsonModule": true, "isolatedModules": true, - "jsx": "preserve", + "jsx": "react-jsx", "incremental": true, "plugins": [ { @@ -19,9 +23,21 @@ } ], "paths": { - "@/*": ["./*"] + "@/*": [ + "./*" + ] } }, - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts", "next.config.js", "app/layout.jsx"], - "exclude": ["node_modules"] + "include": [ + "next-env.d.ts", + "**/*.ts", + "**/*.tsx", + ".next/types/**/*.ts", + "next.config.js", + "app/layout.jsx", + ".next/dev/types/**/*.ts" + ], + "exclude": [ + "node_modules" + ] }