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 dfx version. 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 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; --add-controller
and --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.
Motoko
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 scheduling
Improve performance of bignum equality
Stable signatures: frontend, metadata, command-line args
Added heartbeat support
Cycles wallet
Module hash: 53ec1b030f1891bf8fd3877773b15e66ca040da539412cc763ff4ebcaf4507c5 \https://github.com/dfinity/cycles-wallet/commit/57e53fcb679d1ea33cc713d2c0c24fc5848a9759\
Replica
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!