NNS Updates: 2024-07-26

,

DFINITY is pleased to announce the following proposals to upgrade NNS canister(s), and publish new SNS canister WASM(s).

NNS

Cycles-Minting: Proposal 131395

## Proposal to Upgrade the Cycles-minting Canister
### Proposer: DFINITY Foundation
### Git Hash: 3b3ffedc6aa481fd9b92eefaf46beded9e51a344
### New Wasm Hash: f24df747ad451a9d45fe2e98aa60b82578203fb73fc24316cd33ce98307e9f0c
### Upgrade Args Hash: 0fee102bd16b053022b69f2c65fd5e2f41d150ce9c214ac8731cfaf496ebda4e
### Target canister: rkp4c-7iaaa-aaaaa-aaaca-cai
---

## Features
Added the test nns-dapp canister ID to the allow list of notify_create_canister.

## Release Notes
```
$ git log --format="%C(auto) %h %s" b9a20425f94eb1433385a7ed0c59c41095c17b7b..3b3ffedc6aa481fd9b92eefaf46beded9e51a344 --  ./rs/nns/cmc
 005885513d chore: Remove deprecated controller field in update settings requests (#432)
 5cfaea5eaa chore: upgrade external crates and use workspace version
 576bb8d173 chore: add buildifier sort comment to Bazel files
 a710668dbe feat(nns): Add the test nns-dapp canister ID to the allow list of notify_create_canister in CMC.
 c549e32a8a chore: upgrade crates and use workspace versions
 da02705960 chore: Bump rust version to 1.79
```

## Candid Post Upgrade Args
```candid
()
```

### Validating Candid Args
Verify that the encoded version of the plaintext args matches the `arg_hex` field in the proposal.
`didc encode '()'`

## Wasm Verification
Verify that the hash of the gzipped WASM matches the proposed hash.
```
git fetch
git checkout 3b3ffedc6aa481fd9b92eefaf46beded9e51a344
./gitlab-ci/container/build-ic.sh -c
sha256sum ./artifacts/canisters/cycles-minting-canister.wasm.gz
```

## Current Version
- Current Git Hash: b9a20425f94eb1433385a7ed0c59c41095c17b7b
- Current Wasm Hash: 58ee30cb6cb074dc066b7e8dfc78d8e2b1a9e97a48e39fedbace65c547703d80

Governance: Proposal 131396

## Proposal to Upgrade the Governance Canister
### Proposer: DFINITY Foundation
### Git Hash: 3b3ffedc6aa481fd9b92eefaf46beded9e51a344
### New Wasm Hash: fb1d5e8299bab298495e4459d8b326640eec10937c335b42058225d25722315e
### Target canister: rrkah-fqaaa-aaaaa-aaaaq-cai
---

## Features
* neuron visibility:
  * as described in https://forum.dfinity.org/t/request-for-comments-api-changes-for-public-private-neurons/33360
  * new field in Neuron and NeuronInfo.
  * known neurons are always public
  * can be set via ManageNeuron SetVisibility (known neurons are not allowed to use this).
  * This is not yet enforced.
    * In the next release, it will be possible for anyone to read public neurons.
    * In a later release, private neurons will be partially redacted.
* (claim_or_refresh_neuon_from_account|list_proposals)_pb now just panic.
* Defined new proposal types:
  * StopOrStartCanister
  * InstallCode
  * UpdateCanisterSettings (no execution yet)
* bitcoin and cycles ledger canisters are now protocol canisters.
* 2 new proposal topics: ProtocolCanisterManagement, ServiceNervousSystemManagement
* Exclude genesis-token from metrics about neurons that have a controller that is not self-authenticating.
* Better field names in NeuronsFundNeuronPortion.

