NNS Updates 2025-05-16

The NNS Team submitted the following proposals. DFINITY plans to vote on these proposals the following Monday.

Proposals to be Submitted

Cycles-minting

# Upgrade the Cycles-minting Canister to Commit 8ac2131

__Proposer__: jason.zhu at dfinity.org

__Source code__: [8ac2131be1a86e1267e7774b0c94085fc107bad3][new-commit]

[new-commit]: https://github.com/dfinity/ic/tree/8ac2131be1a86e1267e7774b0c94085fc107bad3


## Features & Fixes

This is a maintenance release.

## New Commits

```
$ git log --format="%C(auto) %h %s" 2d4bcba47ea10520ff21ce54a8acb9cdb0629317..8ac2131be1a86e1267e7774b0c94085fc107bad3 --  ./rs/nns/cmc
 830f4caa90 refactor: remove direct dependency on ic-cdk-macros (#5144)
 2949c97ba3 chore: Revert ic-cdk to 0.17.2 (#5139)
 3490ef2a07 chore: bump the monorepo version of ic-cdk to 0.18.0 (#5005)
 f9c905d29c refactor(cmc): Migrate CMC to use ic-cdk (#3878)
 665c75015a chore(cycles-minting): Deleted flag `IS_AUTOMATIC_REFUND_ENABLED`. (#3636)
 b215232f64 fix(governance-tools): Proposal URL was wrong. (#3981)
 882e7af8e9 chore(crypto): CRP-2697 Move getrandom wasm32-unknown-unknown workaround to packages (#3926)
 4c20acbce9 chore(nervous-system): Update changelog for release 2025-02-07 (#3867)
```


## Upgrade Arguments

```candid
()
```


## Current Version

__Current git hash__: 2d4bcba47ea10520ff21ce54a8acb9cdb0629317

__Current wasm hash__: 4e4a6f907a3b4720bfeb4c45c5027d9b1379deb840e4ba0217876df9a4c5b193


## Verification

See the general instructions on [how to verify] proposals like this. A "quick
start" guide is provided here.

[how to verify]: https://github.com/dfinity/ic/tree/8ac2131be1a86e1267e7774b0c94085fc107bad3/rs/nervous_system/docs/proposal_verification.md


### WASM Verification

See ["Building the code"][prereqs] for prerequisites.

[prereqs]: https://github.com/dfinity/ic/tree/8ac2131be1a86e1267e7774b0c94085fc107bad3/README.adoc#building-the-code

```
# 1. Get a copy of the code.
git clone git@github.com:dfinity/ic.git
cd ic
# Or, if you already have a copy of the ic repo,
git fetch
git checkout 8ac2131be1a86e1267e7774b0c94085fc107bad3

# 2. Build canisters.
./ci/container/build-ic.sh -c

# 3. Fingerprint the result.
sha256sum ./artifacts/canisters/cycles-minting-canister.wasm.gz
```

This should match `wasm_module_hash` field of this proposal.


### Upgrade Arguments Verification

[`didc`][latest-didc] is required.

[latest-didc]: https://github.com/dfinity/candid/releases/latest

```
didc encode '()' | xxd -r -p | sha256sum

```

This should match the `arg_hash` field of this proposal.

Governance

# Upgrade the Governance Canister to Commit 8ac2131

__Proposer__: jason.zhu at dfinity.org

__Source code__: [8ac2131be1a86e1267e7774b0c94085fc107bad3][new-commit]

[new-commit]: https://github.com/dfinity/ic/tree/8ac2131be1a86e1267e7774b0c94085fc107bad3


## Features & Fixes

###  Added

* The `DisburseMaturity` neuron command is enabled. See https://forum.dfinity.org/t/disburse-maturity-in-nns/43228 for more details.

###  Changed

* Proposal topics are persisted throughout its lifecycle instead of being recomputed every time.

###  Security
Enforce a lower bound for `min_participant_icp_e8s` of `1_000_000`.


## New Commits

