Another week, another NNS upgrade proposal.
NNS Governance
https://dashboard.internetcomputer.org/proposal/134988
# Upgrade the Governance Canister to Commit 03393bc
__Proposer__: arshavir.ter.gabrielyan at dfinity.org
__Source code__: [03393bc817da78cdc27190eaa388b8f6f8990365][new-commit]
[new-commit]: https://github.com/dfinity/ic/tree/03393bc817da78cdc27190eaa388b8f6f8990365
## Features & Fixes
### Added
#### List Neurons Paging
Two new fields are added to the request, and one to the response.
The request now supports `page_size` and `page_number`. If `page_size` is greater than
`MAX_LIST_NEURONS_RESULTS` (currently 500), the API will treat it as `MAX_LIST_NEURONS_RESULTS`, and
continue procesisng the request. If `page_number` is None, the API will treat it as Some(0)
In the response, a field `total_pages_available` is available to tell the user how many
additional requests need to be made.
This will only affect neuron holders with more than 500 neurons, which is a small minority.
This allows neuron holders with many neurons to list all of their neurons, whereas before,
responses could be too large to be sent by the protocol.
#### Periodic Confirmation
Enabled voting power adjustment and follow pruning.
##### Prior Work
This section describes related changes in previous releases.
We already started recording how long it's been since neurons have confirmed
their following (aka refreshed voting power). Neurons were also given the
ability to confirm their following. Those who have never confirmed are
considered as having refreshed on Sep 1, 2024.
This feature was proposed and approved in motion [proposal 132411].
[proposal 132411]: https://dashboard.internetcomputer.org/proposal/132411
##### New Behavior(s) (In This Release)
With this enablement, not refreshing for more than 6 months will start to affect
the neuron. More precisely,
1. If a neuron has not refreshed in 6 months, then votes have less influence on
the outcome of proposals.
2. If a neuron has not refreshed in 7 months,
a. It stops following other neurons (except on the NeuronManagement topic;
those followees are retained).
b. Its influence on proposals goes to 0.
### Changed
* `InstallCode` proposal payload hashes are now computed when making the proposal instead of when
listing proposal. Hashes for existing proposals are backfilled.
## New Commits
```
$ git log --format="%C(auto) %h %s" b5192581ccd35b67fe5a1f795ead9cbcd25956d6..03393bc817da78cdc27190eaa388b8f6f8990365 -- ./rs/nns/governance ./rs/sns/init
626d1bb787 feat(nns): Add pagination to list_neurons API (#3358)
026eda8b9a chore: Bump Candid to 0.10.12 (#3566)
01e83df091 feat(nns): Avoid recomputing wasm/arg hashes during read operations (#3490)
922017281e refactor(nns): Delete ManageNeuronResponse from governance.proto. (#3573)
367ab73788 refactor(nns): Deleted ListNeurons from NNS governance.proto. (#3546)
744f4683df perf(nns): Add a benchmark for listing proposals (#3489)
fc2787097c chore: bump rust to 1.84 (#3469)
fb3d35d0dd chore(nns): Remove one-off fix for broken neuron after deployment (#3452)
f8f274d899 feat(IC-1579): TLA annotations for disburse_to_neuron (#3411)
16ee8b23a6 chore(nns): Add a comment on MAX_NEURONS_FUND_PARTICIPANTS about its effect on instructions (#3426)
c8be4fc1b4 feat(IC-1579): TLA instrumentation for `disburse_neuron` (#3337)
```
## Current Version
__Current git hash__: b5192581ccd35b67fe5a1f795ead9cbcd25956d6
__Current wasm hash__: 5b67e1d273afb691a74ff29e0a495fb2ce7ee31196af58d801a8ce86a7dc4320
## 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/03393bc817da78cdc27190eaa388b8f6f8990365/rs/nervous_system/docs/proposal_verification.md
### WASM Verification
See ["Building the code"][prereqs] for prerequisites.
[prereqs]: https://github.com/dfinity/ic/tree/03393bc817da78cdc27190eaa388b8f6f8990365/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 03393bc817da78cdc27190eaa388b8f6f8990365
# 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.