[Runtime] RT3000 Schedule

We are planning to release Runtime 2901 in ALL network(s) following the schedule below:
Alphanet: 2024-06-02T22:00:00Z
Moonriver: 2024-06-23T22:00:00Z
Moonbeam: 2024-07-07T22:00:00Z

This runtime upgrade includes several breaking changes.
Note: Moonriver and Moonbeam will switch from 12s to 6s blocktimes in this release. Dapp developers should ensure they are prepared for this change.

See the release note for more details:

3 Likes

RT3000 Release Summary

Upgrade Recap

Here is a summary of the Runtime Upgrade 3000, including several key changes within the ecosystem:

  • Enable 6s Blocktime on Moonriver and Moonbeam
  • Increase the gas per block on Moonriver from 15M to 30M
  • Increase client authoring duration from 1.5s to 2s
  • Reduce target block fullness from 50% to 35%
  • Support for Eth Cancun including support for Solidity v0.8.25
  • Support for debug_traceCall RPC method
  • New precompile for pallet-xcm to improve XCM transactions in Moonbase Alpha
  • Several Bug Fixes

Scaling Moonriver and Moonbeam

Async Backing: Enable 6s Blocktime on Moonriver and Moonbeam
Audience: Core Developers, DappDevelopers

In RT3000, blocktime will be reduced by 50% with the enablement of 6s block times on Moonriver and Moonbeam. This is made possible by the adoption of Asynchronous Backing in the Moonbeam Runtime. The Moonbeam core developers have been hard at work for many months re-implementing async backing for Moonbeam’s consensus mechanism (nimbus) while the reference implementation for Polkadot was based on the Aura consensus mechanism.

Project teams are encouraged to test their applications and infrastructure in the Moonbase Alpha to ensure a smooth transition to the new 6-second block time.

Async Backing: Increase the Gas Per block on Moonriver from 15M to 30M
Audience: Core Developers, DappDevelopers

Parameters related to gas limits will be increased by a factor of 2 on Moonriver. Therefore, the EVM max gas limit is increased from 15M to 30 M. This again was made possible by the adoption of Asynchronous Backing.

When considering a simple transaction such as an ERC-20 transfer, the throughput of Moonriver will therefore increase by 4x (given the 2x max gas increase coupled with a reduction of the block times from 12 to 6 seconds).

Pending a successful deployment on Moonriver, gas parameters will be doubled again in a subsequent release, bringing the overall throughput increase to 8x. Moonbeam’s gas parameters will also be augmented in release RT3100 by a factor of 2 and again in RT3200 by a factor of 2.

Moonbase Alpha continues to run with a 60M gas limit.

Increase client authoring duration from 1.5s to 2s
Audience: Collators

The amount of time allotted for a collator to produce a block has been increased from 1.5s to 2s. This increase allows collators to increase the fullness of a block, improving the effectiveness of the dynamic fee mechanism during periods of higher activity.

Reduce target block fullness from 50% to 35%
Audience: Collators

In runtime RT2801, the target for block fullness (which guides the dynamic fee mechanism) was increased from 25% to 50% to help reduce gas fee spikes during periods of high activity. However, during periods of increased activity, it was found that the dynamic fee mechanism was not effective at increasing fees according to demand as the blocks were not reaching 50% fullness due to the fact that contrary to Ethereum, Moonbeam only has 75% of the block usable by user transactions, while 25% is reserved for “system” ops like XCM messages.

A 35% target should strike a balance between these two cases. Meanwhile, a longer term initiative is being scoped to optimize the mempool and increase efficiency.

Ethereum Compatibility

Support for Eth Cancun including support for Solidity v0.8.25
Audience: Dapp Developers

Runtime 3000 ensures all networks are compatible with the Cancun aspects of the Ethereum Dencun upgrade including support for solidity v0.8.25.

The following EIPs were implemented:

  • EIP-6780: SELFDESTRUCT only in same transaction
  • EIP-1153: Transient storage opcodes
  • EIP-5656: MCOPY - Memory copying instruction

Support for debug_traceCall RPC method
Audience: Dapp Developers

Runtime 3000 adds support for the debug_traceCall. This RPC call returns the number of possible tracing results by executing an eth call within the context of the given block execution. See the following documentation for more details.

X-Chain Capabilities

New precompile for pallet-xcm to Improve XCM transactions in Moonbase Alpha
Audience: Dapp Developers

Runtime 3000 introduces a new precompile based on Pallet-XCM as part of a shift away from the X-Tokens pallet for XCM asset transfers. The reason for this shift is because Pallet-XCM seems to have become the standard as it is updated along with newer versions of the Polkadot-SDK.

With this precompile comes the capability of transferring Reserve and Non-Reserve tokens in a single XCM message, through the transfer_assets() extrinsic.

For example, when transferring assets from Moonbeam to Hydration, this allows the sending of an asset (eg. HDX) whose reserve chain is not Moonbeam and GLMR whose reserve is Moonbeam in a single XCM message, improving both the developer and user experience.

Furthermore, as teams update to the newer version of the Pallet-XCM module, MRL will allow users to transfer MRL-supported assets from different Polkadot chains back to Ethereum paying with their native assets instead of GLMR, greatly boosting UX for MRL adoption.

This feature will be promoted to Moonriver and Moonbeam in a subsequent release following validation in Moonbase Alpha.

Other

Bug Fixes
Audience: Dapp Developers

  • Fixes a bug where the behaviour of eth_call with gasPrice was not consistent with Ethereum MainNet
  • We have fixed and improved two RPC endpoints to read historical data correctly.
3 Likes

MR57 is up for vote on Moonriver.

Vote using the official dapp or Polkassembly.

5 Likes