```
$ git log --format="%C(auto) %h %s" 5639c29fd72de16d483be7fe6dedc86e9bec3b9e..8ac2131be1a86e1267e7774b0c94085fc107bad3 --  ./rs/nns/governance ./rs/sns/init
 8ac2131be1 test(nns): Use golden nns state test to detect new protocol canisters (#5112)
 afef856bf5 feat(nns): Persist topic throughout proposal lifecycle (#5111)
 c605cfaa17 refactor(nns): Make ExchangeRate proposals obsolete (#5011)
 ba488dcedd fix(sns): Enforce a lower bound for `min_participant_icp_e8s` (#5053)
 830f4caa90 refactor: remove direct dependency on ic-cdk-macros (#5144)
 2949c97ba3 chore: Revert ic-cdk to 0.17.2 (#5139)
 6970f48073 feat(nns-root): do not change allocation when installing code (#5066)
 0e5bc0d1a1 perf(nns): Use a proper proposal payload in benchmarks (#5110)
 abd1b51fcb test(nns): Move list_proposals tests to a separate file and into Governance crate (#5109)
 7e787c9c4b chore(nns,sns): Move release notes (#5063)
 d1dc4c2dc8 chore: Update Rust to 1.86.0 (#5059)
 2d6efd6adf chore(nns): Minor refactoring and documentation for NnsGov.register_vote (#5077)
 b7ee0aa2e9 feat(nns): Turn on disburse maturity (#4968)
 f68a58fab6 chore: update Rust to 1.85.1 (#4340)
```


## Current Version

__Current git hash__: 5639c29fd72de16d483be7fe6dedc86e9bec3b9e

__Current wasm hash__: b23b637e524abae565ac7847f5d38d3a0c4f85c2737f8910c78e48fc7813e40d


## Verification

See the general instructions on [how to verify] proposals like this. A "quick
start" guide is provided here.

[how to verify]: https://github.com/dfinity/ic/tree/8ac2131be1a86e1267e7774b0c94085fc107bad3/rs/nervous_system/docs/proposal_verification.md


### WASM Verification

See ["Building the code"][prereqs] for prerequisites.

[prereqs]: https://github.com/dfinity/ic/tree/8ac2131be1a86e1267e7774b0c94085fc107bad3/README.adoc#building-the-code

```
# 1. Get a copy of the code.
git clone git@github.com:dfinity/ic.git
cd ic
# Or, if you already have a copy of the ic repo,
git fetch
git checkout 8ac2131be1a86e1267e7774b0c94085fc107bad3

# 2. Build canisters.
./ci/container/build-ic.sh -c

# 3. Fingerprint the result.
sha256sum ./artifacts/canisters/governance-canister.wasm.gz
```

This should match `wasm_module_hash` field of this proposal.

Registry

# Upgrade the Registry Canister to Commit 8ac2131

__Proposer__: jason.zhu at dfinity.org

__Source code__: [8ac2131be1a86e1267e7774b0c94085fc107bad3][new-commit]

[new-commit]: https://github.com/dfinity/ic/tree/8ac2131be1a86e1267e7774b0c94085fc107bad3


## Features & Fixes

###  Changed

* The field `node_reward_type` in AddNodePayload is now required to be populated with a valid node_reward_type when
  adding a node (in `do_add_node`) if a node_rewards table record is present in the registry.


## New Commits

```
$ git log --format="%C(auto) %h %s" 5639c29fd72de16d483be7fe6dedc86e9bec3b9e..8ac2131be1a86e1267e7774b0c94085fc107bad3 --  ./rs/registry/canister
 3d869a114c feat(registry): enforce presence of node_reward_type (#5136)
 2949c97ba3 chore: Revert ic-cdk to 0.17.2 (#5139)
 4b0953166f test: Extend some unit tests with vet keys (#5010)
 7e787c9c4b chore(nns,sns): Move release notes (#5063)
 1ac82d1c1d test(registry): `ic-admin update-registry-local-store` reads large/chunked records (correctly). (#5037)
 d1dc4c2dc8 chore: Update Rust to 1.86.0 (#5059)
 148f7ec3f8 feat(registry): Migrate get_changes_since callers to high-capacity (#4947)
 811858594e test(CRP-2632): Extend registry unit tests to include vetkd cases (#5017)
```


## Current Version

__Current git hash__: 5639c29fd72de16d483be7fe6dedc86e9bec3b9e

__Current wasm hash__: efc7a74c5309eded50e53e9d9eda77ebc47843c84012537f30548bc20c89bcd1


## Verification

See the general instructions on [how to verify] proposals like this. A "quick
start" guide is provided here.

[how to verify]: https://github.com/dfinity/ic/tree/8ac2131be1a86e1267e7774b0c94085fc107bad3/rs/nervous_system/docs/proposal_verification.md


### WASM Verification

See ["Building the code"][prereqs] for prerequisites.

[prereqs]: https://github.com/dfinity/ic/tree/8ac2131be1a86e1267e7774b0c94085fc107bad3/README.adoc#building-the-code

