---
# System prepended metadata

title: Polkadot Release Analysis v<VERSION>

---

# Polkadot Release Analysis v1.5.0



:warning: ***The following report is not an exhaustive list of changes included in the release, but a set of changes that we felt deserved to be highlighted due to their impact on the Polkadot ecosystem builders.*** 

***Please do not stop reading the [release notes v1.5.0](https://github.com/paritytech/polkadot/releases/tag/v1.5.0). This report is complementary to the changelogs, not a replacement.*** 

***Highlights are categorized into High Impact, Medium Impact, and Low Impact for ease of navigation.***
***Also there is a section related to all note worthy changes related to tooling integration.***

[Help us improve the release analysis by filling out this 6 question survey.](https://forms.gle/mdneyTfvYDtXftaX9)




# Summary

In the following report we are featuring some of the changes included in the [polkadot node release 1.5.0](https://github.com/paritytech/polkadot-sdk/releases/tag/polkadot-v1.5.0). All the runtime changes that are part of this release will be included in the [corresponding runtime release](https://github.com/polkadot-fellows/runtimes/releases) done by the polkadot technical fellowship.

### Migrations in this release:
- `xcmp-queue`: [V4](https://github.com/paritytech/polkadot-sdk/pull/2142)
    
### :hammer_and_wrench: Tooling Section


- Sidecar - [v17.3.2](https://github.com/paritytech/substrate-api-sidecar/releases/tag/v17.3.2)
- Txwrapper - [v7.1.1](https://github.com/paritytech/txwrapper-core/releases/tag/v7.1.1)
- PolkadotJS - [v10.11.1](https://github.com/polkadot-js/api/releases/tag/v10.11.1)
- AssetTransferApi - [v0.1.4](https://github.com/paritytech/asset-transfer-api/releases/tag/v0.1.4)


<br/>

---


# ⚠️ Medium Impact


### [C, P, S] pallet-xcm: add new flexible transfer_assets() call/extrinsic
PR:  https://github.com/paritytech/polkadot-sdk/pull/2388


**Why is this important?**

This PR enables easy `ForeignAssets` transfers using pallet-xcm.
    
As a part of this PR, a new extrinsic `transfer_assets()` has been introduced for the complex scenarios. It also reverts `(limited_)reserve_transfer_assets` to only allow reserve-based transfers for all assets including fees. 
    
This PR aligns everything under either explicit reserve-transfer, explicit teleport, or this new flexible transfer_assets() which can mix and match as needed with fewer artificial constraints imposed to the user.


For more details, please check PR description.

### [C, P, S] Adds derive_impl to relay-chain and parachain runtimes
PR:  https://github.com/paritytech/polkadot-sdk/pull/2476

**Why is this important?**
    
As a part of this PR:

1)  `experimental` feature tag has been removed from `SoloChainDefaultConfig`, which provides a viable default config for solochain.
2) `RelayChainDefaultConfig` and `ParaChainDefaultConfig` has been added. At the moment, they are  same as the solo one, but can change over time as needed. `RelayChainDefaultConfig` provides default configurations in a relay-chain environment and `ParaChainDefaultConfig` does the same in a parachain environment.
3) `derive_impl` has been added with the appropriate default config to relay and parachains.
    
    
**How does this impact the Polkadot builders?**

This PR contains breaking changes for both solochain and parachain developers. 

1) Add `derive_impl` to inject default types

For Solochain:
    
```diff

+#[derive_impl(frame_system::config_preludes::SolochainDefaultConfig as frame_system::DefaultConfig)]
impl frame_system::Config for Runtime {
```

For Parachain
    
```diff
+#[derive_impl(frame_system::config_preludes::ParaChainDefaultConfig as frame_system::DefaultConfig)]
impl frame_system::Config for Runtime {
```
    
2) Remove below configuration parameters from `frame_system`, which are injected by default after above change.

```diff
- type RuntimeCall = RuntimeCall;
- type Lookup = AccountIdLookup<AccountId, ()>;
- type Hashing = BlakeTwo256;
- type RuntimeEvent = RuntimeEvent;
- type RuntimeOrigin = RuntimeOrigin;
- type PalletInfo = PalletInfo;
- type OnNewAccount = ();
- type OnKilledAccount = ();
- type BaseCallFilter = Everything;
- type SystemWeightInfo = ();
```


---

# ℹ️ Low Impact

### [S] substrate-node: NativeElseWasmExecutor is no longer used
PR:  https://github.com/paritytech/polkadot-sdk/pull/2521


    
**Why is this important?**

As a part of this PR, `NativeElseWasmExecutor` has been removed from Substrate Node. This is related to [#2358](https://github.com/paritytech/polkadot-sdk/pull/2358), where `CodeExecutor` was improved.
    
This is a breaking change. You would need to replace `new_native_or_wasm_executor` with `new_wasm_executor::<sp_io::SubstrateHostFunctions>`. Please check PR for more details.
    
### [S] Sassafras Consensus Pallet 
PR: https://github.com/paritytech/polkadot-sdk/pull/1577


    
**Why is this important?**

As a part of this PR, a new pallet [Sassafras Consensus](https://paritytech.github.io/polkadot-sdk/master/pallet_sassafras/index.html) has been introduced. 

[Sassafras](https://research.web3.foundation/Polkadot/protocols/block-production/SASSAFRAS) is a constant-time block production protocol that aims to ensure that there is exactly one block produced with constant time intervals rather than multiple or none.

The PR is well described. For more details, please check PR description.
    

    
### [C] Cleanup XCMP QueueConfigData
PR:  https://github.com/paritytech/polkadot-sdk/pull/2142


    
**Why is this important?**
    
As part of the work done of replacing the DMP pallet with the `MessageQueue` ([#1246](https://github.com/paritytech/polkadot-sdk/pull/1246)) for delayed execution of incoming messages, fields in `QueueConfigData` were marked as deprecated. This PR removes the deprecated fields along with a migration that bumps the page threshold default values.
    
**How does this impact the Polkadot builders?**

Please refer to the PR for the migration.
    
Related: [#1795](https://github.com/paritytech/polkadot-sdk/issues/1795)
    

    
### [C,S] Contracts: use compiled rust tests
PR:  https://github.com/paritytech/polkadot-sdk/pull/2347


    
**Why is this important?**
    
With the upcoming [RISC-V support](https://github.com/paritytech/polkadot-sdk/issues/115), this PR makes it so that all our [test fixtures in pallet-contracts](https://github.com/paritytech/polkadot-sdk/tree/master/substrate/frame/contracts/fixtures) can be used to test the new VM. A lot of the work in this PR is taking `.wat` code and rewriting it in Rust so that it can be compiled for the different targets (wasm, RISC-V).
    
Additionally, this PR include a new [`pallet-contracts-uapi`](https://paritytech.github.io/polkadot-sdk/master/pallet_contracts_uapi/index.html). This crate exposes all the host functions that a contract can import in a platform independent matter (wasm vs. RISC-V) and use to interact with the environment.
    
Related: [#2189](https://github.com/paritytech/polkadot-sdk/issues/2189)
    

    
### [C, P, S] Rework the event system of sc-network 
PR: https://github.com/paritytech/polkadot-sdk/pull/1370


    
**Why is this important?**
    
As a part of this PR, a new concept `NotificationService` has been introduced which allows Polkadot protocols to communicate with the underlying notification protocol implementation directly, without routing events through `NetworkWorker`.
    
    
The `NotificationService` concept introduces two additional benefits:

1. allow protocols to start using custom handshakes
2. allow protocols to accept/reject inbound peers
    
This PR also deprecates the use of `NetworkEventStream` for all notification-related events and going forward only DHT events are provided through `NetworkEventStream`. For more details, please check PR description.
    
Related:  [#512](https://github.com/paritytech/polkadot-sdk/issues/512), [#514](https://github.com/paritytech/polkadot-sdk/issues/514), [#515](https://github.com/paritytech/polkadot-sdk/issues/515), [#554](https://github.com/paritytech/polkadot-sdk/issues/554), [#556](https://github.com/paritytech/polkadot-sdk/issues/556)
    
---