v7 to v8 migration

iExec v8 comes with some breaking changes, follow this guide to migrate from v7 to v8.

The v7 iExec Marketplace is still supported until the next v9 release.

V7 Marketplace

The iExec Testnet blockchain (aka Viviani) is no longer available. It is necessary to port your dApps to the iExec Sidechain (aka Bellecour) by redeploying all your digital assets: apps, datasets, workerpools and any related orders.

CLI users

SDK upgrade version

Upgrade iExec SDK CLI to v8:

npm i -g iexec@8

iexec -V
# 8.0.0

Application migration

With the early work around Gramine support for Confidential Computing applications, the workflow for deploying and managing a dapp has slightly evolved.

Standard app migration

The application must be published to the v8 marketplace with its sell order, using same Docker image and I/O management as before.

Scone app migration

Starting from the same Docker image and the same I/O management, you only need to rebuild your docker image with the new v8 sconifier (sconify.sh script). See more details here.

The app initialization must explicitly declare the Scone TEE framework.

iexec app  init --tee-framework scone

Deploy your application to the v8 marketplace:

iexec app deploy <app-address> [options]

Edit iexec.json file with the new "tee scone" tag before signing and publishing your sell order.

{
  "order": {
    "apporder": {
      "app": "<your-app-address>", // starts with 0x
      "appprice": "<unitary-usage-price>",
      "volume": "<allowed-usage-count>",
      "tag": "0x0000000000000000000000000000000000000000000000000000000000000003",
      "datasetrestrict": "0x0000000000000000000000000000000000000000",
      "workerpoolrestrict": "0x0000000000000000000000000000000000000000",
      "requesterrestrict": "0x0000000000000000000000000000000000000000"
    }
  }
}

For more information, please refer to Manage your apporders.

App secret

If your application uses a secret, push it to the v8 SMS (Secret Management Service):

iexec app push-secret <app-address> [options]

Dataset migration

Dataset developers should deploy their v7 dataset to v8 without making any modifications, and then push the dataset secret to the v8 SMS. Additionally, they should publish their sell order for the dataset on the v8 marketplace.

Deploy your dataset to the v8 marketplace:

iexec dataset deploy <dataset-address> [options]

Push your dataset secret to the v8 SMS:

iexec dataset push-secret <dataset-address> --secret-path <secret-path> [options]

Edit iexec.json file with the new "tee scone" tag before signing and publishing your sell order.

{
  "order": {
    "datasetorder": {
      "dataset": "<your-dataset-address>", // starts with 0x
      "datasetprice": "<unitary-usage-price>",
      "volume": "<allowed-usage-count>",
      "tag": "0x0000000000000000000000000000000000000000000000000000000000000003",
      "apprestrict": "0x0000000000000000000000000000000000000000",
      "workerpoolrestrict": "0x0000000000000000000000000000000000000000",
      "requesterrestrict": "0x0000000000000000000000000000000000000000"
    }
  }
}

For more information, please refer to Manage you datasetorders.

Requester migration

Requesters must log in to the v8 Result Proxy to store their results. To use the result encryption feature, they must also push their public key to the v8 SMS.

Login to the v8 Result proxy:

iexec storage init

Push your encryption key to the v8 SMS:

To generate your encryption keypair

iexec result generate-encryption-keypair
iexec result push-encryption-key [options]

Requester secret

Publish your requester secret to the v8 SMS

iexec requester push-secret [options]

JS library

Upgrade the iExec SDK JS library to v8 marketplace in your project's dependencies.

Next, you should proceed to transfer your assets to the v8 marketplace using a method similar to the one employed with the CLI, previously presented on this page.

npm i iexec@8

Last updated