NNS Updates 2025-03-14

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

Proposals to be Submitted

Governance

# Upgrade the Governance Canister to Commit 34a638d

__Proposer__: maximilian.summe at dfinity.org

__Source code__: [34a638d9f593542f3da89494966c3759667aaf88][new-commit]

[new-commit]: https://github.com/dfinity/ic/tree/34a638d9f593542f3da89494966c3759667aaf88


## Features & Fixes

### Improved

* ic-stable-structures is upgraded, adding performance improvements to stable neuron operations.

###  Added

* Added `NetworkEconomics.voting_power_economics.neuron_minimum_dissolve_delay_to_vote_seconds`.

###  Removed

* Removed a migration mechanism previously used for data migrations through heartbeat.


## New Commits

```
$ git log --format="%C(auto) %h %s" 7286063eaecd4d3625a8bf991213e27e21d3c2cf..34a638d9f593542f3da89494966c3759667aaf88 --  ./rs/nns/governance ./rs/sns/init
 f6f5e0927d chore: upgrade stable-structures (#4284)
 4b7c9fee37 refactor(nervous-system): Move canister interfaces into canister crate (#4351)
 6d04483555 chore(nns): Cleanup constants related to neuron-minimum-dissolve-delay-to-vote (#4290)
 cadbaa147b refactor(nns): Remove migrations mechanism (#4287)
 358e7e5168 chore(nns/sns): Update changelog after release (#4288)
 332d4698c8 feat(nns): Add `neuron_minimum_dissolve_delay_to_vote_seconds` to `VotingPowerEconomics` (#4180)
```


## Current Version

__Current git hash__: 7286063eaecd4d3625a8bf991213e27e21d3c2cf

__Current wasm hash__: 73ec598e1e372b74843f269ea21cdb58b91e9b1553c8a05aeff98a360edd8735


## 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/34a638d9f593542f3da89494966c3759667aaf88/rs/nervous_system/docs/proposal_verification.md


### WASM Verification

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

[prereqs]: https://github.com/dfinity/ic/tree/34a638d9f593542f3da89494966c3759667aaf88/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 34a638d9f593542f3da89494966c3759667aaf88

# 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.

Root

# Upgrade the Root Canister to Commit 34a638d

__Proposer__: maximilian.summe at dfinity.org

__Source code__: [34a638d9f593542f3da89494966c3759667aaf88][new-commit]

[new-commit]: https://github.com/dfinity/ic/tree/34a638d9f593542f3da89494966c3759667aaf88


## Features & Fixes

This is a maintenance release, with no functionality changes.

## New Commits

```
$ git log --format="%C(auto) %h %s" 00b04a892dfb2fee1459f1de9d4a731aa04f1ca3..34a638d9f593542f3da89494966c3759667aaf88 --  ./rs/nns/handlers/root
 b866c6e747 refactor(nns): Migrate nns-common to ic-cdk (#3808)
 b215232f64 fix(governance-tools): Proposal URL was wrong. (#3981)
 05601afe26 chore(nervous-system): Update changelog for release 2025-02-14 (#3967)
```


## Current Version

__Current git hash__: 00b04a892dfb2fee1459f1de9d4a731aa04f1ca3

__Current wasm hash__: 36188e425f4d6d9c0e89252ed6028f6735f1911a4bbdc02312fd009a86d039b8


## 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/34a638d9f593542f3da89494966c3759667aaf88/rs/nervous_system/docs/proposal_verification.md


### WASM Verification

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

[prereqs]: https://github.com/dfinity/ic/tree/34a638d9f593542f3da89494966c3759667aaf88/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 34a638d9f593542f3da89494966c3759667aaf88

# 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.

proposal - 135847 – Cyberowl | CodeGov

v2

Checks

Vote: ADOPT
Hash Match: MATCH
Feedback: NONE
Proposer Check: MATCH
Target Canister: MATCH

Reason:
Build completed successfully, hashes are verified, and commits match the changes described with the code implemented.

Commits