```
# 1. Get a copy of the code.
git clone git@github.com:dfinity/ic.git
cd ic
# Or, if you already have a copy of the ic repo,
git fetch
git checkout 8ac2131be1a86e1267e7774b0c94085fc107bad3

# 2. Build canisters.
./ci/container/build-ic.sh -c

# 3. Fingerprint the result.
sha256sum ./artifacts/canisters/registry-canister.wasm.gz
```

This should match `wasm_module_hash` field of this proposal.

Root

# Upgrade the Root Canister to Commit 8ac2131

__Proposer__: jason.zhu at dfinity.org

__Source code__: [8ac2131be1a86e1267e7774b0c94085fc107bad3][new-commit]

[new-commit]: https://github.com/dfinity/ic/tree/8ac2131be1a86e1267e7774b0c94085fc107bad3


## Features & Fixes

###  Removed
- The fields `compute_allocation` and `memory_allocation` in the input type `ChangeCanisterRequest`
  of the endpoint `change_nns_canister`.


## New Commits

```
$ git log --format="%C(auto) %h %s" 9dfa7825fc087deacccbed3985a502e0ec2276ff..8ac2131be1a86e1267e7774b0c94085fc107bad3 --  ./rs/nns/handlers/root
 830f4caa90 refactor: remove direct dependency on ic-cdk-macros (#5144)
 2949c97ba3 chore: Revert ic-cdk to 0.17.2 (#5139)
 6970f48073 feat(nns-root): do not change allocation when installing code (#5066)
 3490ef2a07 chore: bump the monorepo version of ic-cdk to 0.18.0 (#5005)
 2c6673bdc9 feat(registry): Migrate `Registry::store` to high-capacity types. (#4913)
 632e8943fb docs(governance): Update CHANGELOG files for 2025-05-02 Governance team release. (#4965)
```


## Current Version

__Current git hash__: 9dfa7825fc087deacccbed3985a502e0ec2276ff

__Current wasm hash__: a99693bdf767bc3e4c8372a48533796764056f3bdb72a6544b7286c1351e3cb2


## Verification

See the general instructions on [how to verify] proposals like this. A "quick
start" guide is provided here.

[how to verify]: https://github.com/dfinity/ic/tree/8ac2131be1a86e1267e7774b0c94085fc107bad3/rs/nervous_system/docs/proposal_verification.md


### WASM Verification

See ["Building the code"][prereqs] for prerequisites.

[prereqs]: https://github.com/dfinity/ic/tree/8ac2131be1a86e1267e7774b0c94085fc107bad3/README.adoc#building-the-code

```
# 1. Get a copy of the code.
git clone git@github.com:dfinity/ic.git
cd ic
# Or, if you already have a copy of the ic repo,
git fetch
git checkout 8ac2131be1a86e1267e7774b0c94085fc107bad3

# 2. Build canisters.
./ci/container/build-ic.sh -c

# 3. Fingerprint the result.
sha256sum ./artifacts/canisters/root-canister.wasm.gz
```

This should match `wasm_module_hash` field of this proposal.
1 Like

Proposal 136693 | Tim - CodeGov

image

Vote: Adopt

Reason: Build is successful, hashes match, commits match descriptions and the reasoning behind the changes is sound.

[8ac2131be1]
Adds new component check_canisters_are_all_protocol_canisters to upgrade_canisters_with_golden_nns_state test in order to check for new canisters that may need to be added.

[afef856bf5]
Adds field topic to type ProposalData, now called in ProposalData::is_manage_neuron(), and other changes as outlined in the commit notes in order to persist the proposal topic assigned at creation through the proposal lifecycle.

[c605cfaa17]
Removes NnsFunction::IcpXdrConversionRate from Governance::validate_execute_nns_function and adds it to NnsFunction::check_obsolete (to return an error) and removes other code related to the now obsolete exchange rate proposal topic.

[ba488dcedd]
Adds constant MIN_PARTICIPANT_ICP_LOWER_BOUND_E8S, set to 1 million, so as to enforce a lower bound on the amount of ICP that can be directly contributed to an SNS decentralisation swap.

[830f4caa90]
Removes direct dependency on ic-cdk-macros as these macros are now re-exported by ic-cdk.

[2949c97ba3]
Reverts commit 3490ef2a0, which updated the monorepo version of ic-cdk to 0.18.0 and maintained a distinction between ic-cdk 0.17.1 and ic-cdk 0.18.0 (and similarly for related crates).

[6970f48073]
Removes fields compute_allocation and memory_allocation from type ChangeCanisterRequest along with related function changes so as to prevent changing these allocations when installing code.

[0e5bc0d1a1]
Adds proposal field to ProposalData in set_up and distribute_rewards_with_stable_neurons benchmark functions in preparation for a future PR affecting the use of the ProposalData::topic field.

