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; --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.
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!