This release contains the changes from polkadot-stable2603 to polkadot-stable2606-rc1.
⚠️ Warning: Pre-release Version
The currently published version is a pre-release and is not yet a final stable version. This release is provided for testing purposes only, and there is no guarantee that everything will work as expected. Errors and unusual behaviours of some features are to be expected.
Please use this version at your own risk and report any issues you encounter. We recommend waiting for the official release if you need a stable version.
Changelog
Link to full changelog
Changelog for Node Dev
ℹ️ These changes are relevant to: Those who build around the client side code. Alternative client builders, SMOLDOT, those who consume RPCs. These are people who are oblivious to the runtime changes. They only care about the meta-protocol, not the protocol itself.
[#12080]: fix(statement-network): split peer metric by kind
Impl #12060
Summary
- Change
substrate_sync_statement_peers_connectedfrom a plain gauge to aGaugeVeclabelled bykind - Report statement protocol peers as
kind="full"orkind="light"
[#11415]: Statement store e2e integration tests lite person setup
Summary
- Add a lite person registration test that exercises the full PeopleLite::attest flow on a live parachain, including ring-VRF key generation, attestation, and subsequent statement submission.
[#10477]: Block Bundling Node Side
Implements the node-side logic for block bundling (aka 500ms blocks) in parachains.
The main changes are in the slot-based collator: instead of building one block per core,
blocks are built as requested and distributed over the available cores.
[#11701]: statement-store: Test flooding detection
Fixed a bug with double peer state cleanup. Added two zombienet integration tests that verify statement-store flooding detection
[#11107]: Add runtime metadata detection for Aura authority ID
Adds optional runtime metadata-based detection for Aura authority ID types in polkadot-omni-node-lib.
When metadata is available, the node detects whether Aura uses sr25519 or ed25519
directly from the runtime. If detection fails or metadata is unavailable, it falls
back to chain spec ID heuristics.
A warning is emitted when the Aura authority ID type is not found in metadata.
[#11685]: Pass NodeExtraArgs through Dev Chain
Enables the statement store when running polkadot-omni-node in dev mode with
--enable-statement-store.
The dev Aura node path now wires the statement store the same way as the regular node path:
it registers the statement network protocol, builds the store, exposes the RPCs, and passes
the statement store extension into offchain workers.
Also wires up the storage monitor in dev mode and emits warnings when
collation-specific flags (--authoring-policy, --export-pov,
--max-pov-percentage) are passed in dev mode where they have no effect.
NodeExtraArgs is now destructured in start_dev_node so the compiler
will enforce that any newly added fields are explicitly handled.
[#12038]: Network: Add bitswap client
Adds a Bitswap client API to sc-network for fetching CID-addressed blocks
from a peer over the native litep2p Bitswap protocol. The public API is
block-fetch only and reports per-CID outcomes as either delivered bytes or
"missing"; on-wire presence (HAVE / DONT_HAVE) is handled internally
and is not part of the public surface.
[#11387]: docs/async_back: Align docs to latest behavior
Tiny PR to update the async backing documentation / guidelines:
- older params are no longer used
async_backing_params - UNINCLUDED_SEGMENT_CAPACITY is now 3
- no need for
experimentalfeature flags
Closes: #8804
[#12207]: statement-store: remove unused Proof::OnChain variant
Removes the Proof::OnChain variant from sp_statement_store::Proof because it
was unused.
[#12113]: Aura: Fetch slot duration at parent and not best block
Fetch the slot duration from the parent we are building on top of and not from the best block.
[#11967]: Experimental collator protocol — leaf-authoritative capacity tracking
Reworks the experimental collator protocol's validator side around a leaf-authoritative
capacity model. The leaf's per-core claim queue is the single source of truth; capacity at
every scheduling parent (SP) on a path to that leaf is derived via offset arithmetic.
Behavior changes vs. master:
-
Rotation-boundary bug fixed. After a group rotation, candidates for both the
pre-rotation core's para (advertised at the pre-rotation leaf) and the post-rotation
core's para (at the post-rotation leaf) are accepted. Previously, rotation caused
claim-queue state for the old core to be overwritten and ancestor-rooted advertisements
to be wrongly rejected. -
Fork-aware view cleanup. When a leaf is dropped, SPs are removed from
per_scheduling_parent(with their in-flight fetches cancelled) only when no remaining
leaf still references them. Previously, sibling-fork retention in implicit-view storage
could leave SPs orphaned with leaked in-flight fetches. -
Free-slot accounting tightened to the current leaf. Assignments and free CQ
positions now reflect only what the current leaf's CQ actually predicts. Previously,
claim-queue state for already-produced ancestor blocks lingered until those blocks were
pruned, so paras and slots that had already been backed on-chain were still reported as
open — keeping peers connected past their relevance and offering capacity for slots that
could no longer be filled.
Internals: the previous ClaimQueueState / PerLeafClaimQueueState machinery is gone
(~2200 LoC deleted). Capacity is now computed per-(leaf, core) by build_leaf_core_cqs
as a Vec<LeafCoreCq>, where each LeafCoreCq holds the leaf's CQ as
Vec<Option<ParaId>> (consumed positions cleared to None) and an
sps_by_depth: Vec<Option<Hash>> masking cross-core ancestors. The fetch planner walks
free CQ positions back-to-front and picks the best advertisement among same-core SPs whose
window reaches that position.
Test coverage in validator_side_experimental/tests.rs:
core_rotation_accepts_candidates_for_both_cores— regression for the original
rotation-boundary bug.- Five active-fork tests covering: assignment union across leaves, longest-window capacity
at a common ancestor across different-length forks, no double-counting of in-flight
candidates across sibling forks, and reclamation of capacity / peer disconnection when a
fork is dropped. - Two linear multi-SP tests pinning over-fetch and under-fetch invariants when ancestor
and leaf SPs share the same per-core CQ. - Tests for cross-SP reputation arbitration and cross-core slot-reservation correctness.
- Three previously-existing tests rewritten to assert the same intent against the new
model.
No public API changes; behavior change is contained to the experimental validator side.
Changelog for Runtime Dev
ℹ️ These changes are relevant to: All of those who rely on the runtime. A parachain team that is using a pallet. A DApp that is using a pallet. These are people who care about the protocol (WASM, not the meta-protocol (client).)
[#11922]: Update merkle mountain lib
Updates the merkle mountain crate to its latest version.
[#11616]: Move era reward minting from staking to DAP
Introduces dual-mode era rewards in pallet-staking-async, controlled by
Config::DisableMinting:
true(non-minting): staking expects an external source to fund a general reward
pot. At era boundary, the balance is snapshotted into an era-specific pot. Payouts
transfer from the pot. Unclaimed rewards returned viaUnclaimedRewardHandler.false(legacy minting):EraPayoutcomputes inflation, tokens minted on payout,
remainder sent toRewardRemainder. Kept for Kusama compatibility.
Switching from legacy to non-minting is irreversible.
New config: DisableMinting, UnclaimedRewardHandler, GeneralPots, EraPots,
StakerRewardCalculator. New storage: MaxCommission, DisableMintingGuard.
New extrinsic: set_max_commission.
Runtimes using non-minting mode provide an IssuanceCurve impl to DAP and
register StakerRewardRecipient as a budget recipient. DAP storage version
bumped to V2 with migration.
[#12225]: pallet-revive: map account in prepare_dry_run
Summary
- Map the origin account in
prepare_dry_runwhen it is not already mapped, so dry-running contract calls/instantiations does not fail withAccountUnmappedfor callers that never registered a mapping.
Test plan
- CI passes
[#12115]: pallet-revive: recalibrate contains_storage benchmark
The contains_storage benchmark now exercises the persistent storage path, matching how WeightInfo::contains_storage is dispatched from the precompile. The transient path remains benchmarked separately as seal_contains_transient_storage.
Also the clear_storage, contains_storage, take_storage and the transient clear/contains benchmarks now size their pre-existing value by n.
[#11770]: Fix PSM migration to run on first deployment
Replaces the versioned MigrateToV1 with an idempotent InitializePsm migration.
The previous MigrateToV1 used VersionedMigration<0, 1> which never ran on fresh
deployments because BeforeAllRuntimeMigrations initializes the on-chain storage
version to the in-code version (1) before migrations execute, causing the version
check to skip.
InitializePsm instead checks whether each external asset already exists and skips
it if so. This makes it safe to run multiple times with no storage version dependency.
[#12027]: Extend PGAS filter to allow batches
Description
Just as the title says.
[#11881]: Make pallet-dap-satellite more generic
The DAP satellite pallet is being converted into a generic Accumulate-and-Forward pallet, with
the purpose of pooling tokens of a given type into an accumulation account, which is then
periodically sent (forwarded) to a specified destination.
Notable changes:
- Crate renamed from
pallet-dap-satellitetopallet-accumulate-and-forward - The
SendToDaptrait is replaced by theForwardertrait - The pallet IDs value changes from
*b"dap/satl"to*b"acf/dott"(at this point we
are only forwarding DOT tokens, but new IDs should be added for other future tokens) - Multiple other events and constants get renamed accordingly
- The old treasury is now drained via
DrainLegacyTreasuryToAccumulationAccount
[#11819]: pallet-psm: support external assets with different decimal precision
Previously pallet-psm rejected any external stablecoin whose decimals did
not match pUSD. This change normalizes to pUSD units internally so the PSM
can approve assets with arbitrary decimal precision within a safe range.
Core changes:
- New storage: per-asset
AssetDecimalssnapshot and pallet-wide
StableDecimalssnapshot. Storage version bumped to 2. - Conversion helpers
external_to_pusd/pusd_to_externalwith checked
arithmetic andMAX_DECIMALS_DIFF = 24to prevent overflow. mintandredeemuse round-trip rounding. Truncation dust stays in the
caller's wallet on both paths (symmetric behavior), no value is trapped
in the reserve and no hidden dust is routed to the fee destination.PsmDebtnow denominates in pUSD units so aggregate ceilings and issuance
checks are meaningful across mixed-decimal assets.- Runtime drift guard:
mint/redeemreturnDecimalsMismatchif live
metadata diverges from the registration snapshot; that asset halts until
governance intervenes. - New errors:
DecimalsRangeExceeded,ConversionOverflow,
AmountTooSmallAfterConversion.
Migrations:
InitializePsmnow also seedsStableDecimalsfrom live metadata if
missing, and snapshotsAssetDecimalsfor any new assets it adds.- New one-shot
PopulateDecimalsmigration backfillsStableDecimalsand
AssetDecimalsfor chains that approved external assets before this
upgrade. Out-of-range assets are auto-disabled (migration does not fail);
try-runtimepost_upgradesurfaces the anomaly to operators.
[#12123]: Fix migrations for recovery & parachain-system pallets
Changes:
- pallet-recovery: be more lenient towards broken accounts to keep their recovery config
- parachain-system: clear old storage value to prevent decoding error
[#11726]: eth-rpc: Bulk INSERT/DELETE and commit per-block writes atomically
Summary
- Query SQLite's max variable limit at startup and use it to chunk bulk INSERTs and DELETEs, avoiding bind-parameter overflows
- Replace per-row individual inserts with batched bulk inserts
- Commit transaction hashes, logs, and block mapping in a single SQLite transaction per block, same for deletes
- Use
INSERT OR REPLACEfor logs (previously plain INSERT) to match transaction_hashes and prevent UNIQUE constraint failures if the EXISTS dedup guard is bypassed
[#12216]: [revive] test: dry-run max_storage_deposit from an unfunded account
Summary
Adds a regression test that verifies a bare_call dispatched with the
runtime-api dry-run ExecConfig from an account with no balance still
reports the same max_storage_deposit as a funded run on the same call.
[#11811]: Wired pallet_dap weights on Asset Hub Westend
Replaced type WeightInfo = () with the generated weights::pallet_dap::WeightInfo
[#12209]: Remove deprecated AssetsToBlockAuthor from parachains-common
Removes deprecated parachains_common::AssetsToBlockAuthor, which forwarded asset
transaction fees to the block author via HandleCredit. Use
MaybeResolveAssetTo<BlockAuthor<Runtime>, ...> instead (already used by system
parachain runtimes in this repo).
[#12135]: revive automap: batch map accounts for free
Changes:
- Add TX to pallet revive to allow anyone to map accounts
The new TX batch_map_accounts:
- Maps a batch of accounts without taking a deposit
- Releases existing mapping deposits of accounts
- Is free to send when at least 90% of accounts were newly mapped or had an existing deposit released
[#11522]: eth-rpc: Add trace logging for receipt lookup debugging
Add trace logging to receipt handling to help diagnose intermittent receipt retrieval failures for finalized transactions, observed while running revive differential test benchmarks.
Changelog for Node Operator
ℹ️ These changes are relevant to: Those who don't write any code and only run code.
[#11662]: HOP: ephemeral data pool service for Substrate nodes
New --enable-hop flag activates the HOP data pool for ephemeral
peer-to-peer data exchange. Related flags:
--hop-max-pool-size <MiB>— pool capacity (default: 10240 MiB / 10 GiB)--hop-max-user-size <MiB>— per-user hard cap (default: 256 MiB)--hop-retention-secs <seconds>— data lifetime (default: 86400, 24h)--hop-check-interval <seconds>— maintenance cycle (default: 300, 5 minutes)--hop-promotion-buffer-secs <seconds>— start promoting this many seconds
before expiry (default: 7200, 2h)--hop-submit-rate-per-min <requests>— sustained submit rate (default: 60)--hop-submit-burst <requests>— submit burst (default: 120)--hop-bandwidth-per-min-mib <MiB>— sustained bandwidth (default: 128)--hop-bandwidth-burst-mib <MiB>— bandwidth burst (default: 256)--hop-disable-rate-limit— turn off rate limiting (dev / tests)--hop-data-dir <path>— storage directory (default:<chain-data>/hop)
Pool state (blobs + metadata) persists across restarts. Orphan and corrupt
files are cleaned up automatically on startup.
[#10468]: Publish indexed transactions with BLAKE2b hashes to IPFS DHT
Add --ipfs-bootnodes flag for specifying IPFS bootnodes. If passed along with --ipfs-server, the node will register as a content provider in IPFS DHT of indexed transactions with BLAKE2b hashes of the last two weeks (or pruning depth if smaller).
[#12082]: ParityDB: Do not skip storing on store + ref in same tx
Fixes a bug in the ParityDB adapter where a store + reference on the same
unknown key within a single transaction would skip storing the value entirely.
ParityDB internally transformed the reference into a dereference, making the value
disappear from the database after commit. The fix maps changes directly to
parity_db::Operation variants so the Set is always emitted regardless of other
operations in the same transaction.
Changelog for Runtime User
ℹ️ These changes are relevant to: Anyone using the runtime. This can be a token holder or a dev writing a front end for a chain.
[#11736]: Asset Hub Westend: Add MonetaryGuard governance track for PSM emergency actions
Adds a new MonetaryGuard governance track to Asset Hub Westend for fast PSM
circuit breaker activation in case of a depeg or exploit.
[#11847]: [revive] pgas as storage deposit
Storage deposits backed by PGAS
PGAS is a protocol-level gas token or gas allowance mechanism for users verified through Polkadot's Proof of Personhood ecosystem.
This PR adds a second payment backend for pallet-revive storage deposits: instead of always charging the user in native currency (DOT), a runtime can opt in to having deposits denominated in PGAS.
New trait: Deposit
substrate/frame/revive/src/deposit_payment.rs
A new sealed Deposit<T: Config> trait abstracts over how storage deposits are charged, held, refunded. It has two implementations in-crate:
(): the default, charges and refunds the native currency. Identical to the existing pre-PR behavior.PGasDeposit<Mutator, Holder, Freezer, Id, RefundPercent>: the PGAS-backed backend.
The trait is wired into Config::Deposit and called from charge_deposit / refund_deposit in place of the direct T::Currency calls that used to live there.
Account lifecycle: init_account / deinit_account
The trait includes init_account(to) and deinit_account(contract) methods. Rather than transferring the ED from the origin at contract creation (and back to origin on destruction), the EDs are minted on init and burned on deinit:
New storage: NativeDepositOf
substrate/frame/revive/src/lib.rs
pub(crate) type NativeDepositOf<T: Config> = StorageDoubleMap<
_, Identity, T::AccountId,
Blake2_128Concat, T::AccountId,
BalanceOf<T>, ValueQuery,
>;Keyed (holder_account, user) -> native_amount. It records how much native currency a user has contributed to a given account's hold. The holder is either a contract (for storage deposits on contract accounts) or the pallet account (for code-upload deposits).
It exists because in the mixed PGAS/DOT world, a user's refund cap needs to be tracked explicitly. The map caps how much of a refund can come back as DOT ; anything beyond that is settled in PGAS.
PGasDeposit<Mutator, Holder, Freezer, Id, RefundPercent>
substrate/frame/revive/src/deposit_payment.rs
Parameterized by five type parameters that the runtime wires up:
Mutator: fungibles::Mutate— the fungibles impl backing PGAS (e.g.pallet-assets).Holder: fungibles::MutateHold— the holds backend (e.g.pallet-assets-holder).Freezer: fungibles::freeze::Mutate— the freezes backend (e.g.pallet-assets-freezer), used to pin each contract's PGAS ED.Id: Get<AssetId>— the PGAS asset id on that fungibles instance.RefundPercent: Get<Perbill>— the fraction of PGAS returned on refund/collect; the rest is burned.
Charge semantics:
- If the user has enough reducible PGAS, the full amount is paid in PGAS via
fungibles::MutateHold::transfer_and_hold, which emits theTransferOnHoldevent. No DOT is touched. - Otherwise the charge falls through to DOT, and the contribution is recorded in
NativeDepositOfso it can be refunded as DOT later.
Refund / collect semantics:
- DOT is returned first, capped by
NativeDepositOf[holder][user](and byPrecision::BestEfforton the actual DOT hold). - Any shortfall is taken from the PGAS hold.
RefundPercentof that PGAS is transferred to the user's free balance; the remainder is burned. - Sub-ED refunds: if the
RefundPercentportion would land below PGAS's ED on the user's account (e.g. the user has no PGAS account and the refund is too small to create one), that portion is folded into the burn rather than aborting the whole refund.
The RefundPercent burn is what prevents free-PGAS harvesting: a user can't deposit storage, release it, and walk away with an allowance they can spend on execution.
Migration (v4)
substrate/frame/revive/src/migrations/v4.rs
A three-phase multi-block migration brings live chains over:
- Phase 1: record each existing code-upload deposit under
NativeDepositOf[pallet_account][owner]so it can still be refunded in DOT. - Phase 2: flip each contract's storage deposit from DOT to PGAS via
Deposit::migrate_native_to_pgas— mint + freeze the PGAS ED underFreezeReason::PGasMinBalance, burn the nativeStorageDepositReservehold, re-hold the same amount in PGAS. Needed because pre-PR DOT deposits weren't tracked per-contributor. - Phase 3: rewrite
DeletionQueuefromTrieIdtoDeletionQueueItem { trie_id, account_id }so the on-idle sweep can also clear the contract'sNativeDepositOfrows. Runs on every runtime.
[#11529]: Westend Asset Hub: Integrate PSM pallet and add remote tests
Adds the PSM pallet to Asset Hub Westend, enabling 1:1 minting and redemption
of pUSD against USDT.
[#11761]: asset-conversion-pallet: quote respects minimum balance
Quote functions (quote_price_exact_tokens_for_tokens, quote_price_tokens_for_exact_tokens)
now return None when the computed output exceeds what the pool can actually withdraw while
staying alive.
Swap execution withdraws from pools with Preserve preservation, meaning the pool must retain
at least min_balance. The quote functions did not account for this, so they could return a
price for a swap that would fail at execution.
Both quote functions now check the output against reducible_balance(Preserve, Polite) — the
same preservation level the swap uses.
[#11822]: Remove deprecated CurrencyAdapter from pallet-transaction-payment
The deprecated CurrencyAdapter type has been removed from pallet-transaction-payment.
Use FungibleAdapter instead.
[#11052]: update multi asset bounties pallet account derivation logic
The account IDs for bounty and child-bounty funding accounts have changed. Off-chain code that
derives or hardcodes these addresses must use the new derivation: raw-byte prefix b"mbt" for
bounties and b"mcb" for child bounties, SCALE-encoded as fixed [u8; 3] arrays (no length
prefix), with the same pallet ID and index encoding as before.
[#10150]: Deprecate ValidateUnsigned trait and #[pallet::validate_unsigned] attribute.
Deprecate the ValidateUnsigned trait and #[pallet::validate_unsigned] attribute as part of phase 2 of Extrinsic Horizon.
[#11823]: Refactor asset-conversion tx payment fee correction
The AssetTxFeePaid event now reports the correct fee amount when paying transaction fees
in the native asset through the asset-conversion extension.
Rust compiler versions
This release was built and tested against the following versions of rustc.
Other versions may work.
- Rust Stable:
1.93
Runtimes
The information about the runtimes included in this release can be found below.
The runtimes have been built using srtool v0.18.4 and rustc 1.93.0 (254b59607 2026-01-19).
Westend
🏋️ Runtime Size: 1.73 MB (1811366 bytes)
🔥 Core Version: westend-1024000 (parity-westend-0.tx27.au2)
🗜 Compressed: Yes: 80.57%
🎁 Metadata version: V14
🗳️ system.setCode hash: 0x6da03d29b71ff4027d7d0d4d96362e7bf6aaca7ca71f9851528ffc562b2eded6
🗳️ authorizeUpgrade hash: 0x28500af3639750c76a329cad7809a9706aa14893a08e1e0657d5ac3d363d1f7b
🗳️ Blake2-256 hash: 0x3060b8606b47534154f3cceed211768769418540014a9ba17018524c2d716151
📦 IPFS: QmSZZXjKPhzsYYJkKGtw5mTUDWQqDZhjGHH4YFT1GwULgY
Westend Assethub
🏋️ Runtime Size: 2.43 MB (2548999 bytes)
🔥 Core Version: westmint-1024000 (westmint-0.tx16.au1)
🗜 Compressed: Yes: 82.17%
🎁 Metadata version: V14
🗳️ system.setCode hash: 0x0ba5534f44552c368e5f7779b8102484ee3ac7f7de9aafe79bf88eb97d9cb678
🗳️ authorizeUpgrade hash: 0xea89793e90c8039e0fd409603957d730bc20777d588db383669fa8467c46d31c
🗳️ Blake2-256 hash: 0xa09a9a9cc9cd3a06448455bf4326cbc65ed9bc32fb45addac4ff4597664e401f
📦 IPFS: QmUu2TVU1frBDnW8aLfGJnXRhVKD9wUebSRPm6aCWzek1v
Westend Bridgehub
🏋️ Runtime Size: 1.33 MB (1390473 bytes)
🔥 Core Version: bridge-hub-westend-1024000 (bridge-hub-westend-0.tx6.au1)
🗜 Compressed: Yes: 79.8%
🎁 Metadata version: V14
🗳️ system.setCode hash: 0x4c8eff4c8f84380a8183e7f5e093cadc2807ec6ab94daa9a42a7bc9b7a7bbf9b
🗳️ authorizeUpgrade hash: 0x2d5a9148dbfd9469b2ef6413549c3265d851dfe54169de61e83bc9d32e13e348
🗳️ Blake2-256 hash: 0x3338c98e7d456562a6caafefc611591fe6f865969c7ce536bc3c2532589ad1eb
📦 IPFS: Qmc6qzzkyxH5am7rFgSezgEn69zhcKeq4qyExSHBt1JU2N
Westend Collectives
🏋️ Runtime Size: 1.21 MB (1265329 bytes)
🔥 Core Version: collectives-westend-1024000 (collectives-westend-0.tx6.au1)
🗜 Compressed: Yes: 80.96%
🎁 Metadata version: V14
🗳️ system.setCode hash: 0x5458f6bcce6bd444f94b5a1e01f637823c38be9e7156fe97f85c1063c70c5381
🗳️ authorizeUpgrade hash: 0x6b240194351a03056036707df79d331b702c391873895666d5dad5d0585b07aa
🗳️ Blake2-256 hash: 0xdb01801ff795d9bb1018bc67e58679683fc4572a82e60535cfffc61e8d3fabad
📦 IPFS: QmVZ2f1DnMmzpMDnx84LTRbf4zf7XBcPBXASMzqqTQAYxb
Westend Coretime
🏋️ Runtime Size: 1.09 MB (1138890 bytes)
🔥 Core Version: coretime-westend-1024000 (coretime-westend-0.tx2.au1)
🗜 Compressed: Yes: 79.95%
🎁 Metadata version: V14
🗳️ system.setCode hash: 0x6e740c91caec041720f08c92941a4ea540551af459cf68a79cb00b4483af5b72
🗳️ authorizeUpgrade hash: 0x01944c4818e553d4f86c9b979485e25ff09881f225cf44f13a600a31bfb2d746
🗳️ Blake2-256 hash: 0x5d121bc620c59720dc2af10ae09a2f28db049bc6dedee90b53612b9dc1df2673
📦 IPFS: QmcfU3D6eXq19KzbzdCSTPYvFGVUSytADLij4PxUeGigC1
Westend Glutton
🏋️ Runtime Size: 541.88 KB (554882 bytes)
🔥 Core Version: glutton-westend-1024000 (glutton-westend-0.tx1.au1)
🗜 Compressed: Yes: 78.11%
🎁 Metadata version: V14
🗳️ system.setCode hash: 0xfaca28031fd69882e6bc9283a44e4a56a985c8584e7d86fb568741f605636555
🗳️ authorizeUpgrade hash: 0x21eca42f73bbf3dfb48a577a6316fd3106d57fcc23fce81796e8017e096d56fb
🗳️ Blake2-256 hash: 0xd4851745e7adc15a6eeb3dc49729b85b3314c4d3834c99acb1d0dc5cb58f1f77
📦 IPFS: QmYGDkaasBpX6KFJUCoMdaLopvAhnfru1FybNtPv56gDGD
Westend People
🏋️ Runtime Size: 1.08 MB (1135455 bytes)
🔥 Core Version: people-westend-1024000 (people-westend-0.tx2.au1)
🗜 Compressed: Yes: 79.92%
🎁 Metadata version: V14
🗳️ system.setCode hash: 0xc625894b494798609219c75bac247fe68082d5f9ca1121d7b3ce9947c1cebd56
🗳️ authorizeUpgrade hash: 0x30d5529375abcb102536709021e5cb6bbe121f708adfe770dce56a746e1aaa3a
🗳️ Blake2-256 hash: 0x8b7e99817d21120731d2dbbc89ef8be142a20f175756df6626f6ffd461e5b8ca
📦 IPFS: QmdgKqi2WTS29p4MKXxg3YQtMQEZZW3nnH4mR7DyPD4xRK
Docker images
The docker images for the polkadot node binary and the polkadot-parachain binary can be found at Docker hub (will be available a few minutes after the release has been published):
You may also pull it with:
docker pull parity/polkadot:stable2606-rc1
or
docker pull parity/polkadot-parachain:stable2606-rc1