Releases: paritytech/polkadot-sdk
Polkadot Stable2409-1
This release contains the changes from polkadot-stable2409
to polkadot-stable2409-1
.
ℹ️ Please note:
This is a patch release for the latest stable version: stable2409
. If your nodes are already running on this version, you can consider upgrading to it to have the latest fixes.
The tag corresponding to the current patch release polkadot-stable2409-1
and matching the old pattern will be available under polkadot-v1.16.1
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.
[#5753]: Use maximum allowed response size for request/response protocols
Increase maximum PoV response size to 16MB which is equal to the default value used in the substrate.
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).)
[#6069]: Add assets in pool with native to query_acceptable_payment_assets
The XcmPaymentApi::query_acceptable_payment_assets
API can be used to get a list of all the assets that can be used for fee payment.
This is usually just the native asset, but the asset hubs have the asset conversion pallet.
In the case of the asset hubs, this list now includes all assets in a liquidity pool with the native one.
[#6031]: Import vec to bridges/primitives/header-chain
Add the vec
dependency to these files to resolve compiler errors.
[#4803]: Fix for issue
When the status of the queue is on_initialize, throw a defensive message and return weight of 0, however when status is on_idle, do not throw a defensive message, only return weight of 0
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.
[#6005]: Remove redundant XCMs from dry run's forwarded xcms
The DryRunApi was returning the same message repeated multiple times in the forwarded_xcms
field. This is no longer the case.
Rust compiler versions
This release was built and tested against the following versions of rustc
.
Other versions may work.
- Rust Stable:
"1.81.0"
Runtimes
The information about the runtimes included in this release can be found below.
The runtimes have been built using srtool v0.16.0 and rustc 1.81.0 (eeb90cda1 2024-09-04)
.
Westend Assethub
🏋️ Runtime Size: 1.57 MB (1643466 bytes)
🔥 Core Version: westmint-1016002 (westmint-0.tx16.au1)
🗜 Compressed: Yes: 78.91%
🎁 Metadata version: V14
🗳️ system.setCode hash: 0x5fe6cb1d493c59bedaf60676cb844a8c7d2091c38185ebb5f0dff264b15cb067
🗳️ authorizeUpgrade hash: 0x1396e952b25c5a65adda8e75a2eefe99d07a19ae2d8ccf581765d0ddaa451511
🗳️ Blake2-256 hash: 0x942dc08e4ce4757a20883295cbfc0996d6d149f21f5c56355b4db6bff1bcd676
📦 IPFS: QmdhQAvLZJ5PNv5fmfEiDsCL3K9J3WFfWKdFhZ3wvsqygb
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:latest
or
docker pull parity/polkadot-parachain:latest
Polkadot stable2407-3
This release contains the changes from polkadot-stable2407-2
to polkadot-stable2407-3
.
ℹ️ Please note:
stable2407
. If your nodes are already running on the latest stable version (stable2409
), no upgrade or changes are necessary.
The tag corresponding to the current patch release polkadot-stable2407-3
and matching the old pattern will be available under polkadot-v1.15.3.
Also the deb package for this version will be attached here for the manual installation and published under the new distribution - stable2407
. To install it via apt
please extend the /etc/apt/sources.list.d/parity.list
by:
echo 'deb [signed-by=/usr/share/keyrings/parity.gpg] https://releases.parity.io/deb stable2407 main' >> /etc/apt/sources.list.d/parity.list
Changelog
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).)
[#3049]: Fix treasury benchmarks when SpendOrigin
being None
Fix treasury benchmarks when SpendOrigin
not returning any succesful origin.
This is for example the case when SpendOrigin
is set to NeverOrigin
.
[#5580]: Fix error message on pallet macro
Improve error message for pallet macro generated code.
[#5644]: pallet-utility: Improve weight annotations
Prevent allocations when calculating the weights.
[#5524]: frame-omni-bencher maintenance
Changes:
- Set default level to
Info
again. Seems like a dependency update set it to something higher. - Fix docs to not use
--locked
since we rely on dependency bumps via cargo. - Add README with rust docs.
- Fix bug where the node ignored
--heap-pages
argument.
[#5632]: Fix alloc
not found error in format_runtime_string!
Fixes the macro hygiene in the format_runtime_string!
macro to fix the alloc
not found build error.
[#5594]: Add debugging info for StorageWeightReclaim
- Includes extrinsic index to be displayed in the logs when the consumed weight is higher than the measured one.
[#5603]: Clear other messages before dry-running
The DryRunApi.dry_run_call and DryRunApi.dry_run_xcm functions used to populate forwarded_xcms
with all the existing messages in the queues at the time.
Now, existing (irrelevant) messages are cleared when dry-running, meaning only the messages produced by the dry-run call (or xcm) will be returned in forwarded_xcms
.
[#5695]: pallet-migrations: fix index access for singluar migrations
Discovered a bug in the migrations pallet while debugging paritytech/try-runtime-cli#90.
It only occurs when a single MBM is configured - hence it did not happen when Ajuna Network tried it...
Changes:
- Check len of the tuple before accessing its nth_id
- Make nth_id return
None
on unary tuples and n>0
[#5713]: pallet-treasury: Improve remove_approval
benchmark
Fix the remove_approval
benchmark when SpendOrigin
doesn't return any succesful_origin
.
Rust compiler versions
This release was built and tested against the following versions of rustc
.
Other versions may work.
- Rust Stable:
"1.81.0"
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:stable2407-3
or
docker pull parity/polkadot-parachain:stable2407-3
Polkadot stable2409
This release contains the changes from polkadot-stable2407-2
to polkadot-stable2409
.
The tag corresponding to the current stable release polkadot-stable2409
and matching the old pattern will be available under polkadot-v1.16.0.
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.
[#5250]: Export MetricsService
and add public constructor to RpcHandlers
sc-service
was missing just a couple of things in public API in order to make it possible to recreate its spawn_tasks
, specifically MetricsService
struct and RpcHandlers
didn't have public constructor, which were both finally addressed.
[#5195]: Bump Aura authoring duration to 2s.
This PR bumps the Aura authoring duration in the asynchronous backing guide and the polkadot-parachain service file to 2s in order to make better use of the provided coretime.
[#2923]: Use console
crate instead of ansi_term
This PR replace obsoleted ansi_term
to console
.
[#5396]: Simplify SyncingEngine::new()
Tiny changes to simplify the internal implemenation of API SyncingEngine::new()
to prevent panics while fetching the genesis hash and to eliminate unnecessary allocation for reserved peers.
[#5424]: Suppress the log output for transaction propagation when no transactions are present
Previously, the log message Propagating transactions
would always be printed, even when there were no transactions to propagate. This patch optimizes the logging by returning early when no transactions are present, resulting in cleaner and more relevant log output.
[#3786]: Make changing of peer-id while active a bit more robust
Implemetation of polkadot-fellows/RFCs#91, to use creation_time
field to determine the newest DHT record and to update nodes known to have the old record.
Gossip-support is modified to try to re-resolve new address authorithies every 5 minutes instead of each session, so that we pick autorithies that changed their address faster and try to connect to them.
[#5252]: Additional logging in dispute-coordinator
subsystem
Additional logging in dispute-coordinator
subsystem tracing the list of offchain disabled validators and the reason why an import statement is considered spam.
[#5538]: collator-protocol: Remove race condition
Remove a race condition in the collator protocol that could lead to collations not being announced to a validator.
[#5029]: Backoff slow peers to avoid duplicate requests
This PR introduces a backoff strategy mechanism. Whenever a peer disconnects with an inflight block (or state) request, the peer is backed off for a period of time before receiving requests.
After several attempts, the peer is disconnected and banned. The strategy aims to offload the pressure from peers that are slow to respond or overloaded.
[#5352]: Aura: Ensure parachains are building on all relay chain forks
Ensure that parachains using the basic
collator are building on all relay chain forks.
[#4993]: Added BEEFY equivocation-related methods to BeefyApi
This PR adds the generate_ancestry_proof
, submit_report_fork_voting_unsigned_extrinsic
and
submit_report_future_block_voting_unsigned_extrinsic
to BeefyApi
and bumps the BeefyApi
version from 4 to 5.
[#5450]: Sync status refactoring
SyncingService
API in sc-network-sync
has changed with some of the redundant methods related to sync status removed that were mostly used internally or for testing purposes and is unlikely to impact external code.
ExtendedPeerInfo
now has working Clone
and Copy
implementation.
[#5344]: Fix storage weight reclaim bug.
Improvement in slot worker loop that will not call create inherent data providers if the major sync is in progress. Before it was called every slot and the results were discarded during major sync.
[#5431]: Remove the need to wait for target block header in warp sync implementation
Previously warp sync needed to wait for target block header of the relay chain to become available before warp sync can start, which resulted in cumbersome APIs. Parachain initialization was refactored to initialize warp sync with target block header from the very beginning, improving and simplifying sync API.
[#5410]: Reactive syncing metrics
Syncing metrics are now updated immediate as changes happen rather than every 1100ms as it was happening before.
This resulted in minor, but breaking API changes.
[#5288]: Added polkadot-parachain-lib
helper library that can be used to build a parachain node
This PR adds the polkadot-parachain-lib
helper library that can be used to build a parachain node.
[#5269]: Added the possibility to build a parachain node with block number u64
Added the possibility to build a parachain node with block number u64.
[#4739]: parachain-template - genesis config presets added
- common DEV_RUNTIME_PRESET ("development") const added to sp-genesis-builder.
- parachain-templates are now using presets.
[#5316]: add timestamp function to sp-consensus-slots
Added timestamp function to sp-consensus-slots to get the first timestamp of the given slot.
[#5142]: Move decompression to worker processes
Candidate validation subsystem performed the PVF code decompression as well as the PoV decompression itself which might affect the subsystem main loop performance and required it to run on the blocking threadpool. This change moves the decompression to PVF host workers running synchronously in separate processes.
[#5356]: Fix OurViewChange small race
Always queue OurViewChange event before we send view changes to our peers, because otherwise we risk the peers sending us a message that can be processed by our subsystems before OurViewChange.
Normally, this is not really a problem because the latency of the ViewChange we send to our peers is way higher than that of our subsystem processing OurViewChange, however on testnets like versi where CPUs are sometimes overcommitted this race gets triggered occasionally, so let's fix it by sending the messages in the right order.
[#5065]: Replace env_logger with sp_tracing
This PR replaces env_logger with sp_tracing because of an issue with env_logger and gum #4660
[#3996]: asset-hub-rococo - genesis config presets added
asset-hub-rococo
genesis state was moved to runtime.
[#5393]: Allow to enable full PoV size
A feature is introduced allowing a collator to enable full PoV size at compile time.
WARNING: To use this feature, security considerations must be understood and the latest SDK version must be used.
[#5364]: Improve sc-service
API
This improves sc-service
API by not requiring the whole &Configuration
, using specific configuration options instead. RpcConfiguration
and ExecutorConfiguration
were also extracted from Configuration
to group all RPC and executor options together.
If sc-service
is used as a library with lower-level APIs, Configuration
can now be avoided in most cases.
This mainly impacts you on your node implementation. There you need to change this:
with_execution_method(config.wasm_method)
to this:
with_execution_method(config.executor.wasm_method)
There are similar changes required as well, but all are around the initialization of the wasm executor.
[#5527]: Report BestBlock events only for newBlock reports
This PR ensures that the chainHead_v1_follow method of the RPC-v2 API is always reporting a BestBlock
event after a NewBlock
.
There was a race condition in the chainHead follow logic which led to the BestBlock
event to be emitted without an associated NewBlock
event.
[#4928]: Move assignment VRF check and vote signature in approval-distribution
This PR moves the assignment VRF check and approval vote signature from approval-voting into approval-distribution.
This optimization creates a better pipelining for processing new messages, because in this way approval-distribution does not have to wait after approval-voting anymore and it will just notify it when it received a valid message that is ready to be imported.
[#5339]: Replace unnecessary &mut self
with &self
in BlockImport::import_block()
Simplifies block import API to match intended design where independent blocks can technically be imported concurrently and in practice was called through Arc
anyway
[#4845]: Make approval-distribution logic runnable on a separate thread
Pass SubsystemSender trait inside approval-distribution instead of passing SubsystemContext everywhere.
This allows us in the future to be able to run multiple approval-distribution instances on different workers.
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).)
[#5713]: pallet-treasury: Improve remove_approval
benchmark
Fix the remove_approval
benchmark when SpendOrigin
doesn't return any succesful_origin
.
[#4970]: Remove pallet::getter
usage from the transaction-payment pallet
This PR removes the pallet::getter
s from pallet-transaction-payment
.
The syntax StorageItem::<T, I>::get()
should ...
Polkadot stable2409-rc1
This pre-release contains the changes from polkadot-stable2407-2
to polkadot-stable2409-rc1
.
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
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.
[#5410]: Reactive syncing metrics
Syncing metrics are now updated immediate as changes happen rather than every 1100ms as it was happening before.
This resulted in minor, but breaking API changes.
[#5288]: Added polkadot-parachain-lib
helper library that can be used to build a parachain node
This PR adds the polkadot-parachain-lib
helper library that can be used to build a parachain node.
[#4993]: Added BEEFY equivocation-related methods to BeefyApi
This PR adds the generate_ancestry_proof
, submit_report_fork_voting_unsigned_extrinsic
and
submit_report_future_block_voting_unsigned_extrinsic
to BeefyApi
and bumps the BeefyApi
version from 4 to 5.
[#5393]: Allow to enable full PoV size
A feature is introduced allowing a collator to enable full PoV size at compile time.
WARNING: To use this feature, security considerations must be understood and the latest SDK version must be used.
[#5065]: Replace env_logger with sp_tracing
This PR replaces env_logger with sp_tracing because of an issue with env_logger and gum #4660
[#5344]: Fix storage weight reclaim bug.
Improvement in slot worker loop that will not call create inherent data providers if the major sync is in progress. Before it was called every slot and the results were discarded during major sync.
[#5396]: Simplify SyncingEngine::new()
Tiny changes to simplify the internal implemenation of API SyncingEngine::new()
to prevent panics while fetching the genesis hash and to eliminate unnecessary allocation for reserved peers.
[#4845]: Make approval-distribution logic runnable on a separate thread
Pass SubsystemSender trait inside approval-distribution instead of passing SubsystemContext everywhere.
This allows us in the future to be able to run multiple approval-distribution instances on different workers.
[#5364]: Improve sc-service
API
This improves sc-service
API by not requiring the whole &Configuration
, using specific configuration options instead. RpcConfiguration
and ExecutorConfiguration
were also extracted from Configuration
to group all RPC and executor options together.
If sc-service
is used as a library with lower-level APIs, Configuration
can now be avoided in most cases.
This mainly impacts you on your node implementation. There you need to change this:
with_execution_method(config.wasm_method)
to this:
with_execution_method(config.executor.wasm_method)
There are similar changes required as well, but all are around the initialization of the wasm executor.
[#4739]: parachain-template - genesis config presets added
- common DEV_RUNTIME_PRESET ("development") const added to sp-genesis-builder.
- parachain-templates are now using presets.
[#5195]: Bump Aura authoring duration to 2s.
This PR bumps the Aura authoring duration in the asynchronous backing guide and the polkadot-parachain service file to 2s in order to make better use of the provided coretime.
[#5142]: Move decompression to worker processes
Candidate validation subsystem performed the PVF code decompression as well as the PoV decompression itself which might affect the subsystem main loop performance and required it to run on the blocking threadpool. This change moves the decompression to PVF host workers running synchronously in separate processes.
[#5431]: Remove the need to wait for target block header in warp sync implementation
Previously warp sync needed to wait for target block header of the relay chain to become available before warp sync can start, which resulted in cumbersome APIs. Parachain initialization was refactored to initialize warp sync with target block header from the very beginning, improving and simplifying sync API.
[#5527]: Report BestBlock events only for newBlock reports
This PR ensures that the chainHead_v1_follow method of the RPC-v2 API is always reporting a BestBlock
event after a NewBlock
.
There was a race condition in the chainHead follow logic which led to the BestBlock
event to be emitted without an associated NewBlock
event.
[#4928]: Move assignment VRF check and vote signature in approval-distribution
This PR moves the assignment VRF check and approval vote signature from approval-voting into approval-distribution.
This optimization creates a better pipelining for processing new messages, because in this way approval-distribution does not have to wait after approval-voting anymore and it will just notify it when it received a valid message that is ready to be imported.
[#5450]: Sync status refactoring
SyncingService
API in sc-network-sync
has changed with some of the redundant methods related to sync status removed that were mostly used internally or for testing purposes and is unlikely to impact external code.
ExtendedPeerInfo
now has working Clone
and Copy
implementation.
[#5424]: Suppress the log output for transaction propagation when no transactions are present
Previously, the log message Propagating transactions
would always be printed, even when there were no transactions to propagate. This patch optimizes the logging by returning early when no transactions are present, resulting in cleaner and more relevant log output.
[#5250]: Export MetricsService
and add public constructor to RpcHandlers
sc-service
was missing just a couple of things in public API in order to make it possible to recreate its spawn_tasks
, specifically MetricsService
struct and RpcHandlers
didn't have public constructor, which were both finally addressed.
[#5029]: Backoff slow peers to avoid duplicate requests
This PR introduces a backoff strategy mechanism. Whenever a peer disconnects with an inflight block (or state) request, the peer is backed off for a period of time before receiving requests.
After several attempts, the peer is disconnected and banned. The strategy aims to offload the pressure from peers that are slow to respond or overloaded.
[#5339]: Replace unnecessary &mut self
with &self
in BlockImport::import_block()
Simplifies block import API to match intended design where independent blocks can technically be imported concurrently and in practice was called through Arc
anyway
[#5352]: Aura: Ensure parachains are building on all relay chain forks
Ensure that parachains using the basic
collator are building on all relay chain forks.
[#5269]: Added the possibility to build a parachain node with block number u64
Added the possibility to build a parachain node with block number u64.
[#3786]: Make changing of peer-id while active a bit more robust
Implemetation of polkadot-fellows/RFCs#91, to use creation_time
field to determine the newest DHT record and to update nodes known to have the old record.
Gossip-support is modified to try to re-resolve new address authorithies every 5 minutes instead of each session, so that we pick autorithies that changed their address faster and try to connect to them.
[#5252]: Additional logging in dispute-coordinator
subsystem
Additional logging in dispute-coordinator
subsystem tracing the list of offchain disabled validators and the reason why an import statement is considered spam.
[#5316]: add timestamp function to sp-consensus-slots
Added timestamp function to sp-consensus-slots to get the first timestamp of the given slot.
[#3996]: asset-hub-rococo - genesis config presets added
asset-hub-rococo
genesis state was moved to runtime.
[#5356]: Fix OurViewChange small race
Always queue OurViewChange event before we send view changes to our peers, because otherwise we risk the peers sending us a message that can be processed by our subsystems before OurViewChange.
Normally, this is not really a problem because the latency of the ViewChange we send to our peers is way higher than that of our subsystem processing OurViewChange, however on testnets like versi where CPUs are sometimes overcommitted this race gets triggered occasionally, so let's fix it by sending the messages in the right order.
[#2923]: Use console
crate instead of ansi_term
This PR replace obsoleted ansi_term
to console
.
[#5538]: collator-protocol: Remove race condition
Remove a race condition in the collator protocol that could lead to collations not being announced to a validator.
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).)
[#4963]: Removed pallet::getter
usage from the pallet-proxy
This PR removed `pallet::ge...
Polkadot stable2407-2
This release contains the changes from polkadot-stable2407-1
to polkadot-stable2407-2
.
ℹ️ Please note:
The tag corresponding to the current patch release polkadot-stable2407-2
and matching the old pattern will be available under polkadot-v1.15.2.
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.
[#5507]: Allow to enable full PoV size
A feature is introduced allowing a collator to enable full PoV size at compile time.
WARNING: To use this feature, security considerations must be understood and the latest SDK version must be used.
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).)
[#5510]: Fix failing XCM from relay to Coretime Chain when revenue is zero
The coretime assigner now always includes UnpaidExecution when calling notify_revenue
via a Transact
, not just when revenue is nonzero. This fixes an issue where the XCM would fail to process on the receiving side.
[#5055]: Only log error in UnixTime::now
call of the pallet-timestamp implementation if called at genesis
This minor patch re-introduces a check to ensure that the UnixTime::now
implementation in the timestamp only logs an error if called at the genesis block.
Changelog for Node Operator
ℹ️ These changes are relevant to: Those who don't write any code and only run code.
[#5392]: Don't disconnect disabled nodes sending us dispute messages
No longer disconnect peers which we consider disabled when raising disputes as this will affect the approval process and thus finality.
Rust compiler versions
This release was built and tested against the following versions of rustc
.
Other versions may work.
- Rust Stable:
"1.77.0"
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:stable2407-2
or
docker pull parity/polkadot-parachain:stable2407-2
Polkadot stable2407-1
This release contains the changes from polkadot-stable2407
to polkadot-stable2407-1
.
ℹ️ Please note:
The tag corresponding to the current patch release polkadot-stable2407-1
and matching the old pattern will be available under polkadot-v1.15.1.
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.
[#4937]: prospective-parachains rework: take II
Add back support for backing parachain forks. Once a candidate reaches the backing quorum, validators use a shared way of picking the winning fork to back on-chain. This was done in order to increase the likelihood that all backers will vote on the winning fork.
The functionality of backing unconnected candidates introduced by the previous rework is preserved.
[#5332]: fix availability-distribution Jaeger spans memory leak
Fixes a memory leak which caused the Jaeger span storage in availability-distribution to never be pruned and therefore increasing indefinitely.
This was caused by improper handling of finalized heads. More info in #5258
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).)
[#5281]: PoV-Reclaim - Set BlockWeight
to node-side PoV size if mismatch is detected
After this change, the StorageWeightReclaim
SignedExtension
will check the node-side PoV size after every extrinsic. If we detect a case where the returned proof size is higher than the BlockWeight
value of the runtime, we set BlockWeight
to the size returned from the node.
[#5367]: Fixes std
leaking into the WASM runtime build
Fixes std
leaking into the WASM runtime build when updating serde_json
.
[#5273]: Fix storage weight reclaim bug.
A bug in storage weight reclaim signed extension is fixed. The bug was causing an underestimate of the proof size when the post dispatch info was underestimating the proof size and the pre dispatch info was overestimating the proof size at the same time.
Changelog for Node Operator
ℹ️ These changes are relevant to: Those who don't write any code and only run code.
[#5247]: Prepare PVFs if node is a validator in the next session
- On every active leaf candidate-validation subsystem checks if the node is the next session authority.
- If it is, it fetches backed candidates and prepares unknown PVFs.
- Number of PVF preparations per block is limited to not overload subsystem.
Rust compiler versions
This release was built and tested against the following versions of rustc
.
Other versions may work.
- Rust Stable:
"1.77.0"
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:stable2407-1
or
docker pull parity/polkadot-parachain:stable2407-1
Polkadot stable2407
This release contains the changes from polkadot-v1.14.1
to polkadot-stable2407
.
ℹ️ Please note:
Starting from this release (related post on the Polkadot forum, the process for Polkadot node releases is changing. The new process is described in the RELEASE.md.
Therefore, the naming of the releases and final release tags will be adapted to replicate the schedule of the stable releases. Since each stable release will be done quarterly, it will be named based on the model: Polkadot stableYYMM
, and the tags will follow accordingly: polkadot-stableYYMM
, where YYMM
represents the date (last month of the quarter) of the release.
The old tags based on the version will be kept during the transition period. The tag corresponding the current stable release polkadot-stable2407
and matching the old attern is available under polkadot-v1.15.0.
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.
[#4848]: Optimize logic for gossiping assignments
Optimize the logic for gossiping assignments by obtaining the list of peer ids from the topology instead of iterating through all connected validators, this gives us a 15% to 20% reduction in cpu usage.
[#4922]: Optimize finalization performance
Finalization algorithm was replaced with a more efficient version, data structures refactored to be faster and do fewer memory allocations. As the result some APIs have changed in a minor, but incompatible way.
[#4755]: Send PeerViewChange with high priority
- orchestra updated to 0.4.0, which introduces support for prioritizing system messages.
- PeerViewChange sent with high priority and should be processed first in a queue.
- To count them in tests added tracker to TestSender and TestOverseer. It acts more like a smoke test though.
[#4522]: Added runtime support for reporting BEEFY fork voting
This PR renames the submit_report_equivocation_unsigned_extrinsic
in BeefyApi
to
submit_report_double_voting_unsigned_extrinsic
and bumps the BeefyApi
version from 3 to 4.
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).)
[#4978]: Add MAX_INSTRUCTIONS_TO_DECODE to XCMv2
Added a max number of instructions to XCMv2. If using XCMv2, you'll have to take this limit into account.
It was set to 100.
[#5011]: Use BadOrigin
from sp_runtime
This PR refactor usages of deprecated frame_support::error::BadOrigin
to sp_runtime::traits::BadOrigin
[#5113]: Make the candidate relay parent progression check more strict for elastic scaling
Previously, the relay chain runtime was checking if the relay parent of a new candidate does not move backwards from the latest included on-chain candidate. This was fine prior to elastic scaling.
We now need to also check that the relay parent progresses from the latest pending availability candidate, as well as check the progression within the candidate chain in the inherent data.
Prospective-parachains is already doing this check but it's also needed in the runtime.
[#4943]: Update definition of frozen balance (docs PR)
This PR fixes a bug in the docs located in the definition of frozen balances. In addition, it extends that definition for completeness.
[#4863]: Make tracing::log
work in the runtime
Make tracing::log
work in the runtime as log
works in the runtime.
[#4902]: Removed pallet::getter
usage from the pallet-vesting
This PR removed pallet::getter
s from pallet-vesting
s storage items.
When accessed inside the pallet, use the syntax StorageItem::<T>::get()
.
[#4912]: Removed pallet::getter
usage from the pallet-babe
This PR removed pallet::getter
s from pallet-babe
s storage items.
When accessed inside the pallet, use the syntax StorageItem::<T>::get()
.
When accessed outside the pallet, use the public functions of storage.
[#4839]: Removed pallet::getter
usage from pallet-insecure-randomness-collective-flip
This PR removed the pallet::getter
s from pallet-insecure-randomness-collective-flip
.
The syntax StorageItem::<T, I>::get()
should be used instead.
[#4972]: Remove pallet::getter
usage from pallet-session
This PR removes the pallet::getter
s from pallet-session
.
The syntax StorageItem::<T, I>::get()
should be used instead.
[#4935]: Bridges V2 refactoring backport and pallet_bridge_messages
simplifications
This introduces several simplifications to the pallet_bridge_messages::Config configuration.
Types like BridgedChainId
, MaxUnrewardedRelayerEntriesAtInboundLane
, MaxUnconfirmedMessagesAtInboundLane
, MaximalOutboundPayloadSize
, InboundRelayer
, TargetHeaderChain
, and SourceHeaderChain
were removed.
Now, you only need to provide specific bridging chain configurations for ThisChain
, BridgedChain
, and BridgedHeaderChain
.
If you previously specified implementations for the bp_runtime::Chain* traits, those will fit here exactly, for example:
type ThisChain = bp_bridge_hub_rococo::BridgeHubRococo;
type BridgedChain = bp_bridge_hub_westend::BridgeHubWestend;
type BridgedHeaderChain = pallet_bridge_parachains::ParachainHeaders<
Runtime,
BridgeParachainWestendInstance,
bp_bridge_hub_westend::BridgeHubWestend,
>;
[#4885]: Removed pallet::getter
usage from the pallet-transaction-storage
This PR removed pallet::getter
s from pallet-transaction-storage
s storage items.
When accessed inside the pallet, use the syntax StorageItem::<T, I>::get()
.
[#4777]: XCM builder pattern allows clear_origin before buy_execution.
Added clear_origin as an allowed command after commands that load the holdings register, in the safe xcm builder.
Previously, although it's logically allowed, an XCM could not be built like this:
let xcm = Xcm::builder()
.withdraw_asset((Parent, 100u128))
.clear_origin()
.buy_execution((Parent, 1u128))
.deposit_asset(All, [0u8; 32])
.build();
You had to use the unsafe_builder.
Now, it's allowed using the default builder.
[#3286]: Assets: can_decrease/increase for destroying asset is not successful
Functions can_decrease
and can_increase
do not return successful consequence results for assets undergoing destruction; instead, they return the UnknownAsset
consequence variant.
This update aligns their behavior with similar functions, such as reducible_balance
, increase_balance
, decrease_balance
, and burn
, which return an AssetNotLive
error for assets in the process of being destroyed.
[#4840]: Removed pallet::getter
usage from pallet-membership
This PR removed the pallet::getter
s from pallet-membership
.
The syntax StorageItem::<T, I>::get()
should be used instead.
[#4871]: Removed pallet::getter
usage from the pallet-tips
This PR removed pallet::getter
s from pallet-tips
s storage items.
When accessed inside the pallet, use the syntax StorageItem::<T, I>::get()
.
Changelog for Node Operator
ℹ️ These changes are relevant to: Those who don't write any code and only run code.
[#5153]: Grandpa: Ensure voting doesn't fail after a re-org
Ensures that a node is still able to vote with Grandpa, when a re-org happened that changed the best chain. This ultimately prevents that a network may runs into a potential finality stall.
[#4097]: Introduce experimental slot-based collator
Introduces an experimental collator that is fit fot elastic-scaling.
It can be activated on test-parachain
and polkadot-parachain
binaries via --experimental-use-slot-based
flag. The current implementation is MVP status and purely for testing. Behaviour can change any time and should not be relied upon in environments with
any stability requirements.
[#5040]: Update libp2p-websocket to v0.42.2
Fixes a panic coming from the libp2p-websocket which stops the node.
This fix ensures that polling multiple time after error results in an error instead of panics.
[#4663]: Add elastic scaling MVP guide
Adds a guide for parachains that want to use the experimental elastic scaling MVP.
Will be viewable at: https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/guides/enable_elastic_scaling_mvp/index.html
[#4932]: Remove relay-chain consensus authoring support for asset-hub chains from polkadot-parachain.
The polkadot-parachain node had special handling for asset-hub parachains. They started out using relay-chain consensus and later migrated to Aura as soon as it became available. The codepath for authoring with relay chain consensus has been removed, since all asset hub chains have long migrated.
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.
[#4978]: Add MAX_INSTRUCTIONS_TO_DECODE to XCMv2
Added a max number of instructions to XCMv2. If using XCMv2, you'll have to take this limit into account.
It was set to 100.
[#4566]: [pallet_contracts] Add suppo...
Polkadot v1.14.1
This release contains the changes from polkadot-v1.14.0
to polkadot-v1.14.1
.
Changelog
Changelog for Node Operator
ℹ️ These changes are relevant to: Those who don't write any code and only run code.
[#5040]: Update libp2p-websocket to v0.42.2
Fixes a panic coming from the libp2p-websocket which stops the node.
This fix ensures that polling multiple time after error results in an error instead of panics.
Rust compiler versions
This release was built and tested against the following versions of rustc
.
Other versions may work.
- Rust Stable:
"1.77.0"
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:latest
or
docker pull parity/polkadot-parachain:latest
Polkadot v1.14.0
This release contains the changes from polkadot-v1.13.0
to polkadot-v1.14.0
.
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.
[#4724]: Fix core sharing and make use of scheduling_lookahead during backing
Core sharing (two or more parachains scheduled on the same core with interlaced assignments) was not working correctly.
Adds the neccessary fixes to the backing subsystems. Moreover, adds support for backing collations which are built and advertised ahead of time (with up to scheduling_lookahead
relay chain blocks in advance).
[#4833]: Reinitialize should allow to override existing config in collationGeneration
The Reinitialize collationGeneration subsystem message currently fails if no other config is already set.
As it is difficult to query the collationGeneration subsystem to check when to call Initialize or Reinitialize, this PR proposes that Reinitialize overrides the configuration regardless if there was one already set.
[#4730]: rpc upgrade jsonrpsee to v0.23.1
Upgrade the rpc library jsonrpsee to v0.23.1 to utilize:
- Add Extensions which we now is using to get the connection id (used by the rpc spec v2)
- Update hyper to v1.0, http v1.0, soketto and related crates (hyper::service::make_service_fn is removed)
- The subscription API for the client is modified to know why a subscription was closed.
[#4618]: Unify logic for fetching the :code
of a block
Client::code_at
will now use the same substitute
to determine the code for a given block as it is done when executing any runtime call.
[#4844]: Make Verifier::verify
and BlockImport::check_block
use &self
instead of &mut self
Verifier::verify
and BlockImport::check_block
were refactored to use &self
instead of &mut self
because there is no fundamental requirement for those operations to be exclusive in nature.
[#4733]: Add pov-recovery unit tests and support for elastic scaling
Adds unit tests for cumulus pov-recovery and support for elastic scaling (recovering multiple candidates in a single relay chain block).
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).)
[#3940]: RFC-5: Add request revenue info
Partially implemented RFC-5 in terms of revenue requests and notifications
[#3679]: [pallet-contracts] bump wasmi to 0.32
- Bump wasmi to 0.32
- Turn on lazy and unchecked compilation when calling a contract.
See https://docs.rs/wasmi/0.32.0/wasmi/enum.CompilationMode.html#variant.Lazy
See https://docs.rs/wasmi/0.32.0/wasmi/struct.Module.html#method.new_unchecked
See https://wasmi-labs.github.io/blog/posts/wasmi-v0.32 for more details, on the wasmi update.
[#4831]: treasury pallet: - remove unused config parameters
Remove unused config parameters ApproveOrigin
and OnSlash
from the treasury pallet.
Add OnSlash
config parameter to the bounties and tips pallets.
[#3843]: Introduce a new dispatchable function set_partial_params
in pallet-core-fellowship
This PR adds a new dispatchable function set_partial_params
to update config with multiple arguments without duplicating the
fields that does not need to update.
[#4769]: Use real rust type for pallet alias in runtime
macro
This PR adds the ability to use a real rust type for pallet alias in the new runtime
macro:
#[runtime::pallet_index(0)]
pub type System = frame_system::Pallet<Runtime>;
Please note that the current syntax still continues to be supported.
[#4684]: Refactor of the parachain template
Introduce the construct runtime V2 to the parachain template runtime. In addition, url links in the parachain pallet template now direct to the polkadot sdk docs.
[#3951]: Pallet Assets Freezer
This pallet is an extension of pallet-assets
, supporting freezes similar to pallet-balances
.
To use this pallet, set Freezer
of pallet-assets
Config to the according instance of pallet-assets-freezer
.
[#4757]: pallet assets: optional auto-increment for the asset ID
Introduce an optional auto-increment setup for the IDs of new assets.
[#4807]: pallet ranked collective: max member count per rank
Configuration for the maximum member count per rank, with the option for no limit.
[#4596]: Frame: Consideration
trait generic over Footprint
and handles zero cost
Consideration
trait generic over Footprint
and can handle zero cost for a give footprint.
Consideration
trait is generic over Footprint
(currently defined over the type with the same name). This makes it possible to setup a custom footprint (e.g. current number of proposals in the storage).
Consideration::new
and Consideration::update
return an Option<Self>
instead Self
, this make it possible to define no cost for a specific footprint (e.g. current number of proposals in the storage < max_proposal_count / 2).
[#4710]: Dont partially modify HRMP pages
The xcmp-queue pallet now does not partially modify a page anymore when the next message does not fully fit into it but instead cleanly creates a new one.
[#4765]: CheckWeight - account for extrinsic len as proof size
This changes how CheckWeight extension works. It will now account for the extrinsic length as proof size. When on_idle
is called, the remaining weight parameter reflects this.
[#4513]: Removed pallet::getter
usage from pallet-elections-phragmen
This PR removed the pallet::getter
s from pallet-elections-phragmen
.
The syntax StorageItem::<T, I>::get()
should be used instead.
[#4865]: Implement trait ContainsLengthBound
for pallet-membership
Implement trait ContainsLengthBound for pallet membership otherwise we can't use it with pallet-tips without wrapper
[#4857]: [xcm] runtime api for LocationToAccount conversions
Introduces a new runtime API to help with conversions of XCM Location
to the runtime's AccountId
, showing an Ss58 formatted address for easier verification.
Besides that, the xcm-fee-payment-runtime-api
module was merged into the new xcm-runtime-apis
.
If you are using the xcm-fee-payment-runtime-api
dependency, you just need to change it to xcm-runtime-apis
and update the imports from use xcm_fee_payment_runtime_api::*
to use xcm_runtime_apis::*
.
[#4756]: Do not make pallet-nfts benchmarks signature-dependent
- Adds extra functionality to pallet-nfts's BenchmarkHelper to provide signers and sign message.
- Abstracts away the explicit link with Sr25519 schema in the benchmarks, allowing parachains with a different one to be able to run them and calculate the weights.
- Adds a default implementation for the empty tuple that leaves the code equivalent.
[#3828]: [FRAME] Remove storage migration type
Introduce migration type to remove data associated with a specific storage of a pallet.
[#3374]: removed pallet::getter
from pallet-timestamp
This PR removes all the pallet::getter
usages from pallet-timestamp
, and updates depdendant runtimes accordingly.
The syntax StorageItem::<T, I>::get()
should be used instead.
Changelog for Node Operator
ℹ️ These changes are relevant to: Those who don't write any code and only run code.
[#4662]: Cleanup PVF artifact by cache limit and stale time
Extend the PVF artifacts cleanup strategy. Previously, we pruned artifacts that were stale more than 24 hours.
After this change we attempt pruning artifacts only when they reach the 10 GB cache limit. If the least used artifact is stale less than 24 hours we don't remove it.
[#4685]: Chain-spec-builder supports codeSubstitutes
.
A new subcommand add-code-substitute
is available for the chain-spec-builder
binary. It allows users to provide a runtime that should be used from a given block onwards. The codeSubstitutes
field in the chain spec is used to force usage of a given runtime at a given block until the next runtime upgrade. It can be used to progress chains that are stalled due to runtime bugs that prevent block-building. However, parachain usage is only possible in combination with an updated validation function on the relay chain.
[#4618]: Unify logic for fetching the :code
of a block
Fixes an issue on parachains when running with a custom substitute
of the on chain wasm code and having replaced the wasm code on the relay chain. The relay chain was rejecting blocks build this way, because the collator was reporting the actual on chain wasm code hash to the relay chain. However, the relay chain was expecting the code hash of the wasm code substitute that was also registered on the relay chain.
[#4802]: Add health/readiness endpoint
to the rpc server
Add /health/readiness endpoint
to the rpc server which returns HTTP status code 200 if the chain is synced and can connect to the rest of the network otherwise status code 500 is returned.
The endpoint can be reached by performing a HTTP GET request to the endpoint such as $ curl <endpoint>/health/readiness
[#4799]: network: Upgrade litep2p
to v0.6.0
This PR brings the latest litep2p
v0.6.0 to polkadot-sdk with stability improvements, security fixes, and performance optimizations.
Specifically:
- Incoming DHT records ...
Polkadot v1.13.0
This release contains the changes from polkadot-v1.12.0
to polkadot-v1.13.0
.
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.
[#4431]: Statement-Distribution validator disabling changes
In preparation for launching re-enabling (#2418), we need to adjust the disabling strategy of statement-distribution to use the relay parent's state instead of the latest state (union of active leaves). This will also ensure no raciness of getting the latest state vs accepting statements from disabling validators at the cost of being more lenient/potentially accepting more statements from disabled validators.
[#4410]: [sc-chain-spec] Remove deprecated code
The RuntimeGenesisConfig generic type parameter was removed from GenericChainSpec struct.
ChainSpec::from_genesis method was removed.
Removed related deprecated code from sc-chain-spec
.
This change simplifies the codebase and ensures the use of up-to-date definitions.
[#4555]: Move para_id
to MockValidationDataInherentDataProvider
This moves the para_id
from MockXcmConfig
to MockValidationDataInherentDataProvider
to make it more prominent. The para_id
should be set to the parachain id of the parachain that gets mocked to ensure that the relay chain storage proof is setup correctly etc.
[#4595]: Remove elastic-scaling-experimental
feature flag
The feature was masking the ability of collators to respond with CollationWithParentHeadData
to validator collation fetch requests, a requirement for elastic scaling.
Please note that CollationWithParentHeadData
is only sent by collators of parachains with multiple cores assigned, otherwise collators must respond with CollationFetchingResponse::Collation
[#1644]: Add availability-recovery from systematic chunks
Implements polkadot-fellows/RFCs#47 and adds the logic for availability recovery from systematic chunks.
The /req_chunk/1 req-response protocol is now considered deprecated in favour of /req_chunk/2. Systematic recovery is guarded by a configuration bit in the runtime (bit with index 2 of the node_features field from the HostConfiguration) and must not be enabled until all (or almost all) validators have upgraded to the node version that includes this PR.
[#4471]: Remove prospective-parachains subsystem from collator nodes
Removes the prospective-parachains subsystem from collators. The GetMinimumRelayParents of the implicit view is replaced by direct ChainAPI and runtime calls. The subsystem was causing performance problems when collating connected to an RPC node, due to the high number of runtime API calls, which were unneccessary for a collator.
[#4198]: Replace Multiaddr
& related types with substrate-specific types
Introduce custom types / substrate wrappers for Multiaddr
, multiaddr::Protocol
, Multihash
, ed25519::*
and supplementary еypes like errors and iterators.
Common code in substrate uses these custom types, while libp2p
& litep2p
network backends use their corresponding libraries types.
This is needed to independently upgrade libp2p
& litep2p
dependencies.
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).)
[#3935]: Introduce Polkadot-SDK umbrella crate
Introduces a new "umbrella" crate that re-exports all published crates of the Polkadot-SDK.
This helps developers to select a valid set of versions for all underlying dependencies.
You can now use this create and remove lots of dependencies from your runtime and node crates.
The staging-node-cli
and kitchensink-runtime
both adopt this pattern as an example.
Full docs in docs/sdk/src/reference_docs/umbrella_crate.rs
.
[#4646]: [Identity] Remove double encoding username signature payload
The signature payload for setting a username for an account in pallet-identity
is now just the raw bytes of said username (still including the suffix), removing the need to first encode these bytes before signing.
[#4510]: [Contracts] Remove internal topic index
This PR removes topics from internal events emitted by pallet_contracts. It does not touch the deposit_event
host function used by
smart contracts that can still include topics.
Event topics incurs significant Storage costs, and are only used by light clients to index events and avoid downloading the entire block.
They are not used by Dapp or Indexers that download the whole block anyway.
[#4392]: Remove pallet::getter
usage from both bounties and child bounties pallet
This PR removes pallet::getter
s from pallet-bounties
and pallet-child-bounties
.
The syntax StorageItem::<T, I>::get()
should be used instead.
[#4444]: Rococo AH: cleanup storage
Remove old storage that is left over in the Rococo AH storage.
[#4514]: Removed pallet::getter
usage from pallet-fast-unstake
This PR removed the pallet::getter
s from pallet-fast-unstake
.
The syntax StorageItem::<T, I>::get()
should be used instead.
[#3952]: Storage bound the XCMP queue pallet
Enforce upper limits for the number of active XCMP channels, the number of outgoing XCMP messages per channel and the number of signals per channel.
Integration
If you see this error in your try-runtime-cli:
Max message size for channel is too large.
This means that the V5 migration can be front-run and an attacker could place a large message just right before the migration to make other messages un-decodable.
Please either increase `MaxPageSize` or decrease the `max_message_size` for this channel.
Channel max: 102400, MaxPageSize: 65535
Then increase the MaxPageSize
of the cumulus_pallet_xcmp_queue
to something like this:
type MaxPageSize = ConstU32<{ 103 * 1024 }>;
[#4380]: Remove parametrized-consensus-hook
feature
parametrized-consensus-hook
feature is obsolete and is removed by this PR. The long-deprecated CheckInherents
trait is set to be removed by September 2024.
[#4465]: Bridge: added force_set_pallet_state call to pallet-bridge-grandpa
Added force_set_pallet_state
to the pallet-bridge-grandpa
. It is only callable by the root (governance or sudo) and may be used to update current authorities set and the best finalized header without any additional checks.
[#3905]: Allows Nomination Pool to use different staking strategies including a new DelegateStake strategy.
This PR introduces a new staking strategy called DelegateStake
. This strategy allows the nomination pool to delegate its stake to a validator, that is, funds are locked in user account itself instead of being transferred to the pool account. Includes migration of pools to this strategy for Westend.
[#4274]: Introduce CheckMetadataHash
signed extension
Introduces the new CheckMetadataHash
signed extension. This extension can be added to a runtime to support verifying the metadata hash as described in RFC78.
This removes the requirement for having a metadata portal and in general a centralized authentication of the metadata. With this signed extension the runtime is able to verify that the metadata used by the wallet was correct. This is mainly useful for offline wallets which users need to trust any way, not that useful for online wallets.
There is a guide generate_metadata_hash
for how to integrate this into a runtime that should make it quite easy to integrate the signed extension.
[#4472]: Remove pallet::getter
usage from pallet-democracy
This PR removes the pallet::getter
s from pallet-democracy
.
The syntax StorageItem::<T, I>::get()
should be used instead.
[#4634]: Implement XcmPaymentApi and DryRunApi on all system parachains
The new XcmPaymentApi and DryRunApi have been implement on all westend and rococo system parachains.
These can be used to build UIs that estimate XCM execution and sending, using libraries like PAPI or PJS.
[#4233]: [pallet_contracts] Update Host fn benchnmarks
Update how the host functions are benchmarked.
Instead of benchnarking a contract that calls the host functions, we now benchmark the host functions directly.
[#4249]: Moves runtime macro out of experimental flag
Now that the runtime macro (Construct Runtime V2) has been successfully deployed on Westend, this PR moves it out of the experimental feature flag and makes it generally available for runtime devs.
[#4475]: Deprecate dmp-queue pallet
Schedule the DMP queue pallet for deletion. It is not needed anymore sine #1246.
[#4521]: AdaptPrice trait is now price controlled
The broker pallet price adaptation interface is changed to be less opinionated and more information is made available to the AdaptPrice
trait. A new example impl is included which adapts the price based not on the number of cores sold, but rather on the price that was achieved during the sale to mitigate a potential price manipulation vector. More information here: #4360
[#4571]: Ignore mandatory extrinsics in total PoV size check
The CheckWeight
extension is checking that extrinsic length and ...