Skip to content

Centrifuge 1019 & Altair 1027 Release

Compare
Choose a tag to compare
@wischli wischli released this 01 Jun 15:48
eb6d366

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 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)

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 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)

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/1374

Docker Image: centrifugeio/centrifuge-chain:main-20230530083447-eb6d3661

Full Changelog: v0.10.26...v0.10.27