f6f5e0927d
Upgrades the ic-stable-structures library to version 0.6.8 across various configuration and lock files, with updated checksums reflecting the new version. Benchmark results in both the ICRC1 Ledger and NNS Governance modules show significant reductions in instruction counts.

4b7c9fee37
Reorganizes the nervous system code by moving ledger and CMC traits from the common module to a canister-specific module and updating all corresponding import paths. It also introduces the mockall crate with #[automock] attributes for these traits.

6d04483555
Replaces the fixed minimum dissolve delay constant with a configurable parameter in the VotingPowerEconomics struct, defaulting to 6 months but bounded between 3 and 6 months. Does NOT alter the default behavior for existing neurons.

cadbaa147b
Removes the migration mechanism from the NNS governance canister, eliminating migration-related structures, logic, and API methods. It simplifies periodic tasks and the data model.

358e7e5168
Updates to the CHANGELOG.md and unreleased_changelog.md for both the NNS and SNS governance modules (proposals 135702 and 135703).

332d4698c8
Adds a new optional field, neuron_minimum_dissolve_delay_to_vote_seconds, to VotingPowerEconomics in the NNS governance system—replacing the hard-coded minimum dissolve delay with a configurable parameter between 3 and 6 months.

proposal - 135848 – Cyberowl | CodeGov

v3

Checks

Vote: ADOPT
Hash Match: MATCH
Feedback: NONE
Proposer Check: MATCH
Target Canister: MATCH

Reason:
Build completed successfully, hashes are verified, and commits match the changes described with the code implemented.

b866c6e747
Replaces outdated dfn_core and dfn_json utilities with the updated ic-cdk for canister interactions. Cleans up dependencies by removing on_wire and moving dfn_candid to dev-dependencies.

b215232f64
Fixes a longstanding URL formatting error in changelogs by replacing “/proposals/” with the correct “/proposal/” format.

05601afe26
Moves unreleased changes for proposals 135313, 135314, and 135315 into the official changelogs for the NNS modules.

2 Likes

Proposal 135847 – LaCosta | CodeGov

Vote: ADOPT

Governance Canister

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

[f6f5e0927d]: Updates ic-stable-structures from version 0.6.5 to 0.6.8

[4b7c9fee37]: Moves canister interfaces out of nervous_system/common into nervous_system/canisters and updates imports accordingly to match the new paths.

[6d04483555]: Continuation of previous commit [332d4698c8] that added the new field neuron_minimum_dissolve_delay_to_vote_seconds to the VotingPowerEconomics struct. In this commit some clean up is done after this addition replacing constants and renaming accordingly.

[cadbaa147b]: Removes the old and now obsolete migration logic that relied on keeping track of the global state and use heartbeats to work. With the new additions regarding timers this is no longer needed.

[358e7e5168]: Updates the CHANGELOG.md for the SNS and NNS to include changes realeased in approved proposals.

[332d4698c8]: Adds new field neuron_minimum_dissolve_delay_to_vote_seconds to the VotingPowerEconomics struct. The field must be set between between 3 months and 6 months and is defaulted to DEFAULT_NEURON_MINIMUM_DISSOLVE_DELAY_TO_VOTE_SECONDS = 6 months.

Proposal 135848 – LaCosta | CodeGov

Vote: ADOPT

Root Canister

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

[b866c6e747]: Replaces more code that relied on dfn_core with ic_cdk

