The DFINITY NNS Team has submitted a proposal to upgrade the CMC Canister on Friday, 2023-05-12.
Hotfix
This hotfix fixes a bug introduced in the last CMC upgrade. Before the last upgrade of the Cycles-Minting Canister, an exchange rate proposal was required to update the ICP/XDR rate as well as the 30-day average ICP/XDR rate (accessible through the endpoints get_icp_xdr_conversion_rate
and get_average_icp_xdr_conversion_rate
, respectively).
After the upgrade, the CMC started requesting the ICP/XDR rate periodically from the exchange rate canister. While the ICP/XDR rate has been updated successfully using this new mechanism ever since the upgrade, a bug prevented an update of the average ICP/XDR rate. The fix is simple: The code to update the average ICP/XDR rate is now called whenever a new, valid ICP/XDR rate is received, regardless of the source of the rate.
What is the impact of this bug? The average ICP/XDR rate is used to determine node provider remuneration and maturity modulation. Since only the rates for three days (May 9 - May 11) are not considered in the 30-day average rate, a back-of-the-envelope calculation (using the start-of-day rates on these days) reveals that the reported 30-day average ICP/XDR rate is, in fact, slightly too high, with a relative error of less than 1%, so the impact on node provider remuneration and maturity modulation is small.
Submitted Proposal
## Proposal to Upgrade the Cycles-minting Canister
### Proposer: DFINITY Foundation
### Git Hash: e813c43a337a26c026c2f2ec19099bd2036e7280
### New Wasm Hash: fc1655302a81cd1b7148a6f66479b2830bd0d567d04780720e7bdd6c5b124fb5
### Upgrade Args Hash: 0fee102bd16b053022b69f2c65fd5e2f41d150ce9c214ac8731cfaf496ebda4e
### Target canister: rkp4c-7iaaa-aaaaa-aaaca-cai
---
## Features
- Fix a bug in the Cycles-Minting Canister where the average ICP/XDR rate was not updated.
## Release Notes
```
$ git log --format="%C(auto) %h %s" 2ef275ecee0b8e2e6eba06d13ff4585ba8957f2e..e813c43a337a26c026c2f2ec19099bd2036e7280 -- ./rs/nns/cmc
6f1ce5e472 bugfix: Moving update_recent_icp_xdr_rates into set_icp_xdr_conversion_rate
```
## Candid Post Upgrade Args
```candid
()
```
### Validating Candid Args
Verify that the hash of the args matches proposal contents.
`didc encode '()' | xxd -r -p | sha256sum`
## Wasm Verification
Verify that the hash of the gzipped WASM matches the proposed hash.
```
git fetch
git checkout e813c43a337a26c026c2f2ec19099bd2036e7280
./gitlab-ci/container/build-ic.sh -c
sha256sum ./artifacts/canisters/cycles-minting-canister.wasm.gz
```
## Current Version
- Current Git Hash: 2ef275ecee0b8e2e6eba06d13ff4585ba8957f2e
- Current Wasm Hash: 3ff03b40f1c49b06e91a3c31879a21f6cead42be71d194d4d7e7becb8c60bd42