Upgrade the Engine-controller Canister to Commit 3e64518
#144560 · Open · 4 d left · proposed Oct 23, 2026
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_canisterupdate method that creates an empty canister on a
cloud engine subnet, controlled by the given controllers only.
create_enginetakes an optionalresource_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_membershipupdate 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_subnetno 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_subnetaccepts the newUpdateSubnetPayload.cooling_downfield, 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_subnetaccepts the state limits inresource_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_engineno 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.
# 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