From 7a636181e4b818e76e48f2b1a6f1864846c72d25 Mon Sep 17 00:00:00 2001 From: lsgunnlsgunn Date: Tue, 23 Jun 2020 11:08:52 -0700 Subject: [PATCH 01/30] add netlify.toml --- .../assets/images/magnify-welcome.png | Bin 0 -> 137945 bytes .../assets/images/no-rooms-available.png | Bin 0 -> 143817 bytes .../quickstart/assets/images/personal-id.png | Bin 0 -> 50939 bytes .../quickstart/pages/magnify-users-guide.adoc | 83 ++++++++++++++++++ netlify.toml | 0 5 files changed, 83 insertions(+) create mode 100644 modules/quickstart/assets/images/magnify-welcome.png create mode 100644 modules/quickstart/assets/images/no-rooms-available.png create mode 100644 modules/quickstart/assets/images/personal-id.png create mode 100644 modules/quickstart/pages/magnify-users-guide.adoc create mode 100644 netlify.toml diff --git a/modules/quickstart/assets/images/magnify-welcome.png b/modules/quickstart/assets/images/magnify-welcome.png new file mode 100644 index 0000000000000000000000000000000000000000..89668740dafae0e0b9b746e4049fa97dcd6bbe9b GIT binary patch literal 137945 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 L+nJT0^^W^5!TmF| literal 0 HcmV?d00001 diff --git a/modules/quickstart/assets/images/no-rooms-available.png b/modules/quickstart/assets/images/no-rooms-available.png new file mode 100644 index 0000000000000000000000000000000000000000..b3d0cda004e7d677d93b3bdd208e2234b300da0b GIT binary patch literal 143817 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 literal 0 HcmV?d00001 diff --git a/modules/quickstart/assets/images/personal-id.png b/modules/quickstart/assets/images/personal-id.png new file mode 100644 index 0000000000000000000000000000000000000000..80702e14ee84b8320f932c5bc461226791d90982 GIT binary patch literal 50939 zcmeFZbzGEN*9MG;+30G5*#lj%QKtn^rl9!XxKtsDb2|S

tP9r^v? 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 literal 0 HcmV?d00001 diff --git a/modules/quickstart/assets/images/quickstart-prompt.png b/modules/quickstart/assets/images/quickstart-prompt.png deleted file mode 100644 index 8ead58eed01d03da51f6f8e0d2d7050eb685863b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 75566 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

