⚠ Breaking changes
- Add the pallet
Randomness
which provides random generators. It requires the collators to provide a VRF output using theirrand
(new) key. See the client v0.25.0 release note for details - Using a gas price too low is now returning
GasPriceTooLow
error instead ofGasLimitTooLow
in the Substrate block side. - On-chain receipt root is now computed correctly
Parachain Staking Locks
In order to allow users to participate more in the democracy, we are allowing staked tokens to be used to vote:
parachain-staking
now uses LockableCurrency
instead of ReservableCurrency
. Bonds will now use a lock with id stkngdel
for delegators and stkngcol
for collators rather than a reserve on their funds.
Querying free_balance
will behave differently for stakers. Previously this amount would exclude bonds, now it will include them.It is likely that this will reflect in cases where it did not before, such as Ethereum wallets like MetaMask.
Users will still be unable to spend these bonded funds (transfer, pay for fees, etc.) while they are locked, but they will be able to do other operations which require a lock (e.g. they can vote with their staked funds).
Migration Strategy: For existing bonds, there is a two-pronged migration strategy to replace reserves with locks:
-
One is explicit (see the new extrinsics
hotfix_migrate_delegators_from_reserve_to_locks
andhotfix_migrate_collators_from_reserve_to_locks
), which can be used by either PureStake to migrate all bonds or by a user to migrate their own bond. -
The other is JIT (just-in-time), which will migrate any account when a change to its bond occurs as needed.
It will not be necessary for any user, dapp, etc. to worry about migration except for a user who does not want to wait for bulk-migration and wants to migrate themselves.
We expect to migrate all accounts using these "hotfix extrinsics" immediately following a runtime upgrade, and this should be quick (10s to 100s of blocks).
Transaction fees
- The base weight for extrinsics have been lower, reducing slightly the fee of all substrate transactions.
- Ethereum transaction Weight is now checked pre-dispatch. This implies that
gas_limit
must not exceed the amount of weight left in the block (this was not the case before). The maximum gas_limit is now matching the originally intended limit for transaction of 75% (it was previously 100%). The 25% are kept for the block overhead (signature, relay information, randomness....) - For EIP-1559 transactions, the minimum caller balance required to validate the transaction is now lower in some cases (based on
effective_gas_price
instead ofmax_fee_per_gas
).
Runtimes
Moonbase
✨ spec_version : 1700
🏋 size : 1281877
#️⃣ sha256 : 0xff3b2d41a2607e8677e80812b34c0a4a2abb1045e9cb87b8830a44633c147cdb
#️⃣ blake2-256 : 0x78a006a44e7cc5d7873f134b069562d562783c8b6e3218ab221d1a154ab4a6cc
🗳️ proposal (authorizeUpgrade) : 0xbca72221d89f9d859bdb59cbe00593db9b717dcd99163f813c2263f3366a02f3
Moonriver
✨ spec_version : 1700
🏋 size : 1214292
#️⃣ sha256 : 0x17843c5d12c2cf2a43f4517eefc111c029bd9931d00a24c435e7ce6fded520c8
#️⃣ blake2-256 : 0x378fa30b0819822f7ffa56621f5332a9ad1f627d1069315f7602823a58acf32e
🗳️ proposal (authorizeUpgrade) : 0xe4b749d35c9e4de83f460858aef7071efa91e53d080bf43dbcdfb0c0acc550cd
Moonbeam
✨ spec_version : 1700
🏋 size : 1214961
#️⃣ sha256 : 0x7c4eed21108aa8e659dd56c7d4a6b9cbd1183a14dea9ff76f47ce9ce3246289d
#️⃣ blake2-256 : 0x43b7d64b740df65d2306ff3eddde8fb156df4bd47b6c125516434d496f1f7f2e
🗳️ proposal (authorizeUpgrade) : 0x7f795a55a5161f2174920c48610946ad0edebbf21a52bb2f34086b4324cd92fa
Build information
WASM runtime built using rustc 1.62.0 (a8314ef7d 2022-06-27)
Changes
- Add nimbus kick off authorship validation (#1569, #1516)
- Add nesting limit to Batch precompile (#1595)
- Add storage entry RegisteredOrbiter & events OrbiterRegistered & OrbiterUnRegistered (#1593)
- Add fix to cleanup state on collator exit. Add hotfix extrinsic (#1541)
- Harmonize crate names (#1580)
- Brings LengthToFee changes to Moonriver and Moonbeam runtimes (#1579)
- Refactor PrecompileSet util for safer precompiles (#1601, #1642)
- Add IdentityJudgement Proxy type (#1597)
- Ensure dev accounts Charleth, Dorothy and Faith have funds at genesis (#1634)
- Add Call Permit precompile (Moonbase Only) (#1617, #1648)
- Upgrade dependencies to polkadot v0.9.23 (#1622, #1658)
- Fix precompile staking interface (#1620)
- Add support for Ethereum Call from Xcm (Moonbase Only) (#1641, #1674, #1567)
- Replace staking reserves with locks (#1604)
- Disable anonymous proxy (#1680)
- Fix Ethereum receipt root (#1678)
- Add Randomness pallet with relay BABE and local VRF (Moonbase Only) (#1376)
Dependency changes
Moonbeam: runtime-1606...runtime-1700
Substrate: paritytech/substrate@563f482...76522d7
Polkadot: paritytech/polkadot@568169b...purestake:2fd38f09
Cumulus: paritytech/cumulus@4bbedb3...purestake:a8637639
Frontier: PureStake/frontier@ca027df...896f99a