[abd1b51fcb]
Moves several tests from rs/nns/governance/tests/governance.rs to a new file rs/nns/governance/src/governance/tests/list_proposals.rs. Removes test_cascade_following_new.

[7e787c9c4b]
Moves current release notes from unreleased to released changelogs.

[d1dc4c2dc8]
Updates Rust version to 1.86.0.

[2d6efd6adf]
Minor refactoring in Governance::register_vote method without a change in behaviour, and expansion of dcoumentation for this method and for const NEURON_MINIMUM_DISSOLVE_DELAY_TO_VOTE_SECONDS_BOUNDS.

[b7ee0aa2e9]
Sets IS_DISBURSE_MATURITY_ENABLED to true in order to enable NNS maturity disbursement as outlined in this thread.

[f68a58fab6]
Updates Rust version to 1.85.1 + refactoring changes.

Proposal 136694 | Tim - CodeGov

Vote: Adopt

Reason: Build is successful, hashes match, commits match descriptions and the reasoning behind the changes is sound.

[3490ef2a07]
Updates the monorepo version of ic-cdk to 0.18.0 and maintains a distinction between ic-cdk 0.17.1 and ic-cdk 0.18.0 (and similarly for related crates).

[2c6673bdc9]
Switches several registry storage and value types to correpsonding high capacity types. This is part of a move towards handling larger messages as outlined in this thread, which will be required for the vetKeys feature.

[632e8943fb]
Updates to changelogs.

Proposal 136695 | Tim - CodeGov

Vote: Adopt

Reason: Build is successful, hashes match, commits match descriptions and the reasoning behind the changes is sound.

[3d869a114c]
Adds method are_node_rewards_enabled and uses it in conjunction with node_reward_type within Registry::do_add_node_ to ensure that an error is returned if nodes rewards are enabled but not reward type is not specified.
x 2949c97ba3 chore: Revert ic-cdk to 0.17.2 (#5139)

[4b0953166f]
Extends various tests to include vetKeys master key alongside previously added encryption keys.

[7e787c9c4b]
Moves current release notes from unreleased to released changelogs.

[1ac82d1c1d]
Adds test test_update_registry_local_store_handles_chunked_records along with associated code as per description.

[148f7ec3f8]
Moves get_chunk_with_validation from rs/registry/nns_data_provider/src/certification.rs to rs/registry/transport/src/high_capacity.rs along with further changes as outlined in the commit notes.

[811858594e]
Adds tests (and a supporting function) to cover vetKeys derivation cases.

Proposal 136696 | Tim - CodeGov

Vote: Adopt

Reason: Build is successful, hashes match, commits match descriptions and the reasoning behind the changes is sound.

[f9c905d29c]
Adapts the cycles-minting canister to use the external ic-cdk crate. Adds internal functions mint_cycles, caller, call_protobuf and now_system_time to replace functions from dfn_core. Other related code changes.

[665c75015a]
Removes the now redundant flag IS_AUTOMATIC_REFUND_ENABLED and adapts related code accordingly.

[b215232f64]
Corrects http://dashboard.internetcomputer.org/proposals/... to http://dashboard.internetcomputer.org/proposal/... within changelogs.

[882e7af8e9]
Renames getrandom_for_wasm to ic-dummy-getrandom-for-wasm and moves it from ‎rs/crypto/ to ‎packages/ so that it can be published on crates.io.

[4c20acbce9]
Updates to changelogs.]

About CodeGov

CodeGov has a team of developers who review and vote independently on the following proposal topics: IC-OS Version Election, Protocol Canister Management, Subnet Management, API Boundary Node Management, Node Admin, and Participant Management. The CodeGov NNS known neuron is configured to follow our reviewers on these technical topics. We also have a group of Followees who vote independently on the Governance and the SNS & Neurons’ Fund topics. We strive to be a credible and reliable Followee option that votes on every proposal and every proposal topic in the NNS. We also support decentralisation of SNS projects such as WaterNeuron, KongSwap, and Alice with a known neuron and credible Followees.

Learn more about CodeGov and its mission at codegov.org.

3 Likes

proposals - [136693, 136694, 136695, 136696, 136697] Cyberowl | CodeGov

Proposals:

136693
136694
136695
136696
136697

Vote: [ADOPT, ADOPT, ADOPT, ADOPT, ADOPT]

Reason & Feedback:

I successfully built and verified the hash. All the commit descriptions match their code changes.

Checks:

