# Upcoming Runtime Upgrades on Centrifuge 1019 & Altair 1027

**URL:** <https://gov.centrifuge.io/t/upcoming-runtime-upgrades-on-centrifuge-1019-altair-1027/5481>\
**Category:** Announcements\
**Tags:** altair, runtime-upgrade, centrifuge, 2023\
**Created:** [June 1, 2023, 4:47pm UTC](https://gov.centrifuge.io/t/upcoming-runtime-upgrades-on-centrifuge-1019-altair-1027/5481 "2023-06-01T16:47:03Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![ImdioR](https://dub1.discourse-cdn.com/flex013/user_avatar/gov.centrifuge.io/imdior/32/1011_2.png) [@ImdioR](https://gov.centrifuge.io/u/ImdioR)\
**Post date:** [June 1, 2023, 4:47pm UTC](https://gov.centrifuge.io/t/upcoming-runtime-upgrades-on-centrifuge-1019-altair-1027/5481/1 "2023-06-01T16:47:03Z")

</div>

Hello Community! ✋

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](https://github.com/centrifuge/centrifuge-chain/compare/v0.10.26...v0.10.27)

* * *

## Centrifuge 0.10.19 - Release Notes Highlights

- Add block rewards as proposed in [CP6](https://github.com/centrifuge/cps/blob/main/cps/CP6.md) ([#1198](https://github.com/centrifuge/centrifuge-chain/pull/1198), [#1342](https://github.com/centrifuge/centrifuge-chain/pull/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](https://centrifuge.hackmd.io/doPRQ9u3S9iCfskmA-NOBw#Hooks) 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](https://github.com/centrifuge/centrifuge-chain/pull/1252), [#1349](https://github.com/centrifuge/centrifuge-chain/pull/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](https://github.com/centrifuge/centrifuge-chain/pull/1241))

### Breaking changes

- Loans: LoanId out from ActiveLoan ([#1367](https://github.com/centrifuge/centrifuge-chain/pull/1367))
- Loans: Add unchecked amount support by ([#1368](https://github.com/centrifuge/centrifuge-chain/pull/1368))
- Loans: Add multiple triggers for write-offs ([#1314](https://github.com/centrifuge/centrifuge-chain/pull/1314))
- Loans: Adapt to Oracle valuation implementation ([#1311](https://github.com/centrifuge/centrifuge-chain/pull/1311))

### Migrations

This upgrade includes multiple smaller migrations.

- Block rewards: Sets up the required block rewards storage for our current collators. ([#1342](https://github.com/centrifuge/centrifuge-chain/pull/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](https://github.com/centrifuge/centrifuge-chain/pull/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](https://github.com/centrifuge/centrifuge-chain/pull/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](https://github.com/centrifuge/centrifuge-chain/pull/1314)
- Asset registry: Sets the `AssetMetadata.location` of all the Tranche tokens registered in the `AssetRegistry` to `None` ([#1340](https://github.com/centrifuge/centrifuge-chain/pull/1340))
- EVM: Sets our parachain ID `2031` as our EVM chain id ([#1349](https://github.com/centrifuge/centrifuge-chain/pull/1349))

* * *

## Altair 0.10.27 - Release Notes Highlights

- Adds automatic payout of collator block rewards with amounts approved in [RFC from December 2022](https://gov.centrifuge.io/t/adjustment-of-altair-collator-rewards/4844)
  - 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](https://centrifuge.hackmd.io/doPRQ9u3S9iCfskmA-NOBw#Hooks) 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](https://github.com/centrifuge/centrifuge-chain/pull/1252), [#1349](https://github.com/centrifuge/centrifuge-chain/pull/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](https://github.com/centrifuge/centrifuge-chain/pull/1241))

### Breaking changes

- Loans: LoanId out from ActiveLoan ([#1367](https://github.com/centrifuge/centrifuge-chain/pull/1367))
- Loans: Add unchecked amount support by ([#1368](https://github.com/centrifuge/centrifuge-chain/pull/1368))
- Loans: Add multiple triggers for write-offs ([#1314](https://github.com/centrifuge/centrifuge-chain/pull/1314))
- Loans: Adapt to Oracle valuation implementation ([#1311](https://github.com/centrifuge/centrifuge-chain/pull/1311))

### Migrations

This upgrade includes multiple smaller migrations.

- Block rewards: Sets up the required block rewards storage for our current collators. ([#1342](https://github.com/centrifuge/centrifuge-chain/pull/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](https://github.com/centrifuge/centrifuge-chain/pull/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](https://github.com/centrifuge/centrifuge-chain/pull/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](https://github.com/centrifuge/centrifuge-chain/pull/1314)
- Asset registry: Sets the `AssetMetadata.location` of all the Tranche tokens registered in the `AssetRegistry` to `None` ([#1340](https://github.com/centrifuge/centrifuge-chain/pull/1340))
- EVM: Sets our parachain ID `2088` as our EVM chain id ([#1349](https://github.com/centrifuge/centrifuge-chain/pull/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.

---

<div class="post-metadata">

**Author:** ![ImdioR](https://dub1.discourse-cdn.com/flex013/user_avatar/gov.centrifuge.io/imdior/32/1011_2.png) [@ImdioR](https://gov.centrifuge.io/u/ImdioR)\
**Post date:** [June 2, 2023, 12:41pm UTC](https://gov.centrifuge.io/t/upcoming-runtime-upgrades-on-centrifuge-1019-altair-1027/5481/2 "2023-06-02T12:41:57Z")

</div>

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](https://centrifuge.hackmd.io/doPRQ9u3S9iCfskmA-NOBw#Hooks) 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?

---

<div class="post-metadata">

**Author:** ![WilliamFreude](https://dub1.discourse-cdn.com/flex013/user_avatar/gov.centrifuge.io/williamfreude/32/2209_2.png) [@WilliamFreude](https://gov.centrifuge.io/u/WilliamFreude)\
**Post date:** [June 2, 2023, 1:50pm UTC](https://gov.centrifuge.io/t/upcoming-runtime-upgrades-on-centrifuge-1019-altair-1027/5481/3 "2023-06-02T13:50:43Z")

</div>

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.
