Releases: centrifuge/centrifuge-chain
Centrifuge v0.14.0
Upgrade Priority:
There have not been any client changes since v0.11.3. Therefore, there is no need to update your node binary.
- Full Nodes: Low
- Collators: Low
Changes
- Feat: Liquidity Pools V2 MVP (#1909)
- Required to be in sync with Multichain EVM counterpart (repo)
- Simplifies and improves current LP flow
- Reorders and adds new messages
- Feat: Extend
Borrow
proxy to be able to (un-) charge pool fees and in-/decrease Loan debt (#1922 , #1944)
WASM Centrifuge
✨ Your Substrate WASM Runtime is ready! ✨
Summary generated with srtool:1.77.0-0.15.0:
Package : centrifuge-runtime v0.14.0
GIT commit : 7070f0f
GIT tag : v0.14.0
GIT branch : main
Rustc : 1.77.0 (aedd173a2 2024-03-17)
Time : 2024-08-01T19:53:08Z
== Compressed
🏋️ Runtime size: 2.087 MB (2,188,839 bytes) ⚠️ HEAVY
🗜 Compressed: Yes, 79.23%
✨ Reserved meta: OK - [6D, 65, 74, 61]
🎁 Metadata version: V14
🔥 Core version: centrifuge-1400 (centrifuge-1.tx2.au1)
🗳️ Blake2-256 hash: 0xe21debac5cbee657da9c1d0014b10c8b0eb84711dbeb8c1175ec32ac5790060b
📦 IPFS: https://www.ipfs.io/ipfs/QmWFtpkaX8yuFNh9tcXtC82BCKracWb6xjirLuFvMDxLVW
Exhaustive list of all changes
- Succeed when patch codecov fails by @gpmayorga in #1900
- Liquidity pools: Add UTs to for
update_token_price()
by @lemunozm in #1890 - Clean: remove some unused code from investment trait by @lemunozm in #1902
- Release v0.13.0 by @wischli in #1898
- Update dependencies by @lemunozm in #1904
- LP: Add Unitary Tests for update_member() by @lemunozm in #1905
- IT: Support
#ignore = reason
fortest_runtimes
macro by @lemunozm in #1908 - ci: disable checks for drafts by @wischli in #1913
- LP: Unitary testing for add_currency by @lemunozm in #1912
- LP: Unitary testing for all pending extrinsics by @lemunozm in #1916
- Feat: Adapt proxy settings by @mustermeiszer in #1922
- Small CI improvements by @gpmayorga in #1924
- LP: Unitary testing for inbound messages by @lemunozm in #1927
- Refactor: Transform
TrancheCurrency
type in a tuple by @lemunozm in #1926 - Feat: add passthrough to genesis by @mustermeiszer in #1888
- fix: add remark call to borrow proxy by @mustermeiszer in #1929
- development: Add Anchors V2 to PodOperation proxy by @cdamian in #1936
- Fix-wasm-upload by @gpmayorga in #1932
- WIP: Liquidity Pools v2 by @lemunozm in #1909
- Add increase & decrease debt to borrow proxy by @lemunozm in #1944
Docker Image: centrifugeio/centrifuge-chain:v0.14.0-rc2
Full Changelog: v0.13.0...v0.14.0
Centrifuge & Altair v0.13.0
Upgrade Priority:
There have not been any client changes since v0.11.3. Therefore, there is no need to update your node binary.
- Full Nodes: Low
- Collators: Low
Changes
- Fixes issue for Ledger App support: The necessary metadata hash check extension was not properly enabled in the WASM of earlier versions
WASM Centrifuge
✨ Your Substrate WASM Runtime is ready! ✨
Summary generated with srtool:1.77.0-0.15.0:
Package : centrifuge-runtime v0.13.0
GIT commit : 3e02647
GIT tag : v0.13.0
GIT branch : release-v0.13.0
Rustc : 1.77.0 (aedd173a2 2024-03-17)
Time : 2024-07-05T14:11:38Z
== Compressed
🏋️ Runtime size: 2.079 MB (2,180,479 bytes) ⚠️ HEAVY
🗜 Compressed: Yes, 79.16%
✨ Reserved meta: OK - [6D, 65, 74, 61]
🎁 Metadata version: V14
🔥 Core version: centrifuge-1300 (centrifuge-1.tx2.au1)
🗳️ Blake2-256 hash: 0x0e1dbece5c110f7b1b389a76385749a413e2916630b75f6db519b1fa57eca71b
📦 IPFS: https://www.ipfs.io/ipfs/QmbXAvdtNgpABF5ZkQLwxx2LV2jvDqwurJFJydZ3rz6aBv
WASM Altair
✨ Your Substrate WASM Runtime is ready! ✨
Summary generated with srtool:1.77.0-0.15.0:
Package : altair-runtime v0.13.0
GIT commit : 3e02647
GIT tag : v0.13.0
GIT branch : release-v0.13.0
Rustc : 1.77.0 (aedd173a2 2024-03-17)
Time : 2024-07-05T14:23:52Z
== Compressed
🏋️ Runtime size: 2.122 MB (2,225,017 bytes) ⚠️ HEAVY
🗜 Compressed: Yes, 79.31%
✨ Reserved meta: OK - [6D, 65, 74, 61]
🎁 Metadata version: V14
🔥 Core version: altair-1300 (altair-1.tx2.au1)
🗳️ Blake2-256 hash: 0x177e577c2315ce48c0efecaadf3969d30aece4a36b55f6d080d707c057bf1765
🗳️ authorizeUpgrade hash: 0xa8459a1869c47769fe10e56cab253b5c1c0312ef73cbd0acb328884b6de80dee
📦 IPFS: https://www.ipfs.io/ipfs/QmVcVpz63o2pYCQmr9gB2pPYX3CT8CKZVcpP4TspRYUbUo
Exhaustive list of all changes
- Fix RustDocs & AlwaysPass codecov patch check by @gpmayorga in #1870
- LP Message with custom data format for serialization/deserialization by @lemunozm in #1889
Docker Image: centrifugeio/centrifuge-chain:v0.13.0
Full Changelog: v0.12.0...v0.13.0
Altair v0.12.0
Upgrade Priority:
- Full Nodes: High
- Collators: Medium
Changes
- Adds OpenGov for Development and Altair Runtimes which coexists with current Gov1 structure
- Altair config based on https://gov.centrifuge.io/t/rfc-altair-migration-to-opengov/6011
- Altair parametrization based on https://docs.google.com/document/d/1asoDHtIT3bhSnwfQir3SZ7NN-5D1i02s01clh9lEd0k
- Applied all changes from v0.11.3 to Altair runtime
- Includes
CheckMetadataHash
signed extension which enables generic Polkadot Ledger support (#1865)
- Includes
WASM
✨ Your Substrate WASM Runtime is ready! ✨
Summary generated with srtool:1.75.0-0.14.0:
Package : altair-runtime v0.12.0
GIT commit : 753a8b5
GIT tag : v0.12.0
GIT branch : altair/release-v0.12.0
Rustc : 1.75.0 (82e1608df 2023-12-21)
Time : 2024-07-02T08:20:44Z
== Compressed
🏋️ Runtime size: 2.154 MB (2,258,347 bytes) ⚠️ HEAVY
🗜 Compressed: Yes, 79.24%
✨ Reserved meta: OK - [6D, 65, 74, 61]
🎁 Metadata version: V14
🔥 Core version: altair-1200 (altair-1.tx2.au1)
🗳️ Blake2-256 hash: 0x9773c02bc0960c354662d4a0eeed868a4ef78a380f5147aa51b91258b88bfc7c
📦 IPFS: https://www.ipfs.io/ipfs/QmVCEbr6GWGgWiA3zGL8bhHT6FpPAGruuFx9pmcymK4V8U
Exhaustive list of all changes
Docker Image: centrifugeio/centrifuge-chain:v0.12.0
Full Changelog: v0.11.3...v0.12.0
Centrifuge v0.11.3
Upgrade Priority:
- Full Nodes: High
- Collators: Medium
Changes
Substrate
- Enable
CheckMetadataHash
signed extension which enables generic Polkadot Ledger support (#1865) - Upgrade from Polkadot v0.9.43 to Polkadot v1.7.2 (#1756, #1833)
- Prepares for async backing (disabled for now)
- Introduces
Runtime{Hold, Freeze}Reason
- Updates to XCMv4
Pools
- Fix: Ratio calculation (#1856)
- Feat: Allow to call runtime API either with latest prices or if outdated using estimates with linear accrual based on latest settlement price (#1791)
Loans
- Fix: Make maturity date optional (#1843)
- Fix: Linear accrual (#1812)
- Fix: Transfer debt event (#1837)
- Feat: Cashflows (#1867)
- Feat: Decrease debt (#1857)
- Liquidity Pools: Inter domain tranche token transfer (#1860)
PoolFees
Proxies
- Feat: Add
Borrow
withPodOperation
priviliges (#1854)
Breaking Changes
- Deprecation of all RPC endpoints except for
ethereum
andanchor
: Please use the identical runtime API instead (#1844) - Loans: Change linear pricing behaviour to be effictive iff enabled for the loan and the corresponding oracle uses an oracle key plus there is no valid oracle using the latest settlement price (#1812)
- Pools: Restrict epoch closing to Liquidity- and Pool-Admins (#1812)
- Oracles: Add new enum variant
PoolLoanId
toOracleKey
(#1841) - Transfer AllowList: Store XCM Locations explicitly instead of hashed version (#1853)
- Node CLI: Replace
export-genesis-state
withexport-genesis-head
(#1844)
WASM
✨ Your Substrate WASM Runtime is ready! ✨
Summary generated with srtool:1.75.0-0.14.0:
Package : centrifuge-runtime v0.11.3
GIT commit : dd9ff87
GIT tag : v0.11.3
GIT branch : release-v0.11.1
Rustc : 1.75.0 (82e1608df 2023-12-21)
Time : 2024-06-27T16:24:10Z
== Compressed
🏋️ Runtime size: 2.109 MB (2,211,622 bytes) ⚠️ HEAVY
🗜 Compressed: Yes, 79.17%
✨ Reserved meta: OK - [6D, 65, 74, 61]
🎁 Metadata version: V14
🔥 Core version: centrifuge-1103 (centrifuge-1.tx2.au1)
🗳️ Blake2-256 hash: 0xda20faa8890934dcbe05af50dd8ee6b13dfd92e1b3adb9d988e7f948bc8b4eab
📦 IPFS: https://www.ipfs.io/ipfs/QmdZPdQ562sempcibMyVFMKgGUPnbC3s3R1sk9JfEhCaAV
Exhaustive list of all changes
- add code coverage to pipeline by @gpmayorga in #1745
- Oracles: Correct feeder encoding by @lemunozm in #1793
- Remove old migrations and bump up version for centrifuge runtime by @lemunozm in #1794
- fix: Enable Runtime-Apis to update nav with estimates by @mustermeiszer in #1791
- chore: bumb dev versions by @mustermeiszer in #1795
- Set correct onchain versions by @lemunozm in #1796
- fix: chain spec not deterministic by @wischli in #1807
- Polkadot v1.1.0 by @lemunozm in #1756
- Fix: mostly non failable runtime-api by @mustermeiszer in #1810
- fix: essence tranche token metadata by @wischli in #1798
- Remove custom implementation for
MaxEncodingLen
by @lemunozm in #1800 - Integration tests. Move EVM tests to the generic framework by @lemunozm in #1801
- BlockRewards: Fix how it handle ED for Staking currency. by @lemunozm in #1802
- Runtimes: use last benchmark structure, remove unused disable-api feature by @lemunozm in #1813
- Fix: zero amount order bug by @lemunozm in #1816
- fix: looser
is_local_representation
by @wischli in #1815 - IT: rewards to generic framework. Remove previous non-generic IT utilities by @lemunozm in #1805
- fix: undecodable
ForeignInvestmentInfo
on Demo by @wischli in #1819 - fix: pool fee event dispatch order by @wischli in #1809
- fix: outdated storage versions on Demo by @wischli in #1820
- Integration test: making it cooler! by @lemunozm in #1821
- Upgrade gh actions by @gpmayorga in #1814
- Remove crowdloan pallets by @lemunozm in #1834
- Upgrade-gh-actions by @gpmayorga in #1832
- Adjust codecov settings by @gpmayorga in #1830
- Fix docker release by @gpmayorga in #1831
- Fix: transfer debt event with updated repaid amount by @lemunozm in #1837
- Feat: Add new oracle key by @mustermeiszer in #1841
- Fix/linear pricing by @mustermeiszer in #1812
- Fix docs deployment by @gpmayorga in #1839
- IT: Add test_runtimes macro to liquidity_pools tests by @lemunozm in #1845
- Feat: No maturity date by @mustermeiszer in #1843
- Loans: use mocked timer by @lemunozm in #1848
- Borrow proxy with PodOperation behavior by @lemunozm in #1854
- fix: allow root to propose and remove fees by @wischli in #1855
- Feat: decrease debt by @mustermeiszer in #1857
- Fix:
pallet-pool-system
- Ratio Calculation by @mustermeiszer in #1856 - Feat: Liquidity pools inter domain tranche token transfer by @mustermeiszer in #1860
- Loans: cashflows simple version by @lemunozm in #1867
- Upgrade to Polkadot-v1.7.2 by @lemunozm in #1833
- Release v0.11.0 by @wischli in #1868
- Feat: LP integration tests by @mustermeiszer in #1720
- Fix FMT linter by @gpmayorga in #1871
- Fix: LP integration tests compilation issue by @lemunozm in #1876
- Chore: Make min epoch time in dev smaller by @mustermeiszer in #1872
- pallets: Add Anchors V2 pallet by @cdamian in #1878
- IT: Simplify liquidity_pool test module by @lemunozm in #1869
- Liquidity-pools: Add unitary tests by @lemunozm in #1879
- Script to upgrade a Centrifuge parachain live by @gpmayorga in #1884
- IT: more support for router tests by @lemunozm in #1885
- IT: Panic if event is not found in the expected blocks by @lemunozm in #1880
- IT: clean generic folder by @lemunozm in #1887
- feat:
CheckMetadataHash
extension by @wischli in #1865
Docker Image: centrifugeio/centrifuge-chain:v0.11.3
Full Changelog: v0.10.39...v0.11.3
Client v0.10.39: Centrifuge 1028
Upgrade Priority:
- Full Nodes: Low - No need to upgrade if you are already on Client v0.10.36+
- Collators: Low - No need to upgrade if you are already on Client v0.10.36+
Changes
- Fix: Unblock
update_collection
call by reducing PoV requirements - Fix: Registers active loans of Anemoy Pool in OracleCollection pallet
WASM
✨ Your Substrate WASM Runtime is ready! ✨
Summary generated with srtool:1.75.0-0.14.0:
Package : centrifuge-runtime v0.10.28
GIT commit : 1a9e385
GIT tag : v0.10.39
GIT branch : main
Rustc : 1.75.0 (82e1608df 2023-12-21)
Time : 2024-03-29T08:13:40
== Compressed
🏋️ Runtime size: 1.806 MB (1,893,411 bytes)
🗜 Compressed: Yes, 78.52%
✨ Reserved meta: OK - [6D, 65, 74, 61]
🎁 Metadata version: V14
🔥 Core version: centrifuge-1028 (centrifuge-1.tx2.au1)
🗳️ Blake2-256 hash: 0x944d685968ef5ab95688af096c758e5c7141ad1d259c32ce4878dfff0d6bbaa6
📦 IPFS: https://www.ipfs.io/ipfs/QmZDn6puL4JaN93LgYt9nvY1zjMY4tjzsDMRkfGQSHo9vx
Exhaustive list of all changes
- Add try-runtime to ci pipeline by @gpmayorga in #1735
- Rewards: move rewards api tests to generic testing by @lemunozm in #1778
Docker Image: docker pull centrifugeio/centrifuge-chain:main-1a9e385-2024-03-29
Full Changelog: v0.10.38...v0.10.39
Client v0.10.38: Centrifuge 1027
Upgrade Priority:
- Full Nodes: Low - No need to upgrade if you are already on Client v0.10.36+
- Collators: Low - No need to upgrade if you are already on Client v0.10.36+
Changes
- Fix: Enable placing Orderbook orders for local assets
CurrencyId::LocalAsset(_)
- Permit
ProxyType::Borrow
to callTokenMux::deposit
,TokenMux::burn
,TokenMux::match_swap
WASM
✨ Your Substrate WASM Runtime is ready! ✨
Summary generated with srtool:1.75.0-0.14.0:
Package : centrifuge-runtime v0.10.27
GIT commit : 6f0dd0a
GIT tag : v0.10.38
GIT branch : main
Rustc : 1.75.0 (82e1608df 2023-12-21)
Time : 2024-03-18T16:49:36Z
== Compressed
🏋️ Runtime size: 1.810 MB (1,898,009 bytes)
🗜 Compressed: Yes, 78.51%
✨ Reserved meta: OK - [6D, 65, 74, 61]
🎁 Metadata version: V14
🔥 Core version: centrifuge-1027 (centrifuge-1.tx2.au1)
🗳️ system.setCode hash: 0x46e69bde68b8c3106fdca80842ac2592b8959ec1d0ac3d70acb665460e7f0434
🗳️ Blake2-256 hash: 0xb69411ac0efe924477a5d058451dfc8444c669106cd2763c220dc4b622fb88bc
📦 IPFS: https://www.ipfs.io/ipfs/QmRwRBqPHaARPqQKswsroJoYsK8rrCW7nZ2mN2PNm9B9Rb
Exhaustive list of all changes
- docs: Update pallet docs by @cdamian in #1767
- docs: update developing by @wischli in #1769
- Post RU: Remove old migrations and bump up versions by @lemunozm in #1772
- Fix: order book working with local currencies by @lemunozm in #1773
- fix: permit token mux calls for
ProxyType::Borrow
by @wischli in #1774
Docker Image: docker pull centrifugeio/centrifuge-chain:main-6f0dd0a-2024-03-18
Full Changelog: v0.10.37...v0.10.38
Client v0.10.37: Centrifuge 1026
Upgrade Priority:
- Full Nodes: Low - No need to upgrade if you are already on Client v0.10.36
- Collators: Low - No need to upgrade if you are already on Client v0.10.36
Changes
- Add
SwapCreated
,SwapFulfilled
andSwapCancelled
to ForeignInvestments (#1764)
WASM
✨ Your Substrate WASM Runtime is ready! ✨
Summary generated with srtool:1.75.0-0.14.0:
Package : centrifuge-runtime v0.10.26
GIT commit : 6fb8496
GIT tag : v0.10.37
GIT branch : main
Rustc : 1.75.0 (82e1608df 2023-12-21)
Time : 2024-03-12T15:36:55Z
== Compressed
🏋️ Runtime size: 1.825 MB (1,913,986 bytes)
🗜 Compressed: Yes, 78.41%
✨ Reserved meta: OK - [6D, 65, 74, 61]
🎁 Metadata version: V14
🔥 Core version: centrifuge-1026 (centrifuge-1.tx2.au1)
🗳️ system.setCode hash: 0x1afffb10cbdbe7e132b81d51c21e8dc803cf606f8a48e0974a2fbd13948ce01d
🗳️ Blake2-256 hash: 0x662ab43f34e78f0f722ce0391f5fb3246e76db88ee99c36d89bb89333e004e9e
📦 IPFS: https://www.ipfs.io/ipfs/Qmd16Zi95bTw3UMQif7mWs9Cobs4MraRwDgD2A64L39w5A
Exhaustive list of all changes
Docker Image: docker pull centrifugeio/centrifuge-chain:main-6fb8496-2024-03-12
Full Changelog: v0.10.36...v0.10.37
Client v0.10.36: Centrifuge 1025 & Altair 1034
Centrifuge 1025 - Release Notes Highlights
This release is packed with new features and a few breaking changes. Most notably, the definition of the NAV has changed. So far, the NAV represented the so called assets under management (abbreviated by AUM) which are represented by the evaluation of existing loans:
- NAV := NAV(Loans)
With the introduction of Pool Fees, the definition of the NAV needs to be extended due to the reducing effect which the sum of pending pool fees have on the pool valuation, i.e. they represent the negative part. Please note that the Pool Fees NAV does not include disbursement amounts which can be paid during epoch execution because these already reduce the reserve.
+ NAV := min(PoolReserve + NAV(Loans) - NAV(PoolFees), 0)
Please replace any existing reserve and NAV query with the new runtime API added in #1703:
let { navAum, navFees, reserve, total: navTotal } =
await api.call.poolsApi.nav(poolId)
Please note that runtime API metadata is not included in the v14 metadata such that you need to add type and runtime API call decorations manually.
Features and breaking changes
- Add Pool Fees (#1633, #1706, #1718)
- Replace external oracle implementation with internal one called Oracles V2 (#1629, #1661, #1670, #1671, #1672)
- Loans
- Orderbook
- Liquidity Pools:
- Add remarks pallet: Enables attaching remarks to transactions (#1659)
- [BREAKING] Block Rewards: Replace absolute treasury inflation with relative one (#1740)
- Transfer Allowlist:
- Add ERC-20 precompile for CFG balance to enable CFG bridging with Axelar ITS (#1731)
Runtime API
We have both extended existing as well as added new runtime API:
- Pool Fees: Emulate epoch closing and pool fees update (#1728)
- Pool Nav: Emulate epoch closing and return Loans NAV (assets under management), Pool Fees NAV, altered reserve as well as total NAV (#1703)
- Loans API: Emulate portfolio update with custom prices (#1748)
WASM
✨ Your Substrate WASM Runtime is ready! ✨
Summary generated with srtool:1.75.0-0.14.0:
Package : centrifuge-runtime v0.10.25
GIT commit : 544ce02
GIT tag : v0.10.36
GIT branch : main
Rustc : 1.75.0 (82e1608df 2023-12-21)
Time : 2024-03-07T08:33:20Z
== Compressed
🏋️ Runtime size: 1.819 MB (1,906,886 bytes)
🗜 Compressed: Yes, 78.50%
✨ Reserved meta: OK - [6D, 65, 74, 61]
🎁 Metadata version: V14
🔥 Core version: centrifuge-1025 (centrifuge-1.tx2.au1)
🗳️ system.setCode hash: 0x210cdf71ee5c5fbea3dc5090c596a992b148030474121b481a856433eb5720f3
🗳️ Blake2-256 hash: 0xb7f74401c52ee8634ad28fe91e8a6b1debb802d4d2058fdda184a6f2746477f6
📦 IPFS: https://www.ipfs.io/ipfs/QmS3GDmbGKvcmSd7ca1AN9B34BW3DuDEDQ1iSLXgkjktpG
Altair 1034 - Release Notes Highlights
The Altair system has not received an update for an extended period, and we apologize for any inconvenience this may have caused. This recent update aligns Altair's runtime environment with that of the Centrifuge runtime, ensuring that all modifications mentioned previously, as well as those introduced in subsequent releases, are now incorporated into Altair:
- Centrifuge Client v0.10.35 & Centrifuge 1024
- Centrifuge Client v0.10.34 & Centrifuge 1023
- Centrifuge Client v0.10.31 & Centrifuge 1020
❗️It's crucial to acknowledge that version 0.10.35 of the Centrifuge Client, which was not previously activated for Altair, introduced several breaking changes that could potentially disrupt existing workflows for node operators ❗️
WASM
✨ Your Substrate WASM Runtime is ready! ✨
Summary generated with srtool:1.75.0-0.14.0:
Package : altair-runtime v0.10.34
GIT commit : 544ce02
GIT tag : v0.10.36
GIT branch : main
Rustc : 1.75.0 (82e1608df 2023-12-21)
Time : 2024-03-07T08:29:48Z
== Compressed
🏋️ Runtime size: 1.803 MB (1,890,899 bytes)
🗜 Compressed: Yes, 78.53%
✨ Reserved meta: OK - [6D, 65, 74, 61]
🎁 Metadata version: V14
🔥 Core version: altair-1034 (altair-1.tx2.au1)
🗳️ system.setCode hash: 0xe8d9302f2f7b632f0a4a69e2e0e86a873a868720179386d22ea34def5ed4a05a
🗳️ Blake2-256 hash: 0xbdc0f7db3f0a8e3c3a55e34108383461b06930409d0f135db1983aeb70265150
📦 IPFS: https://www.ipfs.io/ipfs/QmW6n8h2Fii3QDHMBmbKY51eny5M5PrcLqsnbWDshWgAup
Mutual
Exhaustive list of all changes
- Release centrifuge 1024 client 1035 by @mustermeiszer in #1607
- Split concern for pool benchmark helper by @lemunozm in #1645
- Fix Docker workflow triggers by @gpmayorga in #1646
- Update docker test image name by @cdamian in #1644
- integration-tests: Use the generic framework for development LP tests by @cdamian in #1643
- Node crate to folder by @lemunozm in #1632
- Substitute mock-accountant macro by a mock builder pallet by @lemunozm in #1652
- Loans: Expand
TransferDebt
event with more info by @lemunozm in #1653 - Remove dependency warnings due to
codec
aliases in workspace dependencies by @lemunozm in #1655 - Fix: LP accounting by @mustermeiszer in #1657
- Oracle V2 implementation by @lemunozm in #1629
- Loans: Integration with OracleV2 by @lemunozm in #1658
- Oracles: Protect from configuring with duplicated feeders by @lemunozm in #1661
- Integration tests for proxies by @lemunozm in #1662
- chore(deps): bump actions/upload-artifact from 3.1.3 to 4.0.0 by @dependabot in #1669
- chore(deps): bump actions/configure-pages from 3 to 4 by @dependabot in #1665
- chore(deps): bump actions/deploy-pages from 2 to 4 by @dependabot in #1668
- Oracles: Time validation by a max age threshold by @lemunozm in #1670
- Rename from
pallet-oracle-data-collection
topallet-oracle-collection
by @lemunozm in #1671 - chore(deps): bump docker/metadata-action from 5.0.0 to 5.4.0 by @dependabot in #1666
- remarks: Add remarks pallet by @cdamian in #1659
- liquidity-pools: Ensure only pool admins can allow investment currencies by @cdamian in #1681
- remarks: Add pool ID to loan variant by @cdamian in #1682
- chore(deps): bump google-github-actions/setup-gcloud from 1.1.1 to 2.0.1 by @dependabot in #1667
- Oracles: Move feeders to collection level by @lemunozm in #1672
- liquidity-pools: Add support for
DisallowInvestmentCurrency
message by @cdamian in #1686 - Development 1037 by @mustermeiszer in #1688
- Fix Rust docs broken in main branch by @gpmayorga in #1684
- Loans: add
increase_debt()
extrinsic by @lemunozm in #1691 - Minor Docker enhancements by @gpmayorga in #1660
- feat: Add Pool Fees by @wischli in #1633
- Fix: Limitations of Transfer Allowlist by @mustermeiszer in #1693
- Fix: pool-registry test compilation by @lemunozm in #1701
- FI v2: refactor without states by @lemunozm in #1698
- fix: foreign investment amount by @wischli in https://github.com/centrifuge/centrifuge-cha...
Client v0.10.35: Centrifuge 1024
Upgrade Priority:
- Full Nodes: ❗️ High ❗️ - Please upgrade as soon as possible.
- Collators: Medium - Please upgrade at your earliest convenience.
Upgrading before executing the corresponding runtime upgrade should not introduce block production issues.
Be aware that there are several breaking changes for node operators. It's important to read the following section carefully due to these breaking changes!
Client: Breaking Changes
The upgrade to Polkadot v0.9.43 inherited a plurality of breaking changes, mainly affecting node operators.
CLI
This release removes the following CLI parameters:
--
rpc-max-payload
(replaced by--rpc-max-request-siz
e and--rpc-max-response-size
)
--ws-max-out-buffer-capacity
--ws-external
(replaced by--rpc-external
)
--unsafe-ws-external
(replaced by--unsafe-rpc-external
)
--ipc--path
--ws-port
(replaced by--rpc-port
)
--ws-max--connections
(replaced by--rpc-max-connections
)
--rpc-http
(replaced by--rpc-addr
)
--rpc-ws
(replaced by--rpc-addr
)
Relaychain folder renaming
Another inheritance from the Polkadot release is the forced default relaychain directory name. It was changede fro relaychain
to polkadot
.
For Centrifuge Chain docker clients, we have fixed the issue by renaming the directory via an entrypoint script. However, if you are running the client with another method, you need to do this manually to circumvent resyncing the entire relaychain.
Docker: Unix permissions
We optimized our docker image by decreasing the size by roughly 20% 🚀
Moreover, the security was optimized. On the one side, vulnerabilities went from 10 High and 200 Medium to 0 High and 5 Medium. On the other side, the container is not run by root
anymore. Instead, it is run by centrifuge
user with user id 1000
.
Unfortunately, the latter change is breaking for anyone using docker and assuming running as root
by default. In this case, you either need to force the container to run as root
or make sure all mounted directories have the right permissions for centrifuge
user with id 1000
. For Kubernetes, an init container can be added to modify permissions as root
before the actual container starts:
spec:
initContainers:
- name: init-container
image: busybox
command:
- 'sh'
- '-c'
- |
chown -R 1000:1000 /data
chown -R 1000:1000 /config
volumeMounts:
- mountPath: /config
name: config-volume
- mountPath: /data
name: storage-volume
Docker: New name tag syntax
In the past, the docker tags could not be linked to official releases without checking the release notes. Moreover, release and dev tags could not be distinguished. We have introduced latest
tag which pins the latest official release.
There are five types of docker tags:
- Latest official version:
latest
tag - Releases mainnet build:
${TAG}-${SHA}-${YY-MM-DD}
tag- Releases testnet build:
test-${TAG}-${SHA}-${YY-MM-DD}
tag
- Releases testnet build:
- Push to main branch mainnet build:
main-${SHA}-${YY-MM-DD}
tag- Push to main branch testnet build:
test-main-${SHA}-${YY-MM-DD}
tag
- Push to main branch testnet build:
Update: It appears that the release CI pipeline is not working as expected. This will be fixed by the next release.
Centrifuge 1024 - Release Notes Highlights
- BREAKING: Upgrade to Polkadot v0.9.43 (#1577, #1622, #1626, #1640)
- See below for details
- Feat: Add transfer allowlist pallet for local (via
balances
) and xcm transfers (viaxtokens
) (#1621)- Allows setting a filter for transfer destinations
- Feat: Debt transfer (#1615)
- Feat: InvestmentPortfolio API (#1608)
- Liquiditypools:
- CI: Rewrite & Improvements (#1551, #1611, #1619, #1624, #1625, #1628, #1636)
Migrations
No migrations for this release.
Breaking Changes
The following changes are all inherited from upgrading from Polkadot v0.9.38 to Polkadot v0.9.43
- The
balances::transfer
call will soon™️ be deprecated. It is replaces withbalances::transfer_allow_death
(paritytech/substrate#12951) - Switch from balance locks and reserves to balance freezes and holds (paritytech/substrate#12951)
- Require existential deposit for all currencies except for tranche tokens (#1596, #1577)
- The amount for each currency is taken from the
existential_deposit
field in the corresponding Asset Registry entry
- The amount for each currency is taken from the
An
ExistentialDeposit
of zero no longer works. If you need to allow any account to have a zero balance and retain associated account data, you must introduce a pallet which allows an unpermissionedframe_system::Pallet::<Runtime>::inc_providers()
. (paritytech/substrate#12951)
WASM
Since the latest srtool does not produce a WASM report due to this issue, the following WASM information is provided by subwasm v0.16.1 which is internally used by srtool as well.
🏋️ Runtime size: 1.754 MB (1,839,185 bytes)
🗜 Compressed: Yes, 78.34%
✨ Reserved meta: OK - [6D, 65, 74, 61]
🎁 Metadata version: V14
🔥 Core version: centrifuge-1024 (centrifuge-1.tx2.au1)
🗳️ system.setCode hash: 0xb84978e151aa721326b911992d7789d8a8f3b4c21c40185f86a3cb78b8fcd37f
🗳️ authorizeUpgrade hash: 0xe6073dcc2eef6f734d2d5d946b1e1f456d8c1f449a63bc3dae9e540aea546c66
#️⃣ Blake2-256 hash: 0xe9ecfd39bfd01a658ba28344963c4206863e81119b361f497538a164c2ef5a97
📦 IPFS: https://www.ipfs.io/ipfs/QmZRejYou7do4JpJcMsYM5L2XodbcFx4tTsMsjquiswCbt
Mutual
Exhaustive list of all changes
- refactor: add moonbeam alpha spec, remove algol by @wischli in #1587
- Integration test: Generic runtime and environment by @lemunozm in #1583
- Loans: Moment as Seconds & Millis explicitly by @lemunozm in #1575
- Mock builder: use foss3 dependency by @lemunozm in #1592
- feat: add demo spec by @wischli in #1593
- AssetRegistry: protect asset_registry migration by @lemunozm in #1594
- Integration tests: fudge support for the generic environment by @lemunozm in #1588
- lp: Add
compute_at
toUpdateTrancheTokenPrice
by @NunoAlexandre in #1598 - chore: post v0.10.34 release cleanup by @wischli in #1595
- Currencies: ED consistent between tokens and assets by @lemunozm in #1596
- Loans: Integration tests by @lemunozm in #1600
- fix: typos by @omahs in #1568
- Polkadot v0.9.43 by @NunoAlexandre in #1577
- GHA pipeline rewrite for ease and speed by @gpmayorga in #1551
- LiquidityPools: Add
restriction_set
field toAddTranche
message by @NunoAlexandre in #1610 - feat: add InvestmentPortfolio Runtime API by @wischli in #1608
- CI release bug fixes by @gpmayorga in #1611
- Fix: Transfer debt by @mustermeiszer in #1615
- chore(deps): bump google-github-actions/auth from 1.1.1 to 1.2.0 by @dependabot in #1614
- chore(deps): bump actions/github-script from 6.4.1 to 7.0.1 by @dependabot in #1613
- Runtimes workspace dependencies & cleaning by @lemunozm in #1609
- Fix: Loans adjustments by @lemunozm in #1616
- fix: enable rocksdb for frontier backend by @wischli in #1622
- CI bug fixes - Part II by @gpmayorga in #1619
- CI bug fixes - Part III by @gpmayorga in #1625
- Dockerfile review after CI changes by @gpmayorga in #1624
- Fees API Improvement by @lemunozm in #1623
- chore(deps): bump google-github-actions/auth from 1.2.0 to 2.0.0 by @dependabot in #1631
- Docker: solve polkadot relay folder renaming and other small fixes by @gpmayorga in #1628
- Modify
RuntimeChange
to support easily new additions by @lemunozm in #1637 - feat: cash valuation method by @mustermeiszer in #1638
- fix: docker-compose by @wischli in #1626
- Feat/restricted transfers closure by @mustermeiszer in #1621
- Fix benchmark issue in development by @Lem...
Client v0.10.34: Centrifuge 1023
Centrifuge 1023 - Release Notes Highlights
- Fully enable Liquidity Pools
- Further Loans improvements
Migrations
- Updated currency of pool id
4139607887
fromLpEthUsdc
to the natively issued stablecoin (#1566, #1573) - Register three more LP wrapped USDC variants: Base, Arbitrum, Celo (#1573)
- Allow bidirectional
OrderBook
trading between DOT and all four LP wrapped USDC variants Eth, Base, Arbitrum, Base (#1573) - Set
pallet_evm::AccountCodes
for all precompiles (#1580, #1584)
WASM
Summary generated with srtool v0.9.25 using the docker image paritytech/srtool:1.66.1:
Package : centrifuge-runtime v0.10.23
GIT commit : 160318c7189f6e35814f72768c62de6c866d3476
GIT tag :
GIT branch : main
Rustc : rustc 1.66.1 (90743e729 2023-01-10)
Time : 2023-10-06T17:28:03Z
== Compressed
Version : centrifuge-1023 (centrifuge-1.tx2.au1)
Metadata : V14
Size : 1.69 MB (1775385 bytes)
Compression : 78.7%
setCode : 0xa5b862b749cd2da164dc5c3cbc3d1f2683212e66f5ca72791f1d480ea2abc711
authorizeUpgrade : 0x1b63b035cf702d9c8c8cf0676437a4974602ebc074bf0bfae05782446375aa5a
IPFS : QmQkWnCZ4XdkintcVtMfdHnJVuqyva8h39j75kmR7LugVX
BLAKE2_256 : 0xcd393115b86484068d173d2b582f843e5f7c15f42d4026470316ce9a64d07701
Wasm : runtime/centrifuge/target/srtool/release/wbuild/centrifuge-runtime/centrifuge_runtime.compact.compressed.wasm
Exhaustive list of all changes
- liquidityPools: Clean up orphan storage and events by @NunoAlexandre in #1535
- chore: remove Centrifuge 1020 & Algol 1031 migrations by @wischli in #1534
- fix: ethereum transaction pallet must forward to pallet-ethereum::transact by @mustermeiszer in #1536
- ci: Disable taplo by @NunoAlexandre in #1540
- Fix lp-gateway routers' weight and fee calculations by @NunoAlexandre in #1537
- Fix rate type used in RuntimeAPIs for pools by @lemunozm in #1543
- OrderBook: Use ratio instead of rate by @lemunozm in #1546
- precompile: Remove extra checks by @mustermeiszer in #1538
- routers: Drop LP contract call from Axelar message by @cdamian in #1545
- feat: encode source address correctly in gateway by @mustermeiszer in #1548
- chore: Algol 1033 by @wischli in #1549
- chore: cherry-pick updated algol spec by @wischli in #1552
- feat: foreign investments by @wischli in #1473
- LP Tweaks by @NunoAlexandre in #1557
- feat: support single pallet check benchmark by @wischli in #1560
- Feat/order book add fulfill order partially by @cdamian in #1559
- feat: enable full foreign collect flow via extrinsic by @wischli in #1556
- feat: orderbook bench helper by @wischli in #1558
- Loans: Remove portfolio entry when removing a loan + portfolio UT by @lemunozm in #1561
- centrifuge: Anemoy pool currency migration by @NunoAlexandre in #1566
- Investments: benchmarks by @lemunozm in #1563
- feat: benchmark foreign investments worst case by @wischli in #1565
- ForeignInvestments: Unitary tests & fuzzer by @lemunozm in #1509
- MockBuilder: fix doc link by @lemunozm in #1569
- fix: min fulfillment amount for partial fulfillment by @wischli in #1570
- Investments: simplify constraints and remove InvestmentProperties trait by @lemunozm in #1571
- fix: foreign investments bench by @wischli in #1572
- Loans: transfer_debt implementation by @lemunozm in #1465
- Github codeowners/templates changes by @lemunozm in #1491
- Release v0.10.34 by @wischli in #1573
- Fix/precompile account codes by @mustermeiszer in #1580
- feat: add precompile migration to dev by @wischli in #1581
- fix: remove spec_version check for Centrifuge 1023 migrations by @wischli in #1584
Docker Image: centrifugeio/centrifuge-chain:main-20231006174657-160318c7
Full Changelog: v0.10.31...v0.10.34