[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

[05601afe26]: Updates the CHANGELOG.md for the SNS and NNS to include changes realeased in approved proposals.

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.

1 Like

Proposal #135847 for Governance — Zack | CodeGov

Vote: Adopted

Reason: The build is reproducible and the wasm hash is a match.
The canister id is correct and the install mode is upgrade.

Proposal #135848 for rOOt — Zack | CodeGov

Vote: Adopted

Reason: The build is reproducible and the wasm hash is a match.
The canister id is correct and the install mode is upgrade.

Proposal 135847 - Zane | CodeGov

Vote: ADOPT
Reason: Build completes successfully, both hashes and reviewed commits match their descriptions.

135847

f6f5e0927d Bumped ic-stable-structures to v0.6.8. In icrc1_test_stable_migration_endpoints_disabled increased the number of approvals/transfers to process from 40 to 60, similarly in test_migration_resumes_from_frozen both have been bumped to 40.

4b7c9fee37 Moved ICRC1/ICP ledger and CMC traits out of nervous_system/common and placed them into the same crate where they are implemented in ic-nervous-system-canisters package. Updated imports accordingly.

6d04483555 Replaced MIN_DISSOLVE_DELAY_FOR_VOTE_ELIGIBILITY_SECONDS with DEFAULT_NEURON_MINIMUM_DISSOLVE_DELAY_TO_VOTE_SECONDS from NetworkEconomics. Moved NEURON_MINIMUM_DISSOLVE_DELAY_TO_VOTE_SECONDS_BOUNDS constant out of validate method to the module scope, making it publicly accessible.

cadbaa147b Deleted obsolete heartbeat based migration logic

358e7e5168 Updated changelogs.

332d4698c8 Added optional neuron_minimum_dissolve_delay_to_vote_seconds field to VotingPowerEconomics. When fetching the field using its getter or when it is unwrapped in create_ballots_for_standard_proposal if it hasn’t been set yet, DEFAULT_NEURON_MINIMUM_DISSOLVE_DELAY_TO_VOTE_SECONDS is used as default value, i.e 6 months. Also when validating NetworkEconomics fields, it can’t be set to None or to a value that isn’t between 3 and 6 months.

Proposal 135848 - Zane | CodeGov

Vote: ADOPT
Reason: Build completes successfully, both hashes and reviewed commits match their descriptions.

135848

b866c6e747 Removed dfn_core and on_wire dependencies from nns common and replaced dfn usage with equivalents from ic-cdk. Removed dfn_json dependency from nns utils and moved dfn_candid to dev dependencies in nns handlers.

b215232f64 Already validated as part of previous proposal. Matches decription.

05601afe26 Updated 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, 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.

1 Like

Adopt proposal 135847


Proposal

  • Canister id rrkah-fqaaa-aaaaa-aaaaq-cai is indeed the governance canister.
  • The upgrade args correspond to the empty args.
  • The install mode is indeed upgrade.
  • The wasm hash is reproducible.

image


Code Review

Full transparency: I am the author of commit 332d4698c8.

 f6f5e0927d chore: upgrade stable-structures (#4284)
 4b7c9fee37 refactor(nervous-system): Move canister interfaces into canister crate (#4351)
 6d04483555 chore(nns): Cleanup constants related to neuron-minimum-dissolve-delay-to-vote (#4290)
 cadbaa147b refactor(nns): Remove migrations mechanism (#4287)
  • f6f5e0927d: bump ic stable structures from 0.6.5 to 0.6.8
  • 4b7c9fee37: Moves canister interfaces from nervous_system/common to nervous_system/canisters. Previously, nervous_system/common served as a catch-all, housing interfaces and test implementations without actual canister implementations. This change corrects that by consolidating interfaces and implementations in nervous_system/canisters, where they logically belong.
  • cadbaa147b: Remove the migration mechanisms as a cleanup, as we are now using timers.



Adopt proposal 135848


Proposal

  • Canister id r7inp-6aaaa-aaaaa-aaabq-cai is indeed the root canister.
  • The upgrade args correspond to the empty args.
  • The install mode is indeed upgrade.
  • The wasm hash is reproducible.

image


Code Review

 b866c6e747 refactor(nns): Migrate nns-common to ic-cdk (#3808)
 b215232f64 fix(governance-tools): Proposal URL was wrong. (#3981)
 05601afe26 chore(nervous-system): Update changelog for release 2025-02-14 (#3967)
  • b866c6e747: migrate some code from dfn_core to ic-cdk.
  • b215232f64: fix url from /proposals/ → /proposal/.
3 Likes