Hash Match: [PASS, PASS, PASS, PASS, PASS]
Target Canister: [PASS, PASS, PASS, PASS, PASS]
Proposer Check: [PASS, PASS, PASS, PASS, PASS]

Overall Summary:

Centralizes protocol canister IDs, cleans up and renaming dependencies (e.g., ic-cdk macros and HTTP types), reorganizing tests, adds configurable network timeouts, upgrades the Rust toolchain and CI pipelines, and improves registry chunking/dechunking and payload handling.

Commits Summary

proposal / 136693

8ac2131be1
Centralizes the list of “protocol” canister IDs into a shared PROTOCOL_CANISTER_IDS constant.

afef856bf5
Add a new persistent topic field to every proposal’s data pipeline.

c605cfaa17
Restore and fully wire up the formerly-deprecated IcpXdrConversionRate NNS proposal.

ba488dcedd
Two new 10 s timeouts (on connect and on send), pulls the connection logic into its own helper, makes the timeout durations test‐configurable, wraps both the TCP/TLS handshake and send_request in tokio::time::timeout calls, and adds three tests that assert you get errors when each stage (connect, send, receive‐body) times out.

830f4caa90
Removes all direct ic-cdk-macros dependencies (and Bazel proc_macro_deps), updates code to import and use the macros re-exported by the ic_cdk crate instead.

2949c97ba3
Rolls ic-cdk and ic-cdk-macros back from v0.18.0 to v0.17.2.

6970f48073
Removes the optional compute_allocation and memory_allocation fields from ChangeCanisterRequest.

0e5bc0d1a1
Fix benchmark by using proper proposal data.

abd1b51fcb
Pulls all the existing list_proposals tests into a new list_proposals.rs file under the Governance crate’s test directory.

7e787c9c4b
Update change logs.

d1dc4c2dc8
CI/CD image and toolchain upgrades (including the one-off SHA fix in ci-pr-only.yml).
Shift to Rust 1.86.0.
div_ceil, repeat_n, next_back(), pattern-matching, !is_empty() and the Clippy/rustfmt

2d6efd6adf
register_vote gets a bit of parameter destructuring and renamed from pb to register_vote, plus a new doc comment spelling out its preconditions.

b7ee0aa2e9
Enable IS_DISBURSE_MATURITY_ENABLED.

f68a58fab6
The Rust toolchain is upgraded from version 1.84.0 to 1.85.1. Container image is updated.
The benchmark instruction increases (0.57%-1.48% for ICRC-1 ledger) suggest a slight performance regression.

proposal / 136694

3490ef2a07
Version‐bump and aliasing update for ic-cdk (and its macros) across Cargo.

2c6673bdc9
Adds “high-capacity” chunking support behind a test feature so that very large registry values get split into SHA-256-keyed chunks instead of stored inline. It introduces a shared 5 MB test blob MEGA_BLOB via lazy_static, a new HighCapacityRegistryValue enum.

632e8943fb
Update change logs

proposal / 136695

3d869a114c
Makes the node_reward_type field on AddNodePayload mandatory whenever a rewards table exists in the registry.
You must now supply a valid node_reward_type in your AddNodePayload, otherwise the canister will reject the add-node call.

4b0953166f
admin_helper.rs now include a VetKd entry in the JSON used by ic-admin’s create_subnet, recover_subnet, and update_subnet commands, and assert that the resulting KeyConfigRequest has pre_signatures_to_create_in_advance = 0. registry‐subnet‐features crate check that a protobuf round‐trip of ChainKeyConfig faithfully serializes and deserializes a VetKd entry with zero pre‐signatures.

1ac82d1c1d
Adds the new initialize_registry_local_store helper in rs/registry/admin, wires up the nns_data_provider path into the ic-admin update-registry-local-store command, and then verifies end-to-end that a large, chunked registry value can be fetched and materialized into the local store.

148f7ec3f8
deserialize_get_changes_since_response returns the high-capacity response, then immediately pipes that through dechunkify_delta in exactly the three clients (replay, nervous_systemcanister, nns_data_provider).

811858594e
Extends the existing chain‐key setup helper to also wait for VetKd public keys and adds three new unit tests: one verifying VetKd key retrieval in create_subnet.rs, one for fetching VetKd keys during subnet recovery, and one ensuring VetKd keys are removed when not present.

proposals / [136696, 136697]

b215232f64
Turn deserialize_get_changes_since_response into the high-capacity variant and then immediately feed its output through a new dechunkify_delta helper in the three existing callers (replay, nns_data_provider, and nervous_system_canister).

4c20acbce9
Update change logs

proposal / 136696

