NNS Updates 2025-06-13

The Governance 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 12afb25

__Proposer__: arshavir.ter.gabrielyan at dfinity.org

__Source code__: [12afb2543219f43e4088e1ecd6d235962e71b211][new-commit]

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


## Features & Fixes

###  Changed

* Task execution metrics are added for `neuron_data_validation` and
  `unstake_maturity_of_dissolved_neurons` timer tasks.

###  Fixed

* The `account_identifier_to_disburse_to` in the maturity disbursement now contains a 32-byte
  address rather than the 28-byte one without checksum.


## New Commits

```
$ git log --format="%C(auto) %h %s" 02571e8215fa3e77da791e693cc238b2de3beae9..12afb2543219f43e4088e1ecd6d235962e71b211 --  ./rs/nns/governance ./rs/sns/init
 63c402b5d4 feat(nns): Use timer_tasks library for some timer tasks (#5493)
 4e04664edc chore(nns): Clean up disburse maturity (#5512)
 243be670a2 refactor(nns): Remove neurons prost type (#5460)
 8b4da93fc6 fix(nns): Outputs a 32-byte account identifier in maturity disbursements (#5466)
 3671acb49d chore: upgrade rust: 1.85.1 -> 1.86.0 (again) (#5453)
 0939e4e4d8 chore: validate specified_id for canister creation in test environments (#5269)
 2dd93c8aeb refactor(nns): Move Followees out of Neuron in governance.proto (#5456)
 c36e3971df chore(nns): Remove GovernanceProto::neurons (#5442)
 31872377e4 test(nns): Remove (prop_)assert_changes (#5421)
 b31d3151e7 chore: mark  //rs/nns/governance:governance_integration_test_tests:... as flaky (#5447)
 b3efb00f64 docs(governance-backend): Update Governance backend CHANGELOG files. (#5450)
```


## Current Version

__Current git hash__: 02571e8215fa3e77da791e693cc238b2de3beae9

__Current wasm hash__: 31300720809c76011b5cb2fa3715b7d4e9c8b7d614e0de774e0eb0333bc4444c


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


### WASM Verification

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

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

# 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 12afb25

__Proposer__: arshavir.ter.gabrielyan at dfinity.org

__Source code__: [12afb2543219f43e4088e1ecd6d235962e71b211][new-commit]

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


## Features & Fixes

###  Added

* The RoutingTable is now also broken up into `canister_ranges_*` records, instead of only in a single
  `routing_table` record. This will allow clients to migrate to the new format incrementally, as both will continue
  to be available until all known clients have migrated to the new format, at which point `routing_table` will be
  removed.

###  Changed

* When performing "large" mutations (greater than approximately 1.3 MiB),
  chunking is used. This has no effect on how mutations are written. Rather,
  this affects how large mutations and records are read. For non-large
  mutations, this has no effect. Chunking means that to fetch a large mutation
  or record, clients must make follow up `get_chunk` canister method calls.
  Because of this requirement, this is a breaking change (for clients who read
  large mutations/records). This breaking change and how clients migrate was
  [announced at the end of March in a forum][chunking] (and various other
  channels). This release marks the end of the "migration window" described in
  the aforelinked forum post.

[chunking]: https://forum.dfinity.org/t/breaking-registry-changes-for-large-records/42893?u=daniel-wong


## New Commits

```
$ git log --format="%C(auto) %h %s" 02571e8215fa3e77da791e693cc238b2de3beae9..12afb2543219f43e4088e1ecd6d235962e71b211 --  ./rs/registry/canister
 83f3b8b30f chore(registry): Add some initial benchmarks (#5468)
 5f8a1b5d20 feat(registry): Enable chunking. (#5210)
 cc5c9c98e2 feat(registry): Store routing table as canister_ranges  (#5062)
 b3efb00f64 docs(governance-backend): Update Governance backend CHANGELOG files. (#5450)
```


## Current Version

__Current git hash__: 02571e8215fa3e77da791e693cc238b2de3beae9

__Current wasm hash__: f8f97636e9696d52074c1579e6f6d012a5486e99a226ce00460adfa19b849394


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


### WASM Verification

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

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

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

Publish SNS Governance

# Publish SNS Governance WASM Built at Commit 12afb25

__Proposer__: arshavir.ter.gabrielyan at dfinity.org

__Source code__: [12afb2543219f43e4088e1ecd6d235962e71b211][new-commit]

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

## Features & Fixes

###  Added

####  New `get_metrics` function for SNS Governance

A new function, `get_metrics`, has been added to the SNS Governance canister. This allows front-end clients and SNS aggregators to query for activity metrics of an SNS over a specified time period. Currently, the metrics include the number of most-recent proposals and the timestamp of the latest SNS ledger transaction.


## New Commits

```
$ git log --format="%C(auto) %h %s" 02571e8215fa3e77da791e693cc238b2de3beae9..12afb2543219f43e4088e1ecd6d235962e71b211 --  ./rs/sns/governance
 c69929a5a0 feat(sns): Added default implementation to GetMetricsResponse (#5520)
 3671acb49d chore: upgrade rust: 1.85.1 -> 1.86.0 (again) (#5453)
 de286fe8e9 note(sns): add release notes on (#5472)
 b3efb00f64 docs(governance-backend): Update Governance backend CHANGELOG files. (#5450)
 2e94007f12 feat(sns): Implement SnsGov.get_metrics (#5185)
```


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

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

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

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

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

This should match `wasm` field of this proposal.
2 Likes

Adopt 136987

Proposal

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

Screenshot from 2025-06-14 14-40-02

Code Review

63c402b5d4: Use timer_tasks library for some timer tasks.
4e04664edc: Clean up some code around disburse maturity like is_disburse_maturity_enabled.
243be670a2: Remove neurons prost type.
8b4da93fc6: Outputs a 32-byte account identifier in maturity disbursements including the first 4 bytes checksum that was previously not included.
3671acb49: bump 1.85.1 → 1.86.0.
0939e4e4d8: Validate the field specified_id for canister creation in test environments.
2dd93c8aeb: Move Followees out of Neuron in governance.proto.
c36e3971df: remove GovernanceProto::neurons.
31872377e4: remove assert_changes.
b31d3151e7: mark governance_integration_test_tests as flacky.
b3efb00f64: changelog update.


Adopt 136988

Proposal

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

Screenshot from 2025-06-14 14-40-37

Code Review

83f3b8b30f: Add some benchmarks to registry.
5f8a1b5d20: One line change to enable chunking. When performing large mutations chunking is used.
cc5c9c98e2: Store routing table as canister_ranges.
b3efb00f64: changelog update.

1 Like