Upcoming Runtime Upgrades on Centrifuge 1019 & Altair 1027

Hello Community! :raised_hand:

We are ready to propose a runtime upgrade on Centrifuge and Altair with the following content:

  • Add EVM wallet support
  • Add block rewards
  • Upgrade to Polkadot v0.9.37
  • Other updates

Full Changelog : v0.10.26…v0.10.27


Centrifuge 0.10.19 - Release Notes Highlights

  • Add block rewards as proposed in CP6 (#1198, #1342)
    • Time-wise, rewarding is tightly coupled to sessions (6h in block time) in contrast to epochs (12h) from CP6. Thus, the proposed amounts are halved and rewarded in 6 hour periods (see technical spec for more details)
    • Collator rewards = 16.65 CFG per epoch / 2 sessions per epoch = 8.325 CFG = 8325 * MILLI_CFG
    • Total rewards = 20,096 CFG per epoch / 2 sessions per epoch = 10048 CFG
    • Treasury rewards = Total rewards - Collator rewards
  • Add EVM wallet support (#1252, #1349)
    • Until we enable full EVM support soon™️, the production runtimes filter all non-root calls to the EVM pallet and disallow creating contracts via the EVM RPC calls
  • Upgrade to Polkadot v0.9.37 (#1241)

Breaking changes

  • Loans: LoanId out from ActiveLoan (#1367)
  • Loans: Add unchecked amount support by (#1368)
  • Loans: Add multiple triggers for write-offs (#1314)
  • Loans: Adapt to Oracle valuation implementation (#1311)

Migrations

This upgrade includes multiple smaller migrations.

  • Block rewards: Sets up the required block rewards storage for our current collators. (#1342)
    • Without this migration, none of the collators would be eligible to claim rewards.
  • Block rewards base: Mints ExistentialDeposit worth 1 µCFG to the sovereign account of the BlockRewardsBase (#1342)
    • Without this migration, not all rewards can be claimed from the reward recipients.
  • Session: Clones the existing AuRa session keys for every collator to the new block_rewards entry of SessionKeys (#1342)
    • Without this migration, all of our collators would have to update their session keys manually. E.g., none of the collators would actually be recognized by the session transition inside pallet_block_rewards because the block_rewards entry of SessionKeys is unset.
  • Loans: Updates the WriteOffPolicy storage as a result of #1314
  • Asset registry: Sets the AssetMetadata.location of all the Tranche tokens registered in the AssetRegistry to None (#1340)
  • EVM: Sets our parachain ID 2031 as our EVM chain id (#1349)

Altair 0.10.27 - Release Notes Highlights

  • Adds automatic payout of collator block rewards with amounts approved in RFC from December 2022
    • Time-wise, rewarding is tightly coupled to sessions (6h in block time) in contrast to epochs (12h) from CP6. Thus, the proposed amounts are halved and rewarded in 6 hour periods (see technical spec for more details)
    • Collator rewards: 12000 AIR per month / 30.417 days per month / 4 sessions per day = 98.63 AIR = 98630 MILLI_AIR per session
    • Treasury rewards = 0
    • Total rewards = Collator rewards * MaxCollators
      • Every session, total_collator_rewards = reward_per_collator * collator_count is minted into the Treasury and the remainder total_rewards - total_collator_rewards is automatically dropped since the Beneficiary is set to empty ()
      • Thus, total_rewards only serves as a theoretical upper bound which just needs to ensure it suffices for collator rewards
  • Add EVM wallet support (#1252, #1349)
    • Until we enable full EVM support soon™️, the production runtimes filter all non-root calls to the EVM pallet and disallow creating contracts via the EVM RPC calls
  • Upgrade to Polkadot v0.9.37 (#1241)

Breaking changes

  • Loans: LoanId out from ActiveLoan (#1367)
  • Loans: Add unchecked amount support by (#1368)
  • Loans: Add multiple triggers for write-offs (#1314)
  • Loans: Adapt to Oracle valuation implementation (#1311)

Migrations

This upgrade includes multiple smaller migrations.

  • Block rewards: Sets up the required block rewards storage for our current collators. (#1342)
    • Without this migration, none of the collators would be eligible to claim rewards.
  • Block rewards base: Mints ExistentialDeposit worth 1 µCFG to the sovereign account of the BlockRewardsBase (#1342)
    • Without this migration, not all rewards can be claimed from the reward recipients.
  • Session: Clones the existing AuRa session keys for every collator to the new block_rewards entry of SessionKeys (#1342)
    • Without this migration, all of our collators would have to update their session keys manually. E.g., none of the collators would actually be recognized by the session transition inside pallet_block_rewards because the block_rewards entry of SessionKeys is unset.
  • Loans: Updates the WriteOffPolicy storage as a result of #1314
  • Asset registry: Sets the AssetMetadata.location of all the Tranche tokens registered in the AssetRegistry to None (#1340)
  • EVM: Sets our parachain ID 2088 as our EVM chain id (#1349)

COUNCIL MOTIONS

The Council will propose the Runtime Upgrade on Altair first and after on Centrifuge.

As soon as the Council motion has been initiated for the upgrade, we will keep you posted on with the governance process on the Forum.

3 Likes

Hi @WilliamFreude
Can you give please more information about the upcoming upgrade?

Altair 0.10.27 - Release Notes Highlights

  • Time-wise, rewarding is tightly coupled to sessions (6h in block time) in contrast to epochs (12h) from CP6. Thus, the proposed amounts are halved and rewarded in 6 hour periods (see technical spec for more details)

Can you provide some data about block rewards and minted amount on Altair?

  • Collator rewards: 12000 AIR per month / 30.417 days per month / 4 sessions per day = 98.63 AIR = 98630 MILLI_AIR per session

As i can see on Altair the Epoch duration will be 6 hours instead of 12 hours (on Centrifuge).

This is just for testing or the future plans to reduce epoch duration on Centrifuge and adapt Collators rewards on Centrifuge chain for 4 epochs/day?

Good day @ImdioR,

As i can see on Altair the Epoch duration will be 6 hours instead of 12 hours (on Centrifuge).

Both Altair as well as Centrifuge will denote block rewards every 6 hours which is exactly the length of a session on both chains. Sessions are time periods in which the authoring set (i.e. Collators) is fixed in the account ids of the candidates as well as the order of these, at least with AuRa consensus. Therefore, it only makes sense to award between sessions as the Collator set might change. I hope this clarifies the question.

Can you provide some data about block rewards and minted amount on Altair?

As stated in the release, every session 98.63 AIR is minted per collator. All of these rewards are collected in an unowned account address which is derived from the corresponding block rewards pallet identifier PalletId(*b"cfg/blrw").

Therefore, collators have to claim their rewards on a pull-based approach. The main reason for this design is scalability as the number of collators is completely irrelevant for the automatic rewarding. Since there is no expiration for claiming rewards, anyone can claim at anytime, even when you have not been a collator for years.

As the Altair treasury is already funded, no additional funds are minted. The block rewards pallet has another parameter called total_rewards. But for Altair, this just serves as an upper bound of the total amount of rewards minted every session. That’s why we propose to set it to reward_per_collator * MaxCandidates with the latter configured to a theoretical 100 at the moment.

Assume on some session s(i), the total_rewards was less than the current number of collators multiplied with the current collator reward, e.g. total_rewards < reward_per_collator * num_of_collators. Then all collators would equally receive less rewards.

1 Like