Centrifuge 1019 & Altair 1027 Release
Centrifuge 0.10.19 - Release Notes Highlights
Upgrade Priority: ❗️ High ❗️Collator Nodes should upgrade as soon as possible after the runtime upgrade has been enacted. Upgrading beforehand can lead to block production issues since EVM functionality was added.
- 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 collator per epoch / 2 sessions per epoch = 8.325 CFG = 8325 * MILLI_CFG
per collator - 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
worth1 µCFG
to the sovereign account of theBlockRewardsBase
(#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 newblock_rewards
entry ofSessionKeys
(#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 theblock_rewards
entry ofSessionKeys
is unset.
- 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
- Loans: Updates the
WriteOffPolicy
storage as a result of #1314 - Asset registry: Sets the
AssetMetadata.location
of all the Tranche tokens registered in theAssetRegistry
toNone
(#1340) - EVM: Sets our parachain ID
2031
as our EVM chain id (#1349)
WASM
✨ Your Substrate WASM Runtime is ready! ✨
Summary generated with srtool v0.9.25 using the docker image paritytech/srtool:1.66.1:
Package : centrifuge-runtime v0.10.19
GIT commit : eb6d366116ac705422c9d61415e581aa37c322a4
GIT tag :
GIT branch : main
Rustc : rustc 1.66.1 (90743e729 2023-01-10)
Time : 2023-05-30T08:16:55Z
== Compressed
Version : centrifuge-1019 (centrifuge-1.tx2.au1)
Metadata : V14
Size : 1.36 MB (1430586 bytes)
Compression : 79.72%
setCode : 0xd5feca04406545347f36ca52f41916fa455e14c2d9fbf499766df33eb97e0c32
authorizeUpgrade : 0x6a7f0a6351ed02132a856af45914be7b8f1f76f1b5f87b6a8dfe7e8a0b4edc46
IPFS : QmZvH6iVPXwDUXPZzTs5xVLo9xap4GBJAXhCoD5o6s6kpd
BLAKE2_256 : 0x43afa9a6423b48c48ed093aee601a10d8e6c4ed5452e30f90e0a76ba46eb654a
Wasm : runtime/centrifuge/target/srtool/release/wbuild/centrifuge-runtime/centrifuge_runtime.compact.compressed.wasm
Altair 0.10.27 - Release Notes Highlights
Upgrade Priority: ❗️ High ❗️Collator Nodes should upgrade as soon as possible after the runtime upgrade has been enacted. Upgrading beforehand can lead to block production issues since EVM functionality was added.
-
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 collator per month / 30.417 days per month / 4 sessions per day = 98.63 AIR = 98630 MILLI_AIR per session
per collator - 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 remaindertotal_rewards - total_collator_rewards
is automatically dropped since theBeneficiary
is set to empty()
- Thus,
total_rewards
only serves as a theoretical upper bound which just needs to ensure it suffices for collator rewards
- Every session,
-
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
worth1 µCFG
to the sovereign account of theBlockRewardsBase
(#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 newblock_rewards
entry ofSessionKeys
(#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 theblock_rewards
entry ofSessionKeys
is unset.
- 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
- Loans: Updates the
WriteOffPolicy
storage as a result of #1314 - Asset registry: Sets the
AssetMetadata.location
of all the Tranche tokens registered in theAssetRegistry
toNone
(#1340) - EVM: Sets our parachain ID
2088
as our EVM chain id (#1349)
WASM
✨ Your Substrate WASM Runtime is ready! ✨
Summary generated with srtool v0.9.25 using the docker image paritytech/srtool:1.66.1:
Package : altair-runtime v0.10.27
GIT commit : eb6d366116ac705422c9d61415e581aa37c322a4
GIT tag :
GIT branch : main
Rustc : rustc 1.66.1 (90743e729 2023-01-10)
Time : 2023-05-30T08:15:39Z
== Compressed
Version : altair-1027 (altair-1.tx2.au1)
Metadata : V14
Size : 1.30 MB (1367870 bytes)
Compression : 79.73%
setCode : 0x8881badbe23e8c65eaed1967850d85f7e43ecf919a1a23ab3a465d42e7d398ee
authorizeUpgrade : 0x39944b478cf9bc9a648301d457529522b6ccf98942f35a452ee12e4db377be1a
IPFS : QmeRWWGwKvXkKKaqnB39GYdnUifqB7UUXFxiDpU4YYX7uS
BLAKE2_256 : 0x34d2701c6472d4d3f525d7d8b8ed1538d55daf8e273b5b609f63957134036343
Wasm : runtime/altair/target/srtool/release/wbuild/altair-runtime/altair_runtime.compact.compressed.wasm
Exhaustive list of all changes
* Add benchmark CI job for fast checks by @lemunozm in https://github.com//pull/1300 * Polkadot v0.9.37 by @NunoAlexandre in https://github.com//pull/1241 * Pallet transfers allowlist by @thea-leake in https://github.com//pull/1251 * fix: update rococo-local to Polkadot v0.9.37 by @wischli in https://github.com//pull/1313 * Feature/evm by @branan in https://github.com//pull/1252 * ci: disable docker nix build by @wischli in https://github.com//pull/1318 * Update docker workflow by @gpmayorga in https://github.com//pull/1320 * feat: impl block rewards by @wischli in https://github.com//pull/1198 * Loans: Add multiple triggers for write-off by @lemunozm in https://github.com//pull/1314 * Mock-builder with generic methods support by @lemunozm in https://github.com//pull/1321 * `pallet-collection-data-feed` implementation by @lemunozm in https://github.com//pull/1324 * fmt: wrap comments by @wischli in https://github.com//pull/1330 * feat: Connectors v2 message PoC by @wischli in https://github.com//pull/1292 * Mock-builder: add support for custom lifetimes by @lemunozm in https://github.com//pull/1335 * Add transfer allowlist benchmarks by @thea-leake in https://github.com//pull/1323 * connectors: Sort messages test by call index by @NunoAlexandre in https://github.com//pull/1345 * Mocks: Use mock test utility without dependencies by @lemunozm in https://github.com//pull/1346 * feat: add block rewards to altair and centrifuge runtimes by @wischli in https://github.com//pull/1342 * Restricted-tokens: Sync call indicies with orml by @mustermeiszer in https://github.com//pull/1348 * refactor: Drop tranche multiLocation by @NunoAlexandre in https://github.com//pull/1340 * CollectionDataFeed: Minor changes by @lemunozm in https://github.com//pull/1351 * Evm part 2 by @branan in https://github.com//pull/1349 * Oracle valuation implementation by @lemunozm in https://github.com//pull/1311 * mock-builder: Main documentation by @lemunozm in https://github.com//pull/1362 * Fix: Local runtime upgrade scripts by @wischli in https://github.com//pull/1308 * Data collector: renamed and instanciable by @lemunozm in https://github.com//pull/1366 * Loans: LoanId out from ActiveLoan by @lemunozm in https://github.com//pull/1367 * Loans: Add unchecked amount support by @lemunozm in https://github.com//pull/1368 * Loans: remove old pallet-loans by @lemunozm in https://github.com//pull/1373 * Loans: Support for benchmarking prices by @lemunozm in https://github.com//pull/1372 * Loans: Optimize portfolio computation removing a read DB access by @lemunozm in https://github.com//pull/1374Docker Image: centrifugeio/centrifuge-chain:main-20230530083447-eb6d3661
Full Changelog: v0.10.26...v0.10.27