Skip to content

node-2.1.200-rc.2

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Nov 06:18
fbb979c

node 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.100 and spec_version stays 002_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 is Cargo.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_version stays 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 MaxTransactionNodes storage value and the root setter set_max_transaction_nodes are gone, the cap is the 1,024 config constant again, and spec_version returns to 002_001_100 (commit 91c2fd8). Clients adapted to the rc.1 metadata must return to the 2.1.100 metadata.
  • The rc.1 runtime (spec_version 2001200) 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_200 runtime 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_VERSION and runtime/src/lib.rs at 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_version 2001100, and this tag ships no runtime wasm and no srtool-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:a37c0b75e2052e5e44721e0bf525ad5fbb37c4702c46f100407bbb09ca0d33a3
  • midnight-node-2.1.200-rc.2-linux-arm64.tar.gz: node binary, linux/arm64, sha256:ccf2a7f270a898328a9c25949cfccbb553901162af5345e94b4c822ba81a2dae
  • midnight-node-toolkit-2.1.200-rc.2-linux-amd64.tar.gz: toolkit binary, linux/amd64, sha256:211bce0e573adc6c98dadbdf4d7ff476ce7a948d45114fc452c592ca844d972b
  • midnight-node-toolkit-2.1.200-rc.2-linux-arm64.tar.gz: toolkit binary, linux/arm64, sha256:e651512fe64fe6162ae8373bf7682e1fa3a2b489ed29058e38cc7505402d80ff
  • SHA256SUMS: 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 index sha256:ba37e5f7830e8a6187cbaa3093fd1b1755772685d055de5f2a5ccacfde818c68; linux/amd64 sha256:8d209901a0faf5cc1f615454270be287ed245c30bb614dacd491dd11897290e1; linux/arm64 sha256:35af5cf44fecf92419e168ed2cebf87230e949771c48839dca3dbe8e6a124c4b
  • midnightntwrk/midnight-node-toolkit:2.1.200-rc.2: toolkit image, multi-arch index sha256:7c8f48a5aca61ae3e5e9464437d54e4efbfd8e71af1c1e3710c65089be18119f; linux/amd64 sha256:dda2d02b465dd1385681dcf2409a37194d25a446c5651b0955113085b25aeddf; linux/arm64 sha256: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-v9 1.0.2, midnight-storage 3.1.0 and midnight-transient-crypto 3.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.json move to 2.1.200. The runtime and metadata crates stay 2.1.100 and spec_version stays 002_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_version 2001200, the MaxTransactionNodes storage 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-storage gains ALLOW_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_representable is added to midnight-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

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).