Yc-5Pb)1^=s9nL=3gB9-K2=Ol(VNh(}Uis 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 D+v5@g diff --git a/modules/quickstart/assets/images/quickstart-return.png b/modules/quickstart/assets/images/quickstart-return.png deleted file mode 100644 index 8831a70857e7325d0f42721b42a902909f72100f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71613 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 z 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 th}JounTh|yKLu~T7zW~qM)ZYLA diff --git a/modules/quickstart/pages/network-quickstart.adoc b/modules/quickstart/pages/network-quickstart.adoc index 18c0507a6..9ecd7c723 100644 --- a/modules/quickstart/pages/network-quickstart.adoc +++ b/modules/quickstart/pages/network-quickstart.adoc @@ -16,7 +16,7 @@ This _Quick Start_ scenario assumes that you are installing the {sdk-short-name} If you are only deploying projects in a local development environment, see the link:local-quickstart{outfilesuffix}[Local development] scenario. To get started, let's build and deploy a simple Hello application that has just one function—called `+greet+`. -The `+greet+` function accepts one text argument and returns the result with a greeting similar to **Hello,{nbsp}everyone!** in a terminal if you run the application using the command-line or in an alert pop-up window if you access the application in a browser. +The `+greet+` function accepts one text argument and returns the result with a greeting similar to **Hello,{nbsp}everyone!** in a terminal if you run the application using the command-line or in an HTML page if you access the application in a browser. [[net-before]] == Before you begin @@ -171,23 +171,28 @@ The `+dfx deploy+` command output displays information about the operations it p For example, this step registers two network-specific identifiers—one for the `+hello+` main program and one for the `+hello_assets+` front-end user interface—and installation information similar to the following: + .... +Creating a wallet canister on the ic network. +The wallet canister on the "ic" network for user "default" is "pddoi-uiaaa-aaaab-qanua-cai" Deploying all canisters. Creating canisters... Creating canister "hello"... -Creating the canister using the wallet canister... -Creating a wallet canister on the ic network. -The wallet canister on the "ic" network for user "default" is "oi7fh-tiaaa-aaaab-aahpq-cai" -"hello" canister created on network "ic" with canister id: "lue7c-yaaaa-aaaab-aahqa-cai" +"hello" canister created on network "ic" with canister id: "peci4-zqaaa-aaaab-qanuq-cai" Creating canister "hello_assets"... -Creating the canister using the wallet canister... -"hello_assets" canister created on network "ic" with canister id: "ltfzw-vyaaa-aaaab-aahqq-cai" +"hello_assets" canister created on network "ic" with canister id: "pnbda-pyaaa-aaaab-qanva-cai" Building canisters... Building frontend... Installing canisters... -Installing code for canister hello, with canister_id lue7c-yaaaa-aaaab-aahqa-cai -Installing code for canister hello_assets, with canister_id ltfzw-vyaaa-aaaab-aahqq-cai +Installing code for canister hello, with canister_id peci4-zqaaa-aaaab-qanuq-cai +Installing code for canister hello_assets, with canister_id pnbda-pyaaa-aaaab-qanva-cai Authorizing our identity (default) to the asset canister... Uploading assets to asset canister... + /index.html 1/1 (472 bytes) + /index.js 1/1 (295480 bytes) + /main.css 1/1 (484 bytes) + /sample-asset.txt 1/1 (24 bytes) + /logo.png 1/1 (25397 bytes) + /index.js.map 1/1 (957046 bytes) + /index.js.LICENSE.txt 1/1 (499 bytes) Deployed canisters. .... . Call the `+hello+` canister and the predefined `+greet+` function by running the following command: @@ -266,7 +271,7 @@ In this example, the new balance is 99,999,974,082,913 cycles. [[quickstart-frontend]] == Test the application front-end -Now that you have verified that your application has been deployed and tested its operation using the command line, let's verify that you can access the front-end pop-up window using your web browser. +Now that you have verified that your application has been deployed and tested its operation using the command line, let's verify that you can access the front-end using your web browser. To access the application front-end: @@ -276,20 +281,19 @@ To access the application front-end: For example, the full URL should look similar to the following: + .... -https://wmbea-daaaa-aaaab-aacjq-cai.ic0.app/ +https://pnbda-pyaaa-aaaab-qanva-cai.ic0.app/ .... + -Navigating to this URL displays the prompt pop-up window. +Navigating to this URL displays the HTML entry page for the template application. For example: + -image:net-alert-prompt.png[Prompt pop-up window] +image:net-front-end-prompt.png[HTML page with prompt ] -. Type a greeting, then click *OK* to return the greeting. +. Type a greeting, then click *Click Me* to return the greeting. + For example: + -image:net-alert-window.png[Hello, everyone! greeting] -. Click *OK* to close the alert pop-up window. +image:net-result.png[Hello, Everyone! greeting] [[next-steps]] == Next steps From 0f6172552dd4d26744967d68b7f65511635ed076 Mon Sep 17 00:00:00 2001 From: lsgunnlsgunn Date: Fri, 9 Apr 2021 16:02:07 -0700 Subject: [PATCH 26/30] WIP frontend --- .../pages/tutorials/custom-frontend.adoc | 70 +++++++++++-------- 1 file changed, 39 insertions(+), 31 deletions(-) diff --git a/modules/developers-guide/pages/tutorials/custom-frontend.adoc b/modules/developers-guide/pages/tutorials/custom-frontend.adoc index 426b790e0..3e9e21646 100644 --- a/modules/developers-guide/pages/tutorials/custom-frontend.adoc +++ b/modules/developers-guide/pages/tutorials/custom-frontend.adoc @@ -12,8 +12,7 @@ Now that you have a basic understanding of how to create, build, and deploy a si This tutorial illustrates using a simple React framework to create a new front-end for the default sample program and guides you through some basic modifications to customize the interface displayed. Later tutorials expand on the techniques introduced here, but if you already know how to use CSS, HTML, JavaScript, and React or other frameworks to build your user interface, you can skip this tutorial. -NOTE: Currently, you can only use Javascript to implement the front-end for your canister. -This tutorial illustrates using the React framework to manage the Document Object Model (DOM) for your canister. +NOTE: This tutorial illustrates using the React framework to manage the Document Object Model (DOM) for your canister. Because React has its own custom DOM syntax, you need to modify the webpack configuration to compile the front-end code, which is written in JSX. For more information about learning to use React and JSX, see link:https://reactjs.org/docs/getting-started.html[Getting started] on the https://reactjs.org/[React website]. == Before you begin @@ -87,11 +86,11 @@ NOTE: As an alternative to installing these modules, you can edit the default `+ include::example$custom-frontend-package.json[] .... -== Modify the default configuration +== Review the default configuration -For this tutorial, you need to modify the default front-end settings in the `+dfx.json+` configuration file for your project. +Before we make any changes to use React for this tutorial, let's review the default front-end settings in the `+dfx.json+` configuration file for your project. -To modify the default `+dfx.json+` configuration file: +To review the default `+dfx.json+` configuration file: . Open the `+dfx.json+` configuration file in a text editor. . Notice that the `+canisters+` key includes settings for a `custom_greeting_assets` canister. @@ -106,7 +105,7 @@ To modify the default `+dfx.json+` configuration file: "custom_greeting" ], "frontend": { - "entrypoint": "src/custom_greeting_assets/public/index.js" + "entrypoint": "src/custom_greeting_assets/src/index.html" }, "source": [ "src/custom_greeting_assets/assets", @@ -125,40 +124,50 @@ Let's take a look at the settings in this section. * The assets canister has a default dependency on the main canister for the project. -* The `+frontend.entrypoint+` setting specifies the path to a file—in this case, the `+index.js+` file—to use as your application entry point. -If you had a different starting point—for example, a custom `index.html` file—you would modify this setting. +* The `+frontend.entrypoint+` setting specifies the path to a file—in this case, the `+index.html+` file—to use as your application entry point. +If you had a different starting point—for example, a custom `first-page.html` file—you would modify this setting. -* The `+source+` setting specifies the path to a directory for static assets that will be included in your assets canister when you build your project. -If you had custom cascading stylesheet (CSS) or JavaScript files, you would include them in this source folder. -After building the project, these assets are served from the directory specified by the `+frontend.output+` setting. +* The `+source+` settings specify the path to your `src` and `dist` directories. The `src` setting specifies the directory to use for static assets that will be included in your assets canister when you build your project. +If you have custom cascading stylesheet (CSS) or JavaScript files, you would include them in the folder specified by this path. +After building the project, the project assets are served from the directory specified by the `+dist+` setting. * The `+type+` setting specifies that the `+custom_greeting_assets+` is an asset canister rather than a program canister. -- + -For this tutorial, change the `+entrypoint+` file name to `+index.jsx+` to enable adding HTML directly inside the React Javascript front-end. -+ -.... -"entrypoint": "src/custom_greeting_assets/public/index.jsx", -.... +For this tutorial, we are going to add React JavaScript in an `+index.jsx+` file, but that won't require any changes to the default settings in the `dfx.json` file. . Close the `+dfx.json+` file to continue. -== Review the default program +== Review the default program and JavaScript files For this tutorial, you are going to use the default `+main.mo+` file. Later, you can return to this file and make changes to see how you can use the front-end to reflect changes in your program code. To review the default program: -. Change to the `+src/custom_greeting+` directory. +. Open the `+src/custom_greeting/main.mo+` file in a text editor. +. Review the default back-end code. + -[source,bash] ----- -cd src/custom_greeting ----- -. Open the `+main.mo+` file to review the default code. +The default program consists of one actor with one `+greet+` function and one `+name+` argument. +As you saw in link:explore-templates{outfilesuffix}#default-frontend[Viewing the default front-end], the default front-end for this program uses a few lines of raw JavaScript to call the `+greet+` function and return the `+name+` argument a simple HTML page. +. Close the `+main.mo+` file to continue. +. Open the `+src/custom_greeting_assets/src/index.js+` file in a text editor. ++ +.... +import { Actor, HttpAgent } from '@dfinity/agent'; +import { idlFactory as custom_greeting_idl, canisterId as custom_greeting_id } from 'dfx-generated/custom_greeting'; + +const agent = new HttpAgent(); +const custom_greeting = Actor.createActor(custom_greeting_idl, { agent, canisterId: custom_greeting_id }); + +document.getElementById("clickMeBtn").addEventListener("click", async () => { + const name = document.getElementById("name").value.toString(); + const greeting = await custom_greeting.greet(name); + + document.getElementById("greeting").innerText = greeting; +}); +.... + -The default program consists of one actor, one `+greet+` function, and one `+name+` argument. -As you saw in link:explore-templates{outfilesuffix}#default-frontend[Viewing the default front-end], the default front-end for this program uses a few lines of raw JavaScript to place the `+greet+` function and returned `+name+` argument a simple alert window. +The two `import` statement in the default `index.js` file create an actor and an agent using the JavaScript agent library. . Close the `+main.mo+` file to continue. == Modify the front-end files @@ -167,7 +176,6 @@ You are now ready to create a new front-end for the default program. To prepare the front-end files: -. Navigate back to the root of your project directory. . Open the webpack configuration file (`webpack.config.js`) in a text editor. . Add the following `+module+` key above the `+plugins+` section: + @@ -180,8 +188,9 @@ module: { }, ---- + -This setting enables the program to use the `+ts-loader+` compiler for the `+index.jsx+` file. -. Create a new file named `+tsconfig.json+` in your project directory. +This setting enables the program to use the `+ts-loader+` compiler for a React JavaScript `+index.jsx+` file. +Note that there's a commented section in the default `webpack.config.js` file that you can modify to add the `module` key. +. Create a new file named `+tsconfig.json+` in the root directory for your project directory. . Open the `+tsconfig.json+` file in a text editor, then copy and paste the following into the file: + [source,json] @@ -189,8 +198,7 @@ This setting enables the program to use the `+ts-loader+` compiler for the `+ind include::example$sample-tsconfig.json[] ---- . Save your changes and close the `+tsconfig.json+` file to continue. -. Change to the `+src/custom_greeting_assets/public+` directory. -. Open the default `+src/custom_greeting_assets/public/index.js+` file in a text editor and delete the existing content. +. Open the default `+src/custom_greeting_assets/src/index.js+` file in a text editor and delete lines x to x. . Copy and paste the following sample code into the `+index.js+` file: + [source,react] @@ -201,7 +209,7 @@ include::example$react-index.jsx[] + [source,bash] ---- -mv src/custom_greeting_assets/public/index.js src/custom_greeting_assets/public/index.jsx +mv src/custom_greeting_assets/src/index.js src/custom_greeting_assets/src/index.jsx ---- == Start the local network From 3dd227e82aabea6b4b187efc1d2756fc68e41613 Mon Sep 17 00:00:00 2001 From: lsgunnlsgunn Date: Mon, 12 Apr 2021 09:54:34 -0700 Subject: [PATCH 27/30] WIP --- .../pages/tutorials/custom-frontend.adoc | 33 ++++++++++++------- 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/modules/developers-guide/pages/tutorials/custom-frontend.adoc b/modules/developers-guide/pages/tutorials/custom-frontend.adoc index 3e9e21646..e70498c17 100644 --- a/modules/developers-guide/pages/tutorials/custom-frontend.adoc +++ b/modules/developers-guide/pages/tutorials/custom-frontend.adoc @@ -29,6 +29,8 @@ For information about installing node for your local operating system and packag * You have stopped any {IC} network processes running on the local computer. +This tutorial takes approximately 30 minutes to complete. + == Create a new project To create a new project directory for your custom front-end application: @@ -137,19 +139,21 @@ After building the project, the project assets are served from the directory spe For this tutorial, we are going to add React JavaScript in an `+index.jsx+` file, but that won't require any changes to the default settings in the `dfx.json` file. . Close the `+dfx.json+` file to continue. -== Review the default program and JavaScript files +== Review the default front-end files -For this tutorial, you are going to use the default `+main.mo+` file. -Later, you can return to this file and make changes to see how you can use the front-end to reflect changes in your program code. +For this tutorial, you are going to use the default `+main.mo+` program and only manipulate the application by modifying the front-end. +Before you make any changes, though, let's take a look at what's in the default front-end files for a project. -To review the default program: +To review the default front-end files: -. Open the `+src/custom_greeting/main.mo+` file in a text editor. -. Review the default back-end code. +. Open the `+src/custom_greeting_assets/src/index.html+` file in a text editor. ++ +This template file is the default front-end entry point for the application as specified by the `+frontend.entrypoint+` setting in the `dfx.json` file. ++ +This file contains standard HTML with references to a CSS file and an image that are located in the `+src/custom_greeting_assets/assets+` directory. +The default `+index.html+` file also includes standard HTML syntax for displaying an input field for the `+name+` argument and a clickable button. + -The default program consists of one actor with one `+greet+` function and one `+name+` argument. -As you saw in link:explore-templates{outfilesuffix}#default-frontend[Viewing the default front-end], the default front-end for this program uses a few lines of raw JavaScript to call the `+greet+` function and return the `+name+` argument a simple HTML page. -. Close the `+main.mo+` file to continue. +This is the same default front-end you saw in link:explore-templates{outfilesuffix}#default-frontend[Viewing the default front-end]. . Open the `+src/custom_greeting_assets/src/index.js+` file in a text editor. + .... @@ -167,8 +171,13 @@ document.getElementById("clickMeBtn").addEventListener("click", async () => { }); .... + -The two `import` statement in the default `index.js` file create an actor and an agent using the JavaScript agent library. -. Close the `+main.mo+` file to continue. +-- +* The first `import` statement in the default `index.js` file creates an actor and an agent instance using the JavaScript agent library. +* The second `import` statement prepares the `custom_greeting` canister for the actor object to be constructed. +* The next two statements construct the agent and actor objects. +* The remaining lines provide the document object handling for the default application. +-- +. Close the `+index.js+` file to continue. == Modify the front-end files @@ -190,7 +199,7 @@ module: { + This setting enables the program to use the `+ts-loader+` compiler for a React JavaScript `+index.jsx+` file. Note that there's a commented section in the default `webpack.config.js` file that you can modify to add the `module` key. -. Create a new file named `+tsconfig.json+` in the root directory for your project directory. +. Create a new file named `+tsconfig.json+` in the root directory for your project. . Open the `+tsconfig.json+` file in a text editor, then copy and paste the following into the file: + [source,json] From a086412e76ece45c319dca9bd9d6a1267ca90fa2 Mon Sep 17 00:00:00 2001 From: lsgunnlsgunn Date: Mon, 12 Apr 2021 13:59:04 -0700 Subject: [PATCH 28/30] Update for the latest 0.7.0-beta --- .../developers-guide/examples/react-index.jsx | 5 ++++- .../examples/react-revised-index.jsx | 5 +---- .../examples/sample-tsconfig.json | 1 - .../pages/tutorials/custom-frontend.adoc | 19 +++++++++++++++++-- 4 files changed, 22 insertions(+), 8 deletions(-) diff --git a/modules/developers-guide/examples/react-index.jsx b/modules/developers-guide/examples/react-index.jsx index 4029d2511..954fc9ea5 100644 --- a/modules/developers-guide/examples/react-index.jsx +++ b/modules/developers-guide/examples/react-index.jsx @@ -1,7 +1,10 @@ -import custom_greeting from 'ic:canisters/custom_greeting'; +// Insert these lines after the import statements for +// importing an agent and an actor import * as React from 'react'; import { render } from 'react-dom'; +// Replace the default index.js content with +// React JavaScript class MyHello extends React.Component { constructor(props) { super(props); diff --git a/modules/developers-guide/examples/react-revised-index.jsx b/modules/developers-guide/examples/react-revised-index.jsx index e88b214c4..41085f039 100644 --- a/modules/developers-guide/examples/react-revised-index.jsx +++ b/modules/developers-guide/examples/react-revised-index.jsx @@ -1,7 +1,4 @@ -import custom_greeting from 'ic:canisters/custom_greeting'; -import * as React from 'react'; -import { render } from 'react-dom'; - +// Modify the front-end in the React JavaScript class MyHello extends React.Component { constructor(props) { super(props); diff --git a/modules/developers-guide/examples/sample-tsconfig.json b/modules/developers-guide/examples/sample-tsconfig.json index 646a50aa1..cf3b4f008 100644 --- a/modules/developers-guide/examples/sample-tsconfig.json +++ b/modules/developers-guide/examples/sample-tsconfig.json @@ -1,7 +1,6 @@ { "compilerOptions": { "target": "es2018", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */ - "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */ "lib": ["ES2018", "DOM"], /* Specify library files to be included in the compilation. */ "allowJs": true, /* Allow javascript files to be compiled. */ "jsx": "react", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ diff --git a/modules/developers-guide/pages/tutorials/custom-frontend.adoc b/modules/developers-guide/pages/tutorials/custom-frontend.adoc index e70498c17..b13281ad7 100644 --- a/modules/developers-guide/pages/tutorials/custom-frontend.adoc +++ b/modules/developers-guide/pages/tutorials/custom-frontend.adoc @@ -186,6 +186,15 @@ You are now ready to create a new front-end for the default program. To prepare the front-end files: . Open the webpack configuration file (`webpack.config.js`) in a text editor. +. Modify the front-end entry to replace the default `+index.html+` with `+index.jsx+`. ++ +.... +entry: { + // The frontend.entrypoint points to the HTML file for this build, so we need + // to replace the extension to `.js`. + index: path.join(__dirname, info.frontend.entrypoint).replace(/\.html$/, ".jsx"), +}, +.... . Add the following `+module+` key above the `+plugins+` section: + [source,json] @@ -207,7 +216,7 @@ Note that there's a commented section in the default `webpack.config.js` file th include::example$sample-tsconfig.json[] ---- . Save your changes and close the `+tsconfig.json+` file to continue. -. Open the default `+src/custom_greeting_assets/src/index.js+` file in a text editor and delete lines x to x. +. Open the default `+src/custom_greeting_assets/src/index.js+` file in a text editor and delete lines 7 to 12. . Copy and paste the following sample code into the `+index.js+` file: + [source,react] @@ -220,6 +229,13 @@ include::example$react-index.jsx[] ---- mv src/custom_greeting_assets/src/index.js src/custom_greeting_assets/src/index.jsx ---- +. Open the default `+src/custom_greeting_assets/src/index.html+` file in a text editor, then replace the body contents with `+

+`. ++ +For example: ++ +.... + +.... == Start the local network @@ -227,7 +243,6 @@ Before you can build the `+custom_greeting+` project, you need to connect to the To start the network locally: -[arabic] . Open a new terminal window or tab on your local computer. . Navigate to the root directory for your project, if necessary. . Start the {IC} network on your local computer by running the following command: From 5cef26baf6c7aa56d44f05a52bd0dd8f7f70bc17 Mon Sep 17 00:00:00 2001 From: lsgunnlsgunn Date: Mon, 12 Apr 2021 14:02:34 -0700 Subject: [PATCH 29/30] Update gustom greeting tutorial --- .../pages/tutorials/custom-frontend.adoc | 117 ++++++++++++------ 1 file changed, 81 insertions(+), 36 deletions(-) diff --git a/modules/developers-guide/pages/tutorials/custom-frontend.adoc b/modules/developers-guide/pages/tutorials/custom-frontend.adoc index 426b790e0..9c312c76a 100644 --- a/modules/developers-guide/pages/tutorials/custom-frontend.adoc +++ b/modules/developers-guide/pages/tutorials/custom-frontend.adoc @@ -12,8 +12,7 @@ Now that you have a basic understanding of how to create, build, and deploy a si This tutorial illustrates using a simple React framework to create a new front-end for the default sample program and guides you through some basic modifications to customize the interface displayed. Later tutorials expand on the techniques introduced here, but if you already know how to use CSS, HTML, JavaScript, and React or other frameworks to build your user interface, you can skip this tutorial. -NOTE: Currently, you can only use Javascript to implement the front-end for your canister. -This tutorial illustrates using the React framework to manage the Document Object Model (DOM) for your canister. +NOTE: This tutorial illustrates using the React framework to manage the Document Object Model (DOM) for your canister. Because React has its own custom DOM syntax, you need to modify the webpack configuration to compile the front-end code, which is written in JSX. For more information about learning to use React and JSX, see link:https://reactjs.org/docs/getting-started.html[Getting started] on the https://reactjs.org/[React website]. == Before you begin @@ -30,6 +29,8 @@ For information about installing node for your local operating system and packag * You have stopped any {IC} network processes running on the local computer. +This tutorial takes approximately 30 minutes to complete. + == Create a new project To create a new project directory for your custom front-end application: @@ -87,11 +88,11 @@ NOTE: As an alternative to installing these modules, you can edit the default `+ include::example$custom-frontend-package.json[] .... -== Modify the default configuration +== Review the default configuration -For this tutorial, you need to modify the default front-end settings in the `+dfx.json+` configuration file for your project. +Before we make any changes to use React for this tutorial, let's review the default front-end settings in the `+dfx.json+` configuration file for your project. -To modify the default `+dfx.json+` configuration file: +To review the default `+dfx.json+` configuration file: . Open the `+dfx.json+` configuration file in a text editor. . Notice that the `+canisters+` key includes settings for a `custom_greeting_assets` canister. @@ -106,7 +107,7 @@ To modify the default `+dfx.json+` configuration file: "custom_greeting" ], "frontend": { - "entrypoint": "src/custom_greeting_assets/public/index.js" + "entrypoint": "src/custom_greeting_assets/src/index.html" }, "source": [ "src/custom_greeting_assets/assets", @@ -125,41 +126,58 @@ Let's take a look at the settings in this section. * The assets canister has a default dependency on the main canister for the project. -* The `+frontend.entrypoint+` setting specifies the path to a file—in this case, the `+index.js+` file—to use as your application entry point. -If you had a different starting point—for example, a custom `index.html` file—you would modify this setting. +* The `+frontend.entrypoint+` setting specifies the path to a file—in this case, the `+index.html+` file—to use as your application entry point. +If you had a different starting point—for example, a custom `first-page.html` file—you would modify this setting. -* The `+source+` setting specifies the path to a directory for static assets that will be included in your assets canister when you build your project. -If you had custom cascading stylesheet (CSS) or JavaScript files, you would include them in this source folder. -After building the project, these assets are served from the directory specified by the `+frontend.output+` setting. +* The `+source+` settings specify the path to your `src` and `dist` directories. The `src` setting specifies the directory to use for static assets that will be included in your assets canister when you build your project. +If you have custom cascading stylesheet (CSS) or JavaScript files, you would include them in the folder specified by this path. +After building the project, the project assets are served from the directory specified by the `+dist+` setting. * The `+type+` setting specifies that the `+custom_greeting_assets+` is an asset canister rather than a program canister. -- + -For this tutorial, change the `+entrypoint+` file name to `+index.jsx+` to enable adding HTML directly inside the React Javascript front-end. -+ -.... -"entrypoint": "src/custom_greeting_assets/public/index.jsx", -.... +For this tutorial, we are going to add React JavaScript in an `+index.jsx+` file, but that won't require any changes to the default settings in the `dfx.json` file. . Close the `+dfx.json+` file to continue. -== Review the default program +== Review the default front-end files -For this tutorial, you are going to use the default `+main.mo+` file. -Later, you can return to this file and make changes to see how you can use the front-end to reflect changes in your program code. +For this tutorial, you are going to use the default `+main.mo+` program and only manipulate the application by modifying the front-end. +Before you make any changes, though, let's take a look at what's in the default front-end files for a project. -To review the default program: +To review the default front-end files: -. Change to the `+src/custom_greeting+` directory. +. Open the `+src/custom_greeting_assets/src/index.html+` file in a text editor. + -[source,bash] ----- -cd src/custom_greeting ----- -. Open the `+main.mo+` file to review the default code. +This template file is the default front-end entry point for the application as specified by the `+frontend.entrypoint+` setting in the `dfx.json` file. + -The default program consists of one actor, one `+greet+` function, and one `+name+` argument. -As you saw in link:explore-templates{outfilesuffix}#default-frontend[Viewing the default front-end], the default front-end for this program uses a few lines of raw JavaScript to place the `+greet+` function and returned `+name+` argument a simple alert window. -. Close the `+main.mo+` file to continue. +This file contains standard HTML with references to a CSS file and an image that are located in the `+src/custom_greeting_assets/assets+` directory. +The default `+index.html+` file also includes standard HTML syntax for displaying an input field for the `+name+` argument and a clickable button. ++ +This is the same default front-end you saw in link:explore-templates{outfilesuffix}#default-frontend[Viewing the default front-end]. +. Open the `+src/custom_greeting_assets/src/index.js+` file in a text editor. ++ +.... +import { Actor, HttpAgent } from '@dfinity/agent'; +import { idlFactory as custom_greeting_idl, canisterId as custom_greeting_id } from 'dfx-generated/custom_greeting'; + +const agent = new HttpAgent(); +const custom_greeting = Actor.createActor(custom_greeting_idl, { agent, canisterId: custom_greeting_id }); + +document.getElementById("clickMeBtn").addEventListener("click", async () => { + const name = document.getElementById("name").value.toString(); + const greeting = await custom_greeting.greet(name); + + document.getElementById("greeting").innerText = greeting; +}); +.... ++ +-- +* The first `import` statement in the default `index.js` file creates an actor and an agent instance using the JavaScript agent library. +* The second `import` statement prepares the `custom_greeting` canister for the actor object to be constructed. +* The next two statements construct the agent and actor objects. +* The remaining lines provide the document object handling for the default application. +-- +. Close the `+index.js+` file to continue. == Modify the front-end files @@ -167,8 +185,16 @@ You are now ready to create a new front-end for the default program. To prepare the front-end files: -. Navigate back to the root of your project directory. . Open the webpack configuration file (`webpack.config.js`) in a text editor. +. Modify the front-end entry to replace the default `+index.html+` with `+index.jsx+`. ++ +.... +entry: { + // The frontend.entrypoint points to the HTML file for this build, so we need + // to replace the extension to `.js`. + index: path.join(__dirname, info.frontend.entrypoint).replace(/\.html$/, ".jsx"), +}, +.... . Add the following `+module+` key above the `+plugins+` section: + [source,json] @@ -180,8 +206,9 @@ module: { }, ---- + -This setting enables the program to use the `+ts-loader+` compiler for the `+index.jsx+` file. -. Create a new file named `+tsconfig.json+` in your project directory. +This setting enables the program to use the `+ts-loader+` compiler for a React JavaScript `+index.jsx+` file. +Note that there's a commented section in the default `webpack.config.js` file that you can modify to add the `module` key. +. Create a new file named `+tsconfig.json+` in the root directory for your project. . Open the `+tsconfig.json+` file in a text editor, then copy and paste the following into the file: + [source,json] @@ -189,8 +216,7 @@ This setting enables the program to use the `+ts-loader+` compiler for the `+ind include::example$sample-tsconfig.json[] ---- . Save your changes and close the `+tsconfig.json+` file to continue. -. Change to the `+src/custom_greeting_assets/public+` directory. -. Open the default `+src/custom_greeting_assets/public/index.js+` file in a text editor and delete the existing content. +. Open the default `+src/custom_greeting_assets/src/index.js+` file in a text editor and delete lines 7 to 12. . Copy and paste the following sample code into the `+index.js+` file: + [source,react] @@ -201,8 +227,28 @@ include::example$react-index.jsx[] + [source,bash] ---- -mv src/custom_greeting_assets/public/index.js src/custom_greeting_assets/public/index.jsx +mv src/custom_greeting_assets/src/index.js src/custom_greeting_assets/src/index.jsx ---- +. Open the default `+src/custom_greeting_assets/src/index.html+` file in a text editor, then replace the body contents with `+
+`. ++ +For example: ++ +.... + + + + + + custom_greeting + + + + + +
+ + +.... == Start the local network @@ -210,7 +256,6 @@ Before you can build the `+custom_greeting+` project, you need to connect to the To start the network locally: -[arabic] . Open a new terminal window or tab on your local computer. . Navigate to the root directory for your project, if necessary. . Start the {IC} network on your local computer by running the following command: From bc9d9da16adcbe2019e8d8da667a5d7b0cd9632c Mon Sep 17 00:00:00 2001 From: lsgunnlsgunn Date: Mon, 12 Apr 2021 15:07:34 -0700 Subject: [PATCH 30/30] Update add a style sheet for 0.7.0 --- .../examples/mycontacts/mod-index.jsx | 14 ++-- .../pages/tutorials/my-contacts.adoc | 83 +++++++++++-------- 2 files changed, 59 insertions(+), 38 deletions(-) diff --git a/modules/developers-guide/examples/mycontacts/mod-index.jsx b/modules/developers-guide/examples/mycontacts/mod-index.jsx index 2328e3dbe..70a6f1864 100644 --- a/modules/developers-guide/examples/mycontacts/mod-index.jsx +++ b/modules/developers-guide/examples/mycontacts/mod-index.jsx @@ -1,8 +1,12 @@ -import contact from 'ic:canisters/contacts'; +import { Actor, HttpAgent } from '@dfinity/agent'; +import { idlFactory as contacts_idl, canisterId as contacts_id } from 'dfx-generated/contacts'; + import * as React from 'react'; import { render } from 'react-dom'; +import '../assets/mycontacts.css'; // Import custom styles -import './mycontacts.css'; // Import custom styles +const agent = new HttpAgent(); +const contacts = Actor.createActor(contacts_idl, { agent, canisterId: contacts_id }); class Contact extends React.Component { constructor(props) { @@ -18,12 +22,12 @@ class Contact extends React.Component { let email = document.getElementById("newEntryEmail").value; let phone = document.getElementById("newEntryPhone").value; - contact.insert(name, add1, add2, email, parseInt(phone, 10)); + contacts.insert(name, add1, add2, email, parseInt(phone, 10)); } async lookup() { let name = document.getElementById("lookupName").value; - contact.lookup(name).then(opt_entry => { + contacts.lookup(name).then(opt_entry => { let entry; if (opt_entry.length == 0) { @@ -70,4 +74,4 @@ class Contact extends React.Component { document.title = "DFINITY CONTACT EXAMPLE"; -render(, document.getElementById('app')); +render(, document.getElementById('contacts')); diff --git a/modules/developers-guide/pages/tutorials/my-contacts.adoc b/modules/developers-guide/pages/tutorials/my-contacts.adoc index 401dbac44..b6c08198b 100644 --- a/modules/developers-guide/pages/tutorials/my-contacts.adoc +++ b/modules/developers-guide/pages/tutorials/my-contacts.adoc @@ -12,8 +12,7 @@ Cascading stylesheets represent one of the most common ways to customize the use This tutorial illustrates how to add a stylesheet when you use React to create a new front-end for your project. If you already know how to add cascading stylesheets (CSS) to a React-based project, you can skip this tutorial. -NOTE: Currently, you can only use Javascript to implement the front-end for your canister. -This tutorial illustrates using the React framework to manage the Document Object Model (DOM) for your canister. +NOTE: This tutorial illustrates using the React framework to manage the Document Object Model (DOM) for your canister. Because React has its own custom DOM syntax, you need to modify the webpack configuration to compile the front-end code, which is written in JSX. For more information about learning to use React and JSX, see link:https://reactjs.org/docs/getting-started.html[Getting started] on the https://reactjs.org/[React website]. == Before you begin @@ -84,50 +83,36 @@ NOTE: As an alternative to installing these modules, you can edit the default `+ include::example$add-stylesheet-package.json[] .... -== Modify the default configuration - -For this tutorial, you need to modify the default front-end settings in the `+dfx.json+` configuration file for your project. - -To modify settings in the default `+dfx.json+` configuration file: - -. Open the `+dfx.json+` configuration file in a text editor. -. Under the `+canisters.contacts+` section, change the name of the main program file from `+main.mo+` to `+contacts.mo+`. -. Under the `+canisters.contacts_assets+` section, change the `+frontend.entrypoint+` file name from `+index.js+` to `+index.jsx+` to enable adding HTML directly inside JavaScript. -. Save your changes and close the `+dfx.json+` file to continue. - == Modify the default program -For this tutorial, you are going to rename the main program file and modify the file content to replace the default program with a program that allow you to store and look up contact information. +For this tutorial, you are going to modify the main program to with code that allows you to store and look up contact information. To modify the default program: -. Change to the `+src/contacts+` directory. -+ -[source,bash] ----- -cd src/contacts ----- -. Rename the `+main.mo+` file as `+contacts.mo+` by running the following command: -+ -[source,bash] ----- -mv main.mo contacts.mo ----- -. Open the `+contacts.mo+` file in a text editor and delete the existing content. +. Open the `+src/contacts/main.mo+` file in a text editor and delete the existing content. . Copy and paste the following sample code into the file: + [source.copy,motoko,no-repl] ---- include::example$mycontacts/contacts.mo[] ---- -. Save your changes and close the `+contacts.mo+` file to continue. +. Save your changes and close the `+main.mo+` file to continue. == Modify the front-end files You are now ready to create a new front-end for your program. -. Navigate back to the root of your project directory. . Open the webpack configuration file (`webpack.config.js`) in a text editor. +. Modify the front-end entry to replace the default index.html with index.jsx. ++ +[source,js] +---- +entry: { + // The frontend.entrypoint points to the HTML file for this build, so we need + // to replace the extension to `.js`. + index: path.join(__dirname, info.frontend.entrypoint).replace(/\.html$/, ".jsx"), +}, +---- . Locate the commented example for the `+module+` key above the `+plugins+` section, then uncomment the following lines: + [source,js] @@ -156,13 +141,19 @@ You are now ready to create a new cascading stylesheet and add it to your projec To add a stylesheet: -. Change to the `+src/contacts_assets/public+` directory. +. Change to the `+src/contacts_assets/assets+` directory. + [source,bash] ---- -cd src/contacts_assets/public/ +cd src/contacts_assets/assets/ +---- +. Rename the `+main.css+` file to create a new file named `+mycontacts.css+`. ++ +[source.bash] +---- +mv main.css mycontacts.css ---- -. Create a new file named `+mycontacts.css+` and open the file in a text editor. +. Open the `+mycontacts.css+` file in a text editor and delete the existing content. . Define some style properties for the front-end. + For example, copy and paste the following sample styles into the file: @@ -172,6 +163,12 @@ For example, copy and paste the following sample styles into the file: include::example$mycontacts/mycontacts.css[] ---- . Save your changes and close the `+mycontacts.css+` file to continue. +. Change to the `+src/contacts_assets/src+` directory. ++ +[source,bash] +---- +cd ../src +---- . Open the default `+index.js+` file in a text editor and delete the existing content. . Copy and paste the following sample code into the `+index.js+` file: + @@ -185,6 +182,27 @@ include::example$mycontacts/mod-index.jsx[] ---- mv index.js index.jsx ---- +. Open the default `src/contacts_assets/src/index.html` file in a text editor, then replace `main.css` as the stylesheet file name with `mycontacts.css` and update the `body` contents with `
`. ++ +For example: ++ +[source,bash] +---- + + + + + + contacts + + + + + +
+ + +---- . Navigate back to the root of your project directory. + For example: @@ -202,7 +220,6 @@ To start the network locally: [arabic] . Open a new terminal window or tab on your local computer. -. Navigate to the root directory for your project, if necessary. . Start the {IC} network on your local computer by running the following command: + [source,bash]

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 Date: Tue, 23 Jun 2020 13:06:26 -0700 Subject: [PATCH 02/30] remove netlify.toml from the docs repo --- netlify.toml | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 netlify.toml diff --git a/netlify.toml b/netlify.toml deleted file mode 100644 index e69de29bb..000000000 From ede154d90da4f5cffe80d18b1e2b4919cee32397 Mon Sep 17 00:00:00 2001 From: lsgunnlsgunn Date: Tue, 21 Jul 2020 15:07:48 -0700 Subject: [PATCH 03/30] Add other languages draft --- .../pages/work-with-languages.adoc | 207 ++++++++++++++++++ 1 file changed, 207 insertions(+) create mode 100644 modules/developers-guide/pages/work-with-languages.adoc diff --git a/modules/developers-guide/pages/work-with-languages.adoc b/modules/developers-guide/pages/work-with-languages.adoc new file mode 100644 index 000000000..c27fb813b --- /dev/null +++ b/modules/developers-guide/pages/work-with-languages.adoc @@ -0,0 +1,207 @@ += Working with different languages +:cpp: C++ + +Most of the examples in this guide use {proglang}—the programming language specifically designed to work with the {IC}. +Potentially, however, you can write programs in any language that compiles to WebAssembly to deploy applications that run on the {IC}. +This section provides some high-level guidance for writing programs in different languages and how to deploy them on the {IC}. + +== Using Rust + +At a high-level, you can create Rust projects to run on the {IC} using Cargo. +The Rust CDK provides some shortcuts to make it easier to write functions as query and update calls, but you can develop applications for the {IC} without using the Rust CDK. + +=== Create a project + +=== Compile the program into WebAssembly + +=== Create a minimal configuration file + +=== Create a minimal interface description file + +=== Connect to a network and deploy + +Before you can deploy and test your program, you need to do the following: + +* Connect to the {IC} network either running locally in your development environment or running remotely on a sub-network that you can access. +* Register a network-specific identifier for the application. + +To deploy and test the application locally: + +. Open a new terminal window or tab on your local computer. ++ +For example, if running Terminal on macOS,click *Shell*, then select *New Tab* to open a new terminal in your current working directory. +. Start the {IC} network on your local computer in your second terminal by running the following command: ++ +[source,bash] +---- +dfx start +---- +. Register a unique canister identifier for the application by running the following command: ++ +[source,bash] +---- +dfx canister create --all +---- +. Deploy the default program on the local network by running the following command: ++ +[source,bash] +---- +dfx canister install --all +---- +. Test functions in the program from the command-line of in a browser. + +== Using C + +Because the {IC} supports applications compiled to standard WebAssembly modules, you can use standard compilers and toolchains to build applications in languages such as C, {cpp}, Objective-C, and Objective-{cpp} programming languages and the `+Clang+` compiler. + +To illustrate how to migrate programs written in C to run on the {IC}, let’s look at the simple `+reverse.c+` program in the link:https://github.com/dfinity/examples/tree/master/c[examples] repository. +The `+reverse.c+` program contains one function—named `+go+`—that reverses a string in place. + +=== Set up the development environment + +To compile the `+reverse.c+` program into WebAssembly, you need to have the `+clang+` compiler and standard libraries installed. +You can check whether you have `+clang+` installed on your local computer by running the following command: + +[source,bash] +---- +clang --version +---- + +If `+clang+` is installed, the command displays information similar to the following: + +.... +clang version 10.0.0 +Target: x86_64-apple-darwin19.5.0 +Thread model: posix +InstalledDir: /usr/local/opt/llvm/bin +.... + +If the command doesn’t return version information, install `+clang+` before continuing. +The steps to install `+clang+` vary depending on the operating system you are using. +On Debian Linux, for example, run the following command: + +[source,bash] +---- +sudo apt-get install clang lld gcc-multilib +---- + +On macOS, you can install `+clang+` by installing the Developer Command-Line Tools or by installing LLVM using Homebrew. +For example, if `+clang+` is not installed, run the following command: + +[source,bash] +---- +brew install llvm +---- + +=== Compile the program into WebAssembly + +You can compile a C program to run as a WebAssembly module by first compiling using `+clang+`, then linking using `+wasm-ld+`. +Depending on the operating system and version of `+clang+` you are using, you might use a different version of the WebAssembly linker, such as `+wasm-ld+` on macOS or `+wasm-ld-8+` on Debian. + +To compile to WebAssembly on macOS: + +. Compile the program by running the following clang command: ++ +[source,bash] +---- +clang --target=wasm32 -c -O3 reverse.c +---- +. Run the linker to create the WebAssembly module by running the following `+wasm-ld+` command: ++ +[source,bash] +---- +wasm-ld --no-entry --export-dynamic --allow-undefined reverse.o -o reverse.wasm +---- + +=== Create a minimal configuration file + +Next, you need to prepare a simple configuration file that identifies the `+reverse+` program binary as a package that can be installed on the {IC} and a `+build+` directory so that you can use the `+dfx+` command-line interface to install and run the package as a canister. + +To prepare a configuration file and build directory: + +. Create a `+dfx.json+` file with a canisters key by running the following command: ++ +[source,bash] +---- +echo '{"canisters":{"reverse":{"main":"reverse"}}}' > dfx.json +---- +. Create a `+build+` directory for the program by running the following command: ++ +[source,bash] +---- +mkdir build +---- +. Create a `+reverse+` directory for the program by running the following command: ++ +[source,bash] +---- +mkdir build/reverse +---- +. Copy the WebAssembly modules to the new `+build/reverse+` directory by running the following command: ++ +[source,bash] +---- +cp reverse.wasm build/reverse/ +---- + +=== Create a minimal interface description file + +In a standard development workflow, running the `+dfx build+` command creates several files in the `+canisters+` output directory, including one or more Candid interface description (`+.did+`) files that handle type matching for the data types associated with a program’s functions. + +For details about the syntax to use for different data types, see the link:../candid-spec/IDL{outfilesuffix}[Candid specification]. + +To create a Candid interface description file for this program: + +. Open a terminal in the `+build+` directory you created for the `+reverse.c+` program source +. Create a new text file named `+reverse.did+`. +. Add a description of the `+go+` function. ++ +For example: ++ +[source.bash] +---- +service : { + "go": (text) -> (text); +} +---- +. Save your changes and close the file to continue. + +=== Deploy and test the program + +Before you can deploy and test your program, you need to do the following: + +* Connect to the {IC} network either running locally in your development environment or running remotely on a sub-network that you can access. +* Register a network-specific identifier for the application. + +To deploy and test the application locally: + +. Open a new terminal window or tab on your local computer. ++ +For example, if running Terminal on macOS,click *Shell*, then select *New Tab* to open a new terminal in your current working directory. +. Start the {IC} network on your local computer in your second terminal by running the following command: ++ +[source,bash] +---- +dfx start +---- +. Register a unique canister identifier for the `+reverse+` application by running the following command: ++ +[source,bash] +---- +dfx canister create --all +---- +. Deploy the default program on the local network by running the following command: ++ +[source,bash] +---- +dfx canister install --all +---- +. Call the `+go+` function in the program by running the following command: ++ +[source,bash] +---- +dfx canister call reverse go repaid +("diaper") +---- + +You can find additional examples of C programs in the link:https://github.com/dfinity/examples/tree/master/c[examples] repository. From 98656abe685902206df7e2fc62e14f91c2f48d07 Mon Sep 17 00:00:00 2001 From: lsgunnlsgunn Date: Wed, 9 Sep 2020 14:09:33 -0700 Subject: [PATCH 04/30] DRAFT multiple identities tutorial section and code sample --- .../examples/access-hello/main.mo | 111 +++++ .../pages/tutorials/access-control.adoc | 467 ++++++++++++++++++ 2 files changed, 578 insertions(+) create mode 100644 modules/developers-guide/examples/access-hello/main.mo create mode 100644 modules/developers-guide/pages/tutorials/access-control.adoc diff --git a/modules/developers-guide/examples/access-hello/main.mo b/modules/developers-guide/examples/access-hello/main.mo new file mode 100644 index 000000000..c80b13e76 --- /dev/null +++ b/modules/developers-guide/examples/access-hello/main.mo @@ -0,0 +1,111 @@ +// Import base modules +import AssocList "mo:base/AssocList"; +import Error "mo:base/Error"; +import List "mo:base/List"; +import Prim "mo:prim"; + +actor { + + // Establish role-based greetings to display + public shared { caller } func greet(name : Text) : async Text { + if (has_permission(caller, #assign_role)) { + return "Hello, " # name # ". You have a role with administrative privileges." + } else if (has_permission(caller, #lowest)) { + return "Welcome, " # name # ". You have an authorized account. Would you like to play a game?"; + } else { + return "Greetings, " # name # ". Nice to meet you!"; + } + }; + + // Define custom types + public type Role = { + #owner; + #admin; + #authorized; + }; + + public type Permission = { + #assign_role; + #lowest; + }; + + private let initializer : Principal = Prim.caller(); + + private stable var roles: AssocList.AssocList = List.nil(); + private stable var role_requests: AssocList.AssocList = List.nil(); + + func principal_eq(a: Principal, b: Principal): Bool { + return a == b; + }; + + func get_role(pal: Principal) : ?Role { + if (pal == initializer) { + ?#owner; + } else { + AssocList.find(roles, pal, principal_eq); + } + }; + + // Determine if a principal has a role with permissions + func has_permission(pal: Principal, perm : Permission) : Bool { + let role = get_role(pal); + switch (role, perm) { + case (?#owner or ?#admin, _) true; + case (?#authorized, #lowest) true; + case (_, _) false; + } + }; + + // Reject unauthorized user identities + func require_permission(pal: Principal, perm: Permission) : async () { + if ( has_permission(pal, perm) == false ) { + throw Error.reject( "unauthorized" ); + } + }; + + // Assign a new role to a principal + public shared { caller } func assign_role( assignee: Principal, new_role: ?Role ) : async () { + await require_permission( caller, #assign_role ); + + switch new_role { + case (?#owner) { + throw Error.reject( "Cannot assign anyone to be the owner" ); + }; + case (_) {}; + }; + if (assignee == initializer) { + throw Error.reject( "Cannot assign a role to the canister owner" ); + }; + roles := AssocList.replace(roles, assignee, principal_eq, new_role).0; + role_requests := AssocList.replace(role_requests, assignee, principal_eq, null).0; + }; + + public shared { caller } func request_role( role: Role ) : async Principal { + role_requests := AssocList.replace(role_requests, caller, principal_eq, ?role).0; + return caller; + }; + + // Return the principal of the message caller/user identity + public shared { caller } func whoami() : async Principal { + return caller; + }; + + // Return the role of the message caller/user identity + public shared { caller } func my_role() : async ?Role { + return get_role(caller); + }; + + public shared { caller } func my_role_request() : async ?Role { + AssocList.find(role_requests, caller, principal_eq); + }; + + public shared { caller } func get_role_requests() : async List.List<(Principal,Role)> { + await require_permission( caller, #assign_role ); + return role_requests; + }; + + public shared { caller } func get_roles() : async List.List<(Principal,Role)> { + await require_permission( caller, #assign_role ); + return roles; + }; +}; diff --git a/modules/developers-guide/pages/tutorials/access-control.adoc b/modules/developers-guide/pages/tutorials/access-control.adoc new file mode 100644 index 000000000..55e36061e --- /dev/null +++ b/modules/developers-guide/pages/tutorials/access-control.adoc @@ -0,0 +1,467 @@ += Adding and using user identities +ifdef::env-github,env-browser[:outfilesuffix:.adoc] +:toc: +:toc: right +:toc-title: TUTORIAL - IDENTITY +:toclevels: 3 +:proglang: Motoko +:platform: Internet Computer platform +:IC: Internet Computer +:company-id: DFINITY +:sdk-short-name: DFINITY Canister SDK +:sdk-long-name: DFINITY Canister Software Development Kit (SDK) + +Applications often require role-based permissions to control the operations different users can perform. + +To illustrate how to create and switch between user identities, this tutorial creates a simple program that displays a different greeting for users who are assigned to different roles. + +In this example, there are three named roles—`+owner+`, `+admin+`, and `+authorized+`. + +* Users who are assigned an `+admin+` or `+authorized+` role see a greeting that displays `+Would you like to play a game?+`. +* Users who are assigned an `+authorized+` role see a greeting that displays `+Would you like to play a game?+`. +* Users who are not assigned one of these roles see a greeting that displays `+Nice to meet you!+`. + +In addition, only the user identity that initialized the canister is assigned the `+owner+` role and only the `+owner+` and `+admin+` roles can assign roles to other users. + +== Before you begin + +Before starting the tutorial, verify the following: + +* You have downloaded and installed the {sdk-short-name} package as described in link:../../quickstart/quickstart{outfilesuffix}#download-and-install[Download and install]. + +* You have installed the Visual Studio Code plugin for {proglang} as described in link:../../quickstart/quickstart{outfilesuffix}#install-vscode[Install the language editor plug-in] if you are using Visual Studio Code as your IDE. + +* You have stopped any {IC} network processes running on the local +computer. + +== Create a new project + +To create a new project directory for testing access control and switching user identities: + +[arabic] +. Open a terminal shell on your local computer, if you don’t already have one open. +. Change to the folder you are using for your {IC} sample projects. +. Create a new project by running the following command: ++ +[source,bash] +---- +dfx new access_hello +---- +. Change to your project directory by running the following command: ++ +[source,bash] +---- +cd access_hello +---- + +== Modify the default program + +For this tutorial, you are going to replace the template source code file with a program that has functions for assigning and retrieving roles. + +To modify the default program: + +. Open the `+src/access_hello/main.mo+` file in a text editor and delete the existing content. +. Copy and paste the following sample code into the file: ++ +[source,motoko] +---- +include::example$access-hello/main.mo[] +---- ++ +Let's take a look at a few key elements of this program: ++ +-- +* You might notice that the `+greet+` function is a variation on the `+greet+` function you have seen in previous tutorials. ++ +In this program, however, the `+greet+` function uses a message caller to determine the permissions that should be applied and, based on the permissions associated with the caller, which greeting to display. +* The program defines two custom types—one for `+Roles+` and one for `+Permissions+`. +* The `+assign_roles+` function enables the message aller to assign a role to the principal associated with an identity. +* The `+whoami+` function enables you to return the principal associated with an identity. +* The `+my_role+` function enables you to return the role that is associated with an identity. +-- +. Save your changes and close the `+main.mo+` file to continue. + +== Start the local network + +Before you can build the `+access_hello+` project, you need to connect to the {IC} network either running locally in your development environment or running remotely on a sub-network that you can access. + +To start the network locally: + +[arabic] +. Open a new terminal window or tab on your local computer and navigate to your project directory. ++ +For example, you can do either of the following if running Terminal on macOS: ++ +-- +* Click *Shell*, then select *New Tab* to open a new terminal in your current working directory. + +* Click *Shell* and select *New Window*, then run `+cd ~/ic-projects/access_hello+` in the new terminal if your `+access_hello+` project is in the `+ic-projects+` working folder. +-- ++ +You should now have two terminals open with your project directory as your current working directory. +. Start the {IC} network on your local computer by running the following command: ++ +[source,bash] +---- +dfx start +---- ++ +After you start the local network, the terminal displays messages about network operations. +. Leave the terminal that displays network operations open and switch your focus to your original terminal where you created your project. + +== Register canister identifiers + +After you connect to the {IC} network running locally in your development environment, you can register with the network to generate unique canister identifiers for your project. + +To register canister identifiers for the local network: + +. Check that you are still in your project directory, if needed. +. Register a unique canister identifier for the project by running the following command: ++ +[source,bash] +---- +dfx canister create access_hello +---- ++ +The first time you run this command, it creates a `+default+` user identity in the `+$HOME/.config/dfx/identity/+` directory. ++ +.... +Creating the "default" identity. + - migrating key from /Users/lisagunn/.dfinity/identity/creds.pem to /Users/lisagunn/.config/dfx/identity/default/identity.pem + "access_hello" canister created with canister id: "75hes-oqbaa-aaaaa-aaaaa-aaaaa-aaaaa-aaaaa-q" +.... ++ +After creating the `+identity.pem+` key file for the `+default+` user identity, the command displays the network-specific canister identifier for the `+access_hello+` main program. + +== Build and deploy the program + +You are now ready to compile the program into a WebAssembly module and deploy it on your local network. + +Because this tutorial illustrates running the {IC} locally, the canister identifier is only valid on the local network. +To deploy canisters on a remote network, you must connect to that network using the `+--network+` command-line option and a specific network name or address to register identifiers on that network. + +To build and deploy the program: + +[arabic] +. Check that you are still in your project directory, if needed. +. Build the executable WebAssembly module by running the following command: ++ +[source,bash] +---- +dfx build access_hello +---- ++ +The command displays output similar to the following: ++ +.... +Building canisters... +.... +. Deploy your `+access_hello+` project on the local network by running the following command: ++ +[source,bash] +---- +dfx canister install access_hello +---- ++ +The command output displays output similar to the following: ++ +.... +Installing code for canister access_hello, with canister_id 75hes-oqbaa-aaaaa-aaaaa-aaaaa-aaaaa-aaaaa-q +.... +. Check the principal for the `+default+` user identity by running the following command: ++ +[source,bash] +---- +dfx canister call access_hello whoami +---- ++ +The command displays output similar to the following: ++ +.... +(principal "nnuac-d26ja-o4tcm-mcr4i-qxgon-fkuqx-tshde-74bb4-6fead-hdnd6-5ae") +.... +. Check the role associated with the `+default+` user identity by running the following command: ++ +[source,bash] +---- +dfx canister call access_hello my_role +---- ++ +The command displays output similar to the following: ++ +.... +(opt variant { owner }) +.... + +== Create a new user identity + +To begin testing the access controls in our program, you need to create some new user identities and assign those users to different roles. + +To create a new user identity: + +. Check that you are still in your project directory, if needed. +. Create a new administrative user identity by running the following command: ++ +[source,bash] +---- +dfx identity new ic_admin +---- ++ +The command displays output similar to the following: ++ +.... +Creating identity: "ic_admin". +.... +. Call the `+my_role+` function to see that your new user identity has not been assigned to any role. ++ +[source,bash] +---- +dfx --identity ic_admin canister call access_hello my_role +---- ++ +The command displays output similar to the following: ++ +.... +(null) +.... +. Get the principal for the new `+ic_admin+` user identity by running the following command: ++ +[source,bash] +---- +dfx --identity ic_admin canister call access_hello whoami +---- ++ +The command displays output similar to the following: ++ +.... +(principal "kenjo-txsrk-ctozi-gnls4-v4sf4-ndupc-wmrji-nuemy-7hp2y-kwkre-tae") +.... +. Assign this principal the `+admin+` role by running the following command using Candid syntax: ++ +[source,bash] +---- +dfx canister call access_hello assign_role '((principal "kenjo-txsrk-ctozi-gnls4-v4sf4-ndupc-wmrji-nuemy-7hp2y-kwkre-tae"),opt variant{admin})' +---- ++ +Optionally, you can rerun the command to call the `+my_role+` function to verify the role assignment. ++ +[source,bash] +---- +dfx --identity ic_admin canister call access_hello my_role +---- +The command displays output similar to the following: ++ +.... +(opt variant { admin }) +.... +. Call the `+greet+` function using the `+ic_admin+` user identity that you just assigned the `+admin+` role by running the following command: ++ +[source,bash] +---- +dfx --identity ic_admin canister call access_hello greet "Internet Computer Admin" +---- ++ +The command displays output similar to the following: ++ +.... +( + "Hello, Internet Computer Admin. You have a role with administrative privileges.", +) +.... + +== Add an authorized user identity + +At this point, you have a `+default+` user identity with the `+owner+` role and an `+ic_admin+` user identity with the `+admin+` role. +Let's add another user identity and assign it to the `+authorized+` role. +For this example, however, we'll use an environment variable to store the user's principal. + +To add a new authorized user identity: + +. Check that you are still in your project directory, if needed. +. Create a new authorized user identity by running the following command: ++ +[source,bash] +---- +dfx identity new alice_auth +---- ++ +The command displays output similar to the following: ++ +.... +Creating identity: "alice_auth". +.... +. Store the principal for the new user in an environment variable by running the following command: ++ +[source,bash] +---- +ALICE_ID=$(dfx --identity alice_auth canister call access_hello whoami | sed 's/[\\(\\)]//g') +---- ++ +You can verify the principal stored by running the following command: ++ +[source,bash] +---- +echo $ALICE_ID +---- ++ +The command displays output similar to the following: ++ +.... +principal "ixskg-luu4i-jxn6i-ie5v4-ynykj-6d2sz-l6ctg-r6524-yxoeb-taimb-rqe" +.... ++ +Optionally, you can call the `+my_role+` function to verify that the principal role assignment is `+null+`. +. Use the `+ic_admin+` identity to assign the `+authorized+` role to `+alice_auth+` by running the following command: ++ +[source,bash] +---- +dfx --identity ic_admin canister call access_hello assign_role "($ALICE_ID, opt variant{authorized})" +---- +. Call the `+my_role+` function to verify the role assignment. ++ +[source,bash] +---- +dfx --identity alice_auth canister call access_hello my_role +---- +The command displays output similar to the following: ++ +.... +(opt variant { authorized }) +.... +. Call the `+greet+` function using the `+alice_auth+` user identity that you just assigned the `+authorized+` role by running the following command: ++ +[source,bash] +---- +dfx --identity alice_auth canister call access_hello greet "Alice" +---- ++ +The command displays output similar to the following: ++ +.... +( + "Welcome, Alice. You have an authorized account. Would you like to play a game?", +) +.... + +== Add an unauthorized user identity + +You have now seen a simple example of creating users with specific roles and permissions. +The next step is to create a user identity that is not assigned to a role or given any special permissions. + +To add an unauthorized user identity: + +. Check that you are still in your project directory, if needed. +. Create a new user identity by running the following command: ++ +[source,bash] +---- +dfx identity new bob_standard +---- ++ +The command displays output similar to the following: ++ +.... +Creating identity: "bob_standard". +.... +. Call the `+my_role+` function to see that your new user identity has not been assigned to any role. ++ +[source,bash] +---- +dfx --identity bob_standard canister call access_hello my_role +---- ++ +The command displays output similar to the following: ++ +.... +(null) +.... +. Store the principal for the new user in an environment variable by running the following command: ++ +[source,bash] +---- +BOB_ID=$(dfx --identity bob_standard canister call access_hello whoami | sed 's/[\\(\\)]//g') +---- +. Attempt to use the `+bob_standard+` identity to assign a role. ++ +[source,bash] +---- +dfx --identity bob_standard canister call access_hello assign_role "($BOB_ID, opt variant{authorized})" +---- ++ +This command returns an `+unauthorized+` error. +. Attempt to use the `+default+` user identity to assign `+bob_standard+` the `+owner+` role by running the following command: ++ +[source,bash] +---- +dfx canister call access_hello assign_role "($BOB_ID, opt variant{owner})" +---- ++ +This command fails because users cannot be assigned the `+owner+` role. +. Call the `+greet+` function using the `+bob_standard+` user identity by running the following command: ++ +[source,bash] +---- +dfx --identity bob_standard canister call access_hello greet "Bob" +---- ++ +The command displays output similar to the following: ++ +.... +("Greetings, Bob. Nice to meet you!") +.... + +== Set the user identity for multiple commands + +So far, you have seen how to create and switch between user identities for individual commands. +You can also specify a user identity you want to use, then run multiple commands in the context of that user identity. + +To run multiple commands under one user identity: + +. Check that you are still in your project directory, if needed. +. List the user identities currently available by running the following command: ++ +[source,bash] +---- +dfx identity list +---- ++ +The command displays output similar to the following with an asterisk indicating the currently active user identity. ++ +.... +alice_auth +bob_standard +default * +ic_admin +.... ++ +In this example, the `+default+` user identity is used unless you explicitly select a different identity. +. Select a new user identity from the list and make it the active user context by running a command similar to the following: ++ +[source,bash] +---- +dfx identity use ic_admin +---- ++ The command displays output similar to the following: ++ +.... +Using identity: "ic_admin". +.... ++ +If you rerun the `+dfx identity list+` command, the `+ic_admin+` user identity displays an asterisk to indicate it is the currently active user context. ++ +You can now run commands using the selected user identity without specifying `+--identity+` on the command-line. + +== Stop the local network + +After you finish experimenting with the program and using identities, you can stop the local Internet Computer network so that it doesn’t continue running in the background. + +To stop the local network: + +. In the terminal that displays network operations, press Control-C to interrupt the local network process. + +. Stop the {IC} network by running the following command: ++ +[source,bash] +---- +dfx stop +---- From acd7067a2b074ae73939efb7f1993d17d6f5fa43 Mon Sep 17 00:00:00 2001 From: lsgunnlsgunn Date: Wed, 9 Sep 2020 14:57:29 -0700 Subject: [PATCH 05/30] Add identities overview --- modules/developers-guide/pages/tutorials/access-control.adoc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/modules/developers-guide/pages/tutorials/access-control.adoc b/modules/developers-guide/pages/tutorials/access-control.adoc index 55e36061e..3051044c4 100644 --- a/modules/developers-guide/pages/tutorials/access-control.adoc +++ b/modules/developers-guide/pages/tutorials/access-control.adoc @@ -23,6 +23,11 @@ In this example, there are three named roles—`+owner+`, `+admin+`, and `+autho In addition, only the user identity that initialized the canister is assigned the `+owner+` role and only the `+owner+` and `+admin+` roles can assign roles to other users. +At a high-level, each user has a public/private key pair. The public key combines with the canister identifier the user accesses forms a security principal that can then be used as a message caller to authenticate function calls made to the canister running on the {IC}. +The following diagram provides a simplified view of how user identities authenticate message callers. + +image::principal-identities.svg[] + == Before you begin Before starting the tutorial, verify the following: From 42a75aafb525eebfff256b384cef6c3df9462e14 Mon Sep 17 00:00:00 2001 From: lsgunnlsgunn Date: Wed, 9 Sep 2020 15:01:37 -0700 Subject: [PATCH 06/30] Add identities to nav --- modules/developers-guide/dev-nav.adoc | 2 ++ modules/developers-guide/pages/tutorials-intro.adoc | 2 ++ 2 files changed, 4 insertions(+) diff --git a/modules/developers-guide/dev-nav.adoc b/modules/developers-guide/dev-nav.adoc index 3e7cd4937..2c6d77a34 100644 --- a/modules/developers-guide/dev-nav.adoc +++ b/modules/developers-guide/dev-nav.adoc @@ -13,6 +13,8 @@ *** xref:tutorials/my-contacts.adoc[Adding a stylesheet] *** xref:tutorials/intercanister-calls.adoc[Making inter-canister calls] *** xref:tutorials/scalability-cancan.adoc[Creating scalable apps] +*** xref:tutorials/access-control.adoc[Adding and using user identities] + ** xref:customize-projects.adoc[Customizing projects] ** xref:working-with-canisters.adoc[Managing canisters] ** xref:webpack-config.adoc[Front-end development] diff --git a/modules/developers-guide/pages/tutorials-intro.adoc b/modules/developers-guide/pages/tutorials-intro.adoc index 97371065f..b576e0ecd 100644 --- a/modules/developers-guide/pages/tutorials-intro.adoc +++ b/modules/developers-guide/pages/tutorials-intro.adoc @@ -34,4 +34,6 @@ If you already know how to add stylesheets to React, you can skip this tutorial. * link:tutorials/scalability-cancan{outfilesuffix}[Creating scalable apps] describes using multiple canisters to create applications that scale. +* link:tutorials/access-control{outfilesuffix}[Adding and using user identities] describes how to create and switch between multiple user identities. + Additional tutorials covering more advanced programs and more detailed examples of how to use the basic building blocks are available in the link:https://github.com/dfinity/examples[examples] repository and link:../language-guide/motoko{outfilesuffix}[_{proglang} Programming Language Guide_]. \ No newline at end of file From 44908c3d1d4d1015ff447acaf1be2b30eddb7f25 Mon Sep 17 00:00:00 2001 From: lsgunnlsgunn Date: Thu, 10 Sep 2020 14:00:24 -0700 Subject: [PATCH 07/30] Added dfx build and dfx identity feature highlights --- modules/release-notes/pages/sdk-release-notes.adoc | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/modules/release-notes/pages/sdk-release-notes.adoc b/modules/release-notes/pages/sdk-release-notes.adoc index e6b03f2fb..b947bcadf 100644 --- a/modules/release-notes/pages/sdk-release-notes.adoc +++ b/modules/release-notes/pages/sdk-release-notes.adoc @@ -9,7 +9,7 @@ :page-layout: releasenotes :sdk-short-name: DFINITY Canister SDK :sdk-long-name: DFINITY Canister Software Development Kit (SDK) -:release: 0.6.6 +:release: 0.6.7 ifdef::env-github,env-browser[:outfilesuffix:.adoc] The {sdk-long-name} enables developers to develop applications for the {IC} using the {proglang} programing language. @@ -35,17 +35,20 @@ This {release} version of the software and programming language should not be us The {release} release includes the following new features and capabilities: -- The `+dfx build+` command now supports building a specific canister, in addition to building all. +- The `+dfx build+` command now supports building a specific canister, in addition to building all canisters. + For example, you can compile the code for a back-end canister without building the canister used for your project's front-end assets. + Because of this change to the `+dfx build+` command, the `+--skip-frontend+` option is no longer needed and has been removed. -- There are several new `+dfx identity+` commands that enable you to create and switch between different user identities to test access control for your programs. -- +- There are several new `+dfx identity+` commands that enable you to create, manage, and switch between different user identities when communicating with the {IC} network. ++ +You can also use a new `+--identity+` command-line option to set a specific user context when running `+dfx+` commands. ++ +This new support for multiple identities enables you to test role-based access control for your programs. == Highlights of what's new in 0.6.6 -The {release} release features several new commands for managing canisters. +The 0.6.6 release features several new commands for managing canisters. The release include the following new commands for managing canister operations and the canister lifecycle: - The `+dfx canister status+` command enables you to check whether all canisters or a specific canister in a project are currently running. From 36e7205a2aca21938f25fb0e689a859924440799 Mon Sep 17 00:00:00 2001 From: lsgunnlsgunn Date: Thu, 10 Sep 2020 15:13:00 -0700 Subject: [PATCH 08/30] Add candid-related changes to release notes --- .../pages/sdk-release-notes.adoc | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/modules/release-notes/pages/sdk-release-notes.adoc b/modules/release-notes/pages/sdk-release-notes.adoc index b947bcadf..25a4a0d6e 100644 --- a/modules/release-notes/pages/sdk-release-notes.adoc +++ b/modules/release-notes/pages/sdk-release-notes.adoc @@ -35,16 +35,31 @@ This {release} version of the software and programming language should not be us The {release} release includes the following new features and capabilities: -- The `+dfx build+` command now supports building a specific canister, in addition to building all canisters. +* The `+dfx build+` command now supports building a specific canister, in addition to building all canisters. + For example, you can compile the code for a back-end canister without building the canister used for your project's front-end assets. + Because of this change to the `+dfx build+` command, the `+--skip-frontend+` option is no longer needed and has been removed. -- There are several new `+dfx identity+` commands that enable you to create, manage, and switch between different user identities when communicating with the {IC} network. +* There are several new `+dfx identity+` commands that enable you to create, manage, and switch between different user identities when communicating with the {IC} network. + You can also use a new `+--identity+` command-line option to set a specific user context when running `+dfx+` commands. + This new support for multiple identities enables you to test role-based access control for your programs. +* Updates to the Candid interface description language include the following user-facing features: ++ +** Support type annotations when parsing Candid values. For example, you can use the following syntax to specify types: ++ +.... +(42: nat8, vec {1;-3;5} : vec int8) +.... +** Support for pretty-print decoded candid values: ++ +`+--output pp+` is the default and prints the value in multiple lines. ++ +`+--output idl+` prints the value in a single line. +** Support for `+float e+` notation. +** Support for nested comments. +** Support for Rust-like parsing errors. == Highlights of what's new in 0.6.6 From 0687e782eb9c3be4a4655ced830290b14f3cbc3f Mon Sep 17 00:00:00 2001 From: lsgunnlsgunn Date: Thu, 10 Sep 2020 15:16:04 -0700 Subject: [PATCH 09/30] Change candid to Candid --- modules/release-notes/pages/sdk-release-notes.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/release-notes/pages/sdk-release-notes.adoc b/modules/release-notes/pages/sdk-release-notes.adoc index 25a4a0d6e..74517cbb5 100644 --- a/modules/release-notes/pages/sdk-release-notes.adoc +++ b/modules/release-notes/pages/sdk-release-notes.adoc @@ -52,7 +52,7 @@ This new support for multiple identities enables you to test role-based access c .... (42: nat8, vec {1;-3;5} : vec int8) .... -** Support for pretty-print decoded candid values: +** Support for pretty-print decoded Candid values: + `+--output pp+` is the default and prints the value in multiple lines. + From 25b17f165e7eba5b0a4457de67b0b0d4cc2f43f3 Mon Sep 17 00:00:00 2001 From: Lisa Gunn <44206363+lsgunnlsgunn@users.noreply.github.com> Date: Thu, 10 Sep 2020 15:21:30 -0700 Subject: [PATCH 10/30] Apply suggestions from code review Co-authored-by: Yan Chen <48968912+chenyan-dfinity@users.noreply.github.com> --- modules/release-notes/pages/sdk-release-notes.adoc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/release-notes/pages/sdk-release-notes.adoc b/modules/release-notes/pages/sdk-release-notes.adoc index 74517cbb5..13704c487 100644 --- a/modules/release-notes/pages/sdk-release-notes.adoc +++ b/modules/release-notes/pages/sdk-release-notes.adoc @@ -45,7 +45,7 @@ Because of this change to the `+dfx build+` command, the `+--skip-frontend+` opt You can also use a new `+--identity+` command-line option to set a specific user context when running `+dfx+` commands. + This new support for multiple identities enables you to test role-based access control for your programs. -* Updates to the Candid interface description language include the following user-facing features: +* Updates to the Candid argument parser in `dfx canister call` include the following user-facing features: + ** Support type annotations when parsing Candid values. For example, you can use the following syntax to specify types: + @@ -58,7 +58,6 @@ This new support for multiple identities enables you to test role-based access c + `+--output idl+` prints the value in a single line. ** Support for `+float e+` notation. -** Support for nested comments. ** Support for Rust-like parsing errors. == Highlights of what's new in 0.6.6 From df0a5f6db8be2fca199d257432b5c2729b0335a7 Mon Sep 17 00:00:00 2001 From: lsgunnlsgunn Date: Thu, 10 Sep 2020 15:27:19 -0700 Subject: [PATCH 11/30] Asciidoc formatting --- modules/release-notes/pages/sdk-release-notes.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/release-notes/pages/sdk-release-notes.adoc b/modules/release-notes/pages/sdk-release-notes.adoc index 13704c487..7f415468a 100644 --- a/modules/release-notes/pages/sdk-release-notes.adoc +++ b/modules/release-notes/pages/sdk-release-notes.adoc @@ -45,7 +45,7 @@ Because of this change to the `+dfx build+` command, the `+--skip-frontend+` opt You can also use a new `+--identity+` command-line option to set a specific user context when running `+dfx+` commands. + This new support for multiple identities enables you to test role-based access control for your programs. -* Updates to the Candid argument parser in `dfx canister call` include the following user-facing features: +* Updates to the Candid argument parser in `+dfx canister call+` include the following user-facing features: + ** Support type annotations when parsing Candid values. For example, you can use the following syntax to specify types: + From 4e2a24325ba8af20ebef80775a032669bead761a Mon Sep 17 00:00:00 2001 From: lsgunnlsgunn Date: Thu, 10 Sep 2020 16:06:07 -0700 Subject: [PATCH 12/30] add some Motoko highlights to the mix --- modules/release-notes/pages/sdk-release-notes.adoc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modules/release-notes/pages/sdk-release-notes.adoc b/modules/release-notes/pages/sdk-release-notes.adoc index 7f415468a..68bba0cdc 100644 --- a/modules/release-notes/pages/sdk-release-notes.adoc +++ b/modules/release-notes/pages/sdk-release-notes.adoc @@ -59,6 +59,12 @@ This new support for multiple identities enables you to test role-based access c `+--output idl+` prints the value in a single line. ** Support for `+float e+` notation. ** Support for Rust-like parsing errors. +* Key updates for {proglang} include the following: ++ +** Support for polymorphic equality that enables the `==` and `!=` operators to work on all shareable types. +** Improvements to catch clashing function and class declarations. +** Language support to enable canisters to take installation arguments. +** Optimized backend handling for `Bool` data types. == Highlights of what's new in 0.6.6 From 6786edaa99f61b01aaed3629e249479c05ae15f8 Mon Sep 17 00:00:00 2001 From: lsgunnlsgunn Date: Thu, 10 Sep 2020 16:44:18 -0700 Subject: [PATCH 13/30] merge identities --- .../assets/images/principal-identities.png | Bin 0 -> 35681 bytes .../assets/images/principal-identities.svg | 1 + 2 files changed, 1 insertion(+) create mode 100644 modules/developers-guide/assets/images/principal-identities.png create mode 100644 modules/developers-guide/assets/images/principal-identities.svg diff --git a/modules/developers-guide/assets/images/principal-identities.png b/modules/developers-guide/assets/images/principal-identities.png new file mode 100644 index 0000000000000000000000000000000000000000..6fefe4bde1fe514c5821a7236bcfb46764f082ce GIT binary patch literal 35681 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 literal 0 HcmV?d00001 diff --git a/modules/developers-guide/assets/images/principal-identities.svg b/modules/developers-guide/assets/images/principal-identities.svg new file mode 100644 index 000000000..c140c03ba --- /dev/null +++ b/modules/developers-guide/assets/images/principal-identities.svg @@ -0,0 +1 @@ + \ No newline at end of file From a3b2b348f57a142ebf7bf3244415a6c424bb487d Mon Sep 17 00:00:00 2001 From: lsgunnlsgunn Date: Tue, 29 Sep 2020 14:46:51 -0700 Subject: [PATCH 14/30] Remove release from motoko update --- antora.yml | 1 + modules/release-notes/pages/sdk-release-notes.adoc | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/antora.yml b/antora.yml index 5dc9f914e..eca5dfdf1 100644 --- a/antora.yml +++ b/antora.yml @@ -6,6 +6,7 @@ nav: - modules/quickstart/quick-nav.adoc - modules/developers-guide/dev-nav.adoc - modules/candid-spec/candid-nav.adoc + - modules/rust-guide/rust-nav.adoc - modules/language-guide/lang-nav.adoc - modules/base-libraries/lib-nav.adoc - modules/release-notes/rn-nav.adoc \ No newline at end of file diff --git a/modules/release-notes/pages/sdk-release-notes.adoc b/modules/release-notes/pages/sdk-release-notes.adoc index d0b523abc..b2bb9e960 100644 --- a/modules/release-notes/pages/sdk-release-notes.adoc +++ b/modules/release-notes/pages/sdk-release-notes.adoc @@ -77,7 +77,7 @@ Note that you specify the argument you want to pass using the Candid interface d * The `+dfx identity new+` command has been enhanced to display a confirmation message when adding a new identify is successful. -=== Motoko updates in {release} +=== Motoko updates Key updates for {proglang} include backend support for the following features and changes: From a840f5a24901616414bf50f7882a891a28f856d1 Mon Sep 17 00:00:00 2001 From: lsgunnlsgunn Date: Thu, 15 Oct 2020 14:18:26 -0700 Subject: [PATCH 15/30] Fix merge issue --- modules/developers-guide/pages/work-with-languages.adoc | 5 ----- 1 file changed, 5 deletions(-) diff --git a/modules/developers-guide/pages/work-with-languages.adoc b/modules/developers-guide/pages/work-with-languages.adoc index 7364af820..32a9b86a5 100644 --- a/modules/developers-guide/pages/work-with-languages.adoc +++ b/modules/developers-guide/pages/work-with-languages.adoc @@ -215,12 +215,7 @@ If you are prompted to allow or deny incoming network connections, click *Allow* ---- dfx canister create --all ---- -<<<<<<< HEAD ->>>>>>> master -. Register a unique canister identifier for the application by running the following command: -======= . Build the program by running the following command: ->>>>>>> master + [source,bash] ---- From 965941612cd11042c33cd40568e279cc9daf8b48 Mon Sep 17 00:00:00 2001 From: lsgunnlsgunn Date: Mon, 22 Feb 2021 12:29:57 -0800 Subject: [PATCH 16/30] Update nav in staging --- modules/ROOT/nav.adoc | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/modules/ROOT/nav.adoc b/modules/ROOT/nav.adoc index 42f70d18b..0640df8d3 100644 --- a/modules/ROOT/nav.adoc +++ b/modules/ROOT/nav.adoc @@ -18,7 +18,7 @@ //xref:developer-guide:connect-network.adoc[Connect to a network] ** xref:developers-guide:customize-projects.adoc[Design apps] ** xref:developers-guide:customize-projects.adoc[Manage projects] -** xref:developers-guide:work-with-languages.adoc[Develop using different languages] +** xref:developers-guide:work-with-languages.adoc[Develop using different backend languages] //*** xref:language-guide:at-a-glance.adoc[Motoko] //*** xref:rust-guide:basic-syntax-rules.adoc[Rust] //*** xref:developers-guide:basic-syntax-rules.adoc[C and C++] @@ -46,6 +46,7 @@ ** xref:candid-guide:candid-types.adoc[Candid supported types] ** xref:developers-guide:lang-service-ide.adoc[Language server protocol client] ** xref:developers-guide:glossary.adoc[Glossary] +//** xref:ic-spec:index.adoc[Interface specification] .xref:languages:languages-overview.adoc[Languages] * xref:candid-guide:candid-intro.adoc[Candid] @@ -109,4 +110,9 @@ ** xref:release-notes:0.6.22-rn.adoc[0.6.22] ** xref:release-notes:0.6.21-rn.adoc[0.6.21] ** xref:release-notes:0.6.20-rn.adoc[0.6.20] -** link:https://github.com/dfinity/sdk/releases[Release history] \ No newline at end of file +** link:https://github.com/dfinity/sdk/releases[Release history] + +.xref:ic-spec:index.adoc[Interface specification] +** xref:ic-spec:about-the-spec.adoc[About the specification] +//** xref:ic-spec:intro-canisters.adoc[Introduction to key interfaces] +//** xref:ic-spec:index.adoc[{IC} external interfaces] From 6fb3899e43a3d379144f4d50935fd591c7831552 Mon Sep 17 00:00:00 2001 From: lsgunnlsgunn Date: Wed, 3 Mar 2021 14:01:51 -0800 Subject: [PATCH 17/30] Add separate nav to antora.yml --- antora.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/antora.yml b/antora.yml index 82dad6815..34a96378d 100644 --- a/antora.yml +++ b/antora.yml @@ -9,6 +9,7 @@ nav: #- modules/languages/lang-overview-nav.adoc #- modules/candid-spec/candid-nav.adoc #- modules/language-guide/lang-nav.adoc + - modules/interface-spec/ic-nav.adoc - modules/base-libraries/lib-nav.adoc #- modules/rust-guide/rust-nav.adoc #- modules/integration/integration-nav.adoc From 514cd15c03dd2163798c5e1723813264342b4c6a Mon Sep 17 00:00:00 2001 From: lsgunnlsgunn Date: Wed, 3 Mar 2021 14:02:46 -0800 Subject: [PATCH 18/30] Hide Interface spec in master navigation --- modules/ROOT/nav.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/ROOT/nav.adoc b/modules/ROOT/nav.adoc index 0640df8d3..42a9d255f 100644 --- a/modules/ROOT/nav.adoc +++ b/modules/ROOT/nav.adoc @@ -112,7 +112,7 @@ ** xref:release-notes:0.6.20-rn.adoc[0.6.20] ** link:https://github.com/dfinity/sdk/releases[Release history] -.xref:ic-spec:index.adoc[Interface specification] -** xref:ic-spec:about-the-spec.adoc[About the specification] +//.xref:ic-spec:index.adoc[Interface specification] +//** xref:ic-spec:about-the-spec.adoc[About the specification] //** xref:ic-spec:intro-canisters.adoc[Introduction to key interfaces] //** xref:ic-spec:index.adoc[{IC} external interfaces] From f5aaeb1bb5d525c5c45f4f8ede1625cc23c8bc61 Mon Sep 17 00:00:00 2001 From: lsgunnlsgunn Date: Wed, 3 Mar 2021 15:58:33 -0800 Subject: [PATCH 19/30] Remove interface spec from nav --- modules/ROOT/nav.adoc | 5 ----- 1 file changed, 5 deletions(-) diff --git a/modules/ROOT/nav.adoc b/modules/ROOT/nav.adoc index 42a9d255f..68d7ac548 100644 --- a/modules/ROOT/nav.adoc +++ b/modules/ROOT/nav.adoc @@ -111,8 +111,3 @@ ** xref:release-notes:0.6.21-rn.adoc[0.6.21] ** xref:release-notes:0.6.20-rn.adoc[0.6.20] ** link:https://github.com/dfinity/sdk/releases[Release history] - -//.xref:ic-spec:index.adoc[Interface specification] -//** xref:ic-spec:about-the-spec.adoc[About the specification] -//** xref:ic-spec:intro-canisters.adoc[Introduction to key interfaces] -//** xref:ic-spec:index.adoc[{IC} external interfaces] From 3fdefe010a5d66b26efdc51b83ef843a1383b6e4 Mon Sep 17 00:00:00 2001 From: lsgunnlsgunn Date: Wed, 3 Mar 2021 16:15:23 -0800 Subject: [PATCH 20/30] TEST --- antora.yml | 2 +- modules/ROOT/nav.adoc | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/antora.yml b/antora.yml index 34a96378d..8ecfda8e7 100644 --- a/antora.yml +++ b/antora.yml @@ -9,7 +9,7 @@ nav: #- modules/languages/lang-overview-nav.adoc #- modules/candid-spec/candid-nav.adoc #- modules/language-guide/lang-nav.adoc - - modules/interface-spec/ic-nav.adoc + #- modules/interface-spec/ic-nav.adoc - modules/base-libraries/lib-nav.adoc #- modules/rust-guide/rust-nav.adoc #- modules/integration/integration-nav.adoc diff --git a/modules/ROOT/nav.adoc b/modules/ROOT/nav.adoc index 68d7ac548..705d3745c 100644 --- a/modules/ROOT/nav.adoc +++ b/modules/ROOT/nav.adoc @@ -111,3 +111,6 @@ ** xref:release-notes:0.6.21-rn.adoc[0.6.21] ** xref:release-notes:0.6.20-rn.adoc[0.6.20] ** link:https://github.com/dfinity/sdk/releases[Release history] + +.xref:interface-spec:interface-spec.adoc[Interface specification] +** xref:interface-spec:interface-spec.adoc[0.6.23] From cee25d3e32f69e7327338e732a874272c7834289 Mon Sep 17 00:00:00 2001 From: lsgunnlsgunn Date: Wed, 3 Mar 2021 16:21:18 -0800 Subject: [PATCH 21/30] TEST --- modules/ROOT/nav.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ROOT/nav.adoc b/modules/ROOT/nav.adoc index 705d3745c..86502b0cd 100644 --- a/modules/ROOT/nav.adoc +++ b/modules/ROOT/nav.adoc @@ -113,4 +113,4 @@ ** link:https://github.com/dfinity/sdk/releases[Release history] .xref:interface-spec:interface-spec.adoc[Interface specification] -** xref:interface-spec:interface-spec.adoc[0.6.23] +** xref:interface-spec:interface-spec.adoc[Interfaces!] From 1960ebe5aa4680f7c65b64caaab7b6a113121f3f Mon Sep 17 00:00:00 2001 From: lsgunnlsgunn Date: Wed, 3 Mar 2021 16:24:28 -0800 Subject: [PATCH 22/30] TEST --- antora.yml | 2 +- modules/ROOT/nav.adoc | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/antora.yml b/antora.yml index 8ecfda8e7..34a96378d 100644 --- a/antora.yml +++ b/antora.yml @@ -9,7 +9,7 @@ nav: #- modules/languages/lang-overview-nav.adoc #- modules/candid-spec/candid-nav.adoc #- modules/language-guide/lang-nav.adoc - #- modules/interface-spec/ic-nav.adoc + - modules/interface-spec/ic-nav.adoc - modules/base-libraries/lib-nav.adoc #- modules/rust-guide/rust-nav.adoc #- modules/integration/integration-nav.adoc diff --git a/modules/ROOT/nav.adoc b/modules/ROOT/nav.adoc index 86502b0cd..0b516df12 100644 --- a/modules/ROOT/nav.adoc +++ b/modules/ROOT/nav.adoc @@ -112,5 +112,4 @@ ** xref:release-notes:0.6.20-rn.adoc[0.6.20] ** link:https://github.com/dfinity/sdk/releases[Release history] -.xref:interface-spec:interface-spec.adoc[Interface specification] -** xref:interface-spec:interface-spec.adoc[Interfaces!] +//.xref:interface-spec:interface-spec.adoc[Interface specification] From bcc1c2d0ad3547931bf947db99b10879f32e3069 Mon Sep 17 00:00:00 2001 From: lsgunnlsgunn Date: Thu, 25 Mar 2021 15:34:22 -0700 Subject: [PATCH 23/30] Update deploy output, screenshots, remove windows alert window references --- .../assets/images/front-end-prompt.png | Bin 0 -> 77159 bytes .../assets/images/front-end-result.png | Bin 0 -> 75897 bytes .../quickstart/pages/local-quickstart.adoc | 26 ++++++++++-------- 3 files changed, 15 insertions(+), 11 deletions(-) create mode 100644 modules/quickstart/assets/images/front-end-prompt.png create mode 100644 modules/quickstart/assets/images/front-end-result.png diff --git a/modules/quickstart/assets/images/front-end-prompt.png b/modules/quickstart/assets/images/front-end-prompt.png new file mode 100644 index 0000000000000000000000000000000000000000..f9b383150d7a68b39bd9d0b4700ae34ac38a7c55 GIT binary patch literal 77159 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 P7VxsMvbUsKoQwPuS)%Zn literal 0 HcmV?d00001 diff --git a/modules/quickstart/assets/images/front-end-result.png b/modules/quickstart/assets/images/front-end-result.png new file mode 100644 index 0000000000000000000000000000000000000000..f1e8c6fdfb19d1a8b4ce63954e1d14ed27542ef6 GIT binary patch literal 75897 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 literal 0 HcmV?d00001 diff --git a/modules/quickstart/pages/local-quickstart.adoc b/modules/quickstart/pages/local-quickstart.adoc index 048e2b440..be20dd2ac 100644 --- a/modules/quickstart/pages/local-quickstart.adoc +++ b/modules/quickstart/pages/local-quickstart.adoc @@ -17,7 +17,7 @@ ifdef::env-github,env-browser[:outfilesuffix:.adoc] [[quick-start-intro]] This _Quick Start_ scenario assumes that you are installing the {sdk-short-name} for the first time and are running the {IC} as part of your *local development environment*. -To get started, let's build and deploy a simple Hello application that has just one function—called `+greet+`. The `+greet+` function accepts one text argument and returns the result with a greeting similar to **Hello,{nbsp}everyone!** in a terminal if you run the application using the command-line or in an alert pop-up window if you access the application in a browser. +To get started, let's build and deploy a simple Hello application that has just one function—called `+greet+`. The `+greet+` function accepts one text argument and returns the result with a greeting similar to **Hello,{nbsp}everyone!** in a terminal if you run the application using the command-line or in an HTML page if you access the application in a browser. [[before-you-begin]] == Before you begin @@ -173,17 +173,15 @@ For example, this step registers two network-specific identifiers—one for the + .... Creating the "default" identity. - - generating new key at /Users/lisagunn/.config/dfx/identity/default/identity.pem + - generating new key at /Users/pubs/.config/dfx/identity/default/identity.pem Created the "default" identity. +Creating a wallet canister on the local network. +The wallet canister on the "local" network for user "default" is "rwlgt-iiaaa-aaaaa-aaaaa-cai" Deploying all canisters. Creating canisters... Creating canister "hello"... -Creating the canister using the wallet canister... -Creating a wallet canister on the local network. -The wallet canister on the "local" network for user "default" is "rwlgt-iiaaa-aaaaa-aaaaa-cai" "hello" canister created with canister id: "rrkah-fqaaa-aaaaa-aaaaq-cai" Creating canister "hello_assets"... -Creating the canister using the wallet canister... "hello_assets" canister created with canister id: "ryjl3-tyaaa-aaaaa-aaaba-cai" Building canisters... Building frontend... @@ -192,6 +190,13 @@ Installing code for canister hello, with canister_id rrkah-fqaaa-aaaaa-aaaaq-cai Installing code for canister hello_assets, with canister_id ryjl3-tyaaa-aaaaa-aaaba-cai Authorizing our identity (default) to the asset canister... Uploading assets to asset canister... + /index.html 1/1 (472 bytes) + /index.js 1/1 (295480 bytes) + /main.css 1/1 (484 bytes) + /sample-asset.txt 1/1 (24 bytes) + /logo.png 1/1 (25397 bytes) + /index.js.map 1/1 (957052 bytes) + /index.js.LICENSE.txt 1/1 (499 bytes) Deployed canisters. .... + @@ -227,20 +232,19 @@ Now that you have verified that your application has been deployed and tested it For example, the full URL should look similar to the following: + .... -http://127.0.0.1:8000/?canisterId=rrkah-fqaaa-aaaaa-aaaaq-cai +http://127.0.0.1:8000/?canisterId=ryjl3-tyaaa-aaaaa-aaaba-cai .... + Navigating to this URL displays the prompt pop-up window. For example: + -image:quickstart-prompt.png[Prompt pop-up window] +image:front-end-prompt.png[HTML page with prompt] -. Type a greeting, then click *OK* to return the greeting. +. Type a greeting, then click *Click Me* to return the greeting. + For example: + -image:quickstart-return.png[Hello, everyone! greeting] -. Click *OK* to close the alert pop-up window. +image:front-end-result.png[Hello, everyone! greeting] == Stop the local network From 5d369d40cb5c0d1962c9475236825cd6c4dcb72a Mon Sep 17 00:00:00 2001 From: lsgunnlsgunn Date: Thu, 25 Mar 2021 15:40:12 -0700 Subject: [PATCH 24/30] Hide vscode plugin section --- modules/quickstart/pages/local-quickstart.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/quickstart/pages/local-quickstart.adoc b/modules/quickstart/pages/local-quickstart.adoc index be20dd2ac..86938ffa1 100644 --- a/modules/quickstart/pages/local-quickstart.adoc +++ b/modules/quickstart/pages/local-quickstart.adoc @@ -86,7 +86,7 @@ dfx --help + The command displays usage information for the `+dfx+` parent command and its subcommands. -include::example$vscode-plugin.adoc[] +//include::example$vscode-plugin.adoc[] [[create-a-new-project]] == Create a new project From b37ada73c1e594299a6140996f9f6096db35d8a8 Mon Sep 17 00:00:00 2001 From: lsgunnlsgunn Date: Thu, 25 Mar 2021 16:13:13 -0700 Subject: [PATCH 25/30] Update command output, screenshots, remove alret window references --- .../images/simplified-canister-workflow.svg | 1 + ic-spec/examples/certificates.cddl | 31 + ic-spec/examples/changelog.adoc | 241 ++ ic-spec/examples/ic.did | 34 + ic-spec/examples/requests.cddl | 102 + ic-spec/pages/about-the-spec.adoc | 101 + ic-spec/pages/index.adoc | 3520 +++++++++++++++++ ic-spec/pages/intro-canisters.adoc | 27 + .../assets/images/net-alert-prompt.png | Bin 72414 -> 0 bytes .../assets/images/net-alert-window.png | Bin 44878 -> 0 bytes .../assets/images/net-front-end-prompt.png | Bin 0 -> 83206 bytes .../quickstart/assets/images/net-result.png | Bin 0 -> 40628 bytes .../assets/images/quickstart-prompt.png | Bin 75566 -> 0 bytes .../assets/images/quickstart-return.png | Bin 71613 -> 0 bytes .../quickstart/pages/network-quickstart.adoc | 36 +- 15 files changed, 4077 insertions(+), 16 deletions(-) create mode 100644 ic-spec/assets/images/simplified-canister-workflow.svg create mode 100644 ic-spec/examples/certificates.cddl create mode 100644 ic-spec/examples/changelog.adoc create mode 100644 ic-spec/examples/ic.did create mode 100644 ic-spec/examples/requests.cddl create mode 100644 ic-spec/pages/about-the-spec.adoc create mode 100644 ic-spec/pages/index.adoc create mode 100644 ic-spec/pages/intro-canisters.adoc delete mode 100644 modules/quickstart/assets/images/net-alert-prompt.png delete mode 100644 modules/quickstart/assets/images/net-alert-window.png create mode 100644 modules/quickstart/assets/images/net-front-end-prompt.png create mode 100644 modules/quickstart/assets/images/net-result.png delete mode 100644 modules/quickstart/assets/images/quickstart-prompt.png delete mode 100644 modules/quickstart/assets/images/quickstart-return.png diff --git a/ic-spec/assets/images/simplified-canister-workflow.svg b/ic-spec/assets/images/simplified-canister-workflow.svg new file mode 100644 index 000000000..53c74ee80 --- /dev/null +++ b/ic-spec/assets/images/simplified-canister-workflow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ic-spec/examples/certificates.cddl b/ic-spec/examples/certificates.cddl new file mode 100644 index 000000000..dbcb6ad85 --- /dev/null +++ b/ic-spec/examples/certificates.cddl @@ -0,0 +1,31 @@ +certificate = tagged<{ + tree : hash-tree + signature : signature + ? delegation : delegation +}> + +hash-tree = + tree-empty / + tree-fork / + tree-labeled / + tree-leaf / + tree-pruned + +; Trees are represented as CBOR arrays instead of records with textual field +; labels, for conciseness +tree-empty = [ 0 ] +tree-fork = [ 1 hash-tree hash-tree ] +tree-labeled = [ 2 bytes hash-tree ] +tree-leaf = [ 3 bytes ] +tree-pruned = [ 4 hash ] + +delegation = { + subnet_id : bytes + certificate: bytes +} + +tagged = #6.55799(t) ; the CBOR tag + +hash = bytes +pubkey = bytes +signature = bytes diff --git a/ic-spec/examples/changelog.adoc b/ic-spec/examples/changelog.adoc new file mode 100644 index 000000000..77e8bf1ea --- /dev/null +++ b/ic-spec/examples/changelog.adoc @@ -0,0 +1,241 @@ +[#changelog] +== Changelog + +[#unreleased] +=== ∞ (unreleased) + +* Spec: The cleanup callback is introduced +* Spec: Ingress rate limiting +* Spec: Add ECDSA signatures on curve secp256k1 + +[#0_15_1] +=== 0.15.1 (2021-02-09) + +* The document is renamed to “Internet Computer Interface Spec” + +[#0_15_0] +=== 0.15.0 (2020-12-17) + +* Spec: Support for raw Ed25519 keys is removed + +[#0_14_1] +=== 0.14.1 (2020-12-08) + +* Spec: The default `memory_allocation` becomes unspecified + +[#0_14_0] +=== 0.14.0 (2020-11-18) + +* Support for funds is scaled back to only support cycles +* The `ic0.msg_cycles_accept` system call now returns the actually accepted + cycles +* The `provisional_` management calls are introduced + +[#0_13_2] +=== 0.13.2 (2020-11-12) + +* Spec: The `ic0.canister_status` system call + +[#0_13_1] +=== 0.13.1 (2020-11-06) + +* Spec: Delegation between user public keys + +[#0_13_0] +=== 0.13.0 (2020-10-19) + +* Spec: Certification (also removes “request-status” request) + +[#0_12_2] +=== 0.12.2 (2020-10-23) + +* Spec: User authentication method based on WebAuthn is introduced +* Spec: User authentication can use ECDSA +* Spec: Public keys are DER-encoded + +[#0_12_1] +=== 0.12.1 (2020-10-16) + +* Spec: Return more information in the `canister_status` management call + +[#0_12_0] +=== 0.12.0 (2020-10-13) + +* Spec: Anonymous requests must have the sender field set + +[#0_11_1] +=== 0.11.1 (2020-10-01) + +* Spec: The `deposit_funds` call +* ic-ref(-test): Implement and test the above changes + +[#0_11_0] +=== 0.11.0 (2020-09-23) + +* Spec: Inter-canister calls are now performed using a builder-like API +* Spec: Support for funds (balances and transfers) + +[#v0_10_3] +=== 0.10.3 (2020-09-21) + +* Spec: The anonymous user is introduced + +[#v0_10_2] +=== 0.10.2 (2020-09-08) + +* ic-ref(-test): Bugfix: A query response should _not_ include a `time` field + +[#v0_10_1] +=== 0.10.1 (2020-09-01) + +* Forward-port changes from 0.9.3 + +[#v0_10_0] +=== 0.10.0 (2020-08-06) + +* Spec: Users can set/update a memory allocation when installing/upgrading a canister. +* Spec: The `expiry` field is added to requests +* ic-ref(-test): Implement and test the above changes, as far as possible + +[#v0_9_3] +=== 0.9.3 (2020-09-01) + +* Spec: The management canister supports the `raw_rand` method +* ic-ref(-test): Implement and test the above changes + +[#v0_9_2] +=== 0.9.2 (2020-08-05) + +* Spec: Canister controllers can stop/start canisters and can query their status. +* Spec: Canister controllers can delete canisters +* ic-ref(-test): Implement and test the above changes +* ic-ref: refactorings + +[#v0_9_1] +=== 0.9.1 (2020-07-20) + +* Forward-port changes from 0.8.2 + +[#v0_9_0] +=== 0.9.0 (2020-07-15) + +* Spec: Introduction of a domain separator (again) +* Spec: The calculation of “derived ids” has changed +* Spec: The self-authenticating and derived id forms use a truncated hash +* Spec: The textual representation of principals has changed +* ic-ref(-test): Implement the above changes +* ic-ref-test: Also send read requests with nonces + +[#v0_8_2] +=== 0.8.2 (2020-07-17) + +* ic-ref-test: Also send read requests with nonces +* Spec: Installing code via `reinstall` works also on the empty canister +* ic-ref(-test): Implement and test the above changes + +[#v0_8_1] +=== 0.8.1 (2020-07-10) + +* Reflect refined process in README and intro. +* Spec: `ic0.time` added +* ic-ref(-test): Implement and test `ic0.time` + +[#v0_8_0] +=== 0.8.0 (2020-06-23) + +* Spec: Revert the introduction of a domain separator +* ic-ref(-test): Implement and test the above changes + +[#v0_6_2] +=== 0.6.2 (2020-06-23) + +* Spec: Fix meaning-changing typos in `ic.did` +* ic-ref-test: Be more liberal about the precise reject code in some cases. + +[#v0_6_0] +=== 0.6.0 (2020-06-08) + +* Spec: Make all canister ids system-chosen +* Spec: HTTP requests for management features are removed +* ic-ref(-test): Implement and test the above changes + +[#v0_4_0] +=== 0.4.0 (2020-05-25) + +* Spec (editorial): the term “principal” is now used for the _id_ of a canister or + user, not the canister or user itself +* Spec: The signature of a request needs to be calculated using a domain separator +* Spec: Describe the `controller` attribute, add a request to change it +* Spec: The IC management canister is introduced +* ic-ref(-test): Implement and test the above changes + +[#v0_2_16] +=== 0.2.16 (2020-05-29) + +* More tests about calls from query methods + +[#v0_2_14] +=== 0.2.14 (2020-05-14) + +* Spec: Bugfix: Mode should be `reinstall`, not `replace` +* ic-ref-test: A few more tests, refactorings + +[#v0_2_12] +=== 0.2.12 (2020-05-06) + +* ic-ref-test: Remove code to work around lack of creater canister. +* ic-ref-test: Stricter tests for bad signatures +* ic-ref: Also accept CBOR maps of indeterminate length + +[#v0_2_10] +=== 0.2.10 (2020-04-29) + +* ic-ref: Bind to 127.0.0.1 instead of 0.0.0.0 +* ic-ref: Set content-type even for error responses +* ic-ref-test: Tests related to query calls +* ic-ref-test: Test “reply after trap in prior callback” + +[#v0_2_8] +=== 0.2.8 (2020-04-23) + +* Spec: Include section with CDDL description +* ic-ref-test: Block less tests on `create_canister` support + +[#v0_2_6] +=== 0.2.6 (2020-04-01) + +* ic-ref-run: Accept any canister id in `install` commands +* ic-ref-test: More defensive printing of HTTP bodies + +[#v0_2_4] +=== 0.2.4 (2020-03-23) + +* simplify versioning (only three components), skip 0.2.2 to avoid confusion with 0.2.0.2 +* spec: Clarification: `reply` field is always present +* spec: General cleanup based on front-to-back reading +* ic-ref(-test): Enforce signature checking +* ic-ref(-test): Desired canister ids must be derived from sender +* ic-ref(-test): Require the 55799 semantic CBOR tag, as specified +* ic-ref: Ignore duplicate requests +* ic-ref-test: Run more tests independent of each other (try `-j 8`) +* ic-ref-test: Submit requests with nonces +* ic-ref-test: Test various trap conditions in reply and reject callbacks. +* ic-ref-test: Test that `ic0.debug_print` with invalid bounds does _not_ trap +* ic-ref-test: Allow unspecified fields to appear in the status response +* ic-ref-test: Canister upgrade tests + +[#v0_2_0_2] +=== 0.2.0.2 (2020-03-19) + +* ic-ref: Return status 202, empty body, on `submit`, to match spec +* ic-ref: Allow update or inter-canister calls to query methods +* ic-ref: Trap upon calls from queries +* ic-ref-test: If the IC does not claim to be spec compliant, always succeed + (but still report errors) +* ic-ref-test: Support --html reports +* ic-ref-test: Use the “Universal Canister” to drive tests; more tests. + +[#v0_2_0_0] +=== 0.2.0.0 (2020-03-11) + +* This is the first release. Subsequent releases will include a changelog. diff --git a/ic-spec/examples/ic.did b/ic-spec/examples/ic.did new file mode 100644 index 000000000..ed72e6176 --- /dev/null +++ b/ic-spec/examples/ic.did @@ -0,0 +1,34 @@ +type canister_id = principal; +type user_id = principal; +type wasm_module = blob; +type unit = blob; +service ic : { + create_canister : () -> (record {canister_id : canister_id}); + install_code : (record { + mode : variant {install; reinstall; upgrade}; + canister_id : canister_id; + wasm_module : wasm_module; + arg : blob; + compute_allocation : opt nat; + memory_allocation : opt nat; + }) -> (); + set_controller : (record {canister_id : canister_id; new_controller : principal}) -> (); + start_canister : (record {canister_id : canister_id}) -> (); + stop_canister : (record {canister_id : canister_id}) -> (); + canister_status : (record {canister_id : canister_id}) -> (record { + status : variant { running; stopping; stopped }; + module_hash: opt blob; + controller: principal; + memory_size: nat; + cycles: nat; + }); + delete_canister : (record {canister_id : canister_id}) -> (); + deposit_cycles : (record {canister_id : canister_id}) -> (); + raw_rand : () -> (blob); + + // provisional interfaces for the pre-ledger world + provisional_create_canister_with_cycles : + (record { amount: opt nat }) -> (record {canister_id : canister_id}); + provisional_top_up_canister : + (record { canister_id: canister_id; amount: nat }) -> (); +} diff --git a/ic-spec/examples/requests.cddl b/ic-spec/examples/requests.cddl new file mode 100644 index 000000000..ff7a629a0 --- /dev/null +++ b/ic-spec/examples/requests.cddl @@ -0,0 +1,102 @@ +; The "root type" of the CDDL file is a hack: We want to define multiple +; types in one file (to shared common definitions), but CDDL requires a single +; root type. So we just list the types defined here. This is a common CDDL idiom. +start = + async-request / + sync-request / + response + +; common wrappers + +tagged = #6.55799(t) ; the CBOR tag + +envelope = tagged<{ + content: t + ? sender_pubkey: pubkey + ? sender_delegation: [*4 signed-delegation] + ? sender_sig: signature +}> + + +; A request as submitted to /api/v1/submit +async-request = envelope +async-content = + call-request + +call-request = { + request_type: "call" + ? nonce : bytes + ingress_expiry : timestamp + sender : principal + canister_id : principal + method_name : text + arg : bytes +} + +; A request as submitted to /api/v1/read +sync-request = envelope +sync-content = + read-state-request / + query-request + +read-state-request = { + request_type: "read_state" + ? nonce : bytes + ingress_expiry : timestamp + sender : principal + paths: [* state-path] +} + +state-path = [* path-label] +path-label = bytes + +query-request = { + request_type: "query" + ? nonce : bytes + ingress_expiry : timestamp + sender : principal + canister_id : principal + method_name : text + arg : bytes +} + +; The response, as returned from /api/v1/read + +response = tagged +response-content = + read-state-response / + query-response + +read-state-response = { + certificate: bytes +} + +query-response = { + status: "replied" + reply: call-reply + // + status: "rejected" + reject_code: unsigned + reject_message: text +} + +call-reply = { + arg : bytes +} + +signed-delegation = { + delegation: { + pubkey: bytes + expiration: timestamp + ? targets: [* principal] + } + signature: bytes +} + +; some common data types + +principal = bytes .size (0..29) + +pubkey = bytes +signature = bytes +timestamp = unsigned diff --git a/ic-spec/pages/about-the-spec.adoc b/ic-spec/pages/about-the-spec.adoc new file mode 100644 index 000000000..5f36edda7 --- /dev/null +++ b/ic-spec/pages/about-the-spec.adoc @@ -0,0 +1,101 @@ += About the Internet Computer Interface Specification +:doctitle: Internet Computer Interface Specification + +As discussed in link:../developers-guide/concepts/what-is-IC{outfilesuffix}[What is the {IC}?], the {IC} runs on a large number of physical computers that work together in non-trivial ways, but appear to act as a single, shared, secure, and globally-accessible computer. + +The complexity that makes a large network of computers operate like a single computer is largely invisible to the developers who deploy their applications on the {IC} and to the end-users who access applications running on the {IC}. + +For most application developers and users,interacting with the {IC} doesn't require any access to low-level interfaces or any knowledge of the relationship between those interfaces. +In most cases, developers build their applications using higher-level interfaces such as the link:../developers-guide/cli-reference/dfx-parent{outfilesuffix}[DFX command-line interface] or the link:../rust-guide/rust-intro{outfilesuffix}[Rust Canister Development Kit (CDK)]. + +For developers interested in building tools for the {IC}—for example, to support canister development or user agents in new languages—the _{doctitle}_ describes the _external_ interfaces that the {IC} provides and the behavior to expect when using these interfaces. + +== Intended audience + +The _{doctitle}_ is intended for a technical audience with a need to understand the low-level operations and behavior for the {IC} external interfaces. + +Depending on your role and interests, you should consult the information in the {doctitle} if you want to: + +* use any of the low-level interfaces to implement agents, canister developments kits, emulators, or other {IC} tooling. + +* implement features that are described by the specification but not yet implemented in existing tooling, for example as a developer working on the {IC} project. + +* analyze the intricacies of the Internet Computer’s behavior in great detail, for example, as part of a security review or audit. + +== Scope of this document + +If you think of the Internet Computer as a distributed execution engine that provides a WebAssembly-based hosting service for applications, then this document describes exclusively the service hosting aspect of it. +To the extent possible, this document does _not_ talk about block chains, consensus protocols, nodes, subnets, orthogonal persistence, or governance. + +This document also tries to be implementation-agnostic. +It would apply just as well to a (hypothetical) compatible re-implementation of the Internet Computer. +This implies that this document does not cover interfaces towards those running the Internet Computer (for example, data center operators, protocol developers, governance users), as topics like node updates, monitoring, logging are inherently tied to the actual _implementation_ and its architecture. + +== Documentation conventions and terminology + +For consistency, this document uses the following conventions for terminology: + +* _User_ denotes any external entity interacting with the {IC}. ++ +-- + +* The term _user_ is used to avoid the more ambiguous term _client_. In most cases within the context of the {doctitle}, however, _user_ refers to code acting as an _agent_ on behalf of a person. + +* Canisters, users, and other entities are identified by a _principal_, sometimes also called an _id_. + +* _Users_ interact with the system by issuing _requests_ on the HTTPS interface. +Requests have responses which can either be replies or rejects. Some requests cause internal messages to be created. + +-- + +* The public entry points of canisters are called _methods_. ++ +-- + +* Methods can be declared to be either _update methods_, in which state mutation is preserved, or _query methods_, in which state mutation is discarded and no further calls can be made. + +* Methods can be _called_, from _caller_ to _callee_. + +* Method calls eventually incur a _response_ which is either a _reply_ or a _reject_. + +* A method can have _parameters_, which are provided with concrete _arguments_ in a method call. + +* Internally, a call or a response is transmitted as a _message_ from a _sender_ to a _receiver_. +Messages do not have a response. + +-- + +* _Inter-canister calls_ describe calls from one canister to another or calls from a canister to itself ++ +-- +* Inter-canister calls can preserve state mutation. + +* Because inter-canister calls do not distinguish between update and query methods, all inter-canister calls are treated as update method calls. + +* External update calls can call update or query methods. + +* External query calls can _only_ call query methods. +-- + +* [[define-wasm-fn]]WebAssembly _functions_ are exported by the WebAssembly module or provided by the canister interface system API. ++ +-- +* WebAssembly functions are _invoked_. + +* WebAssembly functions can either _trap_ or _return_, possibly with a return value. + +* WebAssembly Functions can also have parameters and take arguments. +-- + +== Unspecified constants and limits + +This specification may refer to certain constants and limits without specifying their concrete value because the values are implementation defined. +Many of these values are resource limits that are relevant only to specify the error-handling behavior of the system. This list is not complete. + +* `MAX_CYCLES_PER_MESSAGE` ++ +Amount of cycles that a canister has to have before a message is attempted to be executed, which is deducted from the canister balance before message execution. See link:index{outfilesuffix}#rule-message-execution[Message execution]. + +* `MAX_CANISTER_BALANCE` ++ +Maximum canister cycle balance. Any excess is discarded. Less than 2^64^. diff --git a/ic-spec/pages/index.adoc b/ic-spec/pages/index.adoc new file mode 100644 index 000000000..c8249381f --- /dev/null +++ b/ic-spec/pages/index.adoc @@ -0,0 +1,3520 @@ += Internet Computer Interface Specification +DFINITY Foundation +∞ (unreleased) +:stem: latexmath +:icons: font + +Welcome to the Internet Computer! We speak of “the” Internet Computer, because although under the hood a large number of physical computers are working together in non-trivial ways, in the end we have the appearance of a single, shared, secure and world-wide accessible computer. Much, if not all, of the advanced and complex machinery is hidden from those that use the Internet Computer to run their applications and those who use these applications. + +This document is a rigorous, technically-dense reference. +It is not an introduction to the Internet Computer, and as such most useful to those who understand the high-level concepts. +For an introduction to the {IC} and high-level concepts, see the following before using this specification: + +* link:../developers-guide/concepts/what-is-IC{outfilesuffix}[What is the {IC}?] +* link:url[Academy talks] + +== Internet Computer overview + +If you want to use the Internet Computer as an application developer, you first create a _canister module_ that contains the WebAssembly code and configuration for your application, and deploy it using the <>. You can create canisters using the Motoko language and the SDK, which is more convenient. If you want to use your own tooling, however, then this document describes <> and how the <>. + +Once your application is running on the Internet Computer, it is a _canister_, and users can interact with it. They can use the <> to interact with the canister according to the <>. + +The user can also use the HTTP interface to issue read-only queries, which are faster, but cannot change the state of a canister. + +.A typical use of the Internet Computer. (This is a simplified view; some of the arrows represent multiple interaction steps or polling.) + +[plantuml] +.... +actor Developer +actor User +participant "Internet Computer" as IC +participant "Canister 1" as Can1 +Developer -> IC : /submit create canister +create Can1 +IC -> Can1 : create +Developer <-- IC : canister-id=1 +Developer -> IC : /submit install module +IC -> Can1 : initialize +||| +User -> IC : /submit call “hello” +IC -> Can1 : hello +return "Hello world!" +User <-- IC : "Hello World!" +.... + +Sections “<>” and “<>” describe these interfaces, together with a brief description of what they do. Afterwards, you will find a <> of the Internet Computer that describes its abstract behavior with more rigor. + +=== Nomenclature + +To get some consistency in this document, we try to use the following terms with precision: + +We avoid the term “client”, as it could be the client of the Internet Computer or the client inside the distributed network that makes up the Internet Computer. Instead, we use the term _user_ to denote the external entity interacting with the internet computer, even if in most cases it will be some code (sometimes called “agent”) acting on behalf of a (human) user. + +The public entry points of canisters are called _methods_. Methods can be declared to be either _update methods_ (state mutation is preserved) or _query methods_ (state mutation is discarded, no further calls can be made). + +Methods can be _called_, from _caller_ to _callee_, and will eventually incur a _response_ which is either a _reply_ or a _reject_. A method may have _parameters_, which are provided with concrete _arguments_ in a method call. + +Inter-canister calls do not distinguish between update and query methods; inter-canister calls can preserve state mutation and are therefore akin to update method calls. Note that calls from a canister to itself also count as "inter-canister". External calls can be update calls, which can call both kinds of methods, and query calls, which can _only_ call query methods. + +Internally, a call or a response is transmitted as a _message_ from a _sender_ to a _receiver_. Messages do not have a response. + +[[define-wasm-fn]]WebAssembly _functions_ are exported by the WebAssembly module or provided by the System API. These are _invoked_ and can either _trap_ or _return_, possibly with a return value. Functions, too, have parameters and take arguments. + +External _users_ interact with the system by issuing _requests_ on the HTTPS interface. Requests have responses which can either be replies or rejects. Some requests cause internal messages to be created. + +Canisters, users, etc. are identified by a _principal_, sometimes also called an _id_. + +== Unspecified constants and limits + +This specification may refer to certain constants and limits without specifying their concrete value (yet), i.e. they are implementation defined. Many are resource limits which are relevant only to specify the error-handling behaviour of the system (which, as mentioned above, is also not yet precisely described in this document). This list is not complete. + +* `MAX_CYCLES_PER_MESSAGE` ++ +Amount of cycles that a canister has to have before a message is attempted to be executed, which is deducted from the canister balance before message execution. See <>. + +* `MAX_CANISTER_BALANCE` ++ +Maximum canister cycle balance. Any excess is discarded. Less than 2^64^. + +== Principals + +Principals, like canister, user and subnet ids, are – as far as most uses of the system are concerned – binary blobs with a length between 0 and 29 bytes. There is, however, some structure to them to encode specific authentication and authorization behavior. + + + +[#id-classes] +=== Special forms of IDs + +In this section, `H` denotes SHA-224, `·` denotes blob concatenation and `|p|` denotes the length of `p` in bytes, encoded as a single byte. + +There are several classes of ids: + +1. _Opaque ids_. ++ +These are always generated by the system and have no structure of interest outside the system. ++ +NOTE: Typically, these end with the byte `0x01`, but users of the IC should not need to care about that. + +2. _Self-authenticating ids_. ++ +These have the form `H(public_key) · 0x02` (29 bytes). ++ +An external user can use these ids as the `sender` of a request if they own the corresponding private key. +The public key uses one of the encodings described in <>. + +3. _Derived ids_ ++ +These have the form `H(|registering_principal| · registering_principal · derivation_nonce) · 0x03` (29 bytes). ++ +These ids are treated specially when an id needs to be registered. In such a request, whoever requests an id can provide a `derivation_nonce`. By hashing that together with the principal of the caller, every principal has a space of ids that only they can register ids from. ++ +NOTE: Derived IDs are currently not explicitly used in this document, but they may be used internally or in the future. + +4. _Anonymous id_ ++ +This has the form `0x04`, and is used for the anonymous caller. It can be used in call and query requests without a signature. + +When the system creates a _fresh_ id, it never creates a self-authenticating id, an anonymous id or an id derived from what could be a canister or user. + + +[#textual-ids] +=== Textual representation of principals + +NOTE: This textual representation does not actually show up in the interface (which always deals with blobs), so it is merely a recommended convention. + +We specify a _canonical textual format_ that is recommended whenever principals need to be printed or read in textual format, e.g. in log messages, transactions browser, command line tools, source code. + +The textual representation of a blob `b` is `Grouped(Base32(CRC32(b) · b))` where + + * `CRC32` is a four byte check sequence, calculated as defined by ISO 3309, ITU-T V.42 and https://www.w3.org/TR/2003/REC-PNG-20031110/#5CRC-algorithm[elsewhere] + * `Base32` is the Base32 encoding as defined in https://tools.ietf.org/html/rfc4648#section-6[RFC 4648], with no padding character added. + * The middle dot denotes concatenation. + * `Grouped` takes an ASCII string and inserts the separator `-` (dash) every 5 characters. The last group may contain less than 5 characters. A separator never appears at the beginning or end. + +The textual representation is conventionally printed with _lower case letters_, but parsed case-insensitively. + +Because the maximum size of a principal is 29 bytes, the textual representation will be no longer than 63 characters (10 times 5 plus 3 characters with 10 separators in between them). + +[TIP] +===== +The canister with id `0xABCD01` has check sequence `0x233FF206` (https://crccalc.com/?crc=ABCD01&method=crc32&datatype=hex&outtype=hex[online calculator]); the final id is thus `em77e-bvlzu-aq`. + +Example encoding from hex, and decoding to hex, in bash (the following can be pasted into a terminal as it): +.... +function textual_encode() { + ( echo "$1" | xxd -r -p | /usr/bin/crc32 /dev/stdin; echo -n "$1" ) | + xxd -r -p | base32 | tr A-Z a-z | + tr -d = | fold -w5 | paste -sd'-' - +} + +function textual_decode() { + echo -n "$1" | tr -d - | tr a-z A-Z | + fold -w 8 | xargs -n1 printf '%-8s' | tr ' ' = | + base32 -d | xxd -p | tr -d '\n' | cut -b9- | tr a-z A-Z +} +.... +===== + +[#signatures] +== Signatures + +Digital signature schemes are used for authenticating messages in various parts of the IC infrastructure. +Signatures are domain separated, which means that every message is prefixed with a byte string that is unique to the purpose of the signature. +The IC supports plain signatures as well as signatures generated via web authentication. + +- Plain signatures are supported for the schemes ++ + * https://ed25519.cr.yp.to/index.html[*Ed25519*] or + * https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf[*ECDSA*] on curve P-256 (also known as `secp256r1`), using SHA-256 as hash function, as well as on the Koblitz curve `secp256k1`. ++ +The signature is calculated by signing the concatenation of the domain separator and the message. ++ + * Public keys must be valid for signature schemes Ed25519 or ECDSA and are encoded as DER. + - See https://tools.ietf.org/html/rfc8410[RFC 8410] for DER encoding of Ed25519 public keys. + - See https://tools.ietf.org/rfc/rfc5480[RFC 5480] for DER encoding of ECDSA public keys; the DER encoding must not specify a hash function. + For curve `secp256k1`, the OID 1.3.132.0.10 is used. + The points must be specified in uncompressed form (i.e. `0x04` followed by the big-endian 32byte encodings of `x` and `y`). + * The signatures are encoded as the concatenation of the 32 byte big endian encodings of the two values _r_ and _s_. + +- The only allowed signature scheme for web authentication is ++ + * https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf[*ECDSA*] on curve P-256 (also known as `secp256r1`), using SHA-256 as hash function. ++ +The signature is calculated by using the concatenation of the domain separator and the message as the challenge in the web authentication assertion. ++ +The signature is checked by verifying that the `challenge` field contains the https://tools.ietf.org/html/rfc4648#section-5[base64url encoding] of the concatenation of the domain separator and the message, and that `signature` verifies on `authenticatorData · SHA-256(utf8(clientDataJSON))`, as specified in the https://www.w3.org/TR/webauthn/#op-get-assertion[WebAuthn w3c recommendation]. ++ + * The public key is encoded as DER-wrapped COSE key as detailed below. + * The signature is a CBOR encoding of a map with three mandatory fields: + - `authenticator_data` (`blob`): WebAuthn authenticator data. + - `client_data_json` (`text`): WebAuthn client data in JSON representation. + - `signature` (`blob`): Signature as specified in the https://www.w3.org/TR/webauthn/#signature-attestation-types[WebAuthn w3c recommendation], which means DER encoding in the case of an ECDSA signature. + +[#oid-der-wrapped-cose] + +The DER-wrapped COSE format uses the `SubjectPublicKeyInfo` type used for other types of public keys (see, e.g., https://tools.ietf.org/html/rfc8410#section-4[RFC 8410, Section 4]), with OID 1.3.6.1.4.1.56387.1.1 (iso.org.dod.internet.private.enterprise.dfinity.mechanisms.der-wrapped-cose). The `BIT STRING` field `subjectPublicKey` contains the COSE encoding. +See https://www.w3.org/TR/webauthn/#sctn-encoded-credPubKey-examples[WebAuthn w3c recommendation] or https://tools.ietf.org/html/rfc8152#section-13.1[RFC 8152] for details on the COSE encoding. + +[TIP] +==== +A DER wrapping of a COSE key is shown below. It can be parsed via the command `sed "s/#.*//" | xxd -r -p | openssl asn1parse -inform der`. +.... +30 5E # SEQUENCE of length 94 bytes + 30 0C # SEQUENCE of length 12 bytes + 06 0A 2B 06 01 04 01 83 B8 43 01 01 # OID 1.3.6.1.4.1.56387.1.1 + 03 4E 00 # BIT STRING encoding of length 78, + A501 0203 2620 0121 5820 7FFD 8363 2072 # length is at byte boundary + FD1B FEAF 3FBA A431 46E0 EF95 C3F5 5E39 # contents is a valid COSE key + 94A4 1BBF 2B51 74D7 71DA 2258 2032 497E # with ECDSA on curve P-256 + ED0A 7F6F 0009 2876 5B83 1816 2CFD 80A9 + 4E52 5A6A 368C 2363 063D 04E6 ED +.... +The same, on https://lapo.it/asn1js/#MF4wDAYKKwYBBAGDuEMBAQNOAKUBAgMmIAEhWCB__YNjIHL9G_6vP7qkMUbg75XD9V45lKQbvytRdNdx2iJYIDJJfu0Kf28ACSh2W4MYFiz9gKlOUlpqNowjYwY9BObt[in an online ASN.1 JavaScript decoder]. +==== + +[#state-tree] +== The system state tree + +Parts of the system state are publicly exposed (e.g. via <> or, eventually, certified variables) in a verified way (see <> for the machinery for certifying). This section describes the content of the system state abstractly. + +Conceptually, the system state is a tree with labeled children, and values in the leaves. Equivalently, the system state is a mapping from paths (sequences of labels) to values, where the domain is prefix-free. + +Labels are always blobs (but often with an human readable representation). In this document, paths are written suggestively with slashes as separators; the actual encoding is not actually using slashes as delimitors, and labels may contain the 0x2F byte (ASCII `/`) just fine. Values are either natural numbers, text values or blob values. + +This section specifies the publicly relevant paths in the tree. + +[#state-tree-time] +=== Certification time + +* `/time` (natural): ++ +All certificate trees include a timestamp, indicating the time at which the state tree is current. + +[#state-tree-subnet] +=== Subnet information + +The state tree contains information about the topology of the Internet Computer. + +* `/subnet//public_key` (blob) ++ +The public key of the subnet (a DER-encoded BLS key, see <>) + +[#state-tree-request-status] +=== Request status + +For each asynchronous request known to the system, its status is in a subtree at `/request_status/`. Please see <> for more details on how asynchronous requests work. + +* `/request_status//status` (text) ++ +One of `received`, `processing`, `replied`, `rejected` or `done`, see <> for more details on what each status means. + +* `/request_status//reply` (blob) ++ +If the status is `replied`, then this path contains the reply blob, else it is not present. + +* `/request_status//reject_code` (natural) ++ +If the status is `rejected`, then this path contains the reject code (see <>), else it is not present. + +* `/request_status//reject_message` (text) ++ +If the status is `rejected`, then this path contains a textual diagnostic message, else it is not present. + +NOTE: Immediately after submitting a request, the request may not show up yet as the system is still working on accepting the request as pending. + +NOTE: Request statuses will not actually be kept around indefinitely, and eventually the system forgets about the request. This will happen no sooner than the request’s expiry time, so that replay attacks are prevented, but likely longer, so that users have a chance to fetch it. The precise policy is not yet defined. + +[#state-tree-certified-data] +=== Certified data + +* `/canister//certified_data` (blob): ++ +The certified data of the canister with the given id, see <>. + +[#http-interface] +== HTTPS Interface + +The concrete mechanism that users use to send requests to the Internet Computer is via an HTTPS API, which exposes two endpoints to handle the requests, plus one for diagnostics. + +[#async-requests] +=== Asynchronous requests + +Certain interactions change the state of the Internet Computer. By the very nature of a distributed implementation, they cannot be acted upon immediately, but only with a delay. Moreover, the actual node that the user talks to may not be honest or, for other reasons, may fail to get the request on the way. This implies the following high-level workflow: + +1. A user submits a request via the <>. No useful information is returned from the node (as it would not be trustworthy anyways). +2. For a certain amount of time, the system behaves as if it does not know about the request. (Although as part of the HTTP interface the receiving endpoint gives an untrusted acknowledgment of receipt or an untrusted declination of the request.) +3. At some point, the system may accept the request for processing and set its status to `received`. This indicates that the system as a whole has received the request and plans on processing it (although it may still not get processed if the system is under high load). Further, the user should also be able to ask any endpoint (for the canister) about the status of the pending request. +4. Once it is clear that the request will be acted upon (sufficient resources, request not yet expired), the status changes to `processing`. Now the user has the guarantee that the request will have an effect (e.g. in the case of a canister call, that it will reach the canister). +5. Now the system is processing the request. For some requests this may be atomic, for others this involves multiple internal steps. +6. Eventually, a response will be produced, and can be retrieved for a certain amount of time. The response is either a `reply`, indicating success, or a `reject`, indicating some form of error. +7. In the case that the response has been retained for long enough, but the request has not expired yet, the system can forget the response data and only remember the request as `done`, to prevent a replay. +8. Once the expiry time is past, the system can prune the request and its response, and completely forget about it. + + +This yields the following interaction diagram: + +[plantuml] +.... +(*) --> "User creates request" #DDDDDD + --> "Submitted to node\n(with 202 response)" as submit #DDDDDD + --> "received" + --> "processing" +if "" as X then + --> "replied" + --> "done" + else + --> "rejected (canister)" + --> "done" + + "X" --> "rejected (system)" + "received" --> "rejected (system)" + --> "done" + + "received" --> "pruned" #DDDDDD + "submit" --> "dropped" #DDDDDD + "done" --> "pruned" #DDDDDD + +endif +.... + +State transitions may be instantaneous and not always externally visible. For example, the system may move from `Received` via `Processing` to `Replied` in one go. Similarly, the system may not implement the `Done` state at all, and keep requests in the previous state until they are dropped. + +All gray states are _not_ explicitly represented in the system state, and are indistinguishable from “request does not exist”. + +The characteristic property of the `Received` state is that the request has made it past the (potentionally malicious) endpoint _into to the system_. It is now pointless (but harmless) to submit the (identical) request again. Before reaching that state, submitting the identical request to further nodes might be a useful safeguard against a malicious or misbehaving node. + +The characteristic property of the `Processing` state is _the initial effect of the request has or will happen_. This is best explained by an example: Consider a counter canister. It exports a method `inc` that increases the counter. Assume that the canister is bug free, and is not going to be forcibly removed. A user submits a request to call `inc`. If the user sees request status `Processing`, the state change is guaranteed to happen, and the user can stop monitoring the status and does not have to retry submitting. + +A request may be rejected by the system or the canister. In either case, there is no guarantee about how much processing of the request has happened. + +To avoid replay attacks, the transition from `done` or `received` to `pruned` must happen no earlier than the request’s `ingress_expiry` field. + +Requests must stay in `Replied` or `Rejected` long enough for polling clients to catch the response. + +When asking the system about the state or response of a request, the user uses the request id (see <>) to read the request status (see <>) from the state tree (see <>). + +=== Synchronous requests + +Other interactions do not change the state of the system, but only _read_ from it. These may either be untrustworthy, in the sense that a malicious node can make up stuff (e.g. query calls to canisters), or certified, in the sense that the node can prove to the user that this is indeed the system's view of things (e.g. reading request statuses, reading account balances). All these reads go through the `read` endpoint. + +We use the term _request_ both for the asynchronous requests that passed to `submit`, as well as for the parameters of a _read_, so that common operations like signing can be done in the same way. + + +[#api-endpoints] +=== Request Endpoints + +NOTE: This document does not yet explain how to find the location and port of a running Internet Computer Node, nor how to find out which node(s) to talk to for a given canister. + +The following API endpoints are provided: +.... +/api/v1/submit +/api/v1/read +.... + +For these endpoints, the user performs a POST request over HTTPS with `Content-type: application/cbor`. The body is a CBOR value containing the request object. + +* The `/api/v1/submit` endpoint accepts the _asynchronous_ requests. Upon successful submission, a (code 202) HTTP response without a body is returned; the user can read the state tree (see <>) to determine the response. +* The `/api/v1/read` endpoint accepts the _synchronous_ requests. It returns a response (a CBOR value) as the body of the (code 200) HTTP response. + +In both cases, the usual HTTP errors (e.g. 503) may occur. In particular, if the server can determine already that the request is invalid (e.g. too large, wrong or missing fields, invalid signatures) and has no chance to reach the `received` state, it can respond with a suitable 4xx code (e.g. 413 if the request is too large). + +[#field-types] +=== Field types + +The requests supported by the system are expressed as records, i.e. fields with names and values. The fields are typed and can have one of these types: + +* `nat`: A (possibly unbounded) natural number (non-negative integer, zero is permitted) +* `text`: Human readable text (e.g. sequence of Unicode codepoints) +* `blob`: Arbitrary binary data +* sequences (i.e. arrays, lists) of values + +For readability, we use the following type synonyms: +.... +type Principal = blob +type CanisterId = Principal +type UserId = Principal +.... + +NOTE: Of course, user ids and canister ids are _not_ just arbitrary binary blobs, but have structure. Some of that structure is documented in <>. But since that structure is meant to be extensible without breaking existing code (especially running canisters), the interfaces are phrased in terms of arbitrary blobs. + +All requests coming in via the HTTP interface need to be _authenticated_ using a cryptographic signature. To that end, the following fields are added to these requests: + +The following fields are common among all requests: + +* `request_type` (`text`): Indicates the type of request, and is one of the values specified in <>. +* The fields `nonce` and `ingress_expiry`, as specified in <>. + +[#authentication] +=== Authentication + +All requests coming in via the HTTP interface need to be either _anonymous_ or _authenticated_ using a cryptographic signature. To that end, the following fields are added to all request records (next to `request_type`): + +* `nonce` (`blob`, optional): Arbitrary user-provided data, typically randomly generated. This can be used to create distinct requests with otherwise identical fields. +* `ingress_expiry` (`nat`, required): An upper limit on the validity of the request, expressed in nanoseconds since 1970-01-01 (like <>). This avoids replay attacks: The system will not accept requests, or transition requests from status `received` to status `processing`, if their expiry date is in the past. The system may refuse to accept requests with an ingress expiry date too far in the future. This applies to synchronous and asynchronous requests alike (and could have been called `signature_expiry`). +* `sender` (`Principal`, required): The user who issued the request. + +Furthermore, the whole request record is wrapped in a envelope record with these fields: + +* `content` (`record`): the actual request content +* `sender_pubkey` (`blob`, optional): Public key used to authenticate this request. Since a user may in the future have more than one key, this field tells the system which key is used. +* `sender_delegation` (`array` of maps, optional): a chain of delegations, starting with the one signed by `sender_pubkey` and ending with the one delegating to the key relating to `sender_sig`. +* `sender_sig` (`blob`, optional): Signature to authenticate this request. + +The public key must authenticate the `sender` principal: + +* A public key can authenticate a principal if the latter is a self-authenticating id derived from that public key (see <>). +* The fields `sender_pubkey`, `sender_sig`, and `sender_delegation` must be omitted if the `sender` field is the anonymous principal. + The fields `sender_pubkey` and `sender_sig` must be set if the `sender` field is not the anonymous principal. + +The request id (see <>) is calculated from the content record. This allows the signature to be based on the request id, and implies that signature and public key are not semantically relevant. + +The field `sender_pubkey` contains a public key supported by one of the schemes described in <>. + +Signing transactions can be delegated from a one key to another one. +If delegation is used, then the `sender_delegation` field contains an array of delegations, each of which is a map with the following fields: + + * `delegation` (`map`): Map with fields: + - `pubkey` (`blob`): Public key as described in <>. + - `expiration` (`nat`): Expiration of the delegation, in nanoseconds since 1970-01-01, analogously to the `ingress_expiry` field above. + - `targets` (`array` of `CanisterId`, optional): If this field is set, the delegation only applies for requests sent to the canisters in the list. + * `signature` (`blob`): Signature on the 32-byte <> of the map contained in the `delegation` field as described in <>, using the 27 bytes `\x1Aic-request-auth-delegation` as the the domain separator. ++ +For the first delegation in the array, this signature is created with the key corresponding to the public key from the `sender_pubkey` field, all subsequent delegations are signed with the key corresponding to the public key contained in the preceding delegation. + +The `sender_sig` field is calculated by signing the concatenation of the 11 bytes `\x0Aic-request` (the domain separator) and the 32 byte <> with the secret key that belongs to the key specified in the last delegation or, if no delegations are present, the public key specified in `sender_pubkey`. + +The delegation field, if present, must not contain more than four delegations. + +[#request-types] +=== Request types + +The following subsections list all supported requests. + +[#api-update] +==== Canister update call + +The maybe most important request type is calling an exported method of a canister. + +Synchronicity:: asynchronous +Request type:: `call` +Request fields:: +* `canister_id` (`CanisterId`): The id of the canister to call. +* `method_name` (`text`): Name of the canister method to call +* `arg` (`blob`): Argument to pass to the canister method +Response fields:: +None, the server returns no body and HTTP status 202 (or an HTTP error code if declining the request). + +This request type can _also_ be used to call a query method. A user may choose to go this way, instead of via the likely faster and cheaper <> below, if they want to get a _certified_ response. + +The response will be represented in the state tree, as described in <>, and can be read using <>. + +NOTE: The system functionality exposed via the <> can be used this way. + +[#api-request-read-state] +==== State tree reads + +Synchronicity:: synchronous +Request type:: `read_state` +Request fields:: +* `paths` (sequence of paths): A list of paths, where a path is itself a sequence of blobs. +Response fields:: +* `certificate` (`blob`): A certificate (see <>). + +The returned certificate reveals all values whose path is a suffix of the list of requested paths. It also always reveals `/time`, even if not explicitly requested. + +All requested paths must have one of the following paths as prefix: + + * `/time`. Can be requested by anyone. + * `/subnet`. Can be requested by anyone. + * `/request_status/`. Can only be read if `/request_id/` is not present in the state tree, or if this `read_state` request was signed by same sender as the original request referenced by ``. + +Note that the paths `/canisters//certified_data` are not accessible with this method; these paths are only exposed to the canister themselves via the System API (see <>). + +See <> for details on the state tree. + +[#api-query] +==== Canister query call + +Canister methods that do not change the canister state can be executed more efficiently. This method provides that ability, and returns the canister’s response directly within the HTTP response. + +Synchronicity:: synchronous +Request type:: `query` +Request fields:: +* `canister_id` (`CanisterId`): The id of the canister to query. +* `method_name` (`text`): Name of the canister query method to call +* `arg` (`blob`): Argument to pass to the canister method +Response fields:: +* `status` (`text`): One of `replied` or `rejected` +* `reply`: If the status is `replied`, then this member contains the call reply, just as specified in <>. +* `reject_code` (`nat`): If the status is `rejected`, then this member contains the reject code (see <>). +* `reject_message` (`text`): If the status is `rejected`, then this member contains a textual diagnostic message. + +[#api-hash-of-map] +=== Representation-independent hashing of structured data + +Structured data, such as (recursive) maps, are authenticated by signing a representation-independent hash of the data. +This hash is computed as follows (using SHA256 in the steps below): + +1. For each field that is present in the map (i.e. omitted optional fields are indeed omitted): + * concatenate the hash of the field's name (in ascii-encoding, without terminal `\x00`) and the hash of the value (with the encoding specified below). +2. Sort these concatenations from low to high +3. Concatenate the sorted elements, and hash the result. + +The resulting hash of 256 bits (32 bytes) is the representation-independent hash. + +The following encodings of field values as blobs are used + +* Binary blobs (`canister_id`, `arg`, `nonce`, `module`) are used as-is. +* Strings (`request_type`, `method_name`) are encoded in UTF-8, without a terminal `\x00`. +* Natural numbers (`compute_allocation`, `memory_allocation`, `ingress_expiry`) are encoded using the shortest form https://en.wikipedia.org/wiki/LEB128#Unsigned_LEB128[Unsigned LEB128] encoding. + For example, `0` should be encoded as a single zero byte `[0x00]` and `624485` should be encoded as byte sequence `[0xE5, 0x8E, 0x26]`. +* Arrays (`paths`) are encoded as the concatenation of the hashes of the encodings of the array elements. +* Maps (`sender_delegation`) are encoded by recursively computing the representation-independent hash. + +[#api-request-id] +=== Request ids + +When querying the status of a request (see <>) in the state tree, the user identifies the request using a _request id_, which is an object hash of the request's `content`, calculated using the following steps. The hash operation is always SHA-256. + +The request id is computed as the <> of `content`. + +NOTE: The request id is independent of the representation of the request (JSON, CBOR, something else), and does not change if the specification adds further optional field to a request type. + +NOTE: The recommended textual representation of a request id is a hexadecimal string with lower-case letters prefixed with '0x'. +E.g., request id consisting of bytes `[00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 0A, 0B, 0C, 0D, 0E, 0F, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, 1D, 1E, 1F]` should be displayed as `0x000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f`. + +[TIP] +==== +Example calculation (where `H` denotes SHA-256 and `·` denotes blob concatenation): + +[source,,options="nowrap"] +---- +hash_of_map({ request_type: "call", canister_id: 0x00000000000004D2, method_name: "hello", arg: "DIDL\x00\xFD*"}) + = H(concat (sort + [ H("request_type") · H("call") + , H("canister_id") · H("\x00\x00\x00\x00\x00\x00\x04\xD2") + , H("method_name") · H("hello") + , H("arg") · H("DIDL\x00\xFD*") + ])) + = H(concat (sort + [ 769e6f87bdda39c859642b74ce9763cdd37cb1cd672733e8c54efaa33ab78af9 · 7edb360f06acaef2cc80dba16cf563f199d347db4443da04da0c8173e3f9e4ed + , 0a3eb2ba16702a387e6321066dd952db7a31f9b5cc92981e0a92dd56802d3df9 · 4d8c47c3c1c837964011441882d745f7e92d10a40cef0520447c63029eafe396 + , 293536232cf9231c86002f4ee293176a0179c002daa9fc24be9bb51acdd642b6 · 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 + , b25f03dedd69be07f356a06fe35c1b0ddc0de77dcd9066c4be0c6bbde14b23ff · 6c0b2ae49718f6995c02ac5700c9c789d7b7862a0d53e6d40a73f1fcd2f70189 + ])) + = H(concat + [ 0a3eb2ba16702a387e6321066dd952db7a31f9b5cc92981e0a92dd56802d3df9 · 4d8c47c3c1c837964011441882d745f7e92d10a40cef0520447c63029eafe396 + , 293536232cf9231c86002f4ee293176a0179c002daa9fc24be9bb51acdd642b6 · 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 + , 769e6f87bdda39c859642b74ce9763cdd37cb1cd672733e8c54efaa33ab78af9 · 7edb360f06acaef2cc80dba16cf563f199d347db4443da04da0c8173e3f9e4ed + , b25f03dedd69be07f356a06fe35c1b0ddc0de77dcd9066c4be0c6bbde14b23ff · 6c0b2ae49718f6995c02ac5700c9c789d7b7862a0d53e6d40a73f1fcd2f70189 + ]) + = 8781291c347db32a9d8c10eb62b710fce5a93be676474c42babc74c51858f94b +---- +==== + +[#reject-codes] +=== Reject codes + +An API request or inter-canister call that is pending in the system will eventually result in either a _reply_ (indicating success, and carrying data) or a _reject_ (indicating an error of some sorts). A reject contains a _rejection code_ that classifies the error and a hopefully helpful _reject message_ string. + +Rejection codes are member of the following enumeration: + +* `SYS_FATAL` (1): Fatal system error, retry unlikely to be useful. +* `SYS_TRANSIENT` (2): Transient system error, retry might be possible. +* `DESTINATION_INVALID` (3): Invalid destination (e.g. canister/account does not exist) +* `CANISTER_REJECT` (4): Explicit reject by the canister. +* [[CANISTER_ERROR]]`CANISTER_ERROR` (5): Canister error (e.g., trap, no response) + +The symbolic names of this enumeration are used throughout this specification, but on all interfaces (HTTPS API, System API), they are represented as positive numbers as given in the list above. + +The error message is guaranteed to be a string, i.e. not arbitrary binary data. + +When canisters explicitly reject a message (see <>), they can specify the reject message, but _not_ the reject code; it is always `CANISTER_REJECT`. In this sense, the reject code is trustworthy: If the system responds with a `SYS_FATAL` reject, then it really was the system issuing this reject. + +[#api-status] +=== Status endpoint + +Additionally, the Internet Computer provides an API endpoint to obtain various status fields at +.... +/api/v1/status +.... + +For this endpoint, the user performs a GET request, and receives a CBOR value with the following fields. The Internet Computer may include additional implementation-specific fields. + +* `ic_api_version` (string, mandatory): Identifies the interface version supported, i.e. the version of the present document that the internet computer aims to support, e.g. `0.8.1`. The implementation may also return `unversioned` to indicate that it does _not_ comply to a particular version, e.g. in between releases. +* `impl_source` (string, optional): Identifies the implementation of the Internet Computer, by convention with the canonical location of the source code (e.g. `https://github.com/dfinity/dfinity`). +* `impl_version` (string, optional): If the user is talking to a released version of an Internet Computer implementation, this is the version number. For non-released versions, output of `git describe` like `0.1.13-13-g2414721` would also be very suitable. +* `impl_revision` (string, optional): The precise git revision of the Internet Computer implementation +* `root_key` (blob, only in development instances): The public key (a DER-encoded BLS key) of the root key of this Internet Computer instance. This _must_ be present in short-lived development instances, to allow the client to fetch the public key. In production environments, clients must have an independent trustworthy source for this data, and must not be tempted to fetch it from this insecure location. + +See <> for details on the precise CBOR encoding of this object. + +NOTE: Future additions may include local time, geographic location, and other +useful implementation-specific information such as blockheight. This data may +possibly signed by the node. + +[#api-cbor] +=== CBOR encoding of requests and responses + +Requests and responses are specified here as records with named fields and using suggestive human readable syntax. The actual format in the body of the HTTP request or response, however, is https://en.wikipedia.org/wiki/CBOR[CBOR]. + +Concretely, it consists of a data item with major type 6 (“Semantic tag”) and tag value `55799` (see https://tools.ietf.org/html/rfc7049#section-2.4.5[Self-Describe CBOR]), followed by a record. + +Requests consist of an envelope record with keys `sender_sig` (a blob), `sender_pubkey` (a blob) and `content` (a record). The first two are metadata that are used for request authentication, while the last one is the actual content of the request. + +The following encodings are used: + +* Strings: Major type 3 (“Text string”). +* Blobs: Major type 2 (“Byte string”). +* Nats: Major type 0 (“Unsigned integer”) if small enough to fit that type, else the https://tools.ietf.org/html/rfc7049#section-2.4.2[Bignum] format is used. +* Records: Major type 5 (“Map of pairs of data items”), followed by the fields, where keys are encoded with major type 3 (“Text string”). +* Arrays: Major type 4 ("Array of data items"). + +As advised by https://tools.ietf.org/html/rfc7049#section-3[section “Creating CBOR-Based Protocols”] of the CBOR spec, we clarify that: + +* Floating-point numbers may not be used to encode integers. +* Duplicate keys are prohibited in CBOR maps. + +[TIP] +==== +A typical request would be (written in https://tools.ietf.org/html/rfc7049#section-6[CBOR diagnostic notation], which can be checked and converted on http://cbor.me/[cbor.me]): +.... +55799({ + "content": { + "request_type": "call", + "canister_id": h'ABCD01', + "method_name": "say_hello", + "arg": h'0061736d01000000', + }, + "sender_sig": h'DEADBEEF', + "sender_pubkey": h'b7a3c12dc0c8c748ab07525b701122b88bd78f600c76342d27f25e5f92444cde' +}) +.... + +==== + +[#api-cddl] +=== CDDL description of requests and responses + +The https://tools.ietf.org/html/rfc8610[Concise Data Definition Language (CDDL)] is a data description language for CBOR. This section summarizes the format of the CBOR data passed to and from the entry points described above. You can also link:./requests.cddl[download the file]. + +[source,bash] +---- +include::example$requests.cddl[] +---- + +=== Ordering guarantees + +In order to allow for a distributed implementation of the Internet Computer, the order in which the various messages between canisters are delivered and executed is not fully specified. + +The guarantee we do give is that function calls between two canisters are executed in order, so that a canister that requires in-order execution need not wait for the response from an earlier message to a canister before sending a later message to that same canister. + +More precisely: + + * Method calls between any _two_ canisters are delivered in order, as if they + were communicating over a single simple FIFO queue. + * If a WebAssembly function, within a single invocation, makes multiple calls + to the same canister, they are queued in the order of invocations to `ic0.call_perform`. + * Responses (including replies with `ic0.msg_reply`, explicit rejects with `ic0.msg_reject` and system-generated error responses) do _not_ have any ordering guarantee relative to each other or to method calls. + * There is no particular order guarantee for ingress messages submitted via + the HTTP interface. + +=== Synchronicity across nodes + +This document describes the Internet Computer as having a single global state that can be modified and queried. In reality, it consists of many nodes, which may not be perfectly in sync. + +As long as you talk to one (honest) node only, the observed behavior is nicely sequential. If you issue an update (i.e. state-mutating) call to a canister (e.g. bump a counter), and node A indicates that the call has been executed, and you then issue a query call to node A, then A's response is guaranteed to include the effect of the update call (and you will receive the updated counter value). + +If you then (quickly) issue a read request to node B, it may be that B responds to your read query based on the old state of the canister (and you might receive the old counter value). + +A related problem is that query calls are not certified, and nodes may be dishonest in their response. In that case, the user might want to get more assurance by querying multiple nodes and comparing the result. However, it is (currently) not possible to query a _specific_ state. + +NOTE: Applications can work around these problems. For the first problem, the query result could be such that the user can tell if the update has been received or not. For the second problem, even if using <> is not possible, if replies are monotonic in some sense the user can get assurance in their intersection (e.g. if the query returns a list of events that grows over time, then even if different nodes return different lists, the user can get assurance in those events that are reported by many nodes). + + +[#canister-module-format] +== Canister module format + +A canister module is simply a https://webassembly.github.io/spec/core/index.html[WebAssembly module] in binary format (typically `.wasm`). + +[#system-api] +== Canister interface (System API) + +The System API is the interface between the running canister and the Internet Computer. It allows the WebAssembly module of a canister to expose functionality to the users (method entry points) and the system (e.g. initialization), and exposes system functionality to the canister (e.g. calling other canisters). Because WebAssembly is rather low-level, it also explains how to express higher level concepts (e.g. binary blobs). + +We want to leverage advanced WebAssembly features, such as WebAssembly host references. But as they are not yet supported by all tools involved, this section describes an initial System API that does not rely on host references. To emphasize that this is just a preliminary interface, we group the system methods under the module name `ic0`, planning to use `ic` for the real deal. +In section <>, we outline some of the proposed uses of WebAssembly host references. + +[#system-api-module] +=== WebAssembly module requirements + +In order for a WebAssembly module to be usable as the code for the canister, it needs to conform to the following requirements: + +* If it imports a memory, it must import it from `env.memory`. In the following, “the Wasm memory” refers to this memory. +* If it imports a table, it must import it from `env.table`. In the following, “the Wasm table” refers to this table. +* It may only import a function if it is listed in <>. +* It may have a `(start)` function. +* If it exports a function called `canister_init`, the function must have type `+() -> ()+`. +* If it exports functions called `canister_get_ingress_bucket` or `canister_get_ingress_limit_per_second`, the functions must have type `+() -> ()+`. It must export either both or none of these two functions. +* If it exports any functions called `canister_update ` or `canister_query ` for some `name`, the functions must have type `+() -> ()+`. +* It may not export both `canister_update ` and `canister_query ` with the same `name`. + +=== Interpretation of numbers + +WebAssembly number types (`i32`, `i64`) do not indicate if the numbers are to be interpreted as signed or unsigned. Unless noted otherwise, whenever the System API interprets them as numbers (e.g. memory pointers, buffer offsets, array sizes), they are to be interpreted as unsigned. + +=== Entry points + +The canister provides entry points which are invoked by the system under various circumstances: + +* The canister may export a function named `canister_init` and type `+() -> ()+`. +* The canister may export a function named `canister_pre_upgrade` and type `+() -> ()+`. +* The canister may export a function named `canister_post_upgrade` and type `+() -> ()+`. +* The canister may export functions named `canister_get_ingress_bucket` and `canister_get_ingress_limit_per_second` with type `+() -> ()+`. It must export none or both of these functions. +* The canister may export functions named `canister_update ` and type `+() -> ()+`. +* The canister may export functions named `canister_query ` and type `+() -> ()+`. +* The canister table may contain functions of type `+(env : i32) -> ()+` which may be used as callbacks for inter-canister calls. + +If the execution of any of these entry points traps for any reason, then all changes to the WebAssembly state, as well as the effect of any externally visible system call (like `ic0.msg_reply`, `ic0.msg_reject`, `ic0.call_perform`), are discarded. For upgrades, this transactional behaviour applies to the `canister_pre_upgrade`/`canister_post_upgrade` sequence as a whole. + + +[#system-api-init] +==== Canister initializaion + +If `canister_init` is present, then this is the first exported WebAssembly function invoked by the system. The argument that was passed along with the canister initialization call (see <>) is available to the canister via `ic0.msg_arg_data_size/copy`. + +The system assumes the canister to be fully instantiated if the `canister_init` method entry point returns. If the `canister_init` method entry point traps, then canister installation has failed, and the canister is reverted to its previous state (i.e. empty with `install`, or whatever it was for a `reinstall`). + +[#system-api-upgrades] +==== Canister upgrades + +When a canister is upgraded to a new WebAssembly module, the system: + + 1. Invokes `canister_pre_upgrade` (if present) on the old instance, to give the canister a chance to clean up (e.g. move data to <>). + 2. Instantiates the new module, including the execution of `(start)`, with a fresh WebAssembly state. + 3. Invokes `canister_post_upgrade` (if present) on the new instance, passing the `arg` provided in the `install_code` call (<>). + +The stable memory is preserved throughout the process; any other WebAssembly state is discarded. + +During these steps, no other entry point of the old or new canister is invoked. The `canister_init` function of the new canister is _not_ invoked. + +These steps are atomic: If `canister_pre_upgrade` or `canister_post_upgrade` trap, the upgrade has failed, and the canister is reverted to the previous state. Otherwise, the upgrade has succeeded, and the old instance is discarded. + +[#system-api-requests] +==== Public methods + +To define a public method of name `name`, a WebAssembly module exports a function with name `canister_update ` or `canister_query ` and type `+() -> ()+`. We call this the _method entry point_. The name of the exported function distinguishes update and query methods. + +NOTE: The space in `canister_update ` resp. `canister_query ` is intentional. There is exactly one space between `canister_update/canister_query` and the ``. + +The argument of the call (e.g. the content of the `arg` field in the <>) is copied into the canister on demand using the System functions shown below. + +Eventually, a method will want to send a response, using `ic0.reply` or `ic0.reject` + +==== Callbacks + +Callbacks are addressed by their table index (as a proxy for a Wasm `funcref`). + +In the reply callback of a <>, the argument refers to the response to that call. In reject callbacks, no argument is available. + + +[#system-api-imports] +=== Overview of imports + +The following sections describe various system imports, which we summarize here. + +.... +ic0.msg_arg_data_size : () -> i32; // I U Q Ry Lb +ic0.msg_arg_data_copy : (dst : i32, offset : i32, size : i32) -> (); // I U Q Ry Lb +ic0.msg_caller_size : () -> i32; // I G U Q Lb +ic0.msg_caller_copy : (dst : i32, offset: i32, size : i32) -> (); // I G U Q Lb +ic0.msg_reject_code : () -> i32; // Ry Rt +ic0.msg_reject_msg_size : () -> i32; // Rt +ic0.msg_reject_msg_copy : (dst : i32, offset : i32, size : i32) -> (); // Rt + +ic0.msg_reply_data_append : (src : i32, size : i32) -> (); // U Q Ry Rt +ic0.msg_reply : () -> (); // U Q Ry Rt +ic0.msg_reject : (src : i32, size : i32) -> (); // U Q Ry Rt + +ic0.msg_cycles_available : () -> i64; // U Rt Ry Lb +ic0.msg_cycles_refunded : () -> i64; // Rt Ry +ic0.msg_cycles_accept : ( max_amount : i64 ) -> ( amount : i64 ); // U Rt Ry + +ic0.canister_self_size : () -> i32; // * +ic0.canister_self_copy : (dst : i32, offset : i32, size : i32) -> (); // * +ic0.canister_cycle_balance : () -> i64; // * +ic0.canister_status : () -> i32; // * + +ic0.ingress_rate_bucket_size : () -> i32; // Ll +ic0.ingress_rate_bucket_copy : (dst : i32, offset : i32, size : i32) -> (); // Ll +ic0.return_ingress_bucket : + ( bucket_src : i32, + bucket_size : i32, + cost : i64 + ) -> (); // Lb +ic0.return_ingress_limit_per_second : (limit : i64) -> (); // Ll + +ic0.call_new : // U Ry Rt + ( callee_src : i32, + callee_size : i32, + name_src : i32, + name_size : i32, + reply_fun : i32, + reply_env : i32, + reject_fun : i32, + reject_env : i32 + ) -> (); +ic0.call_on_cleanup : (fun : i32, env : i32) -> (); // U Ry Rt +ic0.call_data_append : (src : i32, size : i32) -> (); // U Ry Rt +ic0.call_cycles_add : ( amount : i64 ) -> (); // U Ry Rt +ic0.call_perform : () -> ( err_code : i32 ); // U Ry Rt + +ic0.stable_size : () -> (page_count : i32); // * +ic0.stable_grow : (new_pages : i32) -> (old_page_count : i32); // * +ic0.stable_write : (offset : i32, src : i32, size : i32) -> (); // * +ic0.stable_read : (dst : i32, offset : i32, size : i32) -> (); // * + +ic0.certified_data_set : (src: i32, size: i32) -> () // I G U Ry Rt +ic0.data_certificate_present : () -> i32 // Q +ic0.data_certificate_size : () -> i32 // Q +ic0.data_certificate_copy : (dst: i32, offset: i32, size: i32) -> () // Q + +ic0.time : () -> (timestamp : i64); // * + +ic0.debug_print : (src : i32, size : i32) -> (); // * s +ic0.trap : (src : i32, size : i32) -> (); // * s +.... + +The comment after each function lists from where these functions may be invoked: + +* `I`: from `canister_init` or `canister_post_upgrade` +* `G`: from `canister_pre_upgrade` +* `U`: from `canister_update …` +* `Q`: from `canister_query …` +* `Ry`: from a reply callback +* `Rt`: from a reject callback +* `C`: from a cleanup callback +* `s`: the `(start)` module initialization function +* `Lb`: from `canister_get_ingress_bucket` +* `Ll`: from `canister_get_ingress_limit_per_second` +* `*` = `I G U Q Ry Rt C Lb Ll` (NB: Not `(start)`) + +If the canister invokes a system import from somewhere else, it will trap. + +=== Blob-typed arguments and results + +WebAssembly functions parameter and result types can only be primitive number types. To model functions that accept or return blobs or text values, the following idiom is used: + +To provide access to a string or blob `foo`, the System API provides two functions: + + ic0.foo_size : () -> i32 + ic0.foo_copy : (dst : i32, offset: i32, size : i32) -> () + +The `*_size` function indicates the size, in bytes, of `foo`. The `*_copy` function copies `size` bytes from `foo[offset..offset+size]` to `memory[dst..dst+size]`. This traps if `offset+size` is greater than the size of `foo`, or if `dst+size` exceeds the size of the Wasm memory. + + +Dually, a System API function that conceptually takes a blob or string as a parameter `foo` has two parameters: + + ic0.set_foo : (src : i32, size: i32) -> … + +which copies, at the time of function invocation, the data referred to by `src`/`size` out of the canister. Unless otherwise noted, this traps if `src+size` exceeds the size of the WebAssembly memory. + +=== Method arguments + +The canister can access an argument. For `canister_init`, `canister_post_upgrade` and method entry points, the argument is the argument of the call; in a reply callback, it refers to the received reply. So the lifetime of the argument data is a single WebAssembly function execution, not the whole method call tree. + +* {blank} ++ + ic0.msg_arg_data_size : () -> i32 + ic0.msg_arg_data_copy : (dst : i32, offset : i32, size : i32) -> () ++ +The message argument data. + +* {blank} ++ + ic0.msg_caller_size : () -> i32 + ic0.msg_caller_copy : (dst : i32, offset: i32, size : i32) -> () ++ +The identity of the caller, which may be a canister id or a user id. During canister installation or upgrade, this is the id of of the user or canister requesting the installation or upgrade. + +* `+ic0.msg_reject_code : () -> i32+` ++ +Returns the reject code, if the current function is invoked as a reject callback. ++ +It returns the special “no error” code `0` if the callback is _not_ invoked as a reject callback; this allows canisters to use a single entry point for both the reply and reject callback, if they choose to do so. ++ +* {blank} ++ + ic0.msg_reject_msg_size : () -> i32 + ic0.msg_reject_msg_copy : (dst : i32, offset : i32, size : i32) -> () ++ +The reject message. Traps if there there is no reject message (i.e. if `reject_code` is `0`). + +[#responding] +=== Responding + +Eventually, the canister will want to respond to the original call, either by replying (indicating success) or rejecting (signalling an error): + +* `+ic0.msg_reply_data_append : (src : i32, size : i32) -> ()+` ++ +Appends idata it to the (initially empty) data reply. ++ +NOTE: This can be invoked multiple times to build up the argument with data from various places on the Wasm heap. This way, the canister does not have to first copy all the pieces from various places into one location. ++ +This traps if the current call already has been responded to. + +* `+ic0.msg_reply : () -> ()+` ++ +Replies to the sender with the data assembled using `ic0.msg_reply_data_append`. ++ +This function can be called at most once (a second call will trap), and must be called exactly once to indicate success. ++ +See <> for how this interacts with cycles available on this call. + +* `+ic0.msg_reject : (src : i32, size : i32) -> ()+` ++ +Rejects the call. The data referred to by `src`/`size` is used for the diagnostic message. ++ +This system call traps if `src+size` exceeds the size of the WebAssembly memory, or if the current call already has been responded to, or if the data referred to by `src`/`size` is not valid UTF8. ++ +The other end will receive this reject with reject code `CANISTER_REJECT`, see <>. ++ +Possible reply data assembled using `ic0.msg_reply_data_append` is discarded. ++ +See <> for how this interacts with cycles available on this call. + +[#system-api-rate-limiting] +=== Ingress message rate limiting + +A canister can apply a rate limiting mechanism to ingress messages. When the IC receives an update call from a user, the IC will use the canister methods `canister_get_ingress_bucket` and `canister_get_ingress_limit_per_second` to obtain rate limiting information from the canister, and will ensure that the specified rates are respected. +If the canister does not implement `canister_get_ingress_bucket` and does not implement `canister_get_ingress_limit_per_second`, then no rate limiting is applied and the canister will receive the update calls. + +The function `canister_get_ingress_bucket` is called for each message, possibly (but not necessarily) even multiple times, on different canister states. +The function `canister_get_ingress_limit_per_second` is called periodically (typically every few seconds) for buckets for which new messages arrive. +This means, in particular, that the canister state on which `canister_get_ingress_bucket` is called for a message, and the state on which `canister_get_ingress_limit_per_second` is called for determining the rate limit affecting that same message, may differ. + +* In `canister_get_ingress_bucket`, the canister can specify a bucket and a cost for the message by invoking ++ +`ic0.return_ingress_bucket : ( bucket_src : i32, bucket_size : i32, cost : i64 ) -> ()`. ++ +This function assigns to the message the bucket identified by the `bucket_*` parameters, and the cost specified by `cost`. All messages assigned to the same bucket are treated together during rate limiting, whereas messages in different buckets are handled independently. Buckets are identified by opaque blobs of size at most 64 bytes. ++ +The unit of cost is completely up to the canister. ++ +This function traps if invoked twice, or if `bucket_size` exceeds 64. ++ +If the canister traps in `canister_get_ingress_bucket` or does not call `ic0.return_ingress_bucket`, then the access is denied. + +* In `canister_get_ingress_limit`, the canister obtains a blob of length at most 64 bytes (the bucket) as an argument, which can be retrieved via `ic0.ingress_rate_bucket_*`. The canister can specify a limit for the bucket by invoking ++ +`ic0.return_ingress_limit_per_second : ( limit : i64 ) -> ()`. ++ +The unit of limit (just like that of cost above) is completely up to the canister, but the platform guarantees that (possibly with a rolling average over a few seconds) the accumulated cost per second does not exceed limit. ++ +This function traps if invoked twice. If the canister traps or the canister does not call `ic0.return_ingress_limit_per_second`, the canister does not receive any messages from that bucket. + +[#system-api-canister-self] +=== Self-identification + +A canister can learn about its own identity: + +* {blank} ++ + ic0.canister_self_size : () -> i32 + ic0.canister_self_copy: (dst : i32, offset : i32, size : i32) -> () ++ +These functions allow the canister to query its own canister id (as a blob). + +[#system-api-canister-status] +=== Canister status + +This function allows a canister to find out if it is running, stopping or stopped (see <> and <> for context). + +* `ic0.canister_status : () -> i32` ++ +returns the current status of the canister: ++ +Status `1` indicates running, `2` indicates stopping, and `3` indicates stopped. ++ +Status `3` (stopped) can be observed, for example, in `canister_pre_upgrade` and can be used to prevent accidentally upgrading a canister that is not fully stopped. + +[#system-api-call] +=== Inter-canister method calls + +When handling an update call (or a callback), a canister can do further calls to another canister. Calls are assembled in a builder-like fashion, starting with `ic0.call_new`, adding more attributes using the `ic0.call_*` functions, and eventually performing the call with `ic0.call_perform`. + +* {blank} ++ +-- + ic0.call_new : + ( callee_src : i32, + callee_size : i32, + name_src : i32, + name_size : i32, + reply_fun : i32, + reply_env : i32, + reject_fun : i32, + reject_env : i32, + ) -> () + +Begins assembling a call to the canister specified by `callee_src/_size` at method `name_src/_size`. + +The system records two mandatory callback functions, represented by a table entry index `fun` and some additional value `env`. When the response comes back, the table is read at the corresponding index, expected to be a function of type `+(env : i32) -> ()+` and passed the corresponding `env` value. + +The reply callback is executed upon successful completion of the method call, which can query the reply using `ic0.msg_arg_data_*`. + +The reject callback is executed if the method calls fails asynchronously or the other canister explicitly rejects the call. The reject code and message can be queried using `ic0.msg_reject_code` and `ic0.msg_reject_msg_*`. + +Subsequent calls to the following functions set further attributes of that call, until the call is concluded (with `ic0.call_perform`) or discarded (by returning without calling `ic0.call_perform` or by starting a new call with `ic0.call_new`.) +-- + +* {blank} ++ +-- + ic0.call_on_cleanup : (fun : i32, env : i32) -> () + +If the a cleanup callback is specified for this call, it is executed if and only if the `reply` or the `reject` callback was executed and trapped (for any reason). + +During the execution of the `cleanup` function, only a subset of the System API is available (namely `ic0.debug_print`, `ic0.trap` and the `ic0.stable_*` functions). The cleanup function is expected to run swiftly (within a fixed, yet to be specified cycle limit) and serves to free resources associated with the callback. + +If this traps (e.g. runs out of gas), the state changes from the `cleanup` function are discarded, as usual, and no further actions are taken related to that call. Canisters likely want to avoid this from happening. + +There must be at most one call to `ic0.call_on_cleanup` between `ic0.call_new` and `ic0.call_perform`. +-- + +* `+ic0.call_data_append : (src : i32, size : i32)+` ++ +Appends the specified bytes to the argument of the call. Initially, the argument is empty. ++ +This may be called multiple times between `ic0.call_new` and `ic0.call_perform`. + + +* `+ic0.call_cycles_add : ( amount : i64) -> ()+` ++ +This adds cycles onto a call. See <>. ++ +This may be called multiple times between `ic0.call_new` and `ic0.call_perform`. + +* `+ic0.call_perform : () -> ( err_code : i32 )+` ++ +This call concludes assembling the call. It queues the call message to the given destination, but does not actually act on it until the current WebAssembly function returns without trapping. ++ +If the system returns `0` as the `err_code`, the system was able to enqueue the call. In this case, the call will either be delivered, or returned because the destination canister does not exist or returned because of an out of gas condition. This also means that exactly one of the reply or reject callback will be executed. ++ +If the system returns a non-zero value, the call cannot (and will not be) performed. ++ +After `ic0.call_perform` and before the next call to `ic0.call_new`, all other `ic0.call_*` function calls trap + +[#system-api-cycles] +=== Cycles + +Each canister maintains a balance of _cycles_, the utility token used to pay for platform usage. + +NOTE: This specification currently does not go into details about which actions cost how many cycles and/or when. In general, you must assume that the canister’s cycle balance can change arbitrarily between method executions, and during each system function API call, unless explicitly mentioned otherwise. + +* `ic0.canister_cycle_balance : () -> i64` ++ +indicates the current cycle balance of the canister. It is the canister balance before the execution of the current message, minus a reserve to pay for the execution of the current message, minus any cycles queued up to be sent via `ic0.call_cycles_add`. After execution of the message, the system may add unused cycles from the reserve back to the balance. ++ +NOTE: Should a future version of this specification allow `MAX_CANISTER_BALANCE` >= 2^64^, then this call will report 2^64^-1 if the balance exceeds 2^64^. A new, wider System API will then be provided for canisters that need to deal precisely with large canister balances. + +* `ic0.msg_cycles_available : () -> i64` ++ +returns the amount of cycles that were transferred by the caller of the current call, and is still available in this message. ++ +Initially, in the update method entry point, this is the amount that the caller passed to the canister. When cycles are accepted (`ic0.msg_cycles_accept`), this reports less cycles accordingly. When the call is responsed to (reply or reject), all available cycles are refunded to the caller, and this will return 0. + +* `ic0.msg_cycles_accept : ( max_amount : i64 ) -> ( amount : i64 )` ++ +-- +This moves cycles from the call to the canister balance. It moves as many cycles as possible, up to these constraints: + +* It moves no more cycles than `max_amount`. + +* It moves no more cycles than available according to `ic0.msg_cycles_available`, and + +* The canister balance afterwards does not exceeed `MAX_CANISTER_BALANCE` minus any possible outstanding balances. The precise logic of this limit is not yet specified here. + +It can be called multiple times, each time possibly adding more cycles to the balance. + +The return value indicates how much cycles were actually moved. + +This does not trap. + +[TIP] +===== +Example: To accept all cycles provided in a call, invoke `ic0.msg_cycles_accept(ic0.msg_cycles_available())` in the method handler or a callback handler, _before_ calling reply or reject. +===== +-- + +* `ic0.call_cycles_add : ( amount : i64 ) -> ()` ++ +This function moves cycles from the canister balance onto the call under construction, to be transferred with that call. ++ +The cycles are deducted from the balance as shown by `ic0.canister_cycle_balance` immediately, and moved back if the call cannot be performed (e.g. if `ic0.call_perform` signals an error, or if the canister invokes `ic0.call_new` or returns without callling `ic0.call_perform`). ++ +This traps if trying to transfer more cycles than are in the current balance of the canister. + +* `ic0.msg_cycles_refunded : () -> i64` ++ +this can only be used in a callback handler (reply or reject), and indicates the amount of cycles that came back with the response as a refund. The refund has already been added to the canister balance automatically. + +[#system-api-stable-memory] +=== Stable memory + +Canisters have the ability to store and retrieve data from a secondary memory. The purpose of this _stable memory_ is to provide space to store data beyond upgrades. The interface mirrors roughly the memory-related instructions of WebAssembly, and tries to be forward compatible with exposing this feature as an additional memory. + +The stable memory is initially empty. + +* {blank} ++ + ic0.stable_size : () -> (page_count : i32) ++ +returns the current size of the stable memory in WebAssembly pages. (One WebAssembly page is 64Ki bytes.) + +* {blank} ++ + ic0.stable_grow : (new_pages : i32) -> (old_page_count : i32) ++ +tries to grow the memory by `new_pages` many pages containing zeroes. + +If successful, returns the _previous_ size of the memory (in pages). Otherwise, returns `-1`. + +* {blank} ++ + ic0.stable_write : (offset : i32, src : i32, size : i32) -> () ++ +copies the data referred to by `src`/`size` out of the canister and replaces the corresponding segment starting at `offset` in the stable memory. + +This system call traps if `src+size` exceeds the size of the WebAssembly memory or `offset+size` exceeds the size of the stable memory. + +* {blank} ++ + ic0.stable_read : (dst : i32, offset : i32, size : i32) -> () ++ +copies the data referred to by `offset`/`size` out of the stable memory and replaces the corresponding bytes starting at `dest` in the canister memory. + +This system call traps if `dst+size` exceeds the size of the WebAssembly memory or `offset+size` exceeds the size of the stable memory. + +[#system-api-time] +=== System time + +The canister can query the system for the current time. + +`+ic0.time : () -> i64+` + +The time is given as nanoseconds since 1970-01-01. The system guarantees that + + * the time, as observed by the canister, is monotonically increasing, even across canister upgrades. + * within an invocation of one entry point, the time is constant. + +The system times of different canisters are unrelated, and calls from one canister to another may appear to travel “backwards in time”. + +NOTE: While an implementation will likely try to keep the System Time close to the real time, this is not formally part of this specification. + +[#system-api-certified-data] +=== Certified data + +For each canister, the system keeps track of “certified data”, a canister-defined blob. For fresh canisters, this blob is the empty blob (`""`). + +* `+ic0.certified_data_set : (src: i32, size : i32) -> ()+` ++ +The canister can update the certified data with this call. The passed data must be no larger than 32 bytes. This can be used any number of times. + +When executing a query method via a query call (i.e. in non-replicated state), the canister can fetch a certificate that authenticates to third parties the value last set via `ic0.certified_data_set`. + +* `+ic0.data_certificate_present : () -> i32+` ++ +returns `1` if a certificate is present, and `0` otherwise. ++ +This will return `0` if the query method is executed within replicated execution (e.g. when invoked via an update call or inter-canister call). ++ +NOTE: In the future, this may also return `0` for query calls if the system executes query calls on not-yet-certified states. + +* {blank} ++ + ic0.data_certificate_size : () -> i32 + ic0.data_certificate_copy : (dst: i32, offset: i32, size: i32) -> () ++ +Copies the certificate for the current value of the certified data to the canister. ++ +The certificate is a blob as described in <> that contains the values at path `/canister//certified_data` and at path `/time` of <>. ++ +This traps if `ic0.data_certificate_present()` returns `0`. + + +=== Debugging aids + +During local development and execution on a local network, the canister needs a way to emit textual trace messages. On the “real” network, these do not do anything. + +* `+ic0.debug_print : (src : i32, size : i32) -> ()+` ++ +When executing in an environment that supports debugging, this copies out the data specified by `src` and `size`, and logs, prints or stores it in an environment-appropriate way. The copied data may likely be a valid string in UTF8-encoding, but the environment should be prepared to handle binary data (e.g. by printing it in escaped form). The data does typically not include a terminating `\0` or `\n`. ++ +Semantically, this function is always a no-op, and never traps, even if the `src+size` exceeds the size of the memory, or if this function is executed from `(start)`. If the environment cannot perform the print, it just skips it. + +Similarly, the system allows the canister to effectively trap, but give some indication about why it trapped: + +* `+ic0.trap : (src : i32, size : i32) -> ()+` ++ +This function always traps. ++ +The environment may copy out the data specified by `src` and `size`, and log, print or store it in an environment-appropriate way, or include it in system-generated reject messages where appropriate. The copied data may likely be a valid string in UTF8-encoding, but the environment should be prepared to handle binary data (e.g. by printing it in escaped form or substituting invalid characters). + +[#host-references] +=== Outlook: Using Host References + +The Internet Computer aims to make the most of the WebAssembly platform, and embraces WebAssembly features. With WebAssembly host references, we can make the platform more secure, the interfaces more abstract and more compositional. The above `ic0` System API does not yet use WebAssembly host references. Once they become available on our platform, a new version of the System API using host references will be available via the `ic` module. The changes will be, at least + +1. The introduction of a `api_nonce` reference, which models the capability to use the System API. It is passed as an argument to `canister_init`, `canister_update ` etc., and expected as an argument by almost all system function calls. (The debugging aids remain unconstrainted.) +2. The use of references, instead of binary blobs, to address principals (user ids, canister ids), e.g. in `ic0.msg_caller` or in `ic0.call_new`. Additional functions will be provided to convert between the transparent binary representation of principals and references. +3. Making the builder interface to create calls build calls identified by a reference, rather than having an implicit partial call in the background. + +A canister may only use the old _or_ the new interface; the system detects which interface the canister intends to use based on the names and types of its function imports and exports. + +[#ic-management-canister] +== The IC management canister + +The interfaces above provide the fundamental ability for external users and canisters to contact other canisters. But the Internet Computer provides additional functionality, such as canister and user management. This functionality is exposed to external users and canisters via the _IC management canister_. + +NOTE: The _IC management canister_ is just a facade; it does not actually exist as a canister (with isolated state, Wasm code, etc.). + +The IC management canister address is `aaaaa-aa` (i.e. the empty blob). + +[#ic-candid] +=== Interface overview + +The following interface description, in https://github.com/dfinity/candid/blob/master/spec/Candid.md[Candid syntax], describes the available functionality. You can also link:./ic.did[download the file]. +---- +include::example$ic.did[] +---- + +The binary encoding of arguments and results are as per Candid specification. + +[#ic-create_canister] +=== IC method `create_canister` + +Before deploying a canister, the administrator of the canister first has to register it with the system, to get a canister id (with an empty canister behind it), and then separately install the code. + +A canister has an attribute _controller_; initially, the user who has registered the canister is the controller, but this can be changed using <> + +Until code is installed, the canister behaves like one with no public methods. + +[#ic-install_code] +=== IC method `install_code` + +This method installs code into a canister. + +Only the _controller_ of the canister can install code. + +If `mode = install` or `mode = reinstall`, this will instantiate the canister module and invoke its `canister_init` system method (if present), as explained in Section “<>”, passing the `arg` to the canister. Upon replacing an existing canister, all state (including the stable memory) is cleared. + +If `mode = upgrade`, this will perform an upgrade of an existing canister module as described in <>, passing `arg` to the `canister_post_upgrade` system method of the new instance. + +This is atomic: If the response to this request is a `reject`, then this call had no effect. + +The optional field `compute_allocation`, if present, must be a number between 0 and 100, inclusively. It indicates how much compute power should be guaranteed to this canister, expressed as a percentage of the maximum compute power that a single canister can allocate. If absent, it is treated like an allocation of 0. If the system cannot provide the requested allocation, for example because it is oversubscribed, the call will be rejected. + +The optional field `memory_allocation`, if present, must be a number between 0 and 2^48^ (i.e 256TB), inclusively. It indicates how much memory the canister is allowed to use in total. Any attempt to grow memory usage beyond this allocation will fail. If absent, an implementation-defined default applies. If the system cannot provide the requested allocation, for example because it is oversubscribed, the request will be rejected. + +NOTE: Some canisters may not be able to make sense of callbacks after upgrades; these should be stopped first, to wait for all outstanding callbacks. It is expected that the canister admin (or admin tooling) does that separately. + +[#ic-set_controller] +=== IC method `set_controller` + +Initially, the user or canister that created a canister is its _controller_, but control can be yielded to another user or canister. + +Only the current controller of the canister can change the controller. + +[#ic-canister_status] +=== IC method `canister_status` + +Indicates various information about the canister. It contains: + +* The status of the canister. It could be one of `Running`, `Stopping` or `Stopped`. +* A hash of the module installed on the canister. This is `null` if no code is installed. +* The controller of the canister. +* The memory size taken by this canister. +* The balances of this canister. It includes Cycles and ICPTs. + +Only the current controller of the canister can request its status. + +[#ic-stop_canister] +=== IC method `stop_canister` + +The controller of a canister may stop a canister (e.g., to prepare for a canister upgrade). + +Stopping a canister is not an atomic action. The immediate effect is that the status of the canister is changed to `Stopping` (unless the canister is already stopped). +The system will reject all calls to a stopping canister, indicating that the canister is stopping. +Responses to a stopping canister are processed as usual. +When all outstanding responses have been processed (so there are no open call contexts), the canister status is changed to `Stopped` and the management canister responds to the caller of the `stop_canister` request. + +[#ic-start_canister] +=== IC method `start_canister` +A canister may be started by its controller. + +If the canister status was 'Stopped' or `Stopping` then the canister status is simply set to `Running`. +In the latter case all `stop_canister` calls which are processing fail (and are rejected). + +If the canister was already `Running` then the status stays unchanged. + +[#ic-delete_canister] +=== IC method `delete_canister` + +This method deletes a canister from the IC. + +Only the _controller_ of the canister can delete it and the canister must already be stopped. Deleting a canister cannot be undone, any state stored on the canister is permanently deleted and its cycles are discarded. Once a canister is deleted, its ID cannot be reused. + +[#ic-deposit_cycles] +=== IC method `deposit_cycles` + +This method deposits the cycles included in this call into the specified canister. + +Only the controller of the canister can deposit cycles. + +[#ic-raw_rand] +=== IC method `raw_rand` + +This method takes no input and returns 32 pseudo-random bytes to the caller. The return value is unknown to any part of the IC at time of the submission of this call. A new return value is generated for each call to this method. + +[#ic-provisional_create_canister_with_cycles] +=== IC method `provisional_create_canister_with_cycles` + +As a provisional method, until developers can convert real ICP tokens to provision a new canister with cycles, the system provides the `provisional_create_canister_with_cycles` method. It behaves as `create_canister`, but initializes the canister’s balance with `amount` fresh cycles (using `MAX_CANISTER_BALANCE` if `amount = null`, else capping the balance at `MAX_CANISTER_BALANCE`). + +Cycles added to this call via `ic0.call_cycles_add` are returned to the caller. + +This method is only available in local development instances, and will be removed in the future. + +[#ic-provisional_top_up_canister] +=== IC method `provisional_top_up_canister` + +As a provisional method, until developers can convert real ICP tokens to a top up an existing canister, the system provides the `provisional_top_up_canister` method. It adds `amount` cycles to the balance of canister identified by `amount` (implicitly capping it at `MAX_CANISTER_BALANCE`). + +Cycles added to this call via `ic0.call_cycles_add` are returned to the caller. + +Any user can top-up any canister this way. + +This method is only available in local development instances, and will be removed in the future. + +[#certification] +== Certification + +Some parts of the system state are exposed to clients in a tamperproof way via certification: the system can reveal a _partial state tree_ which includes just the data of interest, together with a signature of the state tree. This means that a client can be sure that the response is correct, even if the client happens to be communicating with a malicious server, or have received the certificate via some other untrusted way. + +To validate a value using a certificate, the client conceptually + + 1. checks the validity of the partial tree using `verify_cert`, + 2. looks up the data in the certificate using `lookup` at a given path, + +This mechanism is used in the `read_state` request type, and eventually also for other purposes. + +=== Root of trust + +The root of trust is the _root public key_, which must be known to the client a priori. For temporary instances of the internet computer, e.g. during local development, the key can be fetched via the <> endpoint. + +=== Certificate + +A certificate consists of + + * the partial system state, which contains the data of interest, and allows to recover the _tree root hash_, + * a signature on the tree root hash valid under some _public key_ + * an optional _delegation_ that link that public key to _root public key_. + +More formally, certificate is thus described by the following data structure: +.... +Certificate = { + tree : HashTree + signature : Signature + delegation : NoDelegation | Delegation +} +HashTree + = Empty + | Fork HashTree HashTree + | Labeled Label HashTree + | Leaf blob + | Pruned Hash +Label = Blob +Hash = Blob +Signature = Blob +PublicKey = Blob +Timestamp = Nat +.... + +A certificate is validated with regard to the root of trust by the following algorithm (which uses `check_delegation` defined in <>): +.... +verify_cert(cert) = + let root_hash = reconstruct(cert.tree) + let der_key = check_delegation(cert.delegation) // see section Delegations below + bls_key = extract_der(der_key) + verify_bls_signature(key, cert.signature, domain_sep("ic-state-root") · root_hash) + +reconstruct(Empty) = H(domain_sep("ic-hashtree-empty")) +reconstruct(Fork t1 t2) = H(domain_sep("ic-hashtree-fork") · reconstruct(t1) · reconstruct(t2)) +reconstruct(Labeled l t) = H(domain_sep("ic-hashtree-labeled") · label · reconstruct(t)) +reconstruct(Leaf v) = H(domain_sep("ic-hashtree-leaf") · v) +reconstruct(Pruned h) = h + +domain_sep(s) = byte(|s|) · s +.... +where `H` is the SHA-256 hash function, +.... +verify_bls_signature : PublicKey -> Signature -> Blob -> Bool +.... +is the https://tools.ietf.org/html/draft-irtf-cfrg-bls-signature-04#section-4[BLS signature verification function], ciphersuite BLS_SIG_BLS12381G1_XMD:SHA-256_SSWU_RO_NUL_. See that document also for details on the encoding of BLS public keys and signatures, and +.... +extract_der : Blob -> Blob +.... +implements DER decoding of the public key, following https://tools.ietf.org/html/rfc5480[RFC4580] using OID 1.3.6.1.4.1.44668.5.3.1.2.1 for the algorithm and 1.3.6.1.4.1.44668.5.3.2.1 for the curve. + +All certificate trees include the time at path `/time` (see <>). Clients can use this timestamp to guard against old certificates in cases where they expect a fresh certificate. + +=== Lookup + +Given a (verified) tree, the client can fetch the value at a given path, which is a sequence of labels (blobs). In this document, we write paths suggestively with slashes as separators; the actual encoding is not actually using slashes as delimitors. + +The following algorithm looks up a `path` in a certificate, and returns either + + * the value + * `Absent`, if the value is guaranteed to be absent in the original state tree, + * `Unknown`, if this partial view does not include information about this path, or + * `Error`, if the path does not make sense for this certificate: + +.... +lookup(path, cert) = lookup_path(path, cert.tree) + +lookup_path([], Empty) = Absent +lookup_path([], Leaf v) = v +lookup_path([], Pruned _) = Unknown +lookup_path([], Labeled _ _) = Error +lookup_path([], Fork _ _) = Error + +lookup_path(l::ls, tree) = + match find_label(l, flatten_forks(tree)) with + | Absent -> Absent + | Unknown -> Unknown + | Error -> Error + | Found subtree -> lookup_path ls subtree + +flatten_forks(Empty) = [] +flatten_forks(Fork t1 t2) = flatten_forks(t1) · flatten_forks(t2) +flatten_forks(t) = [t] + +find_label(l, _ · Labeled l1 t · _) | l == l1 = Found t +find_label(l, _ · Labeled l1 _ · Labeled l2 _ · _) | l1 < l < l2 = Absent +find_label(l, Labeled l2 _ · _) | l < l2 = Absent +find_label(l, _ · Labeled l1 _ ) | l1 < l = Absent +find_label(l, []) = Absent +find_label(l, _) = Unknown +.... + +The system will only produce well-formed trees, and the above algorithm assumes welformed trees. These have the property that labeled subtrees apper in strictly increasing order of labels, and are not mixed with leaves. More formally: +.... +well_formed(tree) = + (tree = Leaf _) ∨ (well_formed_forest(flatten_forks(tree))) + +well_formed_forest(trees) = + strictly_increasing([l | Label l _ ∈ trees]) ∧ + ∀ Label _ t ∈ trees. well_formed(t) ∧ + ∀ t ∈ trees ≠ Leaf _ +.... + +[#certification-delegation] +=== Delegation + +To facilitate a distributed implementation of the Internet Computer, the root key can delegate certification authority to other keys. + +A certificate by the root subnet does not have a delegation field. A certificate by other subnets include a delegation, which is itself a certificate that proves that the subnet is listed in the root subnet’s state tree (see <>), and reveals its public key. + +NOTE: The nested certificate _typically_ does not itself again contain a delegation, although there is no reason why agents should enforce that property. +.... +Delegation = + Delegation { + subnet_id : Principal; + certificate : Certificate; + } +.... + +A chain of delegations is verified using the following algorithm, which also returns the delegated key (a DER-encoded BLS key): + +.... +check_delegations(NoDelegation) : public_bls_key = + return root_public_key +check_delegations(Delegation d) : public_bls_key = + verify_cert(d.certificate) + return lookup(["subnet",d.subnet_id,"public_key"],d.certificate) +.... +where `root_public_key` is the a priori known root key of the Internet Computer instance. + +=== Encoding of certificates + +The binary encoding of a certificate is a CBOR value according to the following CDDL. You can also link:./certificates.cddl[download the file]. + +[source,bash] +---- +include::example$certificates.cddl[] +---- + +The values in the <> are encoded to blobs as follows: + +* natural numbers are leb128-encoded. +* text values are UTF-8-encoded +* blob values are encoded as is + +=== Example + +Consider the following tree-shaped data (all single charachter strings denote labels, all other denote values) +.... +─┬╴ "a" ─┬─ "x" ─╴"hello" + │ └╴ "y" ─╴"world" + ├╴ "b" ──╴ "good" + ├╴ "c" + └╴ "d" ──╴ "morning" +.... + +A possible hash tree for this labeled tree might be, where `┬` denotes a fork. +This is not a typical encoding (a fork with `Empty` on one side can be +avoided), but it is valid. +.... +─┬─┬╴"a" ─┬─┬╴"x" ─╴"hello" + │ │ │ └╴Empty + │ │ └╴ "y" ─╴"world" + │ └╴"b" ──╴"good" + └─┬╴"c" ──╴Empty + └╴"d" ──╴"morning" +.... + +// The following is checked in `impl/src/IC/Test/HashTree.hs`, so please keep +// in sync + +This tree has the following CBOR encoding +.... +8301830183024161830183018302417882034568656c6c6f810083024179820345776f726c6483024162820344676f6f648301830241638100830241648203476d6f726e696e67 +.... +and the following root hash +.... +eb5c5b2195e62d996b84c9bcc8259d19a83786a2f59e0878cec84c811f669aa0 +.... + +Pruning this tree with the following paths +.... + /a/y + /ax + /d +.... +would lead to this tree (with pruned subtree represented by their hash): +.... +─┬─┬╴"a" ─┬─ 1B4FEFF9BEF8131788B0C9DC6DBAD6E81E524249C879E9F10F71CE3749F5A638 + │ │ └╴ "y" ─╴"world" + │ └╴"b" ──╴7B32AC0C6BA8CE35AC82C255FC7906F7FC130DAB2A090F80FE12F9C2CAE83BA6 + └─┬╴EC8324B8A1F1AC16BD2E806EDBA78006479C9877FED4EB464A25485465AF601D + └╴"d" ──╴"morning" +.... +Note that the `"b"` label is included (without content) to prove the absence of the `/ax` path. + +This tree encodes to CBOR as +.... +83018301830241618301820458201b4feff9bef8131788b0c9dc6dbad6e81e524249c879e9f10f71ce3749f5a63883024179820345776f726c6483024162820458207b32ac0c6ba8ce35ac82c255fc7906f7fc130dab2a090f80fe12f9c2cae83ba6830182045820ec8324b8a1f1ac16bd2e806edba78006479c9877fed4eb464a25485465af601d830241648203476d6f726e696e67 +.... +and (obviously) the same root hash. + +In the pruned tree, the `lookup_path` function behaves as follows: +.... +lookup_path(["a", "a"], pruned_tree) = Unknown +lookup_path(["a", "y"], pruned_tree) = Found "world" +lookup_path(["aa"], pruned_tree) = Absent +lookup_path(["ax"], pruned_tree) = Absent +lookup_path(["b"], pruned_tree) = Unknown +lookup_path(["bb"], pruned_tree) = Unknown +lookup_path(["d"], pruned_tree) = Found "morning" +lookup_path(["e"], pruned_tree) = Absent +.... + + +[#abstract-behavior] +== Abstract behavior + +The previous sections describe the interfaces, i.e. outer edges of the Internet Computer, but give only intuitive and vague information in prose about what these interfaces actually do. + +The present section aims to address that question with great precision, by describing the _abstract state_ of the whole Internet Computer, and how this state can change in response to API function calls, or spontaneously (modeling asynchronous, distributed or non-deterministic execution). + +The design of this abstract specification (e.g. how and where pending messages are stored) are _not_ to be understood to in any way prescribe a concrete implementation or software architecture. The goals here are formal precision and clarity, but not implementability, so this can lead to different ways of phrasing. + +=== Notation + +We specify the behavior of the system using ad hoc pseudocode. + +The manipulated values are primitive values (numbers, text, binary blobs), aggregate values (lists, unordered lists a.k.a. bags, partial maps, records with fixed fields, named constructors) and functions. + +We use a concatenation operator `·` with various types: to extend sets and maps, or to concatenate lists with lists or lists with elements. + +The shape of values is described using a hand-wavy type system. We use `Foo = Nat` to define type aliases; now `Foo` can be used instead of `Nat`. Often, the right-hand side is a more complex type here, e.g. a record, or multiple possible types separated by a vertical bar (`|`). Partial maps are written as `Key ↦ Value` and the function type as `Argument -> Result`. + +NOTE: All values are immutable! State change is specified by describing the new state, not by changing existing state. + +Record fields are accessed using dot-notation (e.g. `S.request_id > 0`). To create a new record from an existing record `R` with some fields changed, the syntax `R where field = new_value` is used. This syntax can also be used to create new records with some deeply nested field changed: `R where some_map[key].field = new_value`. + +In the state transitions, upper-case variables (`S`, `C`, `Req_id`) are free variables: The state transition may be taken for any possible value of these variables. `S` always refers to the state of the system before. A state transition often comes with a list of _conditions_, which may restrict the values of these free variables. The _state after_ is usually described using the record update syntax by starting with `S where`. + +For example, the condition `S.messages = Older_messages · M · Younger_messages` says that `M` is some message in field `messages` of the record `S`, and that `Younger_messages` and `Older_messages` are the other messages in the system. If the “state after” specifies `S with messages = Older_messages · Younger_messages`, then the message `M` is removed from the state. + +=== Abstract state + +In this specification, we describe the Internet Computer as a state machine. In particular, there is a single piece of data that describes the complete state of the system, called `S`. + +Of course, this is a huge simplification: The real Internet Computer is distributed and has a multi-component architecture, and the state is spread over many different components, some physically separated. But this simplification allows us to have a concise description of the system, and to easily make global decisions (such as, “is there any pending message”), without having to specify the bookkeeping that allows such global decision. + +==== Identifiers + +Principals (canister ids and user ids) are blobs, but some of them have special form, as explained in <>. +.... +type Principal = Blob +.... + +The function +.... +mk_self_authenticating_id : PublicKey -> Principal +mk_self_authenticating_id pk = H(pk) · 0x02 +.... +calculates self-authenticating ids. + +The function +.... +mk_derived_id : Principal -> Blob -> Principal +mk_derived_id p nonce = H(|p| · p · nonce) · 0x03 +.... +calculates derived ids. With `|p|` we denote the length of the principal, in bytes, encoded as a single byte. + +The principal of the anonymous user is fixed: +.... +anonymous_id : Principal +anonymous_id = 0x04 +.... + +These function domains and fixed values are mutually disjoint. + +Method names can be arbitrary pieces of text: +.... +MethodName = Text +.... + +[#abstract-canisters] +==== Abstract canisters + +The <> is relatively low-level, and some of its details (e.g. that the argument data is queried using separate calls, and that closures are represented by a function pointer and a number, that method names need to be mangled) would clutter this section. Therefore, we abstract over the WebAssembly details as follows: + +* The state of a WebAssembly module (memory, tables, globals) is hidden behind an abstract `WasmState`. The `WasmState` contains the `StableMemory`, which can be extracted using `pre_upgrade` and passed to `post_upgrade`. + +* A canister module `CanisterModule` consists of an initial state, and a (pure) function that models function invocation. It either indicates that the canister function traps, or returns a new state together with a description of the invoked asynchronous System API calls. ++ +.... +WasmState = (abstract) +StableMemory = (abstract) +Callback = (abstract) + +Arg = { + data : Blob + caller: Principal +} + +Timestamp = Nat; +Env = { + time : Timestamp + balance : Nat; + certificate : NoCertificate | Blob + status : Running | Stopping | Stopped +} + +RejectCode = Nat +Response = Reply Blob | Reject (RejectCode, Text) +MethodCall = { + callee : CanisterId; + method_name: MethodName; + arg: Blob; + transferred_cycles: Nat; + callback: Callback; +} + +UpdateFunc = WasmState -> Trap | Return { + new_state : WasmState; + new_calls : List MethodCall; + new_certified_data : NoCertifiedData | Blob + response : NoResponse | Response; + cycles_accepted : Nat; +} +QueryFunc = WasmState -> Trap | Return Response + +AvailableCycles = Nat +RefundedCycles = Nat + +BucketCost = { bucket : Blob, cost : i64 } + +CanisterModule = { + init : (CanisterId, Arg, Env) -> Trap | Return WasmState + pre_upgrade : (WasmState, caller : Principal, Env) -> Trap | Return StableMemory + post_upgrade : (CanisterId, StableMemory, Arg, Env) -> Trap | Return WasmState + update_methods : MethodName ↦ ((Arg, Env, AvailableCycles) -> UpdateFunc) + query_methods : MethodName ↦ ((Arg, Env) -> QueryFunc) + callbacks : (Callback, Response, RefundedCycles, Env, AvailableCycles) -> UpdateFunc + get_ingress_bucket : (MethodName, WasmState, Arg, Env) -> Trap | Return (bucket : Blob, cost : i64) + get_ingress_limit_per_second : (WasmState, Timestamp, Env, bucket : Blob) -> Trap | Return (NoLimit | limit : i64) +} +.... + +This high-level interface presents a pure, mathematical model of a canister, and hides the bookkeeping required to provide the System API as seen in Section <>. + +The `CanisterId` parameter of `init` and `post_upgrade` is merely passed through to the canister, via the `canister.self` system call. + +The `Env` parameter provides synchronous read-only access to portions of the system state and canister metadata that are always available. + +The parsing of a blob to a canister module is modelled via the (possibly implicitly failing) function +.... +parse_wasm_mod : Blob -> CanisterModule +.... + +The concrete mapping of this abstract `CanisterModule` to actual WebAssembly concepts and the System API is described separately in section <>. + + +==== Call contexts + +The Internet Computer provides certain messaging guarantees: If a user or a canister calls another canister, it will eventually get a single response (a reply or a rejection), even if some canister code along the way fails. + +To ensure that only one response is generated, and also to detect when no response can be generated any more, the system maintains a _call context_. The `responded` field is set to `true` once the call has received a response. Further attempts to respond will now fail. + +.... +CallCtxt = { + canister : CanisterId; + origin : CallOrigin; + responded : bool; + available_cycles : Nat; +} +CallId = (abstract) +CallOrigin + = FromUser { + request : Request; + } + | FromCanister { + calling_context : CallId; + callback: Callback + } +.... + +==== Calls and Messages + +Calls into and within the Internet Computer are implemented as messages passed between canisters. During their lifetime, messages change shape: they begin as a call to a public method, which is resolved to a WebAssembly function that is then executed, potentially generating a response which is then delivered. + +Therefore, a message can have different shapes: +.... +Queue = Unordered | Queue { from : CanisterId; to : CanisterId } +EntryPoint + = PublicMethod MethodName Principal Blob + | Callback Callback Response RefundedCycles + +Message + = CallMessage { + origin : CallOrigin; + caller : Principal; + callee : CanisterId; + method_name : Text; + data : Blob; + transferred_cycles : Nat; + queue : Queue; + bucket : None | Blob; + cost : i64; + rate_limit_time : None | Timestamp; + } + | FuncMessage { + call_context : CallId; + receiver : CanisterId; + entry_point : EntryPoint; + queue : Queue; + bucket : None | Blob; + cost : i64; + rate_limit_time : None | Timestamp; + } + | ResponseMessage { + origin : CallOrigin; + response : Response; + refunded_cycles : Nat; + } +.... + +The `queue` field is used to describe the message ordering behavior. Its concrete value is only used to determine when the relative order of two messages must be preserved, and is otherwise not interpreted. Response messages are not ordered, as explained above, so they have no `queue` field. + +A reference implementation would likely maintain a separate list of `messages` for each such queue to efficiently find eligible messages; this document uses a single global list for a simpler and more concise system state. + +==== API requests + +We distinguish between the _asynchronous_ API requests passed to `/api/v1/submit`, which may be present in the system state, and the _synchronous_ API requests passed to `/api/v1/read`, which are only ephemeral. + +.... +Envelope = { + content : Request | APIReadRequest; + sender_pubkey : PublicKey | NoPublicKey; + sender_sig : Signature | NoSignature; + sender_delegation: [SignedDelegation] +} + +Request + = CanisterUpdateCall = { + nonce : Blob; + ingress_expiry : Nat; + sender : UserId; + canister_id : CanisterId; + method_name : Text; + data : Blob; + } +.... + +The evolution of a `Request` goes through these states, as explained in <>: +.... +RequestStatus + = Received + | Processing + | Rejected (RejectCode, Text) + | Replied Blob + | Done +.... + +These are the synchronous read messages: +.... +Path = List(Blob) +APIReadRequest + = StateRead = { + nonce : Blob; + ingress_expiry : Nat; + sender : UserId; + paths : List(Path); + } + | CanisterQuery = { + nonce : Blob; + ingress_expiry : Nat; + sender : UserId; + canister_id : CanisterId; + method_name : Text; + data : Blob; + } +.... + +A `Path` may refer to a request by way of a _request id_, as specified in <>: +.... +Request = Blob +hash_of_map: Request -> Request +.... + +For the signatures in a `Request`, we assume that the following function implements signature verification as described in <>. +This function picks the corresponding signature scheme according to the on the DER-encoded metadata in the public key. +.... +PublicKey = Blob +Signature = Blob +verify_signature : PublicKey -> Signature -> Blob -> Bool +.... + +Signed delegations contain the (unsigned) delegation data in a nested record, next to the signature of that data. +.... +SignedDelegation = { + delegation : { + pubkey : PublicKey; + targets : [CanisterId] | Unrestricted; + expiration : Timestamp + }; + signature : Signature +} +.... + +==== The system state + +Finally, we can describe the state of the Internet Computer as a record having the following fields: + +.... +S = { + requests : Request ↦ RequestStatus; + canisters : CanisterId ↦ CanState; + controllers : CanisterId ↦ Principal; + canister_status: CanisterId ↦ CanStatus; + time : CanisterId ↦ Timestamp; + balances: CanisterId ↦ Nat; + certified_data: CanisterId ↦ Blob; + system_time : Timestamp + call_contexts : CallId ↦ CallCtxt; + messages : List Message; // ordered! + root_key : PublicKey +} +CanState + = EmptyCanister | { + wasm_state : WasmState; + module : CanisterModule; + raw_module : Blob; +} +CanStatus + = Running + | Stopping (List (CallOrigin, Nat)) + | Stopped +.... + +==== Initial state + +The initial state of the system is +.... +{ + requests = (); + canisters = (); + controllers = (); + time = (); + balances = (); + system_time = T; + call_contexts = (); + messages = (); + root_key = PublicKey; +} +.... +for some time stamp `T`, some DER-encoded BLS public key `PublicKey`, and using `()` to denote the empty map or bag. + +=== State transitions + +Based on this abstract notion of the state, we can describe the behavior of the system. There are three classes of behaviors: + + * Asynchronous API requests that are submitted via `/api/v1/submit`. These transitions describes checks that the request must pass to be considered received. + * Spontaneous transitions that model the internal behavior of the system, by describing conditions on the state that allow the transition to happen, and the state after. + * Responses to reads (i.e. `/api/v1/read`). By definition, these do _not_ change the state of the system, and merely describe the response based on the read request and the current system state. + +The state transitions are not complete with regard to error handling. For example, the behavior of sending a request to a non-existent canister is not specified here. For now, we trust implementors to make sensible decisions there. + +We model the <> with one state transition per method. There, we assume a function +.... +candid : Value -> Blob +.... +that represents Candid encoding; this is implicitly taking the method types, as declared in <>, into account. We model the parsing of Candid values in the “Conditions” section using `candid` as well, by treating it as a non-deterministic function. + +The principal of the management ic canister is the empty blob (i.e. `aaaaa-aa`): +.... +ic_principal : principal = "" +.... + +==== Envelope Authentication + +The following predicate describes when an envelope `E` correctly signs the enclosed request with a key belonging to a user `U`, at time `T`: +It returns which canister ids this envelope may be used at (as a set of principals). +.... +verify_envelope({ content = C }, U, T) + = { p : p is PrincipalId } if U = anonymous_id +verify_envelope({ content = C, sender_pubkey = PK, sender_sig = Sig, sender_delegation = DS}, U, T) + = TS if U = mk_self_authenticating_id E.sender_pubkey + ∧ (PK', TS) = verify_delegations(DS, PK, T, { p : p is PrincipalId }) + ∧ verify_signature ("\x0Aic-request" · hash_of_map(C), PK') + +verify_delegations([], PK, T, TS) = (PK, TS) +verify_delegations([D] · DS, PK, T, TS) + = verify_delegations(C, DS, D.pubkey, T, TS ∩ delegation_targets(DS)) + if verify_signature PK D.signature ("\x1Aic-request-auth-delegation" · hash_of_map(D.delegation)) + ∧ D.delegation.expiration ≥ T + +delegation_targets(DS) + = if D.targets = Unrestricted + then { p : p is PrincipalId } + else D.targets +.... + +==== API Request submission + +After a node accepts a request via `/api/v1/submit`, it gets added to the system in the `Received` state. + +This may only happen if the signature is valid and is created with a correct key. +Due to this check, the envelope is discarded after this point. + +Requests that have expired are dropped here. + +Submitted request:: `E : Envelope` +Conditions:: +.... + E.content.canister_id ∈ verify_envelope(E, E.content.sender, S.system_time) + E.content ∉ requests + S.system_time <= E.content.ingress_expiry +.... +State after:: +.... +S with + requests[E.content] = Received +.... + +NOTE: This is not instantaneous (the system takes some time to agree it accepts the request) nor guaranteed (a node could just drop the request, or maybe it did not pass validation). But once it has entered the system like this, it will be acted upon. + +==== Request rejection + +The system may reject a received message for internal reasons (high load, low resources) or expiry. The precise conditions are not specified here, but the reject code must indicate this to be a system error. + +Conditions:: +.... + S.requests[R] = Received + Code = SYS_FATAL or Code = SYS_TRANSIENT +.... +State after:: +.... +S with + requests[R] = Rejected (Code, Msg) +.... + +==== Initiating canister calls + +A first step in processing a canister update call is to create a `CallMessage` in the message queue. + +This is only allowed if the request has not expired and potential rate limiting is respected. + +The `request` field of the `FromUser` origin establishes the connection to the api message. One could use the corresponding `hash_of_map` for this purpose, but this formulation is more abstract. + +We do not make any guarantees about the order of incoming messages. + +Conditions:: +.... + S.requests[CanisterUpdateCall R] = Received + S.system_time <= R.ingress_expiry + C = S.canisters[R.canister_id] + Arg = { data = R.data; caller = R.sender; time = S.time[R.canister_id] } + C.module.get_ingress_bucket (R.method_name, C.wasm_state, Arg, S.balance[R.canister_id]) = Return (assigned_bucket, assigned_cost) + C.module.get_ingress_limit_per_second : (C.wasm_state, S.time[R.canister_id], assigned_bucket) = Return assigned_limit + assigned_limit = NoLimit || assigned_limit ≥ assigned_cost + bucket_cost(S, R.canister_id, assigned_bucket) +.... +State after:: +.... +S with + requests[CanisterUpdateCall R] = Processing + messages = + CallMessage { + origin = FromUser { request = CanisterUpdateCall R }; + caller = R.sender; + callee = R.canister_id; + method_name = R.method_name; + arg = R.arg; + transferred_cycles = 0; + queue = Unordered; + bucket = assigned_bucket; + cost = assigned_cost; + rate_limit_timestamp = S.time[R.canister_id]; + } · S.messages +.... + +This uses the following helper function that sums up the cost of all in-flight messages in the same bucket and within the latest second: +.... +bucket_cost(S, canister_id, bucket) = + ∑ [ M.cost | CallMessage M ∈ S.messages, M.receiver = canister_id, + M.bucket = bucket, M.rate_limit_timestamp >= S.time[R.canister_id] - 1s ] + + ∑ [ M.cost | FuncMessage M ∈ S.messages, M.receiver = canister_id, + M.bucket = bucket, M.rate_limit_timestamp >= S.time[R.canister_id] - 1s ] +.... + +==== Calls to stopped/stopping canisters are rejected + +A call to a canister which is stopping or stopped is automatically rejected. + +Conditions:: +.... + S.messages = Older_messages · CallMessage CM · Younger_messages + (CM.queue = Unordered) or (∀ msg ∈ Older_messages. msg.queue ≠ CM.queue) + S.canister_status[CM.callee] = Stopped or S.canister_status[CM.callee] = Stopping _ +.... + +State after:: +.... + S.messages = Older_messages · Younger_messages · + ResponseMessage { + origin = S.call_contexts[CM.call_context].origin + response = Reject (CANISTER_ERROR, "canister stopped"); + refunded_cycles = CM.transferred_cycles; + } +.... + +==== Call context creation + +Before invoking a message to a public entry point, some bookkeeping is required: + + * A call context is created, and the method is looked up in the list of exports. This happens for both ingress and inter-canister messages. +The canister must be running (so not stopped, or stopping). + +The position of the message in the queue is unchanged. + +This only happens for “real” canisters, not the IC management canister. + +Conditions:: +.... + S.messages = Older_messages · CallMessage CM · Younger_messages + S.canisters[CM.callee] ≠ EmptyCanister + S.canister_status[CM.callee] = Running + Ctxt_id ∉ dom S.call_contexts +.... +State after:: +.... +S with + messages = + Older_messages · + FuncMessage { + call_context = Ctxt_id; + receiver = CM.callee; + entry_point = PublicMethod CM.method_name CM.caller CM.data + queue = CM.queue; + bucket = CM.bucket; + cost = CM.cost; + rate_limit_timestamp = CM.rate_limit_timestamp; + } · + Younger_messages + call_contexts[Ctxt_id] = { + canister = CM.callee; + origin = CM.origin; + responded = false; + available_cycles = CM.transferred_cycles; + } +.... + +We can execute any message that is at the head of its queue, i.e. there is no older message with the same abstract `queue` field. The actual message execution, if successful, may enqueue further messages and -- if the function returns a response -- record this response. The new call and response messages are enqueued at the end. + +[#rule-message-execution] +==== Message execution + +The transition models the actual execution of a message, whether it is an initial call to a public method or a response. In either case, a call context already exists (see transition “Call context creation”). + +Conditions:: +.... + S.messages = Older_messages · FuncMessage M · Younger_messages + (M.queue = Unordered) or (∀ msg ∈ Older_messages. msg.queue ≠ M.queue) + S.canisters[M.receiver] ≠ EmptyCanister + Mod = S.canisters[M.receiver].module + + Visible_balance = S.balances[M.receiver] - MAX_CYCLES_PER_MESSAGE + Env = { + time = S.time[M.receiver]; + balance = Visible_balance; + certificate = NoCertificate; + status = S.status[M.receiver]; + } + + Available = S.call_contexts[M.call_contexts].available_cycles + ( M.entry_point = PublicMethod Name Caller Data + Arg = { data = Data; caller = Caller } + (F = M.update_methods[M.method_name](Arg, Env, Available) + or + (F = as_update(Mod.query_methods[M.method_name], Arg, Env)) + ) + or + ( M.entry_point = Callback Callback Response + F = Mod.callbacks(Callback, Response, Env, Available) + ) + + R = F(S.canisters[M.receiver].wasm_state) +.... +State after:: +.... +if + R = Return res + Cycles_used ≤ Max_cycles + res.cycles_accepted ≤ Available + Cycles_used + ∑ [ call.transferred_cycles | call ∈ res.new_calls ] + ≤ S.balances[M.receiver] + res.cycles_accepted + (res.response = NoResponse) or (S.call_contexts[M.call_context].responded = false) +then + S with + canisters[M.receiver].wasm_state = res.new_state; + messages = + Older_messages · + Younger_messages · + [ CallMessage { + origin = FromCanister { + call_context = M.call_context; + callback = call.callback + }; + caller = C.callee; + callee = call.callee; + method_name = call.method_name; + arg = call.arg; + transferred_cycles = call.transferred_cycles + queue = Queue { from = M.receiver; to = call.callee }; + } + | call ∈ res.new_calls ] · + [ ResponseMessage { + origin = S.call_contexts[M.call_context].origin + response = res.response; + refunded_cycles = Available - res.cycles_accepted; + } + | res.response ≠ NoResponse ] + + if res.response = NoResponse: + call_contexts[M.call_context].available_cycles = Available - res.cycles_accepted + else + call_contexts[M.call_context].responded = true + call_contexts[M.call_context].available_cycles = 0 + + if res.new_certified_data ≠ NoCertifiedData: + certified_data[M.receiver] = res.new_certified_data + + balances[M.receiver] = + min( + S.balances[M.receiver] + res.cycles_accepted + - Cycles_used - ∑ [ call.transferred_cycles | call ∈ res.new_calls ] + , MAX_CANISTER_BALANCE) +else + S with + messages = Older_messages · Younger_messages + balances[M.receiver] = S.balances[M.receiver] - Cycles_used +.... + +The cycle consumption of executing this message is modeled via the unspecified `Cycles_used` variable. The maximum number of cycles to consume is also unspecified, and expressed as `Max_cycles`. + +This transition detects certain behaviour that will appear as a trap (and which an implementation may implement by trapping directly in a system call): + + * Responding if the present call context has already been responded to + * Accepting more cycles than are available on the call context + * Sending out more cycles than available to the canister + * Consuming more cycles than allowed (and reserved) + +If message execution <>, the message gets dropped. No response is generated (as some other message may still fulfill this calling context). Any state mutation is discarded. + +If message execution <>, the state is updated and possible outbound calls and responses are enqueued. + +Note that returning does _not_ imply that the call associated with this message now _succeeds_ in the sense defined in <>; that would requre a (unique) call to `ic0.reply`. +Note also that the state changes are persisted even when the system is set to synthesize a <> reject immediately afterward (which happens when this returns without calling `ic0.reply` or `ic0.reject`, the corresponding call has not been responded to and there are no outstanding callbacks, see <>). + +The function `as_update` turns a query function into an update function, this is merely a notational trick to simplify the rule +.... +as_update(f, arg, env) = λ wasm_state → + match f(arg, env)(wasm_state) with + Trap → Trap + Return res → Return { + new_state = wasm_state; + new_calls = []; + response = res; + cycles_accepted = 0; + new_certified_data = NoCertifiedData; + } +.... +Note that by construction, a query function will either trap or return with a response; it will never send calls, and it will never change the state of the canister. + +[#rule-starvation] +==== Call context starvation + +If there is no call, downstream calling context or response that could possibly fulfill a calling context, then a reject is synthesized. The error message below is _not_ indicative. In particular, if the system has an idea about _why_ this starved, it can put that in there (e.g. the initial message handler trapped with an out-of-memory access). + +Conditions:: +.... + S.call_contexts[Ctxt_id].responded = false + ∀ CallMessage M ∈ S.messages. M.origin.calling_context ≠ Ctxt_id + ∀ ResponseMessage M ∈ S.messages. M.origin.calling_context ≠ Ctxt_id + ∀ ctxt_ids. + S.call_contexts[ctxt_ids].responded = false + ==> S.call_contexts[ctxt_ids].origin.calling_context ≠ Ctxt_id +.... +State after:: +.... +S with + call_contexts[Ctxt_id].responded = true + call_contexts[Ctxt_id].available_cycles = 0 + messages = + S.messages · + ResponseMessage { + origin = S.call_contexts[Ctxt_id].origin; + response = Reject (CANISTER_ERROR, "starvation"); + refunded_cycles = S.call_contexts[Ctxt_id].available_cycles + } +.... + +==== Call context removal + +If there is no call, downstream calling context or response that references a call context, and the call context has been replied to, then the call context can be removed. + +Conditions:: +.... + S.call_contexts[Ctxt_id].responded = true + ∀ CallMessage M ∈ S.messages. M.origin.calling_context ≠ Ctxt_id + ∀ ResponseMessage M ∈ S.messages. M.origin.calling_context ≠ Ctxt_id + ∀ ctxt_ids. + S.call_contexts[ctxt_ids].responded = false + ==> S.call_contexts[ctxt_ids].origin.calling_context ≠ Ctxt_id +.... +State after:: +.... +S with + call_contexts[Ctxt_id] = (deleted) +.... + + +==== IC Management Canister: Canister creation + +The system chooses an appropriate canister id and instantiates a new (empty) canister identified by this id. The issuer of the request is set to be the controller of newly created canister. The canister status is set to 'Running'. All cycles on this call are now the canister's initial cycles. + +This is also when the System Time of the new canister starts ticking. + +Conditions:: +.... + S.messages = Older_messages · CallMessage M · Younger_messages + (M.queue = Unordered) or (∀ msg ∈ Older_messages. msg.queue ≠ M.queue) + M.callee = ic_principal + M.method_name = 'create_canister' + M.arg = candid() + is_system_assigned CanisterId + CanisterId ∉ dom S.canisters +.... +State after:: +.... +S with + canisters[CanisterId] = EmptyCanister + time[CanisterId] = CurrentTime + controllers[CanisterId] = M.caller + balances[CanisterId] = M.transferred_cycles + certified_data[CanisterId] = "" + messages = Older_messages · Younger_messages · + ResponseMessage { + origin = M.origin + response = Accepted (candid({canister_id = CanisterId})) + refunded_cycles = 0 + } + canister_status[CanisterId] = Running +.... + +This uses the predicate +.... +is_system_assigned : Principal -> Bool +.... +which characterizes all system-assigned ids. + +To avoid clashes with potential user ids or is derived from users or canisters, we require (somewhat handwavy) that + + * `is_system_assigned (mk_self_authenticating_id pk) = false` for possible public keys `pk` and + * `is_system_assigned (mk_derived_id p dn) = false` for any `p` that could be a user id or canister id. + * `is_system_assigned p = false` for `|p| > 29`. + +==== IC Management Canister: Canister status + +The controller of a canister can check for its status (i.e. one of Running, Stopping, or Stopped). + +The `Memory_size` is the (in this specification underspecified) total size of storage in bytes. + +Conditions:: +.... + S.messages = Older_messages · CallMessage M · Younger_messages + (M.queue = Unordered) or (∀ msg ∈ Older_messages. msg.queue ≠ M.queue) + M.callee = ic_principal + M.method_name = 'canister_status' + M.arg = candid(A) + M.caller = S.controllers[A.canister_id] +.... +State after:: +.... +S with + messages = Older_messages · Younger_messages · + ResponseMessage { + origin = M.origin + response = candid({ + status = S.canister_status[A.canister_id]; + module_hash = + if S.canisters[A.canister_id] = EmptyCanister + then null + else ?(SHA-265(S.canisters[A.canister_id].raw_module)); + controller = S.controllers[A.canister_id]; + memory_size = Memory_size; + cycles = S.balance[A.canister_id]; + }) + refunded_cycles = M.transferred_cycles + } +.... + +==== IC Management Canister: Code installation + +Only the controller of the given canister can install code. This transition installs new code over an empty or existing canister. This involves invoking the `canister_init` system method (see <>), which must succeed and must not invoke other methods. + +The `compute_allocation` and `memory_allocation` are ignored in this abstract model of the Internet Computer, as it does not address questions of performance or scheduling. + +Conditions:: +.... + S.messages = Older_messages · CallMessage M · Younger_messages + (M.queue = Unordered) or (∀ msg ∈ Older_messages. msg.queue ≠ M.queue) + M.callee = ic_princpal + M.method_name = 'install_code' + M.arg = candid(A) + Mod = parse_wasm_mod(A.wasm_module) + (A.mode = install && S.canisters[A.canister_id] = EmptyCanister) + or A.mode = reinstall + M.caller = S.controllers[A.canister_id] + Arg = { + data = A.arg; + caller = M.caller; + } + Env = { + time = S.time[M.receiver]; + balance = S.balances[M.receiver]; + certificate = NoCertificate; + status = S.status[M.receiver]; + } + Mod.init(A.canister_id, Arg, Env) = Return New_state +.... +State after:: +.... +S with + canisters[A.canister_id] = + { wasm_state = New_state; module = Mod; raw_module = A.wasm_module } + messages = Older_messages · Younger_messages · + ResponseMessage { + origin = M.origin + response = Accepted (candid()) + refunded_cycles = M.transferred_cycles + } +.... + +==== IC Management Canister: Code upgrade + +Only the controller of the given canister can install new code. This changes the code of an _existing_ canister, preserving the state in the stable memory. This involves invoking the `canister_pre_upgrade` system method on the old and `canister_post_upgrade` system method on the new canister, which must succeed and must not invoke other methods. + +The `compute_allocation` and `memory_allocation` are ignored in this abstract model of the Internet Computer, as it does not address questions of performance or scheduling. + +Conditions:: +.... + S.messages = Older_messages · CallMessage M · Younger_messages + (M.queue = Unordered) or (∀ msg ∈ Older_messages. msg.queue ≠ M.queue) + M.callee = ic_principal + M.method_name = 'install_code' + M.arg = candid(A) + Mod = parse_wasm_mod(A.wasm_module) + + A.mode = upgrade + S.canisters[A.canister_id] ≠ EmptyCanister + M.caller = S.controllers[A.canister_id] + S.canisters[A.canister_id] = { wasm_state = Old_state; module = Old_module } + Env = { + time = S.time[M.receiver]; + balance = S.balances[M.receiver]; + certificate = NoCertificate; + status = S.status[M.receiver]; + } + Old_module.pre_upgrade(Old_State, M.caller, Env) = Return Stable_memory + Arg = { + data = A.arg; + caller = M.caller; + } + Mod.post_upgrade(A.canister_id, Stable_memory, Arg, Env) = Return New_state +.... +State after:: +.... +S with + canisters[A.canister_id] = + { wasm_state = New_state; module = Mod; raw_module = A.wasm_module } + messages = Older_messages · Younger_messages · + ResponseMessage { + origin = M.origin + response = Accepted (candid()) + refunded_cycles = M.transferred_cycles + } +.... + +==== IC Management Canister: Setting controllers + +Only the controller of the given canister can modify the controller field. + +Conditions:: +.... + S.messages = Older_messages · CallMessage M · Younger_messages + (M.queue = Unordered) or (∀ msg ∈ Older_messages. msg.queue ≠ M.queue) + M.callee = ic_principal + M.method_name = 'set_controller' + M.arg = candid(A) + M.caller = S.controllers[A.canister_id] +.... +State after:: +.... +S with + controllers[A.canister_id] = A.new_controller + messages = Older_messages · Younger_messages · + ResponseMessage { + origin = M.origin + response = Accepted (candid()) + refunded_cycles = M.transferred_cycles + } +.... + +==== IC Management Canister: Stopping a canister + +The controller of a canister can stop a canister. Stopping a canister goes through two steps. First, the status of the canister is set to `Stopping`; as explained above, a stopping canister rejects all incoming requests and continues processing outstanding responses. When a stopping canister has no more open call contexts, its status is changed to `Stopped` and a response is generated. Note that when processing responses, a stopping canister can make calls to other canisters and thus create new call contexts. In addition, a canister which is stopped, or stopping will accept (and respond) to further `stop_canister` requests. + +We encode this behavior via three (types of) transitions: + +1. First, any `stop_canister` call sets the state of the canister to `Stopping`; we record in the status the origin (and cycles) of all `stop_canister` calls which arrive at the canister while it is stopping (or stopped). +2. Next, when the canister has no open call contexts (so, in particular, all outstanding responses to the canister have been processed), the status of the canister is set to `Stopped`. +3. Finally, each pending `stop_canister` call (which are encoded in the status) is responded to, to indicate that that the canister is stopped. + +Conditions:: +.... + S.messages = Older_messages · CallMessage M · Younger_messages + (M.queue = Unordered) or (∀ msg ∈ Older_messages. msg.queue ≠ M.queue) + M.callee = ic_principal + M.method_name = 'stop_canister' + M.arg = candid(A) + S.canister_status[A.canister_id] = Running + M.caller = S.controllers[A.canister_id] +.... +State after:: +.... +S with + messages = Older_messages · Younger_messages + S.status[A.canister_id] = Stopping [(M.origin, M.transferred_cycles)] +.... + +The next two transition record any additional 'stop_canister' requests that arrive at a stopping (or stopped) canister in its status. + +Conditions:: +.... + S.messages = Older_messages · CallMessage M · Younger_messages + (M.queue = Unordered) or (∀ msg ∈ Older_messages. msg.queue ≠ M.queue) + M.callee = ic_principal + M.method_name = 'stop_canister' + M.arg = candid(A) + S.canister_status[A.canister_id] = Stopping Origins + M.caller = S.controllers[A.canister_id] +.... +State after:: +.... +S with + messages = Older_messages · Younger_messages + S.status[A.canister_id] = Stopping (Origins · (M.origin, M.transferred_cycles)) +.... + + +The status of a stopping canister which has no open call contexts is set to `Stopped`, and all pending `stop_canister` calls are replied to. + +Conditions:: +.... + S.canister_status[A.canister_id] = Stopping Origins + ∀ Ctxt_id. S.call_contexts[Ctxt_id].canister ≠ A.canister_id +.... +State after:: +.... + S.canister_status[CanisterId] = Stopped + S.messages = Messages · + [ ResponseMessage { + origin = O + response = Accepted (candid()) + refunded_cycles = C + } + | (O, C) ∈ Origins + ] +.... + +NOTE: Sending a `stop_canister` message to an already stopped canister is acknowledged (i.e. responded with success), but is otherwise a no-op: + +Conditions:: +.... + S.messages = Older_messages · CallMessage M · Younger_messages + (M.queue = Unordered) or (∀ msg ∈ Older_messages. msg.queue ≠ M.queue) + M.callee = ic_principal + M.method_name = 'stop_canister' + M.arg = candid(A) + S.canister_status[A.canister_id] = Stopped + M.caller = S.controllers[A.canister_id] +.... +State after:: +.... +S with + messages = Older_messages · Younger_messages + S.messages = Messages · + ResponseMessage { + origin = M.origin + response = Accepted (candid()) + } +.... + +==== IC Management Canister: Starting a canister + +The controller of a canister can start a stopped canister. If the canister is already running, the command has no effect on the canister. + +Conditions:: +.... + S.messages = Older_messages · CallMessage M · Younger_messages + (M.queue = Unordered) or (∀ msg ∈ Older_messages. msg.queue ≠ M.queue) + M.callee = ic_principal + M.method_name = 'start_canister' + M.arg = candid(A) + S.status[A.canister_id] = Running or S.status[A.canister_id] = Stopped + M.caller = S.controllers[A.canister_id] +.... +State after:: +.... +S with + S.status[A.canister_id] = Running + messages = Older_messages · Younger_messages · + ResponseMessage{ + origin = M.origin + response = Accepted (candid()) + refunded_cycles = M.transferred_cycles + } +.... + + +If the status of the canister was 'Stopping', then the canister status is set to `Running`. The pending `stop_canister` request(s) are rejected. + +Conditions:: +.... + S.messages = Older_messages · CallMessage M · Younger_messages + (M.queue = Unordered) or (∀ msg ∈ Older_messages. msg.queue ≠ M.queue) + M.callee = ic_principal + M.method_name = 'start_canister' + M.arg = candid(A) + S.status[A.canister_id] = Stopping Origins + M.caller = S.controllers[A.canister_id] +.... +State after:: +.... +S with + S.status[A.canister_id] = Running + messages = Older_messages · Younger_messages · + ResponseMessage{ + origin = M.origin + response = Accepted (candid()) + refunded_cycles = M.transferred_cycles + } · + [ ResponseMessage { + origin = O + response = Reject (CANISTER_REJECT, 'Canister has been restarted') + refunded_cycles = C + } + | (O, C) ∈ Origins + ] +.... + +==== IC Management Canister: Canister deletion + +Conditions:: +.... + S.messages = Older_messages · CallMessage M · Younger_messages + (M.queue = Unordered) or (∀ msg ∈ Older_messages. msg.queue ≠ M.queue) + M.callee = ic_principal + M.method_name = 'delete_canister' + M.arg = candid(A) + S.canister_status[A.canister_id] = Stopped + M.caller = S.controllers[A.canister_id] +.... +State after:: +.... +S with + canisters[CanisterId] = (deleted) + controllers[CanisterId] = (deleted) + canister_status[CanisterId] = (deleted) + time[CanisterId] = (deleted) + balances[CanisterId] = (deleted) + messages = Older_messages · Younger_messages · + ResponseMessage { + origin = M.origin + response = Accepted (candid()) + refunded_cycles = M.transferred_cycles + } +.... + +==== IC Management Canister: Depositing cycles + +Conditions:: +.... + S.messages = Older_messages · CallMessage M · Younger_messages + (M.queue = Unordered) or (∀ msg ∈ Older_messages. msg.queue ≠ M.queue) + M.callee = ic_principal + M.method_name = 'deposit_cycles' + M.arg = candid(A) + M.caller = S.controllers[A.canister_id] + Cycle_cost ≤ S.balances[A.canister_id] + M.transferred_cycles +.... +State after:: +.... +S with + balances[CanisterId] = + min(S.balances[A.canister_id] + M.transferred_cycles, MAX_CANISTER_BALANCE) + messages = Older_messages · Younger_messages · + ResponseMessage { + origin = M.origin + response = Accepted (candid()) + refunded_cycles = 0 + } +.... + +==== IC Management Canister: Random numbers + +The management canister can produce pseudo-random bytes. It always returns a 32-byte `blob`: + +The precise guarantees around the randomness, e.g. unpredictability, are not captured in this formal semantics. + +Conditions:: +.... + S.messages = Older_messages · CallMessage M · Younger_messages + (M.queue = Unordered) or (∀ msg ∈ Older_messages. msg.queue ≠ M.queue) + M.callee = ic_principal + M.method_name = 'raw_rand' + M.arg = candid() + |B| = 32 +.... +State after:: +.... +S with + controllers[A.canister_id] = A.new_controller + messages = Older_messages · Younger_messages · + ResponseMessage { + origin = M.origin + response = Accepted (candid(B)) + refunded_cycles = M.transferred_cycles + } +.... + +==== IC Management Canister: Canister creation with cycles + +This is a variant of `create_canister`, which sets the initial cycle balance based on the `amount` argument. + +Conditions:: +.... + S.messages = Older_messages · CallMessage M · Younger_messages + (M.queue = Unordered) or (∀ msg ∈ Older_messages. msg.queue ≠ M.queue) + M.callee = ic_principal + M.method_name = 'provisional_create_canister_with_cycles' + M.arg = candid(A) + is_system_assigned CanisterId + CanisterId ∉ dom S.canisters +.... +State after:: +.... +S with + canisters[CanisterId] = EmptyCanister + time[CanisterId] = CurrentTime + controllers[CanisterId] = M.caller + balances[CanisterId] = min(A.amount, MAX_CANISTER_BALANCE) + certified_data[CanisterId] = "" + messages = Older_messages · Younger_messages · + ResponseMessage { + origin = M.origin + response = Accepted (candid({canister_id = CanisterId})) + transferred_cycles = M.transferred_cycles + } + canister_status[CanisterId] = Running +.... + +==== IC Management Canister: Top up canister + +Conditions:: +.... + S.messages = Older_messages · CallMessage M · Younger_messages + (M.queue = Unordered) or (∀ msg ∈ Older_messages. msg.queue ≠ M.queue) + M.callee = ic_principal + M.method_name = 'provisional_top_up_canister' + M.arg = candid(A) + A.canister_id ∈ dom S.canisters +.... +State after:: +.... +S with + balances[CanisterId] = min(balances[CanisterId] + A.amount, MAX_CANISTER_BALANCE) +.... + + +==== Callback invocation + +When an inter-canister call has been responded to, we can queue the call to the callback. + +This “bookkeeping transition” must be immediately followed by the corresponding “Message execution” transition. + +Conditions:: +.... + S.messages = Older_messages · ResponseMessage RM · Younger_messages + RM.origin = FromCanister { + call_context = Ctxt_id + callback = Callback + } +.... +State after:: +.... +S with + balances[S.call_contexts[Ctxt_id].canister] = + min(balances[S.call_contexts[Ctxt_id].canister] + RM.refunded_cycles, + MAX_CANISTER_BALANCE) + messages = + Older_messages · + FuncMessage { + call_context = Ctxt_id2 + receiver = C + entry_point = Callback Callback FM.response RM.refunded_cycles + queue = Unordered + bucket = None + cost = 0 + rate_limit_timestamp = None + } · + Younger_messages +.... + +==== Respond to user request + +When an ingress method call has been responded to, we can record the response in the list of queries. + +Conditions:: +.... + S.requests[M] = Processing + S.messages = Older_messages · ResponseMessage RM · Younger_messages + RM.origin = FromUser { request = M } +.... +State after:: +.... +S with + messages = Older_messages · Younger_messages + requests[M] = + | Replied R if response = Reply R + | Rejected R if response = Reject R +.... + +NB: The refunded cycles, `RM.refunded_cycles` are, by construction, empty. + +==== Request clean up + +The system will keep the data for a completed or rejected request around for a certain, implementation defined amount of time, to allow clients to poll for the data. After that time, the data of the request will be dropped: + +Conditions:: +.... + (S.requests[M] = Replied _) or (S.requests[M] = Rejected _) +.... +State after:: +.... +S with + requests[M] = Done +.... + + +At the same or some later point, the request will be removed from memory of the system. This must happen no earlier than the ingress expiry time set in the request. + +Conditions:: +.... + (S.requests[M] = Replied _) or (S.requests[M] = Rejected _) or (S.requests[M] = Done) + M.ingress_expiry < S.system_time +.... +State after:: +.... +S with + requests[M] = (deleted) +.... + +==== Time progressing + +Time progresses. Abstractly, it does so independently for each canister, and in unspecified intervals. + +Conditions:: +.... + T0 = S.time[CanisterId] + T1 > T0 +.... +State after:: +.... +S with + time[CanisterId] = T1 +.... + +Similarly, the system time, used to expire requests, progresses: + +Conditions:: +.... + T0 = S.system_time + T1 > T0 +.... +State after:: +.... +S with + system_time = T1 +.... + +==== Read: query call + +Canister query calls can be executed directly. They can only be executed against canisters which are `Running`. + +During the execution of a query call, a certificate is provided to the canister that is valid, is current (or “recent enough”; the specification is currently vague about how old the certificate may be) and reveals the canister’s <>. + +Submitted request:: `E` +Conditions:: +.... + E.content = CanisterQuery Q + Q.canister_id ∈ verify_envelope(E, Q.sender, S.system_time) + S.system_time <= Q.ingress_expiry + S.canisters[Q.canister_id] ≠ EmptyCanister + S.canister_status[Q.canister_id] = Running + C = S.canisters[Q.canister_id] + F = C.module.query_methods[Q.method_name] + Arg = { + data = Q.arg; + caller = Q.sender; + } + verify_cert(Cert) + lookup(["canister",Q.canister_id,"certified_data"], Cert) = Found S.certified_data[Q.canister_id] + lookup(["time"], Cert) = Found S.system_time // or “recent enough” + Env = { + time = S.time[Q.receiver]; + balance = S.balances[Q.canister_id]; + certificate = Cert; + status = S.status[Q.receiver]; + } +.... +Read response:: +* If `F(Arg, Env) = Trap` then ++ +.... +{status: failed; error: "Query execution trapped"} +.... +* Else if `F(Arg, Env) = Return (Reject (code, msg))` then ++ +.... +{status: rejected; reject_code: : reject_message: } +.... +* Else if `F(Arg, Env) = Return (Reply R)` then ++ +.... +{status: success; reply: { arg : } } +.... + +==== Read: Certified state reads + +The user can read elements of the _state tree_, using a `read_state` request. + +Submitted request:: `E` +Conditions:: +.... + E.content = ReadState RS + TS = verify_envelope(E, RS.sender, S.system_time) + S.system_time <= RS.ingress_expiry + ∀ path ∈ RS.paths. may_read_path(S, R.sender, path) + ∀ ["request_status", Rid] · _ ∈ RS.paths. ∃ R ∈ S.requests ∧ hash_of_map(R) = Rid ∧ R.canister_id ∈ TS +.... +Read response:: +A record with +* `{certificate: C}` + +The predicate `may_read_path` is defined as follows, implementing the access control outlined in <>: +.... +may_read_path(S, _, ["time"]) = True +may_read_path(S, _, ["request_status", Rid] · _) = + if ∃ R ∈ S.requests ∧ hash_of_map(R) = Rid + then RS.sender = R.sender + else True +may_read_path(S, _, _) = False +.... + +The response is a certificate `cert`, as specified in <>, which passes `verify_cert` (assuming `S.root_key` as the root of trust), and where for every `path` documented in <> that is a suffix of a path in `RS.paths` or of `["time"]`, we have +.... +lookup(path, cert) = lookup_in_tree(path, state_tree(S)) +.... +where `state_tree` constructs the a labeled tree from the system state `S` and the (so far underspecified) set of subnets `subnets`, as per <> +.... +state_tree(S) = { + "time": S.system_time; + "request_id": { request_id(R): request_status_tree(S) | (R ↦ S) ∈ S.requests }; + "subnet": { subnet_id : { "public_key" : pub } | (subnet_id, subnet_pk) ∈ subnets }; +} + +request_status_tree(Received) = + { "status": "received" } +request_status_tree(Processing) = + { "status": "processing" } +request_status_tree(Rejected (code,msg)) = + { "status": "rejected"; "reject_code": code; "reject_message": msg } +request_status_tree(Replied arg) = + { "status": "replied"; "reply": arg } +request_status_tree(Done) = + { "status": "Done" } +.... +and where `lookup_in_tree` is a function that returns the value or `Absent` as appropriately. + +[#concrete-canisters] +=== Abstract Canisters to System API + +In Section <> we introduced an abstraction over the interface to a canister, to avoid cluttering the abstract specification of the Internet Computer from WebAssembly details. In this section, we will fill the gap and explain how the abstract canister interface maps to the <> and the WebAssembly concepts as defined in the https://webassembly.github.io/spec/core/index.html[WebAssembly specification]. + +==== The concrete `WasmState` + +The abstract `WasmState` above models the WebAssembly _store_ `S`, which encompasses the functions, tables, memories and globals of the WebAssembly program, plus additional data maintained by the system, such as the stable memory: +.... +WasmState = { + store : S; // a store as per WebAssembly spec + self_id : CanId; + stable_mem : Blob +} +.... + +As explained in Section “<>”, the WebAssembly module imports at most _one_ memory and at most _one_ table; in the following, _the_ memory (resp. table) and the fields `mem` and `table` of `S` refer to that. Any system call that accesses the memory (resp. table) will trap if the module does not import the memory (resp. table). + +We model `mem` as an array of bytes, and `table` as an array of execution functions. + +The abstract `Callback` type above models an entry point for responses: +.... +Closure = { + fun : i32, + env : i32, +} + +Callback = { + on_reply : Closure; + on_reject : Closure; + on_cleanup : Closure | NoClosure; +} +.... + +==== The execution state + +We can model the execution of WebAssembly functions as stateful functions that have access to the WebAssembly store. In order to also model the behavior of the system imports, which have access to additional data structures, we extend the state as follows: +.... +Params = { + data : NoData | Blob; + caller : NoCaller | Principal; + reject_code : 0 | SYS_FATAL | SYS_TRANSIENT | …; + reject_message : Text; + sysenv : Env; + cycles_refundend : Nat; + ingress_rate_bucket : NoBucket | Blob; +} +ExecutionState = { + wasm_state : WasmState; + params : Params; + response : NoResponse | Response; + cycles_accepted : Nat; + cycles_available : Nat; + balance : Funds; + reply_params : { arg : Blob }; + pending_call : MethodCall | NoPendingCall; + calls : List MethodCall; + new_certified_data : NoCertifiedData | Blob; + bucket_cost : NoBucket | BucketCost + rate_limit : NoLimit | i64 +} +.... + +This allows us to model WebAssembly functions, including host-provided imports, as functions with implicit mutable access to an `ExecutionState`, dubbed _execution functions_. +Syntactically, we express this using an implicit argument of type `ref ExecutionState` in angle brackets (e.g. `func(x)` for the invocation of a WebAssembly function with type `+(x : i32) -> ()+`). The lifetime of the `ExecutionState` data structure is that of one such function invocation. + +WARNING: It is nonsensical to pass to an execution function a WebAssembly store `S` that comes from a different WebAssembly module than one defining the function. + +==== The concrete `CanisterModule` + +Finally we can specify the abstract `CanisterModule` that models a concrete WebAssembly module. + +* The `initial_wasm_store` mentioned below is the store of the WebAssembly module after _instantiation_ (as per WebAssembly spec) of the WasmModule contained in the <>, including executing a potential `(start)` function. + +* For more convenience when creating a new `ExecutionState`, we define the following partial records: ++ +.... +empty_params = { + data = NoData; + caller = NoCaller; + reject_code = 0; + reject_message = ""; + cycles_refundend = 0; +} + +empty_execution_state = { + wasm_state = (undefined); + params = (undefined); + response = NoResponse; + cycles_accepted = 0; + cycles_available = 0; + balance = 0; + reply_params = { arg = "" }; + pending_call = NoPendingCall; + calls = []; + new_certified_data = NoCertifiedData; + bucket_cost = NoBucket; + rate_limit = NoLimit; +} +.... + + +* The `init` field of the `CanisterModule` is defined as follows: ++ +If the WebAssembly module does not export a function called under the name `canister_init`, then the argument blob is ignored and the `initial_wasm_store` is returned: ++ +.... +init = λ (self_id, arg, sysenv) → + Return { store = initial_wasm_store; self_id = self_id; stable_mem = "" } +.... ++ +Otherwise, if the WebAssembly module exports a function `func` under the name `canister_init`, it is ++ +.... +init = λ (self_id, arg, sysenv) → + let es = ref {empty_execution_state with + wasm_state = { store = initial_wasm_store; self_id = self_id; stable_mem = "" } + params = empty_params with { data = arg.data; caller = arg.caller; sysenv } + balance = sysenv.balance + } + try func() with Trap then Trap + if es.performed_calls ≠ [] then Trap + if es.response ≠ NoResponse then Trap + if es.bucket_cost ≠ NoBucket then Trap + if es.rate_limit ≠ NoLimit then Trap + Return es.wasm_state +.... ++ +This formulation checks afterwards that the system calls `call.perform` or `msg.reply` were not invoked; an implementation can of course trap as soon as these system calls are invoked. + +* The `pre_upgrade` field of the `CanisterModule` is defined as follows: ++ +If the WebAssembly module does not export a function called under the name `canister_pre_upgrade`, then it simply returns the stable memory: ++ +.... +pre_upgrade = λ (old_state, caller, sysenv) → Return old_state.stable_mem +.... ++ +Otherwise, if the WebAssembly module exports a function `func` under the name `canister_pre_upgrade`, it is ++ +.... +pre_upgrade = λ (old_state, caller, sysenv) → + let es = ref {empty_execution_state with + wasm_state = old_state + params = { empty_params with caller = caller; sysenv } + balance = sysenv.balance + } + try func() with Trap then Trap + if es.performed_calls ≠ [] then Trap + if es.response ≠ NoResponse then Trap + if es.bucket_cost ≠ NoBucket then Trap + if es.rate_limit ≠ NoLimit then Trap + Return es.wasm_state.stable_mem +.... + + +* The `post_upgrade` field of the `CanisterModule` is defined as follows: ++ +If the WebAssembly module does not export a function called under the name `canister_post_upgrade`, then the argument blob is ignored and the `initial_wasm_store` is returned: ++ +.... +post_upgrade = λ (self_id, stable_mem, arg, sysenv) → + Return { store = initial_wasm_store; self_id = self_id; stable_mem = stable_mem } +.... ++ +Otherwise, if the WebAssembly module exports a function `func` under the name `canister_post_upgrade`, it is ++ +.... +post_upgrade = λ (self_id, stable_mem, arg, sysenv) → + let es = ref {empty_execution_state with + wasm_state = { store = initial_wasm_store; self_id = self_id; stable_mem = stable_mem } + params = { empty_params with data = arg.data; caller = arg.caller; sysenv } + balance = sysenv.balance + } + try func() with Trap then Trap + if es.performed_calls ≠ [] then Trap + if es.response ≠ NoResponse then Trap + if es.bucket_cost ≠ NoBucket then Trap + if es.rate_limit ≠ NoLimit then Trap + Return es.wasm_state +.... + +* The partial map `update_methods` of the `CanisterModule` is defined for all method names `method` for which the WebAssembly program exports a function `func` named `canister_update `, and has value ++ +.... +update_methods[method] = λ (arg, sysenv, available) → λ wasm_state → + let es = ref {empty_execution_state with + wasm_state = wasm_state; + params = empty_params with { data = arg.data; caller = arg.caller; sysenv } + balance = sysenv.balance + cycles_available = arg.cycles; + } + try func() with Trap then Trap + if es.bucket_cost ≠ NoBucket then Trap + if es.rate_limit ≠ NoLimit then Trap + Return { + new_state = es.wasm_state; + new_calls = es.calls; + response = es.response; + cycles_accepted = es.cycles_accepted; + new_certified_data = es.new_certified_data + } +.... + +* The partial map `query_methods` of the `CanisterModule` is defined for all method names `method` for which the WebAssembly program exports a function `func` named `canister_query `, and has value ++ +.... +query_methods[method] = λ (arg, sysenv) → λ wasm_state → + let es = ref {empty_execution_state with + wasm_state = wasm_state; + params = empty_params with { data = arg.data; caller = arg.caller; sysenv } + balance = sysenv.balance + } + try func() with Trap then Trap + if es.cycles_accepted ≠ 0 then Trap + if es.calls ≠ () then Trap + if es.response = NoResponse then Trap + if es.bucket_cost ≠ NoBucket then Trap + if es.rate_limit ≠ NoLimit then Trap + Return es.response; +.... ++ +This formulation checks afterwards that the system call `ic0.call_perform` was not invoked; an implementation can of course trap already when these system calls have been invoked. ++ +By construction, the (possibly modified) `es.wasm_state` is discarded. + +* The function `callbacks` of the `CanisterModule` is defined as follows ++ +.... +callbacks = λ(callbacks, response, sysenv, available) → λ wasm_state → + let params0 = { empty_params with + sysenv + cycles_received = refund; + } + let (fun, env, params) = match response with + Reply data -> + (callbacks.on_reply.fun, callbacks.on_reply.env, + { params0 with data}) + Reject (reject_code, reject_message)-> + (callbacks.on_reject.fun, callbacks.on_reject.env, + { params0 with reject_code; reject_message}) + try + if fun > |es.wasm_state.store.table| then Trap + let func = es.wasm_state.store.table[fun] + if typeof(func) ≠ func (i32) -> () then Trap + + let es = ref {empty_execution_state with + wasm_state = wasm_state; + params = params; + balance = sysenv.balance; + cycles_available = available; + } + func(env) + if es.bucket_cost ≠ NoBucket then Trap + if es.rate_limit ≠ NoLimit then Trap + Return { + new_state = es.wasm_state; + new_calls = es.calls; + response = es.response; + cycles_accepted = es.cycles_accepted; + new_certified_data = es.certified_data; + } + with Trap + if callbacks.on_cleanup = NoClosure then Trap + if callbacks.on_cleanup.fun > |es.wasm_state.store.table| then Trap + let func = es.wasm_state.store.table[callbacks.on_cleanup.fun] + if typeof(func) ≠ func (i32) -> () then Trap + + let es = ref { empty_execution_state with + wasm_state; + } + func(callbacks.on_cleanup.env) + Return { + new_state = es.wasm_state; + new_calls = []; + response = NoResponse; + cycles_accepted = 0; + } +.... ++ +Note that if the initial callback handler traps, the cleanup callback (if +present) is executed, and the canister has the chance to update its state. + +* The `get_ingress_bucket` field of the `CanisterModule` is defined as follows. ++ +If the WebAssembly module does not export a function called under the name `canister_get_ingress_bucket`, then access is always granted: ++ +.... +get_ingress_bucket = λ (method_name, wasm_state, arg, sysenv) → + Return { bucket = None; cost = 0 } +.... +Otherwise, if the WebAssembly module exports a function `func` under the name `canister_get_ingress_bucket`, it is ++ +.... +get_ingress_bucket = λ (method_name, wasm_state, arg, sysenv) → + let es = ref {empty_execution_state with + wasm_state = wasm_state; + params = empty_params with { + data = arg.data; + caller = arg.caller; + sysenv + } + balance = sysenv.balance; + funds_available = no_funds; // ingress requests have no funds + } + try func() with Trap then Trap + if es.calls ≠ () then Trap + if es.response ≠ NoResponse then Trap + if es.rate_limit ≠ NoLimit then Trap + if es.bucket_cost = NoBucket then Trap + Return es.bucket_cost; +.... + +* The `get_ingress_limit_per_second` field of the `CanisterModule` is defined as follows. ++ +If the WebAssembly module does not export a function called under the name `canister_get_ingress_limit_per_second`, then access is always granted: ++ +.... +get_ingress_limit_per_second = λ (wasm_state, time, sysenv, bucket) → + Return NoLimit +.... +Otherwise, if the WebAssembly module exports a function `func` under the name `canister_get_ingress_limit_per_second`, it is ++ +.... +get_ingress_limit_per_second = λ (wasm_state, time, sysenv, bucket) → + let es = ref {empty_execution_state with + wasm_state = wasm_state; + params = empty_params with { sysenv, ingress_rate_bucket = bucket }; + balance = sysenv.balance; + } + try func() with Trap then Trap + if es.calls ≠ () then Trap + if es.response ≠ NoResponse then Trap + if es.bucket_cost ≠ NoBucket then Trap + if es.rate_limit = NoLimit then Trap + Return es.rate_limit; +.... + +==== Helper functions + +In the following section, we use the these helper functions + +.... +copy_to_canister(dst : i32, offset : i32, size : i32, data : blob) = + if offset+size > |data| then Trap + if dst+size > |es.wasm_state.store.mem| then Trap + es.wasm_state.store.mem[dst..dst+size] := data[offset..offset+size] + +copy_from_canister(src : i32, size : i32) blob = + if src+size > |es.wasm_state.store.mem| then Trap + return es.wasm_state.store.mem[src..src+size] +.... + +==== System imports + +Upon _instantiation_ of the WebAssembly module, we can provide the following functions as imports. + +The pseudo-code below does _not_ explicitly enforce the restrictions of which imports are available in which contexts; for that the table in <> is authorative, and is assumed to be part of the implementation. + +.... +ic0.msg_arg_data_size() : i32 = + return |es.params.arg| + +ic0.msg_arg_data_copy(dst:i32, offset:i32, size:i32) = + copy_to_canister(dst, offset, size, es.param.arg) + +ic0.msg_caller_size() : i32 = + return |es.params.caller| + +ic0.msg_caller_copy(dst:i32, offset:i32, size:i32) : i32 = + copy_to_canister(dst, offset, size, es.params.caller) + +ic0.msg_reject_code() : i32 = + es.params.reject_code + +ic0.msg_reject_msg_size() : i32 = + return |es.params.reject_msg| + +ic0.msg_reject_msg_copy(dst:i32, offset:i32, size:i32) : i32 = + copy_to_canister(dst, offset, size, es.params.reject_msg) + +ic0.msg_reply_data_append(src : i32, size : i32) = + if es.response ≠ NoResponse then Trap + es.reply_params.arg := es.reply_params.arg · copy_from_canister(src, size) + +ic0.msg_reply() = + if es.response ≠ NoResponse then Trap + es.response := Reply (es.reply_params.arg) + es.cycles_available := 0 + +ic0.msg_reject(src : i32, size : i32) = + if es.response ≠ NoResponse then Trap + es.response := Reject (CANISTER_REJECT, copy_from_canister(src, size)) + es.cycles_available := 0 + +ic0.msg_cycles_available() : i64 = + return es.cycles_available + +ic0.msg_cycles_refunded() : i64 = + return es.params.cycles_refundend + +ic0.ingress_rate_bucket_size() = + return |es.params.ingress_rate_bucket| + +ic0.ingress_rate_bucket_copy(dst : i32, offset : i32, size : i32) = + copy_to_canister(dst, offset, size, es.params.ingress_rate_bucket) + +ic0.return_ingress_bucket(bucket_src : i32, bucket_size : i32, cost : i64) = + if es.bucket_cost ≠ NoBucket then Trap + if bucket_size > 64 then Trap + es.bucket_cost.bucket = copy_from_canister(bucket_src, bucket_size) + es.bucket_cost.cost = cost + +ic0.return_ingress_limit_per_second(limit : i64) = + if es.rate_limit ≠ NoLimit then Trap + es.rate_limit = limit + +ic0.msg_cycles_accept( max_amount : i64 ) : i64 = + let amount = min(max_amount, es.cycles_available, MAX_CANISTER_BALANCE - es.balance) + es.cycles_available := es.cycles_available - amount + es.cycles_accepted := es.cycles_accepted + amount + es.balance := es.balance + amount + return amount + +ic0.canister_self_size() : i32 = + return |es.wasm_state.self_id| + +ic0.canister_self_copy(dst:i32, offset:i32, size:i32) = + copy_to_canister(dst, offset, size, es.wasm_state.self_id) + +ic0.canister_cycle_balance() : i64 = + return es.balance + +ic0.canister_status() : i32 = + match es.params.sysenv.canister_status with + Running -> return 1 + Stopping -> return 2 + Stopped -> return 3 + +ic0.call_new( + callee_src : i32, + callee_size : i32, + name_src : i32, + name_size : i32, + reply_fun : i32, + reply_env : i32, + reject_fun : i32, + reject_env : i32, + ) = + discard_pending_call() + + callee := copy_from_canister(callee_src, callee_size); + method_name := copy_from_canister(name_src, name_size); + + if reply_fun > |es.wasm_state.store.table| then Trap + if typeof(es.wasm_state.store.table[reply_fun]) ≠ func (anyref, i32) -> () then Trap + + if reject_fun > |es.wasm_state.store.table| then Trap + if typeof(es.wasm_state.store.table[reject_fun]) ≠ func (anyref, i32) -> () then Trap + + es.pending_call = MethodCall { + callee = callee; + method_name = callee; + arg = ""; + transferred_cycles = 0; + callback = Callback { + on_reply = Closure { fun = reply_fun; env = reply_env } + on_reject = Closure { fun = reject_fun; env = reject_env } + on_cleanup = NoClosure + }; + bucket = None; + cost = 0; + rate_limit_time = None + } + +ic0.call_data_append (src : i32, size : i32) = + if es.pending_call = NoPendingCall then Trap + es.pending_call.arg := es.pending_call.arg · copy_from_canister(src, size) + +ic0.call_on_cleanup (fun : i32, env : i32) = + if fun > |es.wasm_state.store.table| then Trap + if typeof(es.wasm_state.store.table[fun]) ≠ func (anyref, i32) -> () then Trap + if es.pending_call = NoPendingCall then Trap + if es.pending_call.callback.on_cleanup ≠ NoClosure then Trap + es.pending_call.callback.on_cleanup := Closure { fun = fun; env = env} + +ic0.call_cycles_add(amount : i32) = + if es.pending_call = NoPendingCall then Trap + if amount > es.balance then Trap + + es.balance := es.balance - amount + es.pending_call.transferred_cycles := es.pending_call.transferred_cycles + amount + +ic0.call_peform() : ( err_code : i32 ) = + if es.pending_call = NoPendingCall then Trap + + if arbitrary() + then + discard_pending_call() + return 1 + or + es.calls := es.calls · es.pending_call + es.pending_call := NoPendingCall + return 0 + +// helper function +discard_pending_call() = + if es.pending_call ≠ NoPendingCall then + es.balance := min(es.balance + es.pending_call.transferred_cycles, MAX_CANISTER_BALANCE) + es.pending_call := NoPendingCall + +ic0.stable_size() : (page_count : i32) = + return |es.wasm_state.stable_mem| / 64k + +ic0.stable_grow(new_pages : i32) : (old_page_count : i32) = + if arbitrary() + then return -1 + else + old_size := |es.wasm_state.stable_mem| / 64k + es.wasm_state.stable_mem := + es.wasm_state.stable_mem · repeat(0x00, new_pages * 64k) + return old_size + +ic0.stable_write(offset : i32, src : i32, size : i32) + if src+size > |es.wasm_state.store.mem| then Trap + if offset+size > |es.wasm_state.stable_mem| then Trap + + es.wasm_state.stable_mem[offset..offset+size] := es.wasm_state.store.mem[src..src+size] + +ic0.stable_read(dst : i32, offset : i32, size : i32) + if offset+size > |es.wasm_state.stable_mem| then Trap + if dst+size > |es.wasm_state.store.mem| then Trap + + es.wasm_state.store.mem[offset..offset+size] := es.wasm_state.stable.mem[src..src+size] + +ic0.time() : i32 = + return es.params.time + +ic0.certified_data_set(src: i32, size: i32) = + es.new_certified_data := es.wasm_state[src..src+size] + +ic0.data_certificate_present() : i32 = + if es.params.sysenv.certificate = NoCertificate + then return 0 + else return 1 + +ic0.data_certificate_size() : i32 = + if es.params.sysenv.certificate = NoCertificate then Trap + return |es.params.sysenv.certificate| + +ic0.data_certificate_copy(dst: i32, offset: i32, size: i32) = + if es.params.sysenv.certificate = NoCertificate then Trap + copy_to_canister(dst, offset, size, es.params.sysenv.certificate) + + +ic0.debug_print(src : i32, size : i32) = + return + +ic0.trap(src : i32, size : i32) = + Trap +.... + + + +include::example$changelog.adoc[] diff --git a/ic-spec/pages/intro-canisters.adoc b/ic-spec/pages/intro-canisters.adoc new file mode 100644 index 000000000..098ee24fb --- /dev/null +++ b/ic-spec/pages/intro-canisters.adoc @@ -0,0 +1,27 @@ += Introduction to key interfaces + +If you want to use the Internet Computer as an application developer, you first write a program in a language that can be compiled into WebAssembly code. + +When you are ready to deploy your application on the {IC}, the Web Assembly code is incorporated into a computational unit called a _canister_. + +Interacting with a canister—as an application developer or as an end-user—typically involves interacting with the following underlying interfaces: + +* HTTP handler interface +* System application programming interface + +If you use existing tools like the DFINITY Canister SDK to work with canisters, the tools interact with these lower-level interfaces on your behalf and you don't need to know the details about how they work. +If you want to create your own tooling for working with canisters, however, you need to know a little about the canister format. how to use the link:index{outfilesuffix}#http-handler[HTTP interface] to interact with canisters, and the operations that the link:index{outfilesuffix}#system-api[system API] supports. + +The following diagram provides a simplified view of the work flow for an application running on the {IC}. + +image:simplified-canister-workflow.svg[] + +As this diagram suggests, requests to canisters deployed on the {IC} pass through a `+/submit+` endpoint to perform canister management operations. + +For details about specific interfaces and operations and how they work, see the following sections: + +* link:index{outfilesuffix}#http-interface[HTTP interfaces] +* link:index{outfilesuffix}#system-api[Canister interface (System API)] +* link:index{outfilesuffix}#ic-management-canister[IC management canister] + +For a more formal description and precise information about state-related operations for the Internet Computer as a whole, see the link:index{outfilesuffix}#abstract-behavior[Abstract behavior] section. diff --git a/modules/quickstart/assets/images/net-alert-prompt.png b/modules/quickstart/assets/images/net-alert-prompt.png deleted file mode 100644 index 703e48c2f41f8c4fd1f75df55b11eca3d38066a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72414 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 z%0D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 diff --git a/modules/quickstart/assets/images/net-front-end-prompt.png b/modules/quickstart/assets/images/net-front-end-prompt.png new file mode 100644 index 0000000000000000000000000000000000000000..4af66c49e85b24acb3ef995e4fed5084261b7263 GIT binary patch literal 83206 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