The NNS Team submitted the following proposals. DFINITY plans to vote on these proposals the following Monday.
Proposals to be Submitted
Governance
https://dashboard.internetcomputer.org/proposal/137080
# Upgrade the Governance Canister to Commit cc066e9
__Proposer__: daniel.wong at dfinity.org
__Source code__: [cc066e9957ad2f4f7515e9906bb7df4d2fcf78b7][new-commit]
[new-commit]: https://github.com/dfinity/ic/tree/cc066e9957ad2f4f7515e9906bb7df4d2fcf78b7
## Features & Fixes
### Added
* Neurons can now perform SetFollowing to configure their following on multiple
topics at once. Whereas, before, they would have to perform multiple Follow
operations, one for each topic. This brings NNS into alignment with SNS.
## New Commits
```
$ git log --format="%C(auto) %h %s" 12afb2543219f43e4088e1ecd6d235962e71b211..cc066e9957ad2f4f7515e9906bb7df4d2fcf78b7 -- ./rs/nns/governance ./rs/sns/init
932823aec0 feat(nns): Set following on multiple topics at once. (#5506)
035f978fb5 refactor(nns): Refactor distribute_rewards to separate immutable and mutable operations (#5494)
f57f0ed608 chore(nns,sns): Update release notes after release (#5547)
7c587c8055 chore(nns): Cleanup USE_NODE_PROVIDER_REWARD_CANISTER flag and code (#5546)
```
## Current Version
__Current git hash__: 12afb2543219f43e4088e1ecd6d235962e71b211
__Current wasm hash__: 5965ebd3d45d480387f72229553fcd843711fc222e0d78c4f0d276fcfc791bab
## 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/cc066e9957ad2f4f7515e9906bb7df4d2fcf78b7/rs/nervous_system/docs/proposal_verification.md
### WASM Verification
See ["Building the code"][prereqs] for prerequisites.
[prereqs]: https://github.com/dfinity/ic/tree/cc066e9957ad2f4f7515e9906bb7df4d2fcf78b7/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 cc066e9957ad2f4f7515e9906bb7df4d2fcf78b7
# 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
https://dashboard.internetcomputer.org/proposal/137081
# Upgrade the Registry Canister to Commit cc066e9
__Proposer__: daniel.wong at dfinity.org
__Source code__: [cc066e9957ad2f4f7515e9906bb7df4d2fcf78b7][new-commit]
[new-commit]: https://github.com/dfinity/ic/tree/cc066e9957ad2f4f7515e9906bb7df4d2fcf78b7
## Features & Fixes
### Changed
* The `check_routing_table_invariants` method now checks the new canister_ranges_
and ensures they match the `routing_table` record. The old invariant check will be
removed once `routing_table` is removed.
## New Commits
```
$ git log --format="%C(auto) %h %s" 12afb2543219f43e4088e1ecd6d235962e71b211..cc066e9957ad2f4f7515e9906bb7df4d2fcf78b7 -- ./rs/registry/canister
f57f0ed608 chore(nns,sns): Update release notes after release (#5547)
d5d85d2072 fix(registry): Handle currently impossible edge case in canister_ranges_ updates (#5545)
782c748f02 feat(registry): Add invariant check for sharded canister migrations (#5535)
```
## Current Version
__Current git hash__: 12afb2543219f43e4088e1ecd6d235962e71b211
__Current wasm hash__: a1af9ac740a5840125a79eb24c2663fdb3301637e5c4892bf24875084037fbbb
## 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/cc066e9957ad2f4f7515e9906bb7df4d2fcf78b7/rs/nervous_system/docs/proposal_verification.md
### WASM Verification
See ["Building the code"][prereqs] for prerequisites.
[prereqs]: https://github.com/dfinity/ic/tree/cc066e9957ad2f4f7515e9906bb7df4d2fcf78b7/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 cc066e9957ad2f4f7515e9906bb7df4d2fcf78b7
# 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
Vote: ADOPT
Governance Canister