## Release Notes
```
$ git log --format="%C(auto) %h %s" b5b9e24b769867717cd248f5f17320b88c48fed6..3b3ffedc6aa481fd9b92eefaf46beded9e51a344 --  ./rs/nns/governance ./rs/sns/init
 3b3ffedc6a feat(nns): Disallow SetVisibility ManageNeuron proposals. (#643)
 2b109fb9ba feat(nns): Define update_canister_settings proposal type without execution (#529)
 e13eea93c3 chore(nns): remove long deprecated unused method (#557)
 d04d4bbd5f refactor(nns): no longer generate api types from internal protos (#588)
 2926051d55 refactor(nns): Move governance::init to its own crate to further split type dependencies (#490)
 871efb5cc0 feat(nns): Added setting neuron visibility. (#517)
 b3ac41768f feat(nns): Support StopOrStartCanister proposal action (#458)
 a7f5db70e8 refactor(nervous_system): Add `controller` and `hotkeys` fields to CfParticipant, CfNeuron, and CfInvestment (#373)
 163f1b0a85 feat(nns): Known neurons are always public. (#488)
 3625067d66 feat(nns): Added visibility field to neurons. (#451)
 d0a0cc72a6 refactor(nns): Use governance_api instead of governance types in entrypoint in governance (#457)
 b8cd861b97 feat: Add bitcoin and cycles ledger canisters to protocol canisters (#424)
 8a852bed9d refactor(nervous_system): Move `Principals` message definition to nervous_system/proto (#447)
 de29a1a55b feat(nns): Support upgrading root canister through install_code (#396)
 d732d9d6d7 chore(nns): Add api <--> internal type conversions (#393)
 d35c2fc45a docs(nns): Adds a README to nns/governance. (#325)
 922a89e6b5 feat(nns): Create a new proposal action install_code and support non-root canisters (#394)
 91ceadc58a chore(nervous_system): Principals proto typo fix: 7 -> 1 (#375)
 7d3245ce7f refactor(nervous_system): Add fields with better names to NeuronsFundNeuron
 f88e7aa157 Merge branch 'mention-gtc-excluded-in-neurons-metrics-help-string-daniel-wong' into 'master'
 7e1b19dbab docs(nns): Changed help string of some neurons metrics to say that GTC is excluded.
 891c74208b feat(nns): NNS1-3201 Create 2 new topics while not allowing following to be set on them
 15beeb6a97 build(nns): Add and use workspace version of prometheus-parse.
 9990543029 feat(nns): Exclude the neurons controlled by the Genesis Token canister from metrics about neurons that have a controller that is not self-authenticating.
 42fb959d56 feat(nns): Better field names for API type `NeuronsFundNeuronPortion`
```

## Wasm Verification
Verify that the hash of the gzipped WASM matches the proposed hash.
```
git fetch
git checkout 3b3ffedc6aa481fd9b92eefaf46beded9e51a344
./gitlab-ci/container/build-ic.sh -c
sha256sum ./artifacts/canisters/governance-canister.wasm.gz
```

## Current Version
- Current Git Hash: b5b9e24b769867717cd248f5f17320b88c48fed6
- Current Wasm Hash: 0473f9c802b46a56b177430a012042716e04bece431bf4b60868e74877738721

Registry: Proposal 131397

## Proposal to Upgrade the Registry Canister
### Proposer: DFINITY Foundation
### Git Hash: 3b3ffedc6aa481fd9b92eefaf46beded9e51a344
### New Wasm Hash: fe7793076ac5b1a0d55a5d38b226c6c1a99b3550c1d28b235c53c1607b04ad6b
### Target canister: rwlgt-iiaaa-aaaaa-aaaaa-cai
---

## Features
* Optimize get_key_family.
* Use idna for parsing domain names.

## Release Notes
```
$ git log --format="%C(auto) %h %s" ad5629caa17ac8a4545bc2e3cf0ecc990c9f681e..3b3ffedc6aa481fd9b92eefaf46beded9e51a344 --  ./rs/registry/canister
 c4eb29da75 chore: Remove unused instruction limits from subnet record (#441)
 994af8f874 fix(registry): Optimize get_key_family (#556)
 65c3775ebc fix(NET-1732): use idna for parsing domain names (#414)
 4cc989aa3e chore: upgrade url and uuid and use workspace versions (#417)
 576bb8d173 chore: add buildifier sort comment to Bazel files
 cb24ec8833 refactor(registry): Directly call Prost (en|de)code functions.
```

## Wasm Verification
Verify that the hash of the gzipped WASM matches the proposed hash.
```
git fetch
git checkout 3b3ffedc6aa481fd9b92eefaf46beded9e51a344
./gitlab-ci/container/build-ic.sh -c
sha256sum ./artifacts/canisters/registry-canister.wasm.gz
```

## Current Version
- Current Git Hash: ad5629caa17ac8a4545bc2e3cf0ecc990c9f681e
- Current Wasm Hash: f1555a94d322d5ffa024748d20a58b88b7bca756a82f5da2b3c7ef0f3cd190ea

SNS-WASM: Proposal 131398

## Proposal to Upgrade the Sns-wasm Canister
### Proposer: DFINITY Foundation
### Git Hash: 3b3ffedc6aa481fd9b92eefaf46beded9e51a344
### New Wasm Hash: f4d02df832c1ef951618d954c52ee06cd6046b170d1b360563116c2a40afe643
### Target canister: qaa6y-5yaaa-aaaaa-aaafa-cai
---

## Features
* Neuron basket size can be at most 10.
* At most 1e5 neurons can be created by swap for direct participants.

## Release Notes
```
$ git log --format="%C(auto) %h %s" b39f782ae9e976f6f25c8f1d75b977bd22c81507..3b3ffedc6aa481fd9b92eefaf46beded9e51a344 --  ./rs/nns/sns-wasm ./rs/sns/init
 2926051d55 refactor(nns): Move governance::init to its own crate to further split type dependencies (#490)
 a7f5db70e8 refactor(nervous_system): Add `controller` and `hotkeys` fields to CfParticipant, CfNeuron, and CfInvestment (#373)
 576bb8d173 chore: add buildifier sort comment to Bazel files
 653d0e6d66 feat(sns): Limit SNS neuron basket size to `10`
 4a092ca67d feat(sns): Limit to `100_000` #SNS neurons created for direct participants of a successful swaps
 fb4e5bdfed chore(RUN-931): Add doc links to HypervisorErrors
```

