Highlights of what’s new in 0.9.0
An overview of the 0.9.0 release:
This release removes the
--no-wallet parameter by making use of the fact that canisters can now have multiple controllers.
Please see below for required upgrade steps.
Changes to DFX
New feature (breaking change): Remove the wallet proxy and the --no-wallet flag
Breaking change: Canister commands, except for
dfx canister create, will make the call directly, rather than via the user’s wallet. The
--no-wallet flag is thus removed from
dfx canister as its behavior is the default.
When working with existing canisters, use the
--wallet flag in conjunction with
dfx identity get-wallet in order to restore the old behavior.
You will need to upgrade your wallet and each of your existing canisters to work with the new system. To do so, execute the following in each of your dfx projects:
dfx wallet upgrade
dfx canister --wallet "$(dfx identity get-wallet)" update-settings --all --add-controller "$(dfx identity get-principal)"
To upgrade projects that you have deployed to the IC mainnet, execute the following:
dfx wallet --network ic upgrade
dfx canister --network ic --wallet "$(dfx identity --network ic get-wallet)" update-settings --all --add-controller "$(dfx identity get-principal)"
New feature: Add --add-controller and --remove-controller flags for "canister update-settings"
dfx canister update-settings previously only let you overwrite the entire controller list;
--remove-controller instead add or remove from the list.
New feature: Add --no-withdrawal flag for "canister delete" for when the canister is out of cycles
dfx canister delete --no-withdrawal <canister> can be used to delete a canister without attempting to withdraw cycles.
Fixed: set RUST_MIN_STACK to 8MB for ic-starter (and therefore replica)
This matches the value used in production and is meant to exceed the configured 5 MB wasmtime stack.
Fixed: asset uploads will retry failed requests as expected
Fixed a defect in asset synchronization where no retries would be attempted after the first 30 seconds overall.
Updated Motoko from 0.6.11 to 0.6.20.
Implement type union/intersection
Transform for-loops on arrays into while-loops
Tighten typing rules for type annotations in patterns
Candid decoding: skip vec any fast
Bump up MAX_HP_FOR_GC from 1GB to 3GB
Candid decoder: Trap if a principal value is too large
Eliminate bignum calls from for-iteration on arrays
Improve performance of bignum equality
Stable signatures: frontend, metadata, command-line args
Added heartbeat support
Module hash: 53ec1b030f1891bf8fd3877773b15e66ca040da539412cc763ff4ebcaf4507c5 https://github.com/dfinity/cycles-wallet/commit/57e53fcb679d1ea33cc713d2c0c24fc5848a9759
Updated replica to blessed commit 75138bbf11e201aac47266f07bee289dc18a082b. This incorporates the following executed proposals:
Repeated warning about missing max_block_payload_size registry setting
The replica logs will display a warning about a missing registry setting approximately every five minutes. The replica will use the required minimum value. You can ignore this warning.
The warnings look like this:
Jan 19 19:03:42.719 WARN s:crz25-qujie-7jqyj-d5ldq-p3psu-y2hmg-c32rf-pnfda-xskfm-dtnmc-iqe/n:fw7p7-4ynfm-s6e5c-axkum-76532-d2k4j-aowre-7twtq-gabts-hfs2e-cae/ic_consensus/payload_builder max_block_payload_size too small. current value: 0, required minimum: 3670016! max_block_payload_size must be larger than max_ingress_bytes_per_message and MAX_XNET_PAYLOAD_IN_BYTES. Update registry!