f9c905d29c
Replaces all uses of dfn_core::api, dfn_candid, and dfn_http_metrics with the corresponding ic_cdk::api calls.
Wraps mint_cycles as ic0_mint_cycles.

665c75015a
Removal of the IS_AUTOMATIC_REFUND_ENABLED feature flag.

882e7af8e9
Moves rs/crypto/getrandom_for_wasm to pacakge packages/ic-dummy-getrandom-for-wasm. Makes changes to ref that new path.

proposal / 136697

c2d5684360
Rename HTTP types crate—from the old ic-canisters-http-types in rs/rust_canisters/http_types to the new ic-http-types under packages/ic-http-types.

About CodeGov

CodeGov has a team of developers who review and vote independently on the following proposal topics: IC-OS Version Election, Protocol Canister Management, Subnet Management, Node Admin, and Participant Management. The CodeGov NNS known neuron is configured to follow our reviewers on these technical topics. We also have a group of Followees who vote independently on the Governance and the SNS & Neuron’s Fund topics. We strive to be a credible and reliable Followee option that votes on every proposal and every proposal topic in the NNS. We also support decentralization of SNS projects such as WaterNeuron, KongSwap, and Alice with a known neuron and credible Followees.

Learn more about CodeGov and its mission at codegov.org.

2 Likes

Adopt 136693

Proposal

  • The upgrade args correspond to the empty args.
  • The install mode is indeed upgrade.
  • The wasm hash are reproducible.

image

Code Review

[8ac2131be1]: Added golden NNS state test to validate protocol canister changes.
[afef856bf5]: Persisted proposal topic throughout NNS lifecycle for better traceability.
[c605cfaa17]: Marked ExchangeRate proposals obsolete, simplifying codebase.
[ba488dcedd]: Enforced minimum bound for SNS min_participant_icp_e8s, enhancing robustness.
[830f4caa90]: Removed ic-cdk-macros dependency to streamline codebase.
[2949c97ba3]: Reverted ic-cdk to 0.17.2 following BOB launchpad issue.
[6970f48073]: Preserved allocation in nns-root during code installation.
[0e5bc0d1a1]: Used realistic proposal payloads in NNS benchmarks for better performance testing.
[abd1b51fcb]: Moved list_proposals tests to dedicated file and Governance crate, improving modularity.
[7e787c9c4b]: Centralized NNS/SNS release notes for better documentation.
[d1dc4c2dc8]: Updated Rust to 1.86.0 for latest features and patches.
[2d6efd6adf]: Refactored NnsGov.register_vote with better docs, enhancing readability.
[b7ee0aa2e9]: Enabled maturity disbursement, a key feature.
[f68a58fab6]: Updated Rust to 1.85.1 as a stepping-stone.


Adopt 136694

Proposal

  • The upgrade args correspond to the empty args.
  • The install mode is indeed upgrade.
  • The wasm hash are reproducible.

image

Code Review

[830f4caa90]: Removed direct dependency on ic-cdk-macros to streamline the codebase.
[2949c97ba3]: Reverted ic-cdk to 0.17.2 following BOB launchpad issue.
[6970f48073]: Ensured nns-root preserves allocation during code installation for reliability.
[3490ef2a07]: Upgraded monorepo ic-cdk to 0.18.0.
[2c6673bdc9]: Migrated Registry::store to high-capacity types to support larger data.
[632e8943fb]: Updated CHANGELOG for Governance team’s 2025-05-02 release documentation.


Adopt 136695

Proposal

  • The upgrade args correspond to the empty args.
  • The install mode is indeed upgrade.
  • The wasm hash are reproducible.

image

Code Review

[3d869a114c]: Enforced presence of node_reward_type in registry to ensure consistent configuration.
[2949c97ba3]: Reverted ic-cdk to version 0.17.2 to resolve stability concerns.
[4b0953166f]: Extended unit tests to include vet keys, improving test coverage.
[7e787c9c4b]: Relocated NNS and SNS release notes for centralized documentation.
[1ac82d1c1d]: Added test for ic-admin update-registry-local-store to verify correct handling of large/chunked records.
[d1dc4c2dc8]: Updated Rust to 1.86.0 to leverage latest language features and patches.
[148f7ec3f8]: Migrated get_changes_since callers in registry to high-capacity types for scalability.
[811858594e]: Extended registry unit tests with vetkd cases to address CRP-2632 requirements.


Adopt 136696

Proposal

  • The upgrade args correspond to the empty args.
  • The install mode is indeed upgrade.
  • The wasm hash are reproducible.

image

Code Review

