[Runtime] RT3400 Schedule

We are planning to release Runtime 3400 in ALL network(s) following the schedule below:

Alphanet: 2024-12-08T23:00:00Z
Moonriver: 2025-01-05T23:00:00Z
Moonbeam: 2025-01-26T23:00:00Z

This runtime upgrade includes several breaking changes.
See the release note for more details: Releases · moonbeam-foundation/moonbeam · GitHub

7 Likes

Upgrade Recap

Here is a summary of the Runtime Upgrade 3400, including several key changes within the ecosystem. Runtime Upgrade consists of different feature sets depending on the network we’re updating. Below, you will find the detailed summary split between the destination environments:

  • [All networks]
    • Reduce min_gas_price by 4
    • Foreign assets on Moonriver and Moonbeam are now created as EVM native
    • Gas being overestimated for PoV computation is now being refunded at the end of the transaction.
  • [Moonbeam and Moonriver]
    • Foreign assets are now created as EVM native
  • [Client]
    • No-delay block time improving the responsiveness of wallet interactions
  • Several Bug Fixes

Polkadot Compatibility

Optimization of min_gas_price

Audience: Dapp Developers

The minimum gas price (also used for base fee in EIP1559) is now divided by 4 (#3058)

Following the increase of Gas (by 4x) due to 4x more CPU time allowed for block building, we are now decreasing the min_gas_price by 4x to match the same block minimum price.

Async Gas Evolution

This is a diagram explaining the differences of limits being applied by the async backing (without including the min gas divided by 4)

Runtime Previous Min Gas Price New Min Gas Price
Moonbeam 125 Gwei 31.25 Gwei
Moonriver 1,25 Gwei 0.3125 Gwei
Alphanet 0,125 Gwei 0.03125 Gwei

Ethereum Compatibility

Foreign assets are now created as EVM native

Audience: Dapp Developers

We are adding a new pallet “pallet-moonbeam-foreign-assets”.

The purpose of this new pallet is to manage XCM derivative assets on Moonbeam through EVM smart contracts.

Before, XCM derivatives assets (aka. “foreign assets”) were managed by the pallet asset-manager and the pallet substrate pallet “pallet-asset”. The long-term goal is to remove these two pallets from moon$ runtimes (asset-manager and pallet-asset), but before doing so, we will first have to migrate all existing foreign assets in production.

Replacing pallet-asset with evm smart contracts offers several advantages:

  1. Protocols that use foreign assets will be able to use the tools of the ethereum ecosystem (especially foundry)
  2. Some operations will b cheaper in gas (e.g. approve).
  3. It will reduce the runtime size (as two less pallets)
  4. It will reduce the complexity of the runtime code (enabling better maintenance).

Other

Several Bug Fixes

Audience: Dapp Developers

  • SELFDESTRUCT is now fully clearing the smart contract account (#3067)
  • Adds txHash field to the result of debug_traceBlock* RPC calls, and updates the result struct to match with the latest Geth specification (#3060)
4 Likes

Moonriver RT3400 went live on the 6th of January, 2025.

3 Likes

We are administering the hotfix upgrade RT3401 to fix the treasury flow.
Specifically, the runtime hotfix RT3401 would include the fix for the Treasury spending flow issue: change of the SpendOrigin on the Treasury pallet to allow either Root or more than half of the Treasury Council. The flow will work as described by Alberto but only with the spend_local extrinsic for the time being.

Moonbase Alpha has already been updated. The proposal for MR is live, and we plan to put a proposal for MB next week.

6 Likes

aye, lets definitely fix treasury spending :slight_smile:

1 Like

Hey all -

I wanted to shed some light on how the new treasury flow should be. We will update our docs for sure :smiley:

RT3400- Treasury Proposal Flow [Before]

The following is a summary of the actions a team/person has to go through to get funds from the on-chain treasury before RT3401:

  • Conduct a forum post to inform the community about their intentions and gather feedback. It was recommended that the Treasury Council publicly support the proposal via forum replies before moving to the next step.
  • Do an on-chain treasury spend proposal. This would require the user/team to lock some funds (a % of the requested amount).
  • The Treasury Council would vote to either approve/reject the spending proposal. If approved, the team would receive the funds, and the bond would be returned. If rejected, the team would lose the locked funds.

RT3401+ Treasury Proposal Flow [After]

Moonbeam uses the same Treasury pallet used by Polkadot. The Treasury module had some upstream modifications that led to changes in how the protocol handles treasury funds.

The following is a summary of the actions a team/person has to go through to get funds from the on-chain treasury after RT3401:

  • Conduct a forum post to inform the community about their intentions and gather feedback.
  • The Treasury Council will now create an on-chain action to vote directly on treasury spending via a Council proposal. Consequently, the team/person is not required to perform an on-chain action or lock funds.
  • If approved, the user/team will receive the funds from the treasury. If rejected, the user/team will not receive any funds, but they don’t have any locked funds to lose. Hence, the Treasury Council is not really required to put the on-chain vote if they publicly disclose that they do not favor it.

Note that to ensure the Treasury funds are not locked, RT3401 will use the call treasury.spendLocal. For RT3500 onwards, the call treasury.spend will be used, as the previous one will be deprecated as of May 2025.

Happy to answer any questions :slight_smile:

8 Likes

I really like that this upgrade with the new flow makes life easier.

It abstracts the submission away from the requester which prevents erroneous proposals with locked and slashed submission deposits.

Furthermore it eliminates the confusion in the treasury council with ID mismatches between treasury proposal and treasury council motion.

5 Likes

Excellent move making everything smoother AND safer. Full support

4 Likes

Moonbeam RT3400 has been enacted on 2025-01-27T23:00:00Z

3 Likes