NNS Updates 2025-03-21

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 c5dee3a

__Proposer__: daniel.wong at dfinity.org

__Source code__: [c5dee3a11b79da7b5c433574f38605d75c9feaf5][new-commit]

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


## Features & Fixes

###  Changed

* Refactor `prune_following` task to use the `timer_task` library, and therefore enables metrics to
  be collected about its execution.


## New Commits

```
$ git log --format="%C(auto) %h %s" 34a638d9f593542f3da89494966c3759667aaf88..c5dee3a11b79da7b5c433574f38605d75c9feaf5 --  ./rs/nns/governance ./rs/sns/init
 e9393a1cda6 refactor(nns): Refactor prune following to use timer task (#4286)
 a63c3052359 chore(nns/sns): Update changelogs for NNS and SNS Governances (#4421)
```


## Current Version

__Current git hash__: 34a638d9f593542f3da89494966c3759667aaf88

__Current wasm hash__: c002c3cdd41d1b7a63c12a2cd1e33dfc87116fe5f03c45399b307c5385900b30


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


### WASM Verification

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

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

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

__Proposer__: daniel.wong at dfinity.org

__Source code__: [c5dee3a11b79da7b5c433574f38605d75c9feaf5][new-commit]

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


## Features & Fixes

No "real" behavior changes. This is just a maintenance upgrade.

Technically, there is a new get_chunk method, but it does not actually do anything _useful_ yet. Watch this space.


## New Commits

```
$ git log --format="%C(auto) %h %s" 4f60863183c418782800fc8ffacf41be494a9a15..c5dee3a11b79da7b5c433574f38605d75c9feaf5 --  ./rs/registry/canister
 66b3d77dd78 feat(registry): Large response API. (#4379)
 2bbbfd1cc95 test(registry): improve test for do_add_node - check rewardable_nodes (#3934)
 b215232f644 fix(governance-tools): Proposal URL was wrong. (#3981)
```


## Current Version

__Current git hash__: 4f60863183c418782800fc8ffacf41be494a9a15

__Current wasm hash__: c0e70561a26bcb4a2acee50c487335640bab9e7301f9970b08ac345a59075748


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


### WASM Verification

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

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

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

proposal - 135933 – Cyberowl | CodeGov

Checks

Vote: ADOPT
Hash Match: MATCH
Feedback: NONE
Proposer Check: MATCH
Target Canister: MATCH
Reason: I successfully built and verified the hash. All the commit descriptions match their code changes.

Commits

e9393a1cda6
Refactors the prune_following logic by moving it from canister.rs into a dedicated timer task module (timer_tasks/prune_following.rs) using the ic_nervous_system_timer_task.

a63c3052359
Matches description Update changelogs for NNS and SNS Governances.

proposal - 135934 – Cyberowl | CodeGov

Checks

Vote: ADOPT
Hash Match: MATCH
Feedback: NONE
Proposer Check: MATCH
Target Canister: MATCH
Reason: I successfully built and verified the hash. All the commit descriptions match their code changes.

Commits

66b3d77dd78
get_chunk query endpoint and adds high-capacity types to the Registry Canister’s transport protocol to support data larger than 2 MiB.

2bbbfd1cc95
Improves the add_node_with_node_type test by including a rewardable_nodes field in the NodeOperatorRecord and verifying the entire record rather than just node_allowance.

b215232f644
Correct proposal URLs from “/proposals/” to “/proposal/” to match the actual IC dashboard routing.

1 Like

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

e9393a1cda6 refactor(nns):
Refactors the prune_following task so it now uses the timer_task library where checking is done to see if prune following functionality is enabled and then schedules a PruneFollowingTask at a different interval. The PruneFollowingTask implementation for periodic execution is set to stay within a safe instruction limit, having PRUNE_FOLLOWING_INTERVAL is set to 10 second for batch processing and MAX_PRUNE_SOME_FOLLOWING_INSTRUCTIONS is 50 million to make sure compute resources are not maxed out.

a63c3052359 chore(nns/sns):
Updates the changelogs for NNS and SNS Governances to the latest release.

Proposal #135934 for rOOt — 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.

66b3d77dd78 feat(registry): Large response API.
The canister query method named get_chunk will be exposed to be called externally.
TL;DR “messages can be at most 2 MiB in size, if bigger the get_chunk canister method then can be called to fetch them in chunks”
Anyone interested can read more about the CHUNKS lib here, like how :
-The monolithic blobs are getting split into chunks, then stored. Chunks are keyed by their SHA256, and all the goodies :wink:

2bbbfd1cc95 test(registry):
The test for do_add_node check rewardable_nodes is improved to match the remove nodes.
Adds the rewardable_nodes field in NodeOperatorRecord by defining a BTreeMapwhere different node types are mapped to a rewardable count. More exactly
nodes of type0 won’t receive rewards (count is 0), while nodes of type1 will (obv. count is 28).
Also there is an assertion for the NodeOperatorRecord has the expected values, setting node_allowance to 0 while keeping all other fields unchanged.

b215232f644 fix(governance-tools):
Fixes proposal URL generated by changelog script to match the /proposal/ instead of plural /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.

Adopt proposal 135933

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

  • refactor prune following, move it from nns/governance/canister/canister.rs to rs/nns/governance/src/timer_tasks/prune_following.rs.

Adopt proposal 135934

Proposal

  • Canister id rwlgt-iiaaa-aaaaa-aaaaa-cai is indeed the registry canister.
  • The upgrade args correspond to the empty args.
  • The install mode is indeed upgrade.
  • The wasm hash is reproducible.

image

Code Review

  • Add a get_chunk method for registry entries too large.
2 Likes

Proposal 135933 – LaCosta | CodeGov

Vote: ADOPT

Governance Canister

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

[e9393a1cda6]: Moves the prune_following logic into it’s own file rs/nns/governance/src/timer_tasks/prune_following.rs refactoring it to use the timer_task library.

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

Proposal 135926 – LaCosta | CodeGov

Vote: ADOPT

Registry Canister

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

[66b3d77dd78]: Added a get_chunk canister query to retrieve individual chunks of large data. Adds new high capacity types as well as a clear plan for how the migration will work in the registry’s transport.proto

[2bbbfd1cc95]: Updates the test should_succeed_for_adding_one_node by including the field rewardable_nodes in the NodeOperatorRecord to verify the node operator record instead of just the node allowance.

[b215232f644]: Fixes the script testnet/tools/nns-tools/add-release-to-changelog.sh to generate the correct URLs and fixes the URLs in the 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

Proposal 135933 - Zane | CodeGov

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

135933

e9393a1cda6 Moved followee pruning from schedule_timers to run as a timer task. schedule_prune_following method has been deleted and its logic has been refactored into the PruneFollowingTask implementation of the RecurringSyncTask trait.

a63c3052359 Updated changelogs, matches description.

Proposal 135934 - Zane | CodeGov

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

135934

66b3d77dd78 Setup Rust structs and related protobuf definitions in preparation for retrieving large values from the registry in chunks.

2bbbfd1cc95 Improved should_succeed_for_adding_one_node test by checking the entire node record fetched using get_node_operator_record matches the expected result after calling do_add_node_, instead of only asserting the node allowance being properly reduced. Also specified rewardable_nodes field for the node provider record rather than setting it to its default value

b215232f644 Duplicate from previous 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