Dfx 0.26.0 Release

That’s absolutely awesome news! Thanks @bjoern

:star_struck:

Presumably licensing won’t make this use case infeasible (i.e. dev licences for testing/verification purposes), given that the intention is for Utopia to be a commercial enterprise-grade product.

I’m super excited about Utopia in general. Big fan!

2 Likes

Hello everyone, dfx 0.26.0-beta.2 is available for testing. You can read the release notes here.

To switch to the beta release, use dfxvm default 0.26.0-beta.2.

The main improvement over 0.26.0-beta.1 is with dfx creating a new wallet if the settings change. This makes it simpler to toggle between pocket-ic and the local replica, avoiding some of the issues our early testers ran into (thanks again for reporting the errors)

6 Likes

Migrating from 0.24.0 to 0.26.0 and am getting this bug in with PicJS when trying to create a canister via another canister’s API. The wasm of the canister that I’m trying to create was built with the dfx generate command. The wasm is being pulled from .dfx/local/canisters/<canister_name>/<canister_name>.wasm.gz

Error: Error from Canister 7uieb-cx777-77776-qaaaq-cai: Canister's Wasm module is not valid: Wasm module has an invalid import section. Module imports function 'subnet_self_copy' from 'ic0' that is not exported by the runtime..
    This is likely an error with the compiler/CDK toolchain being used to build the canister. Please report the error to IC devs on the forum: https://forum.dfinity.org and include which language/CDK was used to create the canister.

Just checked and this issue doesn’t appear with dfx 0.25.1

I ran into this issue mentioned above when using PicJS (PocketIC).

I’ve pulled in the 0.26.0 nns state according to commit f6f5e0927d14886e4bd67f776ee889f31cec2364 from the ic repo (the commit that 0.26.0 is built off of).

The error occurs during my pic (pocketIC) tests. When I try to call an endpoint on my canister that creates a canister through it, with this code:

  const statusCheckerResult = await cycleOps.actor.createStatusChecker();
  if ("err" in statusCheckerResult) {
    throw new Error(
      `Status checker creation failed. Error: ${statusCheckerResult.err}`
    );
  }

I receive this error:

Status checker creation failed. Error: Error from Canister 7uieb-cx777-77776-qaaaq-cai: Canister's Wasm module is not valid: Wasm module has an invalid import section. Module imports function 'subnet_self_copy' from 'ic0' that is not exported by the runtime..
    This is likely an error with the compiler/CDK toolchain being used to build the canister. Please report the error to IC devs on the forum: https://forum.dfinity.org and include which language/CDK was used to create the canister.

It looks like It looks like subnet_self_copy was added here feat(EXC-1847): Support for `ic0.subnet_self()` (#3637) · dfinity/ic@f0058db · GitHub

Is it possible that some of this didn’t make it into PocketIC/PicJS?

@mraszyk @NathanosDev

PocketIC shipped with dfx is indeed built at commit f6f5e0927d14886e4bd67f776ee889f31cec2364 which includes the ic0.subnet_self_size and ic0.subnet_self_copy system API (you can confirm that by deploying your canister via dfx instead of PicJS to a PocketIC instance created via dfx start).

I’m not sure about PicJS: could you please comment on that, @NathanosDev ?

dfx 0.26.0 has been promoted, see: DFX 0.26.0 has been promoted!

Was this issue fixed by using the @dfinity/pic package? That library has the latest pocketic which matches the one used by DFX 0.26.0.

2 Likes

Yes, this specific issue was fixed by the latest @dfinity/pic package! Thanks for following up.

2 Likes