Repository navigation
node-2.1.200-rc.2
Pre-releasenode 2.1.200-rc.2
Metadata
-
Release type: patch
Semver delta from node 2.1.101, the previous published release (release body).
-
Date: 2026-11-12 (pre-release published at the tag; release body)
-
Sister-line note: — No parallel line: this release follows node 2.1.101 on the 2.x line (owner-confirmed 2026-11-12).
-
Environment: Preview, Preprod and Mainnet (owner-confirmed 2026-11-12)
-
Released artifact(s): https://github.com/midnightntwrk/midnight-node/releases/tag/node-2.1.200-rc.2, built from git tag node-2.1.200-rc.2; node and toolkit binaries and two container images ship at this tag, see Artifacts below.
-
Component class: core/infra
-
Upgrade scope: binary only (detail under Deployment information)
-
Reset required: No (detail under Deployment information)
-
Governance action required: No (detail under Deployment information)
High-level summary
This is a pre-release build for Preview, Preprod and Mainnet; it is not a production release.
node 2.1.200-rc.2 is a binary-only release on top of node 2.1.101: the node and toolkit move to ledger 9.1.0.2-rc.0 and to version 2.1.200, and the runtime stays 2.1.100 with spec_version 2001100, so no runtime upgrade ships (release body). The runtime upgrade that node 2.1.200-rc.1 carried, which raised the transaction node cap to 8,192, is withdrawn from this release (commit 91c2fd8).
Audience
These notes are for:
- Full Node Operators, validators and block producers running node 2.1.101 or node 2.1.200-rc.1.
- Anyone who tested the node 2.1.200-rc.1 runtime, since its runtime changes are not in this build.
- External integrators and wallet developers whose contract calls declare more than 1,024 nodes; see Known issues.
- Users of the node toolkit.
Dependencies
Component-local hard requirements:
- None new relative to node 2.1.101. A 2.1.200 node runs the 2.1.100 runtime: the runtime and metadata crates stay
2.1.100andspec_versionstays002_001_100(release body). - Between node-2.1.101 and this tag the only source file that changes is the test helper
ledger/helpers/src/utils.rs; the rest of the diff isCargo.toml,Cargo.lock,deny.toml,docs/openrpc.json, the node and toolkit crate manifests and two change files (commit fbb979c).
Downstream impact (cascading effects).
- Runtime metadata is byte-identical to 2.1.100, and
transaction_versionstays at 4, so clients built against the 2.1.100 metadata need no change (commit 91c2fd8, commit fbb979c). - Relative to node 2.1.200-rc.1: the
MaxTransactionNodesstorage value and the root setterset_max_transaction_nodesare gone, the cap is the 1,024 config constant again, andspec_versionreturns to002_001_100(commit 91c2fd8). Clients adapted to the rc.1 metadata must return to the 2.1.100 metadata. - The rc.1 runtime (
spec_version2001200) was never enacted on any network, so no network has anything to undo before running this build (owner-confirmed 2026-11-12). - Toolkit. The block fetcher's
V2_1_200runtime and the 2.1.200 metadata file are removed, so the toolkit at this tag decodes 2.1.100 blocks and no longer carries the rc.1 runtime (commit 91c2fd8).
Tested-with versions
Build pins, not QA-verified. Read from
Cargo.lock,COMPACTC_VERSIONandruntime/src/lib.rsat commit fbb979c, the commit this tag points at.
Rows that changed since node 2.1.101 are marked in the Source column.
| Component | Tested-with version | Source |
|---|---|---|
| Runtime (unchanged, as shipped with node 2.1.101) | 2.1.100, spec_version 2001100, transaction_version 4 |
workspace crate (commit fbb979c) |
midnight-ledger (ledger 8, historical blocks) |
8.1.3 |
crates.io (commit fbb979c) |
midnight-zswap (ledger 8) |
8.1.3 |
crates.io (commit fbb979c) |
midnight-onchain-runtime / -state / -vm (ledger 8) |
3.1.2 / 3.0.2 / 3.1.2 |
crates.io (commit fbb979c) |
midnight-coin-structure (ledger 8) |
2.0.2 |
crates.io (commit fbb979c) |
midnight-storage (ledger 8) |
2.0.5 |
crates.io (commit fbb979c) |
midnight-transient-crypto (ledger 8) |
2.2.0 |
crates.io (commit fbb979c) |
midnight-ledger-v9 (ledger 9) |
1.0.2 |
changed: ledger tag crate-ledger-9.1.0.2-rc.0 at bfd7adff (commit 09df349) |
midnight-ledger-static (ledger 8 and 9) |
9.0.0 / 10.0.0 |
crates.io (commit fbb979c) |
midnight-zswap (ledger 9) |
9.0.1 |
crates.io (commit fbb979c) |
midnight-onchain-runtime / -state / -vm (ledger 9) |
4.0.1 |
crates.io (commit fbb979c) |
midnight-coin-structure (ledger 9) |
3.0.1 |
crates.io (commit fbb979c) |
midnight-storage (ledger 9) |
3.1.0 |
changed: ledger tag storage-3.1.0-rc.0 at 4586496a (commit 09df349) |
midnight-transient-crypto (ledger 9) |
3.1.0 |
changed: ledger tag transient-crypto-3.1.0-rc.0 at 61f1a4be (commit 09df349) |
midnight-base-crypto / -derive (shared) |
1.1.1 / 1.1.0 |
crates.io (commit fbb979c) |
midnight-serialize (shared) |
1.2.1 |
crates.io (commit fbb979c) |
midnight-storage-core / -macros (shared) |
1.2.3 / 1.0.1 |
crates.io (commit fbb979c) |
midnight-zkir |
2.2.0 / 3.2.0 |
2.2.0 crates.io; 3.2.0 changed source: midnight-zkir tag zkir-3.2.0 at 446c7fec (commit 09df349) |
midnight-proofs |
0.7.2 / 0.8.2 |
crates.io (commit fbb979c) |
midnight-circuits |
6.2.1 / 7.3.0 |
crates.io (commit fbb979c) |
midnight-zk-stdlib |
1.2.1 / 2.4.0 |
crates.io (commit fbb979c) |
midnight-curves |
0.2.1 / 0.3.1 |
crates.io (commit fbb979c) |
polkadot-sdk |
stable2606 |
Midnight fork, branch stable2606 at 6b0ce4838600 (commit fbb979c) |
parity-db |
0.5.4 |
Midnight fork, branch master at d44ef4fafd15 (commit fbb979c) |
wasmtime |
36.0.19 |
crates.io (commit fbb979c) |
partner-chains |
sidechain-domain 1.8.1 |
vendored in-tree (commit fbb979c) |
| Compact compiler | 0.35.0 |
COMPACTC_VERSION (commit fbb979c) |
Deployment information
- Upgrade scope: binary only. The enacted runtime is unchanged: it stays the 2.1.100 runtime with
spec_version2001100, and this tag ships no runtime wasm and nosrtool-digest.json(release body). - Reset required: No. The
res/directory, which holds the chain specs and config presets, is unchanged between node-2.1.101 and this tag (commit fbb979c). - Governance action required: No. No runtime upgrade ships, so there is nothing to enact (commit 9b17efc).
- Downtime / coordination: None. Binaries can be upgraded on a rolling basis alongside node 2.1.101, with no ordering and no maintenance window (owner-confirmed 2026-11-12).
Artifacts
Binaries, attached to the GitHub release (release body):
midnight-node-2.1.200-rc.2-linux-amd64.tar.gz: node binary, linux/amd64,sha256:a37c0b75e2052e5e44721e0bf525ad5fbb37c4702c46f100407bbb09ca0d33a3midnight-node-2.1.200-rc.2-linux-arm64.tar.gz: node binary, linux/arm64,sha256:ccf2a7f270a898328a9c25949cfccbb553901162af5345e94b4c822ba81a2daemidnight-node-toolkit-2.1.200-rc.2-linux-amd64.tar.gz: toolkit binary, linux/amd64,sha256:211bce0e573adc6c98dadbdf4d7ff476ce7a948d45114fc452c592ca844d972bmidnight-node-toolkit-2.1.200-rc.2-linux-arm64.tar.gz: toolkit binary, linux/arm64,sha256:e651512fe64fe6162ae8373bf7682e1fa3a2b489ed29058e38cc7505402d80ffSHA256SUMS: checksums of the four archives,sha256:a801bc598529f26d91b6cc4e44727d23f2ce5c832c01dd18bb04286abde2f626
Runtime: none at this tag. The runtime to run is midnight_node_runtime-2.1.100.compact.compressed.wasm from the node-2.1.101 release (release body).
Container images, Docker Hub digests read on 2026-11-12, with the same tags present on ghcr.io/midnightntwrk (release body). The toolkit is also tagged in git as toolkit-2.1.200-rc.2:
midnightntwrk/midnight-node:2.1.200-rc.2: node image, multi-arch indexsha256:ba37e5f7830e8a6187cbaa3093fd1b1755772685d055de5f2a5ccacfde818c68; linux/amd64sha256:8d209901a0faf5cc1f615454270be287ed245c30bb614dacd491dd11897290e1; linux/arm64sha256:35af5cf44fecf92419e168ed2cebf87230e949771c48839dca3dbe8e6a124c4bmidnightntwrk/midnight-node-toolkit:2.1.200-rc.2: toolkit image, multi-arch indexsha256:7c8f48a5aca61ae3e5e9464437d54e4efbfd8e71af1c1e3710c65089be18119f; linux/amd64sha256:dda2d02b465dd1385681dcf2409a37194d25a446c5651b0955113085b25aeddf; linux/arm64sha256:57de6871f216e444b1f224779b4919350f9931078ffad395874501f9b4b8dfd5
What changed
Changes are relative to node 2.1.101, the previous published release.
- Node upgrade. Ledger 9 moves from 9.1.0.1 to 9.1.0.2-rc.0:
midnight-ledger-v91.0.2,midnight-storage3.1.0 andmidnight-transient-crypto3.1.0, each pinned to its per-crate tag in the public ledger repo. Ledger 8 stays on 8.1.3. (PR #2425) - Node upgrade. The node crate and
docs/openrpc.jsonmove to 2.1.200. The runtime and metadata crates stay2.1.100andspec_versionstays002_001_100, so the wasm is unchanged. (PR #2428) - Runtime upgrade. Withdrawn since node 2.1.200-rc.1: the runtime 2.1.200 with
spec_version2001200, theMaxTransactionNodesstorage value defaulting to 8,192 and its root setter are not in this build. The cap is the 1,024 config constant, as in node 2.1.101. (PR #2427) - Toolkit. The toolkit moves to 2.1.200 and drops the 2.1.200 runtime its block fetcher gained in rc.1. (commit 9b17efc, commit 91c2fd8)
- The auto-generated body at this tag also re-lists the change fragments that node 2.1.101 already shipped, among them the CA bundle remediation for CVE-2026-113470 and the toolkit Node.js bump for CVE-2026-111497. Both were announced in the node 2.1.101 note and are not new here. (release body)
New features
None
New features requiring configuration updates
None
Improvements
ledger 9.1.0.2-rc.0
Node upgrade + Toolkit.
Description: Ledger 9 moves to 9.1.0.2-rc.0 (PR #2425). Three crates change version and none is on crates.io yet, so each is pinned to its per-crate tag in the public ledger repo:
| Crate | From (crates.io) | To | Source | Cited |
|---|---|---|---|---|
midnight-ledger-v9 |
1.0.1 | 1.0.2 | ledger tag crate-ledger-9.1.0.2-rc.0 (bfd7adff) |
release body |
midnight-storage |
3.0.0 | 3.1.0 | ledger tag storage-3.1.0-rc.0 (4586496a) |
release body |
midnight-transient-crypto |
3.0.1 | 3.1.0 | ledger tag transient-crypto-3.1.0-rc.0 (61f1a4be) |
release body |
midnight-zkir 3.2.0 moves from crates.io to the zkir-3.2.0 tag of midnight-zkir (446c7fec), because the ledger crate now names it as a git dependency; its source is identical to the registry crate. Every other ledger-family crate stays on crates.io, and scoped-tls 1.0.1 is a new dependency of midnight-storage (release body).
What the ledger change contains:
- Transaction construction partitions transcripts against a mock transaction's size and time-to-dismiss, takes an expected
TransactionShape, and rehearses calls with the widest commitment-tree indices. This is client-side construction code, used by the toolkit. (release body) midnight-storagegainsALLOW_SHORT_EXTENSION_CHAINS, a thread-local that lets clients load tries holding an extension shorter than 255 nibbles with an extension child. The node never sets it: under it a node would accept wire data other nodes reject. Without it the trie canonicity check is unchanged. (release body)PureGeneratorPedersen::smallest_representableis added tomidnight-transient-crypto. (release body)
Downgrade check: each new tag descends from the commit the previous crates.io crate was published from, and a diff -r of each crate's src/ against the previous registry crate shows no fix removed (release body).
Deprecations
None
Breaking changes
None
Known issues
transactions declaring more than 1,024 nodes are rejected
Description: The 2.1.100 runtime refuses a transaction that declares more than 1,024 DAG nodes, and this build leaves that runtime in place (issue #2386). The fix that node 2.1.200-rc.1 carried, a cap of 8,192 held in storage, is withdrawn from this release (commit 91c2fd8). The issue was still open on 2026-11-12.
Workaround (if any): None for an affected transaction. The raised cap is planned for node 2.1.300 (owner-confirmed 2026-11-12).
verifier key removal transactions are rejected as overspent
Description: A contract maintenance transaction that removes a verifier key (VerifierKeyRemove) and is balanced by a client using ledger version 9.1.0.0 is rejected with Custom error: 138 (BalanceCheckOverspend), because the client prices it lower than the runtime does (issue #2375). The issue was still open on 2026-11-12.
Workaround (if any): Bump the client's ledger version to 9.1.0.1 (issue #2375).
filtered transactions enter blocks in safe mode
Description: While the chain is in safe mode, filtered send_mn_transaction extrinsics still enter the pool and are included as failed extrinsics (issue #2205). The issue was still open on 2026-11-12.
Workaround (if any): None needed: block space is always reserved for governance actions.
reset_members reports more weight than it declares
Description: When both governance committees change in one block, the reset_members inherent reports more weight than it declares and nodes log a post-dispatch weight warning (issue #2226). The issue was still open on 2026-11-12.
Workaround (if any): None known.
ledger storage is not garbage-collected
Description: Every block's ledger state root is persisted and nothing collects old roots, so ledger storage grows with the chain (issue #2294). This release adds no ledger garbage collection (commit fbb979c).
Workaround (if any): None; provision disk for continued growth (issue #2294).
preview chain spec has no boot nodes
Description: The Preview chain spec lists no boot nodes, so a Preview node started without --bootnodes stays idle with no peers (issue #2236). The chain specs are unchanged in this release (commit fbb979c).
Workaround (if any): Pass the Preview boot nodes listed at https://docs.midnight.network/nodes/boot-node with --bootnodes (issue #2236).
malformed transactions logged at error level
Description: A malformed transaction submitted through RPC is logged at error level, which can trip error-rate alerting on public RPC nodes (issue #2242). The issue was still open on 2026-11-12.
Workaround (if any): None; alerting on node error logs may need to tolerate these lines (issue #2242).
Links and references
- PRs: #2425, #2427, #2428
- Engineering docs: https://github.com/midnightntwrk/midnight-node/blob/node-2.1.200-rc.2/docs/security/image-signing.md (image signing)
- Known issues board: https://github.com/midnightntwrk/midnight-node/issues
- Public schema: https://github.com/midnightntwrk/midnight-node/blob/node-2.1.200-rc.2/docs/openrpc.json
- API documentation: the OpenRPC document linked under Public schema, version 2.1.200 at this tag (commit fbb979c)
- Ledger release: https://github.com/midnightntwrk/midnight-ledger/releases/tag/ledger-9.1.0.2-rc.0
Fixed defect list
No defect is fixed in node 2.1.200-rc.2 relative to node 2.1.101 (commit fbb979c).
| Defect number | Description |
|---|---|
| issue 2386 | Not fixed. Listed as fixed in the node 2.1.200-rc.1 note; the fix is withdrawn from this release and the issue stays under Known issues (commit 91c2fd8). |