This release contains the changes from polkadot-v1.6.0
to polkadot-v1.7.0
.
Rust compiler versions
This release was built and tested against the following versions of rustc.
Other versions may work.
Rust Stable: rustc 1.74.0 (79e9716c9 2023-11-13)
Rust Nightly: rustc 1.75.0-nightly (9d83ac217 2023-10-31)
Runtimes
Westend
ποΈ Runtime size: 1.650 MB (1,730,647 bytes)
π Compressed: Yes, 79.22%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: westend-1007000 (parity-westend-0.tx24.au2)
π³οΈ system.setCode hash: 0xe8db5e7b5b9edcc68c2275a2e64b2092b36f19159dbb55d4c7574198f325383e
π³οΈ authorizeUpgrade hash: 0x30422f3a96a9a2a81e88c0ba936ba859fa4e9bcb9d06b4febe4a21bd76d2f46f
π³οΈ Blake2-256 hash: 0x085f68ab9991262334e944c078caeb8b20fede674dc1fca5fdc5fd7d4dd35e3a
π¦ IPFS: https://www.ipfs.io/ipfs/QmSmmQXCkADd8f5JVese9Cp8xnuo8F3UdLzURQnD7QVUDU
Westend AssetHub
ποΈ Runtime size: 1.214 MB (1,272,838 bytes)
π Compressed: Yes, 80.65%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: westmint-1007000 (westmint-0.tx14.au1)
π³οΈ system.setCode hash: 0xb1d33d2630c1ce11c1fa4df6e5764f0192ea3057372c885c14953e33008a3d56
π³οΈ authorizeUpgrade hash: 0x3bac1870a33c3e6376ea5e5e6eae9d20d44b5a203d3ec5c257d7705c28b9e0e7
π³οΈ Blake2-256 hash: 0xc2a2bbc026991a9177e4f94cd18227734aa68640c12844a3ade69827def7d7eb
π¦ IPFS: https://www.ipfs.io/ipfs/QmbxLDghaGECMRoVH7Vf82pmYZPDoJf8RERhGimovpjNTa
Westend BridgeHub
ποΈ Runtime size: 0.990 MB (1,038,565 bytes)
π Compressed: Yes, 79.31%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: bridge-hub-westend-1007000 (bridge-hub-westend-0.tx4.au1)
π³οΈ system.setCode hash: 0x8b5d3c85e0a870781d2b42b03f8301c3f85e38464745c6482ec5e86c557ee884
π³οΈ authorizeUpgrade hash: 0x97b7ae2d8d7142a4d36e49db5f16db24a826e02e537bbb1ad6201145dce33527
π³οΈ Blake2-256 hash: 0x16a78209318174f006d092fe033da616bb206ffa751ac26b56aa7c6b326dd0fc
π¦ IPFS: https://www.ipfs.io/ipfs/QmZXsKU9SK2GZHTaaNZm7fNWQT33fu9vF1ie5LqLXMRsws
Westend Collectives
ποΈ Runtime size: 1.059 MB (1,110,582 bytes)
π Compressed: Yes, 80.37%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: collectives-westend-1007000 (collectives-westend-0.tx5.au1)
π³οΈ system.setCode hash: 0x68a26809692f9147407297cec30803c79555d1b539939e905b5b91e5e801fe7a
π³οΈ authorizeUpgrade hash: 0x9f6e79b09813802491f87fd49aa904423f40c41efb7000c907ceb8210cf7a857
π³οΈ Blake2-256 hash: 0x4fc1411ffcfe4ba8f002d97e2fd32da34714c8393588acefb4f463ff03ae36a8
π¦ IPFS: https://www.ipfs.io/ipfs/QmZsfSFqijMsprGx7wY2ef9QtW7E6diV9ELp72jCMg1Cpv
Westend Coretime
ποΈ Runtime size: 0.844 MB (885,451 bytes)
π Compressed: Yes, 79.61%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: coretime-westend-1007000 (coretime-westend-0.tx0.au1)
π³οΈ system.setCode hash: 0xd51c3f3f8910576cc091bf033bc52e18fb44a73cdbd2eadfe97db77d41c03c88
π³οΈ authorizeUpgrade hash: 0x860b7b209336985fb1733e6b24823eb62f24896e35740f8bd0c0b16c8d041fd1
π³οΈ Blake2-256 hash: 0x8c48ce6e3636328385c29f3e4fa5f0f4e5eeeff6e1d9e36f11d489a16dde696e
π¦ IPFS: https://www.ipfs.io/ipfs/QmTrN2LhjRn52Mymcwg3prNvJNk2RWSLLDzsyV7sno2j1g
Westend Glutton
ποΈ Runtime size: 0.546 MB (572,163 bytes)
π Compressed: Yes, 76.65%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: glutton-westend-1007000 (glutton-westend-0.tx1.au1)
π³οΈ system.setCode hash: 0xfdb7bd3801b3250c136066a878353c6cd5c83b95d065acf977daff7d7022da47
π³οΈ authorizeUpgrade hash: 0x4a18fd9f8e857aad42ae6d2c0dd5cfd79f2c25e5e35d1f61ba2518576d9d2dc8
π³οΈ Blake2-256 hash: 0xe52cbeee457bb8c8e748536da5dd5b0ef3fa079abdda86940a1034576a84212f
π¦ IPFS: https://www.ipfs.io/ipfs/QmTDn5UJWT3habPBBiuebcLk4FJPyQ7bnwUJTpJaymSDgB
Westend People
ποΈ Runtime size: 0.892 MB (935,728 bytes)
π Compressed: Yes, 79.59%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: people-westend-1007000 (people-westend-0.tx0.au1)
π³οΈ system.setCode hash: 0x9cfd53e5820b100430b4f085a392ac45e1c7b2c742de09a8b14ce1ac721db63c
π³οΈ authorizeUpgrade hash: 0x794e02607f5cef65c997d296cdad233e2923d1f51144d2c954c16327177f7abe
π³οΈ Blake2-256 hash: 0x6dd054d921cc01892835fc38354532a087ac3f7d7b7264b70c78288ba3b02a0a
π¦ IPFS: https://www.ipfs.io/ipfs/QmUzfvJfhtrNidD4LKweMynww8BBmMtjjdkhcZ8UjYkxwm
Rococo
ποΈ Runtime size: 1.532 MB (1,606,091 bytes)
π Compressed: Yes, 79.79%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: rococo-1007000 (parity-rococo-v2.0-0.tx24.au0)
π³οΈ system.setCode hash: 0xc09e58e1d53e95b9844bdd765fcb746d32a522fd03586efe60cd9ba443aa0746
π³οΈ authorizeUpgrade hash: 0x37e1233ce9b5e24538d8c13b1b7c7125992beb218e412297fb592ec0d1b6aed8
π³οΈ Blake2-256 hash: 0x3aef2214f1b12a9a6d2a5890d71fa3a8879e29efd14a1377976d26eceb61ccbc
π¦ IPFS: https://www.ipfs.io/ipfs/QmaMoKW23EM8McN3LTLTUPXLwqjBvDoedUV1iWb1gJpmXb
Rococo AssetHub
ποΈ Runtime size: 1.205 MB (1,263,249 bytes)
π Compressed: Yes, 80.71%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: statemine-1007000 (statemine-0.tx14.au1)
π³οΈ system.setCode hash: 0x920541f407404457bcaabbf77c9ec79e7de09d5ac115f84a57dae2cf4c0b1e0a
π³οΈ authorizeUpgrade hash: 0x1640c015e3a4eab2dd399b5475bc05ba7413e7e8b97e62d8adf36c2de7993efe
π³οΈ Blake2-256 hash: 0x2fa670a729b4a891bd375f62020629013853839464c48ee68fa45dd26715e28f
π¦ IPFS: https://www.ipfs.io/ipfs/QmWSu4i87NLeB1XGiNr8xBtmqyUMBq1HbppXzyH9mvuUar
Rococo BridgeHub
ποΈ Runtime size: 1.275 MB (1,337,062 bytes)
π Compressed: Yes, 78.63%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: bridge-hub-rococo-1007000 (bridge-hub-rococo-0.tx4.au1)
π³οΈ system.setCode hash: 0x3bcdab6fdd5c5708a776f255bde6854693ae01f686999b4534fd2fab160d92da
π³οΈ authorizeUpgrade hash: 0xab1fd03f6e67ef7d718856b85b87f458074829504834ebe7edec551f9292f6ba
π³οΈ Blake2-256 hash: 0x49284e74a213185e27d78676702d9dbb045a04c15ed12b8fcae3170edf9a778d
π¦ IPFS: https://www.ipfs.io/ipfs/QmPJT42Estg4eSzXQ5e6WzBMf5N1w8wo83wJTFJ2EF6uDj
Rococo Contracts
ποΈ Runtime size: 1.207 MB (1,265,977 bytes)
π Compressed: Yes, 79.85%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: contracts-rococo-1007000 (contracts-rococo-0.tx6.au1)
π³οΈ system.setCode hash: 0xec4b5d2a34e5ef727e8856f9a282dfed273c2acc7dda0921cfe60d7dc2bc6c3f
π³οΈ authorizeUpgrade hash: 0xfb0e36a4d4aba12274cd2aeb15872c4467bc7bebc28e4725fd7bcb60cfd862d5
π³οΈ Blake2-256 hash: 0xedf060b616f148300d55f693aadf74713c6db68c911d1a39e5ac1dda38485c19
π¦ IPFS: https://www.ipfs.io/ipfs/QmVnakWvgPKF6X6FtcToULECYeZa1Cq9h2mUj9ZzjdTd78
Rococo Coretime
ποΈ Runtime size: 0.896 MB (939,268 bytes)
π Compressed: Yes, 79.58%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: coretime-rococo-1007000 (coretime-rococo-0.tx0.au1)
π³οΈ system.setCode hash: 0x5725c355036b000c8004c739d3e6983fd2e80ab054b91df9f8b1e8a3b1771b26
π³οΈ authorizeUpgrade hash: 0x9ccc2ab2adb967dab8ec644c6fdc662587d712f22b371f62dbe5d434a5dede52
π³οΈ Blake2-256 hash: 0x4d260993fcf091490de24114a8b648c01cb555012422aab4d1b5bb5bf726a297
π¦ IPFS: https://www.ipfs.io/ipfs/QmXSHoTHszsEsHCYYTHQE7Looic5ntsL8AvzmoJTMu3byZ
Rococo People
ποΈ Runtime size: 0.891 MB (934,165 bytes)
π Compressed: Yes, 79.62%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: people-rococo-1007000 (people-rococo-0.tx0.au1)
π³οΈ system.setCode hash: 0xd8ec1fc15d0932871c1e7f3de86269e31e0e26cb7cac35df11a0a40b806dd60a
π³οΈ authorizeUpgrade hash: 0xbd0fafd0e40f1c277872cf91bf10557e9f0d0274e0bd32f6139169ff14a90041
π³οΈ Blake2-256 hash: 0x26c9c9e0041937900af9bb06d7907e4c055a514db765c742c6b1893babebee84
π¦ IPFS: https://www.ipfs.io/ipfs/QmUo7R7akEd9Wk5SGhVKRimNsDRciRtknbH3B8aRFzoNGo
Changes
Changelog for Node Dev
.
#2942: Fix pallet-nomination-pools v6 to v7 migration
Restores the behaviour of the nomination pools V6ToV7
migration so that it still works when the pallet will be upgraded to V8 afterwards.
#3108: revert paritytech/polkadot#6577 & related changes
Moves BEEFY related pallets behind session_pallet
for Rococo and Westend runtimes.
Effects that each MmrLeaf
in the MMR generated by mmr_pallet
for block<N>
references the next_auth_set
of block<N>
and not block<N-1>
.
Breaking change for proofs generated by mmr_generateProof
#2125: Introduce bounds for the number of candidate validation subsystem simultaneously processed tasks
Makes it possible for the candidate validation subsystem to create backpressure on subsystems requesting to validate a candidate through limiting the number of simultaneously processed validation tasks.
#2970: Add availability-distribution
and biftield-distribution
subsystem benchmark
The new subsystem benchmark test objective (DataAvailabilityWrite
) is designed to stress test the part of the pipeline that takes as input a backed candidate and then distributes it as erasure coded chunks to other validators. The test pulls in the av-store
, bitfield-distribution
and availability-distribution
subsystems while the whole network and rest of the node subsystems are emulated.
#2467: Extract warp sync strategy from ChainSync
WarpSync
, and StateSync
as the logical part of warp sync, are extracted from ChainSync
as independent syncing strategies. SyncingStrategy
enum is introduced as a proxy between SyncingEngine
and specific strategies. SyncingStrategy
may be replaced by a trait in a follow-up PRs.
#3040: Rename transaction to transactionWatch
Renamed transaction_unstable_submitAndWatch
to transactionWatch_unstable_submitAndWatch
,
transaction_unstable_watchEvent
to transactionWatch_unstable_watchEvent
and
transaction_unstable_unwatch
to transactionWatch_unstable_unwatch
.
#3061: Do not run unneeded subsystems on collator and its alongside node
Optimizes overseer building strategy to only include subsystems needed to run the given type of node. Reduces overseer overhead and also solves the problem with unused subsystems getting stalled from time to time.
Changelog for Node Operator
.
#2477: Use clone instead of fork on pvf
For validators: Adds a new, optional security capability.
Most modern Linux machines should support it, otherwise you will get a warning like:
"- Optional: Cannot call clone with all sandboxing flags, a Linux-specific kernel security features: not available".
If you are already running in a secure environment such as a container, this may conflict with our security features; your only option may be to ignore the warning.
Otherwise, it is recommended to upgrade your Linux version!
#3009: sc-informant: Respect --disable-log-color
Fixes some places that weren't respecting the --disable-log-color
CLI flag.
#1313: backpressured JSON-RPC server (upgrade jsonrpsee)
Modifies the jsonrpc server to be "backpressured" and it's possible to configure how many messages can be "buffered" via the CLI --rpc_message_buffer_capacity
.
Major changes in this PR:
- The subscriptions are now bounded and if subscription can't keep up with the server it is dropped
- CLI: add parameter to configure the jsonrpc server bounded message buffer (default is 64)
- Add our own subscription helper to deal with the unbounded streams in substrate
Changelog for Runtime Dev
.
#3156: Adapt core-fellowship and salary pallets for swapped members
The ranked-collective pallet got the ability to swap members but the core-fellowship and salary pallets would not be notified of this change. This MR adds MemberSwappedHandler
to the collective that is implemented by both pallets.
#1230: XCMv4
A new version of the XCM format.
The main changes are:
- Removed
Multi
prefix from types - Removed
Abstract
asset id Outcome
is now a named fields struct- Added
Reanchorable
trait, implemented for bothLocation
andAsset
- New syntax for building
Location
s andJunction
s using slices.
You build them likelet location = Location::new(1, [Parachain(1000), PalletInstance(50), GeneralIndex(1984)]);
and match on them likematch location.unpack() { (1, [Parachain(id)]) => ... (0, Here) => ..., (1, [_]) => ..., }
#3001: Introduce Balances::force_adjust_total_issuance
Introduce a root extrinsic to forcefully adjust the Total Issuance. Should only be used to fix historic errors.
#1845: XCM WeightTrader: Swap Fee Asset for Native Asset
Implements an XCM executor WeightTrader
, facilitating fee payments in any asset that can be exchanged for a native asset.
A few constraints need to be observed:
buy_weight
andrefund
operations must be atomic, as another weight trader implementation might be attempted in case of failure.- swap credit must be utilized since there isnβt an account to which an asset of some class can be deposited with a guarantee to meet the existential deposit requirement.
#2924: Add NonFungibleAdapter
Introduces a new adapter, NonFungibleAdapter
, to work with frame_support::traits::tokens::nonfungible
through XCM.
#3108: revert paritytech/polkadot#6577 & related changes
Moves BEEFY related pallets behind session_pallet
for Rococo and Westend runtimes.
Effects that each MmrLeaf
in the MMR generated by mmr_pallet
for block<N>
references the next_auth_set
of block<N>
and not block<N-1>
.
#1296: fungible fixes and more conformance tests
Adds conformance tests for the Balanced and Unbalanced fungible traits.
Fixes Unbalanced::decrease_balance not respecting preservation.
Fixes Balanced::pair possibly returning pairs of imbalances which do not cancel each other out. Method now returns a Result instead (breaking change).
Fixes Balances pallet active_issuance possible 'underflow'.
Refactors the conformance test file structure to match the fungible file structure: tests for traits in regular.rs go into a test file named regular.rs, tests for traits in freezes.rs go into a test file named freezes.rs, etc.
Improve doc comments.
Simplify macros.
#3029: Snowbridge Ethereum Deneb fork preparation
Changes the Rococo runtime Ethereum fork config to include the Deneb hard-fork. Updates the Snowbridge subtree with preparation for Deneb. Removes the beacon-minimal-spec
feature.
#2657: [frame] #[pallet::composite_enum]
improved variant count handling + removed pallet_balances
's MaxHolds
config
The implementation of the VariantCount
trait for aggregate composite enums, such as RuntimeHoldReason
and RuntimeFreezeReason
, has been fixed.
It is now calculated as the sum of VariantCount::VARIANT_COUNT
for all corresponding #[pallet::composite_enum]
.
The Balances
pallet's Config
item type MaxHolds
has been removed, and type Holds
is now bound to the variant count of the composite enum RuntimeHoldReason
.
Consequently, the runtime does not need to consider setting the correct value for MaxHolds
.
notes:
- Remove
type MaxHolds
from theimpl pallet_balances::Config for Runtime
in the runtime. - When holds are expected to be used, ensure that
type RuntimeHoldReason = RuntimeHoldReason
is set forimpl pallet_balances::Config for Runtime
.
#3110: Nomination pools Fix payout destination in permissionless unbond
This PR fixes an issue whereby when a nomination pool allowed for permissionless unbonding of funds, the implicit claimed rewards were mistakenly sent to the caller of the unbond
, and not the actual member. A nomination pool only allows permissionless unbonding when its state was set into Destroying
by the operator.
#1222: Transactional processing for XCM
Transactional processing was introduced for certain XCM instructions. They are:
- WithdrawAsset
- ReserveAssetDeposited
- TransferAsset
- TransferReserveAsset
- ReceiveTeleportedAsset
- DepositAsset
- DepositReserveAsset
- InitiateReserveWithdraw
- InitiateTeleport
- BuyExecution
- ClaimAsset
- ExportMessage
- LockAsset
- UnlockAsset
- RequestUnlock
Developers must specify a TransactionalProcessor
when configuring their XCM executor.
FRAME-based runtimes would simply need to configure it with FrameTransactionalProcessor
to enable transactional processing. To disable transactional processing of XCMs, ()
may also be specified as the type for TransactionalProcessor
.
For runtimes that are not FRAME-based but would like to still harness transactional processing of XCMs, a type implementing the ProcessTransaction
trait must be specified as the type for TransactionalProcessor
. This trait is for the purpose of connecting the chain's runtime transactional processor with the XCM executor -- any implementation of ProcessTransaction
is possible to be assigned as the TransactionalProcessor
for the XCM executor.
#3057: Serialize/Deserialize trait implemented in no-std for XCM assets types
Serialize/Deserialize trait implemented in no-std for XCM v3 and v4 assets types
#2920: Contracts: Stabilize sr25519_verify host function
Removed the #[unstable]
attrribute on sr25519_verify
host function.
#3228: [pallet_xcm] Forgotten migration to XCMv4 + added try-state
to the pallet_xcm
The current release includes the new XCMv4
, so the runtimes must incorporate a migration pallet_xcm::migration::MigrateToLatestXcmVersion<Runtime>
to ensure
proper data migration in pallet_xcm
.
Changelog for Runtime User
.
#2796: Rococo and Westend Asset-Hub: XCM Transfers with Pallet-Uniques
With the added UniquesTransactor
Rococo and Westend Asset-Hub are now capable of handling XCM transfers with pallet-uniques.
#2587: Allow fellowship members to swap their AccountIds.
Add a exchange_member
extrinsic to the ranked-collective
pallet that allows to vote on swapping the AccountId of a member. This can be used to recover lost access to a collective.
#3020: Para registration deposit covering max code size
With this PR all newly registered parachains must pay a deposit equivalent to the cost of registering validation code of the maximum size. Consequently, they can upgrade their code to the maximum size at any point without additional cost.
#2826: Enable async backing on asset-hub-rococo
Async backing has been enabled on Asset Hub Rococo, which now targets 6s block times.
#2889: Filter backing votes from disabled validators in paras_inherent
paras_inherent drops any backing votes from disabled validators on block import and asserts that no votes from disabled validators are included in a block during execution
#3077: Enable cross-chain Coretime region transfers on Rococo Coretime chain
This PR allows Coretime regions to be cross-chain transferred from the Rococo Coretime chain.
#1871: Adding try-state
hook to tips pallet
Enforces the following invariants;
- The number of entries in Tips should be equal to Reasons.
- If OpenTip.finders_fee is true, then OpenTip.deposit should be greater than zero.
- Reasons exists for each Tip[OpenTip.reason], implying equal length of storage.