Reason:
Build successful and hashes match, commits look great and match the description. Found no issues.
[932823aec0]: Adds the SetFollowing
command allowing neurons to specify followees for multiple governance topics in a single operation whereas previously it was needed to call the Follow
multiple times. Adds structs SetFollowing
and FolloweesForTopic
and implements validations guaranteeing that the topics are unique and that the number of followees is below MAX_FOLLOWEES_PER_TOPIC
[035f978fb5]: Separates the method distribute_rewards
into two new ones, calculate_voting_rewards
and distribute_voting_rewards_to_neurons
in order to distinguish between calculations and mutations. Refactors code accordingly
[f57f0ed608]: Updates change logs to include adopted proposals and corresponding changes.
[7c587c8055]: Removes feature flag USE_NODE_PROVIDER_REWARD_CANISTER
and related code that responsible for switching between get_node_providers_monthly_xdr_rewards_from_node_provider_reward_canister
and get_node_providers_monthly_xdr_rewards_from_registry
.
Vote: ADOPT
Registry Canister

Reason:
Build successful and hashes match, commits look great and match the description. Found no issues.
Contains duplicate commits from previous proposals
[d5d85d2072]: Fixes an edge case in the mutations_for_canister_ranges
function where it was assumed that a CanisterId(0)
shard always existed except if new_shards
was empty. It updated the logic with entry().or_insert_with()
to ensure that a CanisterId(0)
shard exists even if new_shards
is not empty. Adds a test accordingly.
[782c748f02]: Modifies method get_routing_table
to call new helper function get_routing_table_shards
that returns the new sharded canister_ranges_ records and compares it against the legacy routing table. Creates a new test if_sharded_ranges_they_must_match_original_routing_table
and a new benchamrk measure_routing_table_invariant_checks_shards_and_unsharded
to measure the execution of check_routing_table_invariants
.
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
proposals - [137080, 137081] Cyberowl | CodeGov
Proposals:
137080
137081
Vote: [ADOPT, ADOPT]
Reason & Feedback:
I successfully built and verified the hash. All the commit descriptions match their code changes.
Checks:
Hash Match: [PASS, PASS]
Target Canister: [PASS, PASS]
Proposer Check: [PASS, PASS]
Overall Summary:
The governance changes add a new SetFollowing
command that allows neurons to configure followees for multiple topics in a single operation, streamlining what previously required separate calls per topic. Removes deprecated node-provider reward fetching paths. The registry updates improve canister routing table handling by reading sharded canister_ranges
entries from snapshots, reconstructing routing tables from those shards, and validating consistency with main routing table records.
Commits Summary
proposal / 137080 (Governance)
932823aec0
Adds a new SetFollowing
command that lets a neuron configure its list of followees for multiple governance topics in one operation, what previously required separate follow calls per topic.
035f978fb5
Extracts the rewardâcalculation into a standalone, sideâeffectâfree calculate_voting_rewards
and then having distribute_voting_rewards_to_neurons
apply the results, the codeâs intent becomes clearer, itâs easier to test.
f57f0ed608
Update change logs.
7c587c8055
Removes the old featureâflagged path for fetching node-provider rewards, eliminating the use_node_provider_reward_canister
toggle, its helper methods, and the registryâbased implementation.
proposal / 137081 (Registry)
f57f0ed608
Update change logs. Same commit as proposal / 137080
d5d85d2072
The code guarantees thereâs always a shard at CanisterId(0)
. That prevents the later .range(zero_id..=âŚ)âŚunwrap()
from ever panicking if new_shards
started out nonâempty but lacked the zeroâkey entry. New test verifies that edge case.
782c748f02
Reads any sharded canister_ranges
entries from the snapshot, reconstructs a routing table from those shards, asserts it matches the main routing table record, and then returns the record.
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.