[830f4caa90]: Removed direct ic-cdk-macros dependency to simplify the codebase.
[2949c97ba3]: Reverted ic-cdk to 0.17.2 following BOB launchpad issue.
[3490ef2a07]: Upgraded monorepo ic-cdk to 0.18.0.
[f9c905d29c]: Refactored CMC to adopt ic-cdk, aligning with modern canister development.
[665c75015a]: Deleted IS_AUTOMATIC_REFUND_ENABLED flag in cycles-minting to streamline logic.
[b215232f64]: Fixed incorrect proposal URL in governance-tools for accurate linking.
[882e7af8e9]: Moved getrandom workaround for wasm32 to packages for better organization (CRP-2697).
[4c20acbce9]: Updated nervous-system changelog for the 2025-02-07 release.

1 Like

Proposal 136693 – LaCosta | CodeGov

Vote: ADOPT

Governance Canister

image
Reason:
Build successful and hashes match, commits look great and match the description. Found no issues.

[8ac2131be1]: Adds a new test check_canisters_are_all_protocol_canisters that checks if all the canisters in the NNS subnet, retrieved from the current state using the new function get_canister_ids, are either non_protocol_canisters, meaning being in either NNS_UI_CANISTER_ID or SNS_WASM_CANISTER_ID, or PROTOCOL_CANISTER_IDS, if they are not the test fails warning that the canister should be added to the PROTOCOL_CANISTER_IDS list.

[afef856bf5]: Adds the topic (proposal topic) to the ProposalData struct along with other changes between the ProposalData and Proposal structs in order to persist the topic throughout a proposal’s lifecycle.

[c605cfaa17]: Makes the ExchangeRate proposals obsolete adding it to the check_obsolete function and removing related code and tests.

[ba488dcedd]: Enforces a lower bound for min_participant_icp_e8s with MIN_PARTICIPANT_ICP_LOWER_BOUND_E8S = 1_000_000 along with a test to validate the new participation constraint.

[830f4caa90]: Removes direct dependency on the ic-cdk-macros crate since these macros are re-exported by the ic-cdk crate.

[2949c97ba3]: Reverts the bump of ic-cdk from commit 3490ef2a0

[6970f48073]: Drops the fields compute_allocation and memory_allocation from the ChangeCanisterRequest struct. This prevents setting setting the compute or memory allocation when installing canister code.

[0e5bc0d1a1]: In the current benchmarks setup, the proposal field of the ProposalData struct was left was defaulted, which sets the proposal topic to Unspecified. This consumes 2.5M instructions due to printing the proposal which skews the benchmarks results. The commit adds this field in set_up and distribute_rewards_with_stable_neurons in preparations for a later PR, that will fix this issue by using the topic stored at creation time, in order to make the benchmarks updates in result easier to read.

[abd1b51fcb]: Moves tests from rs/nns/governance/tests/governance.rs to a new file rs/nns/governance/src/governance/tests/list_proposals.rs.

[7e787c9c4b]: Moves release notes from the unreleased_changelog to changelog

[d1dc4c2dc8]: Updates Rust version from 1.85.1 to 1.86.0

[2d6efd6adf]: Does some minor refactoring on function register_vote and adds documentation in form of comments for this function and NEURON_MINIMUM_DISSOLVE_DELAY_TO_VOTE_SECONDS_BOUNDS

[b7ee0aa2e9]: Turns on disburse maturity by setting the feature flag IS_DISBURSE_MATURITY_ENABLED to true.

[f68a58fab6]: Updates Rust version from 1.84.0 to 1.85.1 along with some code refactoring.

Proposal 136694 – LaCosta | CodeGov

Vote: ADOPT

Root Canister

image
Reason:
Build successful and hashes match, commits look great and match the description. Found no issues.

Contains duplicate commits from previous proposals

[3490ef2a07]: Bumped the monorepo’s workspace version of ic-cdk to 0.18.0 and opt out of it for some packages by explicitly configuring them to use 0.17.1 instead.

[2c6673bdc9]: Adds support for high capacity types in the Registry canister. Registry::store field is updated to use BTreeMap<Vec<u8>, VecDeque<HighCapacityRegistryValue>> and methods get_high_capacity and get_changes_since are updated to use HighCapacityRegistryGetValueResponse to encode responses. In order to maintain backwards compatibility the get method calls get_high_capacity with posterior dechunkification logic and therefore clients will use get_high_capacity so the visibility of get was changed to pub(crate) .

[632e8943fb]: Updates change logs to include adopted proposals and corresponding changes.

Proposal 136695 – LaCosta | CodeGov

