ICPWatch
Get alerts
Protocol canisters

Upgrade the Engine-controller Canister to Commit 3e64518

#144560 · Open · 4 d left · proposed Oct 23, 2026

Yes 93.7%0.7% of voting power has votedNo 6.3%
tally read NNS governance canister, list_proposals
Action
Install Code
Proposer neuron
77
Created
Voting ends
Oct 27, 2026 (in 4 d)

Summary

Upgrade the Engine-controller Canister to Commit 3e64518

__Proposer__: pietro.di.marco at dfinity.org

__Source code__: [3e645182ac06c7b761040615db4e3d44a8349351][new-commit]

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

Features & Fixes

Added

  • New create_canister update method that creates an empty canister on a

cloud engine subnet, controlled by the given controllers only.

  • create_engine takes an optional resource_limits (maximum_state_size,

maximum_state_delta), forwarded to the new subnet's CreateSubnetPayload. Omitted, the subnet keeps the protocol defaults as before.

  • New change_subnet_membership update method that proxies to the registry's

change_subnet_membership endpoint. The registry restricts this to CloudEngine subnets when the caller is the engine controller canister.

Changed

  • update_subnet no longer forces the engine controller's authorized caller

(super admin) into the subnet_admins list. The supplied list is now forwarded to the registry as-is.

  • update_subnet accepts the new UpdateSubnetPayload.cooling_down field, so

the engine controller can make a cloud engine subnet cool down (and stop cooling down again). Its scope is now subnet_admins, is_halted and cooling_down; every other field is still rejected.

  • update_subnet accepts the state limits in resource_limits

(maximum_state_size, maximum_state_delta), so the engine controller can resize a cloud engine subnet's state limits after its nodes change. The query limits are still rejected.

Fixed

  • create_engine no longer forces the engine controller's authorized caller

(super admin) into the subnet_admins list. The supplied list is now forwarded to the registry as-is.

New Commits

$ git log --format="%C(auto) %h %s" e9963e1c5852e407327d04fcccfc1fd8ad50d948..3e645182ac06c7b761040615db4e3d44a8349351 --  ./rs/engine_controller
 2832a802d1 feat(engine-controller): Let the engine controller create canisters on cloud engines (#11924)
 63761b213d feat(engine-controller): Let the engine controller set a cloud engine's state limits (#11863)
 89dd01c3bd feat(registry): Let the engine controller make a cloud engine cool down (#11519)
 48b6f629d7 feat(crypto): add secp256r1 variant to EcdsaCurve (#11573)
 a9ef610479 refactor: Remove ReplicaVersion::default() (#11087)
 662ae8fe9a feat: Add a `cooling_down` field to `SubnetRecord` (#11236)
 e01e2d332e feat: Make query limits configurable in the SubnetRecord (#10882)

Upgrade Arguments

()

Current Version

__Current git hash__: e9963e1c5852e407327d04fcccfc1fd8ad50d948

__Current wasm hash__: 120dce8e153bd9118a3a1eabc9378f8041b81ce563bc97f95d96514e43861aee

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/3e645182ac06c7b761040615db4e3d44a8349351/rs/nervous_system/docs/proposal_verification.md

WASM Verification

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

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

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

# 3. Fingerprint the result.
sha256sum ./artifacts/canisters/engine-controller-canister.wasm.gz

This should match wasm_module_hash field of this proposal.

Upgrade Arguments Verification

[didc][latest-didc] is required.

[latest-didc]: https://github.com/dfinity/candid/releases/latest

didc encode '()' | xxd -r -p | sha256sum

This should match the arg_hash field of this proposal.

Official view: dashboard.internetcomputer.org/proposal/144560