## Wasm Verification
Verify that the hash of the gzipped WASM matches the proposed hash.
```
git fetch
git checkout 3b3ffedc6aa481fd9b92eefaf46beded9e51a344
./gitlab-ci/container/build-ic.sh -c
sha256sum ./artifacts/canisters/sns-wasm-canister.wasm.gz
```

## Current Version
- Current Git Hash: b39f782ae9e976f6f25c8f1d75b977bd22c81507
- Current Wasm Hash: 394b936be4af54ad27c1eb44537202549ad8c23445b34f08d4db1ae9e983ed01

SNS

Governance: Proposal 131399

## Proposal to Publish the SNS Governance Canister WASM to SNS-W
### Proposer: DFINITY Foundation
### Canister Type: governance
### Git Hash: 3b3ffedc6aa481fd9b92eefaf46beded9e51a344
### New Wasm Hash: 904b24dfa4c7eae27adb4835b60266131287873236d281abb8ca46d76179d214
---

## Features
* Include hash of upgrade args in UpgradeSnsControlledCanister payload text rendering.
* At most 1e5 neurons can be created in a swap for direct participants.

## Release Notes
```
$ git log --format="%C(auto) %h %s" a9a67996f7a5f0c4e95a697fafcad6b15a5aae62..3b3ffedc6aa481fd9b92eefaf46beded9e51a344 --  ./rs/sns/governance
 fd0eafaf4a feat(sns): Include hash of upgrade args in UpgradeSnsControlledCanister payload text rendering (#554)
 393a807082 Merge branch '@anchpop/typo' into 'master'
 16dc659a00 docs(sns): Typo fix ManageVotingPermissions → ManageVotingPermission
 eb93426675 Merge branch 'proptest-cannot-scan-all-grains-of-sand-on-earth-daniel-wong' into 'master'
 c6b0115a6a test(sns): There were some small bugs in voting power tests.
 576bb8d173 chore: add buildifier sort comment to Bazel files
 4a092ca67d feat(sns): Limit to `100_000` #SNS neurons created for direct participants of a successful swaps
 2e617c6c6a refactor(sns): Cleanup unnecessary hashing in test code
 50f0c95e62 refactor(sns): NNS1-3130: Use the `get_proposal_id_that_added_wasm` API in `validate_and_render_upgrade_sns_to_next_version`
 c549e32a8a chore: upgrade crates and use workspace versions
```

## Wasm Verification
Verify that the hash of the gzipped WASM matches the proposed hash.
```
git fetch
git checkout 3b3ffedc6aa481fd9b92eefaf46beded9e51a344
./gitlab-ci/container/build-ic.sh -c
sha256sum ./artifacts/canisters/sns-governance-canister.wasm.gz
```
1 Like

Hi,

Reviewers for the CodeGov project have completed the review of all of these proposals.

Proposal ID: 131395
Vote: ADOPT
Full report on OpenChat

Proposal ID: 131396
Vote: ADOPT
Full report on OpenChat

Proposal ID: 131397
Vote: ADOPT
Full report on OpenChat

Proposal ID: 131398
Vote: ADOPT
Full report on OpenChat

Proposal ID: 131399
Vote: ADOPT
Full report on OpenChat

We had several very good reviews of these proposals by @Zane, @cyberowl, @ZackDS, @timk11 and @LaCosta . The hash verification was also performed by me, @tiago89.

I recommend to take a look and see the excellent work that was performed on these reviews by the entire CodeGov team. Feel free to comment here or in the thread of each respective proposal in our community on OpenChat if you have any questions or suggestions about these reviews.

2 Likes

We also reviewed proposal 131409 - Rebootstrap the Bitcoin Testnet Canister:

Proposal ID: 131409
Vote: ADOPT
Full report on OpenChat

@daniel-wong we wrote good feedback that the bitcoin canister team might find helpful. Could you please help us reach out to them about this review?

We were able to fully verify it, and we really appreciated the big effort put onto it’s instructions and easy to follow commands, but we also found:

  • a “memory leak” on just one of the commands (raising the required amount of RAM from 16GB to 64 GB) - details.
  • and the time effort to be way over the claimed 24h expectation. We did with a 16 vCPU and took us around 3 days, probably the need would be a machine of at least 32 vCPU, since the big bottleneck is CPU operations - details.

Thank you and feel free to comment here or in the OpenChat thread if you or Bitcoin Canister Team have any questions or suggestions about this review.

2 Likes

Thank you @tiago89. I know several people on the CodeGov team saw challenges in the verification of this proposal Thank you for putting in the time and effort to get it complete. I also appreciate how you gave a well detailed account of your experience with this review. I hope the folks on the DFINITY side find it to be helpful feedback. Well done!

1 Like