Vote: ADOPT

Registry Canister

image
Reason:
Build successful and hashes match, commits look great and match the description. Found no issues.

Contains duplicate commits from previous proposals

[3d869a114c]: Updates the function do_add_node_ t enforce node_reward_type presence if node rewards are enabled.

[4b0953166f]: Extends unit tests for vetkd keys.

[1ac82d1c1d]: Adds a new test test_update_registry_local_store_handles_chunked_records to verify that ic-admin update-registry-local-store correctly handles large/chucked records. Creates a new library rs/registry/admin/src/lib.rs with a new function initialize_registry_local_store for initializing a registry local store.

[148f7ec3f8]: Updates deserialize_get_changes_since_response to return a high-capacity response Vec<HighCapacityRegistryDelta> instead of Vec<RegistryDelta>. dechunkify_delta is then used to convert HighCapacityRegistryDelta into RegistryDelta.

[811858594e]: Adds a new helper function wait_for_vetkd_setup for tests, extending wait_for_chain_key_setup to also support vetkeys. Introduces three new unit tests for vetkd keys.

Proposal 136696 – LaCosta | CodeGov

Vote: ADOPT

Cycles-minting Canister


Reason:
Build successful and hashes match, commits look great and match the description. Found no issues.

Contains duplicate commits from previous proposals

[f9c905d29c]: Refactors CMC logic in order to use the ic-cdk library replacing dfn_core, dfn_candid and dfn_http_metrics with ic-cdk equivalents.

[665c75015a]: Removes no longer used feature flag IS_AUTOMATIC_REFUND_ENABLED

[b215232f64]: Fixes the script testnet/tools/nns-tools/add-release-to-changelog.sh to generate the correct URLs and fixes the URLs in the CHANGELOGS

[882e7af8e9]: Renames the crate ic_crypto_getrandom_for_wasm to ic_dummy_getrandom_for_wasm and moves it from rs/crypto/ to packages/ in order to be published and externally used.

[4c20acbce9]: Moved added features and fixes from unrealeased_changelog.md to CHANGELOG.md in the form of proposals that were released.

About CodeGov

CodeGov has a team of developers who review and vote independently on the following proposal topics: IC-OS Version Election, Protocol Canister Management, Subnet Management, Node Admin, and Participant Management. The CodeGov NNS known neuron is configured to follow our reviewers on these technical topics. We also have a group of Followees who vote independently on the Governance and the SNS & Neuron’s Fund topics. We strive to be a credible and reliable Followee option that votes on every proposal and every proposal topic in the NNS. We also support decentralization of SNS projects such as WaterNeuron, KongSwap, and Alice with a known neuron and credible Followees.

Learn more about CodeGov and its mission at codegov.org.

Proposal #136693 for Governance — Zack | CodeGov

Vote: Adopted

Reason: The build is reproducible and the wasm hash is a match.
The canister id rrkah-fqaaa-aaaaa-aaaaq-cai is correct and the install mode is upgrade.

Proposal #136694 for rOOt — Zack | CodeGov

Vote: Adopted

Reason: The build is reproducible and the wasm hash is a match.
The canister id r7inp-6aaaa-aaaaa-aaabq-cai is correct and the install mode is upgrade.

Proposal #136695 for Registry — Zack | CodeGov

Vote: Adopted

Reason: The build is reproducible and the wasm hash is a match.
The canister id rwlgt-iiaaa-aaaaa-aaaaa-cai is correct and the install mode is upgrade.

Proposal #136696 for Cycles-minting — Zack | CodeGov

Vote: Adopted

Reason: The build is reproducible and the wasm hash and arguments hash are a match.
The canister id rkp4c-7iaaa-aaaaa-aaaca-cai is correct and the install mode is upgrade.

After the breaking change with the bug we took another look and did a deepdive on the commits in order to see how it could be prevented for future upgrades. Will publish our findings at the end of this period. Thank you for everyone who interacted with the live stream. Stay tuned for more.

About CodeGov

CodeGov has a team of developers who review and vote independently on the following proposal topics: IC-OS Version Election, Protocol Canister Management, Subnet Management, Node Admin, and Participant Management. The CodeGov NNS known neuron is configured to follow our reviewers on these technical topics. We also have a group of Followees who vote independently on the Governance and the SNS & Neuron’s Fund topics. We strive to be a credible and reliable Followee option that votes on every proposal and every proposal topic in the NNS. We also support decentralization of SNS projects such as WaterNeuron, KongSwap, and Alice with a known neuron and credible Followees.

Learn more about CodeGov and its mission at codegov.org.