# Dfx 0.14.0 is promoted!

**URL:** https://forum.dfinity.org/t/dfx-0-14-0-is-promoted/19656
**Category:** Developers
**Created:** [April 27, 2023, 6:04pm UTC](https://forum.dfinity.org/t/dfx-0-14-0-is-promoted/19656 "2023-04-27T18:04:03Z")
**Posts on this page:** 19
**Page:** 1

<div class="post-metadata">

### Author: ![ericswanson](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/ericswanson/32/622_2.png) [@ericswanson](https://forum.dfinity.org/u/ericswanson)
#### Post date: [April 27, 2023, 6:04pm UTC](https://forum.dfinity.org/t/dfx-0-14-0-is-promoted/19656/1 "2023-04-27T18:04:03Z")

</div>

Please see:

- [release notes](https://github.com/dfinity/sdk/releases/tag/0.14.0)
- [migration guide](https://github.com/dfinity/sdk/blob/master/docs/migration/dfx-0.14.0-migration-guide.md)

Highlights:

- updates default gateway to [icp0.io](http://icp0.io)
- new optimizer available
- asset canister supports v2 certification

---

<div class="post-metadata">

### Author: ![benji](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/benji/32/8069_2.png) [@benji](https://forum.dfinity.org/u/benji)
#### Post date: [April 27, 2023, 7:37pm UTC](https://forum.dfinity.org/t/dfx-0-14-0-is-promoted/19656/2 "2023-04-27T19:37:33Z")

</div>

Pinning this thread for 2 days since there has been multiple reports regarding ic0.app/icp0.io domains.

---

<div class="post-metadata">

### Author: ![benji](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/benji/32/8069_2.png) [@benji](https://forum.dfinity.org/u/benji)
#### Post date: [April 27, 2023, 7:38pm UTC](https://forum.dfinity.org/t/dfx-0-14-0-is-promoted/19656/3 "2023-04-27T19:38:24Z")

</div>



---

<div class="post-metadata">

### Author: ![Vivienne](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/vivienne/32/29170_2.png) [@Vivienne](https://forum.dfinity.org/u/Vivienne)
#### Post date: [April 28, 2023, 7:38am UTC](https://forum.dfinity.org/t/dfx-0-14-0-is-promoted/19656/4 "2023-04-28T07:38:53Z")

</div>

Here’s a list of forum posts that are likely relevant to a lot of people right now, especially because of the change from `ic0.app` to `icp0.io`:

> [@React front-end not connecting to motoko backend after a successful deployement on ICP network](https://forum.dfinity.org/t/react-front-end-not-connecting-to-motoko-backend-after-a-successful-deployement-on-icp-network/19644):
>
> In my react front-end I am accessing the motoko backend functions by this line of code import { mytodo\_backend } from "../../../declarations/mytodo\_backend/index";, locally everything is working fine and i can persist the data to the backend without any problem, but after deploying the front-end appears to just be working on its own and not connect to the backend at all. The project is a simple todo dapp. [This is the link to my github repo of the project.](https://github.com/iamenochchirima/IC-ToDo).

> [@"404 Not Found" error when trying to access the url of my frontend canister after successfully deploying](https://forum.dfinity.org/t/404-not-found-error-when-trying-to-access-the-url-of-my-frontend-canister-after-successfully-deploying/19635):
>
> I have just finished creating my little todo app with a motoko backend and react frontend, locally everything is working fine, I can deploy my canisters and use them fine but after deploying the project on the icp networkt with the command “dfx deploy --network ic”, the deployement is successfull, the backend canister url is working but on my front-end canister url thats where I am getting 404 error when I try to access it. What could be the problem? [This is my github repo](https://github.com/iamenochchirima/IC-ToDo) for the little projec…

> [@\[FOLLOW UP ON ITEM\] New canisters will only be accessible through the icp0.io domain. Existing canisters will be accessible both through ic0.app and icp0.io](https://forum.dfinity.org/t/follow-up-on-item-new-canisters-will-only-be-accessible-through-the-icp0-io-domain-existing-canisters-will-be-accessible-both-through-ic0-app-and-icp0-io/18889/40):
>
> The only two pitfalls that I’m aware of are: asset canister CSP: Your asset canister(s) may have a content security policy set for it to only accept assets from the old domain. Check in your .ic-assets.json files (if present) Internet Identity login produces different IDs when logging in through a different domain. This is a limitation/feature of how WebAuth works

---

<div class="post-metadata">

### Author: ![skilesare](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/skilesare/32/5609_2.png) [@skilesare](https://forum.dfinity.org/u/skilesare)
#### Post date: [April 28, 2023, 12:41pm UTC](https://forum.dfinity.org/t/dfx-0-14-0-is-promoted/19656/5 "2023-04-28T12:41:37Z")

</div>

Where can we find more info on the following:

```auto
The options are "cycles", "size", "O4", "O3", "O2", "O1", "O0", "Oz", and "Os". The options starting with "O" are the optimization levels that wasm-opt provides. The "cycles" and "size" options are recommended defaults for optimizing for cycle usage and binary size respectively.

```

What should we be using in production?

---

<div class="post-metadata">

### Author: ![kentosugama](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/kentosugama/32/6262_2.png) [@kentosugama](https://forum.dfinity.org/u/kentosugama)
#### Post date: [April 28, 2023, 5:41pm UTC](https://forum.dfinity.org/t/dfx-0-14-0-is-promoted/19656/6 "2023-04-28T17:41:54Z")

</div>

Hey @skilesare

We recommend “cycles” as the default option. You can find specific numbers here:

> <https://github.com/dfinity/canister-profiling/pull/50>
>
> I think it would be good to merge this so that we can measure performance improv…ements beyond \`wasm-opt\` and not reimplement optimizations already included in the optimizer.
> 
> For future reference: https://github.com/dfinity/sdk/pull/3090

If you are very constrained by binary size, “size” let’s you shave off another percent or two but you will take a performance hit relative to “cycles”. Note that “cycles” is the same as “O3” and “size” is the same as “Oz”.

If you want to get into the weeds, this is where the optimizations come from: [GitHub - WebAssembly/binaryen: Optimizer and compiler/toolchain library for WebAssembly](https://github.com/WebAssembly/binaryen)

---

<div class="post-metadata">

### Author: ![lastmjs](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/lastmjs/32/3406_2.png) [@lastmjs](https://forum.dfinity.org/u/lastmjs)
#### Post date: [April 29, 2023, 6:28pm UTC](https://forum.dfinity.org/t/dfx-0-14-0-is-promoted/19656/7 "2023-04-29T18:28:36Z")

</div>

It would be really nice if dfx also automatically gzipped the binary after optimization. Optimization will not always be enough, and if it isn’t right now there seems to be no way to really gzip the binary before installation but after it’s been optimized with the built-in wasm-opt.

A post\_build script would also potentially solve the problem.

Discussion here: [Automatically gzip Wasm binaries · dfinity/sdk · Discussion #3110 · GitHub](https://github.com/dfinity/sdk/discussions/3110)

---

<div class="post-metadata">

### Author: ![lastmjs](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/lastmjs/32/3406_2.png) [@lastmjs](https://forum.dfinity.org/u/lastmjs)
#### Post date: [April 29, 2023, 6:29pm UTC](https://forum.dfinity.org/t/dfx-0-14-0-is-promoted/19656/8 "2023-04-29T18:29:03Z")

</div>

Is the wasm-opt functionality available from the dfx executable somehow? For example, can I do something like `dfx wasm-opt [path-to-binary]`?

---

<div class="post-metadata">

### Author: ![kentosugama](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/kentosugama/32/6262_2.png) [@kentosugama](https://forum.dfinity.org/u/kentosugama)
#### Post date: [April 29, 2023, 11:36pm UTC](https://forum.dfinity.org/t/dfx-0-14-0-is-promoted/19656/9 "2023-04-29T23:36:24Z")

</div>

No but you can find the CLI here: [GitHub - dfinity/ic-wasm: A collection of libraries and tools for transforming Wasm canisters running on the Internet Computer](https://github.com/dfinity/ic-wasm)

The optimizer is under the `shrink` command

---

<div class="post-metadata">

### Author: ![lastmjs](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/lastmjs/32/3406_2.png) [@lastmjs](https://forum.dfinity.org/u/lastmjs)
#### Post date: [April 30, 2023, 3:10am UTC](https://forum.dfinity.org/t/dfx-0-14-0-is-promoted/19656/10 "2023-04-30T03:10:05Z")

</div>

My use case is Azle and Kybra, CDKs. It would be nice to not have to install ic-wasm for our users, it adds to initial install times. dfx is a prerequisite, so it would be great to have that functionality through the dfx executable.

---

<div class="post-metadata">

### Author: ![skilesare](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/skilesare/32/5609_2.png) [@skilesare](https://forum.dfinity.org/u/skilesare)
#### Post date: [May 8, 2023, 9:59pm UTC](https://forum.dfinity.org/t/dfx-0-14-0-is-promoted/19656/11 "2023-05-08T21:59:28Z")

</div>

I’m on a Mac M1. I cannot run dfx nns install:

```auto
Downloading /Users/afat/.cache/dfinity/versions/0.14.0/wasms/ic-icrc1-index.wasm
  from .gz: https://download.dfinity.systems/ic/21aa2ba29bf97115aa3cdedecf0655d0cfa64bf1/canisters/ic-icrc1-index.wasm.gz
ic-nns-init --pass-specified-id --url http://127.0.0.1:57527/ --wasm-dir /Users/afat/.cache/dfinity/versions/0.14.0/wasms --initialize-ledger-with-test-accounts 5b315d2f6702cb3a27d826161797d7b2c2e131cd312aece51d4d5574d1247087 --initialize-ledger-with-test-accounts 2b8fbde99de881f695f279d2a892b1137bfe81a42d7694e064b1be58701e1138 --sns-subnet utvl3-iivpa-pw4l7-hb4ex-2xwrd-hj735-emloh-2drcw-ne3ky-ty42r-7qe
dyld[25016]: Library not loaded: /usr/local/opt/openssl@3/lib/libssl.3.dylib
  Referenced from: <137E40DB-D0B9-3FFA-B736-2AF42D0C0F72> /Users/afat/.cache/dfinity/versions/0.14.0/ic-nns-init
  Reason: tried: '/usr/local/opt/openssl@3/lib/libssl.3.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/opt/openssl@3/lib/libssl.3.dylib' (no such file), '/usr/local/opt/openssl@3/lib/libssl.3.dylib' (no such file), '/usr/local/lib/libssl.3.dylib' (no such file), '/usr/lib/libssl.3.dylib' (no such file, not in dyld cache)
Error: Failed to install NNS components.
Caused by: Failed to install NNS components.
  Failed to install NNS components.
    ic-nns-init call failed

```

Our team is reporting this and it seems to align with people using Macs.

---

<div class="post-metadata">

### Author: ![NathanosDev](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/nathanosdev/32/7204_2.png) [@NathanosDev](https://forum.dfinity.org/u/NathanosDev)
#### Post date: [May 8, 2023, 10:25pm UTC](https://forum.dfinity.org/t/dfx-0-14-0-is-promoted/19656/12 "2023-05-08T22:25:25Z")

</div>

I get the same issue on Ubuntu. You need to install openssl

---

<div class="post-metadata">

### Author: ![skilesare](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/skilesare/32/5609_2.png) [@skilesare](https://forum.dfinity.org/u/skilesare)
#### Post date: [May 8, 2023, 11:04pm UTC](https://forum.dfinity.org/t/dfx-0-14-0-is-promoted/19656/13 "2023-05-08T23:04:20Z")

</div>

I have v3.1.0 The directory it is looking for doesn’t exist. /opt/ isn’t there.

---

<div class="post-metadata">

### Author: ![levi](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/levi/32/22608_2.png) [@levi](https://forum.dfinity.org/u/levi)
#### Post date: [May 8, 2023, 11:15pm UTC](https://forum.dfinity.org/t/dfx-0-14-0-is-promoted/19656/14 "2023-05-08T23:15:56Z")

</div>

> <https://github.com/dfinity/sdk/issues/2848>
>
> \<!--
> Thank you for filing a bug report! 🐛 Please provide a short summary of the… bug,
> along with any information you feel relevant to replicating the bug.
> \--\>
> 
> I tried the following:
> 
> 1. dfx nns install 
> 
> I expected to see this happen: install the nns canisters on the local replica.
> 
> Instead, this happened: 
> The first error that came up was: ic-nns-init: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory. 
> Looks like the error is because the ic-nns-init binary is looking for the specific libssl.so.1.1 file, instead of the standard libssl.so file that lets the operating system take care of the symlink to the latest version.
> Same thing happened with libcrypto: ic-nns-init: error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No such file or directory.
> To try to fix the above, in my terminal: sudo ln -s libssl.so libssl.so.1.1 && sudo ln -s libcrypto.so libcrypto.so.1.1
> This got past those specific errors but 'dfx nns install' still errored out with a related error: .cache/dfinity/versions/0.12.2-beta.0+rev29.e093d6b4/ic-nns-init: /lib64/libssl.so.1.1: version \`OPENSSL\_1\_1\_0' not found
> 
> 
> \### Meta
> 
> \`dfx --version\`:
> \`\`\`
> cargo build at e093d6b434f8d5cbbc5a0246ca19fb044928e3a3 on a fedora linux
> 0.12.2-beta.0+rev29.e093d6b4
> 
> \`\`\`
> 
> \<!--
> If possible, please add log output using the --verbose flag.
> This will make debugging a lot easier.
> \--\>
> \<details\>\<summary\>Further log output\</summary\>
> \<p\>
> 
> \`\`\`
> ic-nns-init --url http://127.0.0.1:39197/ --wasm-dir /home/levi/.cache/dfinity/versions/0.12.2-beta.0+rev29.e093d6b4/wasms --initialize-ledger-with-test-accounts 5b315d2f6702cb3a27d826161797d7b2c2e131cd312aece51d4d5574d1247087 --initialize-ledger-with-test-accounts 2b8fbde99de881f695f279d2a892b1137bfe81a42d7694e064b1be58701e1138 --sns-subnet mvlfs-a5ji7-bt26q-ixlh4-g43ai-pog7g-6zg57-p24iv-nww7a-ognxh-wqe
> /home/levi/.cache/dfinity/versions/0.12.2-beta.0+rev29.e093d6b4/ic-nns-init: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
> Error: Failed to install NNS components.
> Caused by: Failed to install NNS components.
> Failed to install NNS components.
> ic-nns-init call failed
> 
> 
> ic-nns-init --url http://127.0.0.1:39197/ --wasm-dir /home/levi/.cache/dfinity/versions/0.12.2-beta.0+rev29.e093d6b4/wasms --initialize-ledger-with-test-accounts 5b315d2f6702cb3a27d826161797d7b2c2e131cd312aece51d4d5574d1247087 --initialize-ledger-with-test-accounts 2b8fbde99de881f695f279d2a892b1137bfe81a42d7694e064b1be58701e1138 --sns-subnet mvlfs-a5ji7-bt26q-ixlh4-g43ai-pog7g-6zg57-p24iv-nww7a-ognxh-wqe
> /home/levi/.cache/dfinity/versions/0.12.2-beta.0+rev29.e093d6b4/ic-nns-init: error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No such file or directory
> Error: Failed to install NNS components.
> Caused by: Failed to install NNS components.
> Failed to install NNS components.
> ic-nns-init call failed
> 
> 
> ic-nns-init --url http://127.0.0.1:39197/ --wasm-dir /home/levi/.cache/dfinity/versions/0.12.2-beta.0+rev29.e093d6b4/wasms --initialize-ledger-with-test-accounts 5b315d2f6702cb3a27d826161797d7b2c2e131cd312aece51d4d5574d1247087 --initialize-ledger-with-test-accounts 2b8fbde99de881f695f279d2a892b1137bfe81a42d7694e064b1be58701e1138 --sns-subnet mvlfs-a5ji7-bt26q-ixlh4-g43ai-pog7g-6zg57-p24iv-nww7a-ognxh-wqe
> /home/levi/.cache/dfinity/versions/0.12.2-beta.0+rev29.e093d6b4/ic-nns-init: /lib64/libssl.so.1.1: version \`OPENSSL\_1\_1\_0' not found (required by /home/levi/.cache/dfinity/versions/0.12.2-beta.0+rev29.e093d6b4/ic-nns-init)
> /home/levi/.cache/dfinity/versions/0.12.2-beta.0+rev29.e093d6b4/ic-nns-init: /lib64/libcrypto.so.1.1: version \`OPENSSL\_1\_1\_0' not found (required by /home/levi/.cache/dfinity/versions/0.12.2-beta.0+rev29.e093d6b4/ic-nns-init)
> Error: Failed to install NNS components.
> Caused by: Failed to install NNS components.
> Failed to install NNS components.
> ic-nns-init call failed
> 
> 
> 
> \`\`\`
> 
> \</p\>
> \</details\>

---

<div class="post-metadata">

### Author: ![skilesare](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/skilesare/32/5609_2.png) [@skilesare](https://forum.dfinity.org/u/skilesare)
#### Post date: [May 25, 2023, 3:45pm UTC](https://forum.dfinity.org/t/dfx-0-14-0-is-promoted/19656/15 "2023-05-25T15:45:53Z")

</div>

This is still a major issue for anyone on mac…we can’t upgrade our projects test environments until we can get dfx nns install working.

I tried following the workaround that levi posted but ended up with:

```auto
ic-nns-init --pass-specified-id --url http://127.0.0.1:50489/ --wasm-dir /Users/afat/.cache/dfinity/versions/0.14.0/wasms --initialize-ledger-with-test-accounts 5b315d2f6702cb3a27d826161797d7b2c2e131cd312aece51d4d5574d1247087 --initialize-ledger-with-test-accounts 2b8fbde99de881f695f279d2a892b1137bfe81a42d7694e064b1be58701e1138 --sns-subnet w2hnf-4j6rg-opjqo-r7kgt-h7uhj-wgwsw-qizku-cc4xy-u55qw-xjgzs-cqe
dyld[15816]: Library not loaded: /usr/local/opt/openssl@3/lib/libssl.3.dylib
  Referenced from: <137E40DB-D0B9-3FFA-B736-2AF42D0C0F72> /Users/afat/.cache/dfinity/versions/0.14.0/ic-nns-init
  Reason: tried: '/usr/local/opt/openssl@3/lib/libssl.3.dylib' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64')), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/opt/openssl@3/lib/libssl.3.dylib' (no such file), '/usr/local/opt/openssl@3/lib/libssl.3.dylib' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64')), '/usr/local/lib/libssl.3.dylib' (no such file), '/usr/lib/libssl.3.dylib' (no such file, not in dyld cache)
Error: Failed to install NNS components.
Caused by: Failed to install NNS components.
  Failed to install NNS components.
    ic-nns-init call failed

```

@ericswanson

---

<div class="post-metadata">

### Author: ![ericswanson](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/ericswanson/32/622_2.png) [@ericswanson](https://forum.dfinity.org/u/ericswanson)
#### Post date: [May 26, 2023, 6:29am UTC](https://forum.dfinity.org/t/dfx-0-14-0-is-promoted/19656/16 "2023-05-26T06:29:36Z")

</div>

> [@skilesare](#):
>
> `openssl@3`

dfx 0.14.1 should resolve these openssl3 issues, by static linking to openssl. I expect to see dfx 0.14.1-beta.1 created in the next few days.

---

<div class="post-metadata">

### Author: ![mnl](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/mnl/32/5909_2.png) [@mnl](https://forum.dfinity.org/u/mnl)
#### Post date: [May 26, 2023, 12:44pm UTC](https://forum.dfinity.org/t/dfx-0-14-0-is-promoted/19656/17 "2023-05-26T12:44:19Z")

</div>

could you give it a spin?

> dfx 0.14.1-beta.1 is now available for manual installation and testing.
> 
> ```auto
> DFX_VERSION=0.14.1-beta.1 sh -ci "$(curl -fsSL https://internetcomputer.org/install.sh)"
> 
> ```
> 
> Release notes: [Release 0.14.1-beta.1 · dfinity/sdk · GitHub](https://github.com/dfinity/sdk/releases/tag/0.14.1-beta.1)

---

<div class="post-metadata">

### Author: ![skilesare](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/skilesare/32/5609_2.png) [@skilesare](https://forum.dfinity.org/u/skilesare)
#### Post date: [May 26, 2023, 12:51pm UTC](https://forum.dfinity.org/t/dfx-0-14-0-is-promoted/19656/18 "2023-05-26T12:51:38Z")

</div>

> [@mnl](#):
>
> `DFX_VERSION=0.14.1-beta.1 sh -ci "$(curl -fsSL https://internetcomputer.org/install.sh)"`

It installed for me! Thanks.

---

<div class="post-metadata">

### Author: ![skilesare](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/skilesare/32/5609_2.png) [@skilesare](https://forum.dfinity.org/u/skilesare)
#### Post date: [May 26, 2023, 12:55pm UTC](https://forum.dfinity.org/t/dfx-0-14-0-is-promoted/19656/19 "2023-05-26T12:55:09Z")

</div>

This looks sexy:

### fix: motoko canisters can import other canisters with service constructor

After specific canister builder output wasm and candid file, `dfx` will do some post processing on the candid file.

The complete IDL will be copied into `.dfx` folder with name `constructor.did`.  
It will be used for type checking during canister installation.

Then it is separated into two parts: `service.did` and `init_args.txt`, corresponding to canister metadata `candid:service` and `candid:args`.

`service.did` will be imported during dependent canisters building. And it will also be used by the Motoko LSP to provide IDE support.

What does this look like in practice? @claudio
