From 654d64496463b5216fc2ab4b87281bff292edc29 Mon Sep 17 00:00:00 2001 From: Jessie Mongeon Date: Fri, 26 Jan 2024 12:02:07 -0600 Subject: [PATCH] More navbar updates --- docs/developer-docs/index.md | 281 -------------- .../ledger/introduction_and_overview.md | 4 +- .../production/canister-history.md | 2 +- .../production/canister-recovery.md | 2 +- .../production/deploying-and-upgrading.md | 2 +- docs/developer-docs/production/storage.md | 2 +- docs/developer-docs/setup/build.md | 19 + docs/developer-docs/setup/delete.md | 33 ++ docs/developer-docs/setup/deploy.md | 21 + docs/developer-docs/setup/manage-canisters.md | 148 +------ .../setup/pulling-canister-dependencies.md | 2 +- docs/developer-docs/setup/state.md | 34 ++ docs/developer-docs/setup/upgrade.md | 27 ++ plugins/utils/redirects.js | 1 + sidebars.js | 365 +++++++++--------- submodules/interface-spec | 2 +- submodules/sdk | 2 +- 17 files changed, 332 insertions(+), 615 deletions(-) create mode 100644 docs/developer-docs/setup/build.md create mode 100644 docs/developer-docs/setup/delete.md create mode 100644 docs/developer-docs/setup/deploy.md create mode 100644 docs/developer-docs/setup/state.md create mode 100644 docs/developer-docs/setup/upgrade.md diff --git a/docs/developer-docs/index.md b/docs/developer-docs/index.md index 50e8113058..1c60970604 100644 --- a/docs/developer-docs/index.md +++ b/docs/developer-docs/index.md @@ -13,284 +13,3 @@ As a dapp developer, you might find it useful to think of the Internet Computer - A secure cryptographic protocol (**[Internet Computer protocol](/how-it-works/core-ic-protocol-overview)**) run by nodes machines operated by independent node providers in independent data centers all over the world. This guarantees the secure execution of smart contracts. - A **network of independent blockchains**, known as [subnets](/docs/current/concepts/nodes-subnets), connected using [chain-key cryptography](/how-it-works) that can [scale out](/how-it-works/scalability) its capacity as required. - -#### Getting started -- [What is the Internet Computer?](/docs/current/concepts/what-is-ic) -- [Installing the IC SDK](/docs/current/developer-docs/setup/install/) -- [Creating a developer account](/docs/current/developer-docs/setup/accounts) -- Acquiring and managing cycles - - [Getting started with free cycles](/docs/current/developer-docs/setup/cycles/cycles-faucet) - - [Using a cycles wallet](/docs/current/developer-docs/setup/cycles/cycles-wallet) - - [Converting ICP tokens into cycles](/docs/current/developer-docs/setup/cycles/converting_icp_tokens_into_cycles) -- [Creating your first canister](/docs/current/developer-docs/setup/first-canister) -- [Local deployment](/docs/current/developer-docs/setup/deploy-locally) -- [Mainnet deployment](/docs/current/developer-docs/setup/deploy-mainnet) -- [Sharing links to canisters](/docs/current/developer-docs/production/social-sharing) - -#### Quickstart guides -- [Quickstart for React developers](/docs/current/developer-docs/setup/react-quickstart) - -#### Core concepts -- [Canisters and code](/docs/current/concepts/canisters-code) -- [Paying for resources in cycles](/docs/current/developer-docs/gas-cost) -- [Cycles cost estimations and examples](/docs/current/developer-docs/cost-estimations-and-examples) -- [Neurons and governance](/docs/current/concepts/governance) -- [Nodes and subnet blockchains](/docs/current/concepts/nodes-subnets) -- [Subnet types](/docs/current/developer-docs/backend/subnet-types) -- [ICP tokens](/docs/current/concepts/tokens-cycles) -- [Trust in canisters](/docs/current/concepts/trust-in-canisters) -- [Resource limits](/docs/current/developer-docs/production/resource-limits) -- [Glossary](/docs/current/references/glossary) -#### Using canisters -- Calling canisters - - Agents - - [Using external agents](/docs/current/developer-docs/agents/) - - [JavaScript agent](/docs/current/developer-docs/agents/javascript-intro) - - [NodeJS](/docs/current/developer-docs/agents/nodejs) - - [Rust agent](/docs/current/developer-docs/agents/ic-agent-dfinity) - - Candid - - [What is Candid?](/docs/current/developer-docs/backend/candid/candid-concepts) - - [Using Candid](/docs/current/developer-docs/backend/candid/candid-howto) - - [Generating Candid files for Rust canisters](/docs/current/developer-docs/backend/candid/generating-candid) -- [Deploying and upgrading canisters](/docs/current/developer-docs/production/deploying-and-upgrading) -- [Managing canisters](/docs/current/developer-docs/setup/manage-canisters) -- [Topping up canisters](/docs/current/developer-docs/production/topping-up-canister) - - [Using a cycles management service](/docs/current/developer-docs/setup/cycles/cycles_management_services) -- [Canister history](/docs/current/developer-docs/production/canister-history) -- [Canister recovery](/docs/current/developer-docs/production/canister-recovery) -- [Canister storage](/docs/current/developer-docs/production/storage) -- [Pulling canister dependencies](/docs/current/developer-docs/setup/pulling-canister-dependencies) - - -#### Developer tools -- [Internet Computer SDK](/docs/current/references/cli-reference/) -- [Motoko playground](/docs/current/developer-docs/setup/playground) -- [Managing projects](/docs/current/developer-docs/setup/manage-projects) -- [Using Visual Studio Code](/docs/current/developer-docs/setup/vs-code) - -#### Features -- Bitcoin integration - - [Overview](/docs/current/developer-docs/integrations/bitcoin/) - - [Chain-key Bitcoin (ckBTC)](/docs/current/developer-docs/integrations/bitcoin/ckbtc) - - [Developing Bitcoin dapps locally](/docs/current/developer-docs/integrations/bitcoin/local-development) -- [Composite queries](/docs/current/developer-docs/integrations/composite-query/) -- HTTPS outcalls - - [Overview](/docs/current/developer-docs/integrations/https-outcalls/https-outcalls-how-to-use) - - [HTTP outcalls: GET](/docs/current/developer-docs/integrations/https-outcalls/https-outcalls-get) - - [HTTP outcalls: POST](/docs/current/developer-docs/integrations/https-outcalls/https-outcalls-post) -- [Periodic tasks and timers](/docs/current/developer-docs/backend/periodic-tasks) -- Encryption and signatures - - [Verifying signatures](/docs/current/developer-docs/integrations/independently-verifying-ic-signatures) - - [Threshold ECDSA](/docs/current/developer-docs/integrations/t-ecdsa/) - - vetKeys - - [vetKeys API demo](/docs/current/developer-docs/integrations/vetkeys/using-vetkeys) - -#### Web apps -- Application frontends - - [Frontend canisters](/docs/current/developer-docs/frontend/) - - [Customizing a frontend](/docs/current/developer-docs/frontend/custom-frontend) - - [Adding a stylesheet](/docs/current/developer-docs/frontend/add-stylesheet) - - [Using a frontend boilerplate](/docs/current/developer-docs/frontend/boilerplate-frontend) - - [Deploy an existing frontend](/docs/current/developer-docs/frontend/existing-frontend) -- [Choosing a programming language](/docs/current/developer-docs/backend/choosing-language) -- Custom domains - - [Using custom domains](/docs/current/developer-docs/production/custom-domain/) - - [DNS configuration guide](/docs/current/developer-docs/production/custom-domain/dns-setup) -- [Dapp design considerations](/docs/current/developer-docs/backend/design-dapps) -- [Large web assembly modules](/docs/current/developer-docs/production/larger-wasm) -- Sample apps - - [Sample projects](/docs/current/samples/overview) - - [Host a website](/docs/current/samples/host-a-website) - - [Host a webgame](/docs/current/samples/host-a-webgame) - -#### DeFi -- [Introduction and overview](/docs/current/developer-docs/integrations/ledger/introduction_and_overview) -- ICP tokens - - [ICP ledger](/docs/current/developer-docs/integrations/ledger/) - - [Account trimming](/docs/current/developer-docs/integrations/ledger/collecting-dust) - - [ICP ledger local setup](/docs/current/developer-docs/integrations/ledger/ledger-local-setup) - - [Interacting with the ICP ledger](/docs/current/developer-docs/integrations/ledger/interact-with-ledger) - - [ICP index local setup](/docs/current/developer-docs/integrations/ledger/icp-index-local-setup) -- ICRC-1 tokens - - [ICRC-1 token standard](/docs/current/developer-docs/integrations/icrc-1/) - - [ICRC-1 ledger setup](/docs/current/developer-docs/integrations/icrc-1/icrc1-ledger-setup) - - [Interacting with a ICRC-1 ledger](/docs/current/developer-docs/integrations/icrc-1/interact-with-ICRC-1-ledger) - - [ICRC-1 index local setup](/docs/current/developer-docs/integrations/icrc-1/icrc1-index-setup) -- [Exchange rate canister](/docs/current/developer-docs/integrations/exchange-rate/exchange-rate-canister) -- [Rosetta API](/docs/current/developer-docs/integrations/rosetta/) - - [Hotkeys generation](/docs/current/developer-docs/integrations/rosetta/hotkeys) - - [Neuron lifecycle](/docs/current/developer-docs/integrations/rosetta/neuron-lifecycle) - - [Staking and neuron management](/docs/current/developer-docs/integrations/rosetta/staking-support) - - [Rosetta staking](/docs/current/developer-docs/integrations/rosetta/staking-tutorial) - - [Regular token transfers](/docs/current/developer-docs/integrations/rosetta/transfers) -- Asset custody - - [Self-custody for digital assets](/docs/current/tokenomics/token-holders/custody-options-intro) - - [Self-custody guide](/docs/current/tokenomics/token-holders/self-custody-quickstart) - -#### Bootcamps - -##### Developer journey - -- Level 0: Pre-flight operations - - [0.1 Overview of the Internet Computer](/docs/current/tutorials/developer-journey/level-0/ic-overview) - - [0.2 Internet Computer terminology](/docs/current/tutorials/developer-journey/level-0/ic-terms) - - [0.3 Developer environment setup](/docs/current/tutorials/developer-journey/level-0/dev-env) - - [0.4 Introduction to canisters](/docs/current/tutorials/developer-journey/level-0/intro-canisters) - - [0.5 Introduction to languages](/docs/current/tutorials/developer-journey/level-0/intro-languages) - - [0.6 Introduction to dfx](/docs/current/tutorials/developer-journey/level-0/intro-dfx) - -- Level 1: Space cadet - - [1.1 Exploring a live demo](/docs/current/tutorials/developer-journey/level-1/1.1-live-demo) - - [1.2 Motoko level 1](/docs/current/tutorials/developer-journey/level-1/1.2-motoko-lvl1) - - [1.3 Developing your first dapp](/docs/current/tutorials/developer-journey/level-1/1.3-first-dapp) - - [1.4 Acquiring and using cycles](/docs/current/tutorials/developer-journey/level-1/1.4-using-cycles) - - [1.5 Deploying canisters](/docs/current/tutorials/developer-journey/level-1/1.5-deploying-canisters) - - [1.6 Managing canisters](/docs/current/tutorials/developer-journey/level-1/1.6-managing-canisters) - - -- Level 2: Space explorer - - [2.1 Canister upgrades, storage, and persistence](/docs/current/tutorials/developer-journey/level-2/2.1-storage-persistence) - - [2.2 Advanced canister calls](/docs/current/tutorials/developer-journey/level-2/2.2-advanced-canister-calls) - - [2.3 Using third-party canisters](/docs/current/tutorials/developer-journey/level-2/2.3-third-party-canisters) - - [2.4 Introduction to Candid](/docs/current/tutorials/developer-journey/level-2/2.4-intro-candid) - - [2.5 Unit, integration, and end2end testing](/docs/current/tutorials/developer-journey/level-2/2.5-unit-testing) - - [2.6 Motoko level 2](/docs/current/tutorials/developer-journey/level-2/2.6-motoko-lvl2) - -- Level 3: Space engineer - - [3.1 Motoko package managers](/docs/current/tutorials/developer-journey/level-3/3.1-package-managers) - - [3.2 Using HTTPS outcalls](/docs/current/tutorials/developer-journey/level-3/3.2-https-outcalls) - - [3.3 Certified data](/docs/current/tutorials/developer-journey/level-3/3.3-certified-data) - - [3.4 Introduction to agents](/docs/current/tutorials/developer-journey/level-3/3.4-intro-to-agents) - - [3.5 Identities and authentication](/docs/current/tutorials/developer-journey/level-3/3.5-identities-and-auth) - - [3.6 Motoko level 3](/docs/current/tutorials/developer-journey/level-3/3.6-motoko-lvl3) - -- Level 4: Space pilot - - [4.1 Using the ICP ledger](/docs/current/tutorials/developer-journey/level-4/4.1-icp-ledger) - - [4.2 ICRC-1 tokens](/docs/current/tutorials/developer-journey/level-4/4.2-icrc-tokens) - - [4.3 ckBTC and Bitcoin integration](/docs/current/tutorials/developer-journey/level-4/4.3-ckbtc-and-bitcoin) - - [4.4 NNS governance and staking](/docs/current/tutorials/developer-journey/level-4/4.4-nns-governance) - - [4.5 Using quill](/docs/current/tutorials/developer-journey/level-4/4.5-using-quill) - - [4.6 Motoko level 4](/docs/current/tutorials/developer-journey/level-4/4.6-motoko-lvl4) - -- Level 5: Internet Computer astronaut - - [5.1 Developing an encrypted notes dapp with vetKeys](/docs/current/tutorials/developer-journey/level-5/5.1-vetKeys-tutorial) - - [5.2 Developing a dapp using the ICP Ethereum integration](/docs/current/tutorials/developer-journey/level-5/5.2-ICP-ETH-tutorial) - - [5.3 Creating a decentralized token swap](/docs/current/tutorials/developer-journey/level-5/5.3-token-swap-tutorial) - - [5.4 Creating NFTs on ICP](/docs/current/tutorials/developer-journey/level-5/5.4-NFT-tutorial) - - [5.5 Creating an auction dapp](/docs/current/tutorials/developer-journey/level-5/5.5-auction-tutorial) - - [5.6 Next steps](/docs/current/tutorials/developer-journey/level-5/5.6-next-steps) - -##### Hackathon prep course -- [1: What is the Internet Computer?](/docs/current/tutorials//hackathon-prep-course/what-is-icp) -- [2: Deploying your first fullstack dapp](/docs/current/tutorials//hackathon-prep-course/deploying-first-fullstack-dapp) -- [3: Exploring the backend](/docs/current/tutorials//hackathon-prep-course/exploring-the-backend) -- [4: Exploring the frontend](/docs/current/tutorials//hackathon-prep-course/exploring-the-frontend) -- [5: Integrating with tokens](/docs/current/tutorials//hackathon-prep-course/integrating-with-tokens) -- [6: Authentication](/docs/current/tutorials//hackathon-prep-course/authentication) -- [7: Obtaining cycles](/docs/current/tutorials//hackathon-prep-course/obtaining-cycles) -- [8: Managing canisters](/docs/current/tutorials//hackathon-prep-course/managing-canisters) -- [9: Sample starter projects](/docs/current/tutorials//hackathon-prep-course/sample-starter-projects) -- [10: Resources to learn more](/docs/current/tutorials//hackathon-prep-course/resources) - -#### Security best practices - -- [General](/docs/current/developer-docs/security/general-security-best-practices) -- [Canister development](/docs/current/developer-docs/security/rust-canister-development-security-best-practices) -- [Web app development](/docs/current/developer-docs/security/web-app-development-security-best-practices) - -#### Testing and troubleshooting - -- [Testing canisters with PocketIC](/docs/current/developer-docs/setup/pocket-ic) -- [Staging environment](/docs/current/developer-docs/production/staging-environment) -- [Creating reproducible canister builds](/docs/current/developer-docs/backend/reproducible-builds) -- [Troubleshooting resources](/docs/current/developer-docs/backend/troubleshooting) - -#### Internet Identity (II) - -- [Overview](/docs/current/developer-docs/integrations/internet-identity/overview) -- [Alternative frontend origins](/docs/current/developer-docs/integrations/internet-identity/alternative-origins) -- [Internet Identity integration](/docs/current/developer-docs/integrations/internet-identity/integrate-identity) - -#### Network Nervous System (NNS) - -- [NNS intro](/docs/current/tokenomics/nns/nns-intro) -- [NNS quickstart](/docs/current/tokenomics/token-holders/nns-app-quickstart) -- [Neurons' fund (NF)](/docs/current/tokenomics/nns/neurons-fund) -- [Staking and voting rewards](/docs/current/tokenomics/nns/nns-staking-voting-rewards) - -#### Service Nervous System (SNS) - -- Introduction to the SNS - - [SNS introduction](/docs/current/developer-docs/integrations/sns/introduction/sns-intro-high-level) - - [SNS architecture](/docs/current/developer-docs/integrations/sns/introduction/sns-architecture) - - [SNS launch](/docs/current/developer-docs/integrations/sns/introduction/sns-launch) - - [Alternatives how to get and maintain a DAO](/docs/current/developer-docs/integrations/sns/introduction/dao-alternatives) - -- Preparing an SNS launch - - [SNS preparation checklist](/docs/current/developer-docs/integrations/sns/tokenomics/sns-checklist) - - [SNS predeployment considerations](/docs/current/developer-docs/integrations/sns/tokenomics/predeployment-considerations) - - [SNS tokenomics](/docs/current/developer-docs/integrations/sns/tokenomics/tokenomics-intro) - - [SNS rewards](/docs/current/developer-docs/integrations/sns/tokenomics/rewards) - - [SNS initial parameters](/docs/current/developer-docs/integrations/sns/tokenomics/preparation) - -- Integrating with an SNS - - [SNS ledger canister](/docs/current/developer-docs/integrations/sns/integrating/ledger-integration) - - [SNS index canister](/docs/current/developer-docs/integrations/sns/integrating/index-integration) - - [SNS frontend integration](/docs/current/developer-docs/integrations/sns/integrating/frontend-integration) - -- Testing an SNS - - [Testing SNS locally](/docs/current/developer-docs/integrations/sns/testing/testing-locally) - - [Testing on mainnet (SNS testflight)](/docs/current/developer-docs/integrations/sns/testing/testing-on-mainnet) - -- Launching an SNS - - [Stages of an SNS launch](/docs/current/developer-docs/integrations/sns/launching/launch-summary-1proposal) - - [Commands & actions to go through SNS launch](/docs/current/developer-docs/integrations/sns/launching/launch-steps-1proposal) - -- Managing an SNS - - [SNS proposals](/docs/current/developer-docs/integrations/sns/managing/making-proposals) - - [SNS cycle management](/docs/current/developer-docs/integrations/sns/managing/cycles-usage) - - [SNS asset canisters](/docs/current/developer-docs/integrations/sns/managing/sns-asset-canister) - - [Managing nervous system parameters](/docs/current/developer-docs/integrations/sns/managing/managing-nervous-system-parameters) - -#### Motoko - -- [Building with Motoko](/docs/current/developer-docs/backend/motoko/) - - [1: Motoko fundamentals](/docs/current/developer-docs/backend/motoko/infrastructure) - - [2: Project organization](/docs/current/developer-docs/backend/motoko/explore-templates) - - [3: Developer environment](/docs/current/developer-docs/backend/motoko/dev-env) - - [4: Motoko quickstart](/docs/current/developer-docs/backend/motoko/at-a-glance) - - [5: Writing and deploying canisters](/docs/current/developer-docs/backend/motoko/deploying) - - [6: Upgrading canisters](/docs/current/developer-docs/backend/motoko/upgrading) - - [7: Making inter-canister calls](/docs/current/developer-docs/backend/motoko/intercanister-calls) - - [8: Optimizing canisters](/docs/current/developer-docs/backend/motoko/optimizing) - - [9: Importing library modules](/docs/current/developer-docs/backend/motoko/phonebook) - - [10: Using integers in calculator functions](/docs/current/developer-docs/backend/motoko/calculator) - - [11: Incrementing a natural number](/docs/current/developer-docs/backend/motoko/counter-tutorial) - - [12: Passing text arguments](/docs/current/developer-docs/backend/motoko/hello-location) - - [13: Accepting cycles from a wallet](/docs/current/developer-docs/backend/motoko/simple-cycles) - - [14: Querying using an actor](/docs/current/developer-docs/backend/motoko/define-an-actor) - - [15: Using multiple actors](/docs/current/developer-docs/backend/motoko/multiple-actors) - - [16: Add access control with identities](/docs/current/developer-docs/backend/motoko/access-control) - - [17: Using the Candid UI to test functions in a browser](/docs/current/developer-docs/backend/motoko/candid-ui) - - [18: Scalable dapp example](/docs/current/developer-docs/backend/motoko/scalability-cancan) - - [Motoko sample code and applications](/docs/current/developer-docs/backend/motoko/sample-apps) - - [Generating Motoko documentation](/docs/current/developer-docs/backend/motoko/mo-doc) - -#### Rust - -- [Building with Rust](/docs/current/developer-docs/backend/rust/) - - [1: Rust backend canister infrastructure](/docs/current/developer-docs/backend/rust/infrastructure) - - [2: Project organization](/docs/current/developer-docs/backend/rust/project-organization) - - [3: Developer environment](/docs/current/developer-docs/backend/rust/dev-env) - - [4: Rust quickstart](/docs/current/developer-docs/backend/rust/quickstart) - - [5: Writing and deploying canisters](/docs/current/developer-docs/backend/rust/deploying) - - [6: Inter-canister calls](/docs/current/developer-docs/backend/rust/intercanister) - - [7: Upgrading a canister](/docs/current/developer-docs/backend/rust/upgrading) - - [8: Optimizing Rust canisters](/docs/current/developer-docs/backend/rust/optimizing) - - [9: Incrementing a counter](/docs/current/developer-docs/backend/rust/counter) - - [10: Using periodic timers](/docs/current/developer-docs/backend/rust/timers) - - [11: Stable structures](/docs/current/developer-docs/backend/rust/stable-structures) - - [12: Adding and searching simple records](/docs/current/developer-docs/backend/rust/searching-records) - - [13: Access control](/docs/current/developer-docs/backend/rust/access-control) - - [14: Using the Candid UI with a Rust canister](/docs/current/developer-docs/backend/rust/candid) - - [Rust sample code and applications](/docs/current/developer-docs/backend/rust/samples) diff --git a/docs/developer-docs/integrations/ledger/introduction_and_overview.md b/docs/developer-docs/integrations/ledger/introduction_and_overview.md index fd2fda6095..b363e2d3fd 100644 --- a/docs/developer-docs/integrations/ledger/introduction_and_overview.md +++ b/docs/developer-docs/integrations/ledger/introduction_and_overview.md @@ -1,6 +1,4 @@ -# Introduction and overview - -## Overview +# Overview Ledgers are used to record transactions in a chain of blocks. One block references its parent block forming a blockchain that is immutable without changing all previous blocks in the chain. The Internet Computer Protocol utilizes two different types of ledgers. The first ledger is the ICP ledger. It is part of the [NNS](/tokenomics/nns/nns-intro.md) and the canister that implements the ICP ledger is running on the NNS subnet. The second type of ledger are the ICRC-1 ledgers. In this overview, both ledger types diff --git a/docs/developer-docs/production/canister-history.md b/docs/developer-docs/production/canister-history.md index 4b8152ac44..3d69aa8b86 100644 --- a/docs/developer-docs/production/canister-history.md +++ b/docs/developer-docs/production/canister-history.md @@ -1,4 +1,4 @@ -# Canister history +# History ## Overview diff --git a/docs/developer-docs/production/canister-recovery.md b/docs/developer-docs/production/canister-recovery.md index 155f92beca..9393675dc2 100644 --- a/docs/developer-docs/production/canister-recovery.md +++ b/docs/developer-docs/production/canister-recovery.md @@ -1,4 +1,4 @@ -# Canister recovery +# Recovery ## Overview diff --git a/docs/developer-docs/production/deploying-and-upgrading.md b/docs/developer-docs/production/deploying-and-upgrading.md index 6907d19d93..1349b42c91 100644 --- a/docs/developer-docs/production/deploying-and-upgrading.md +++ b/docs/developer-docs/production/deploying-and-upgrading.md @@ -1,4 +1,4 @@ -# Deploying and upgrading canisters +# Development lifecycle ## Overview diff --git a/docs/developer-docs/production/storage.md b/docs/developer-docs/production/storage.md index 5d07d279a2..5c5ed28b4e 100644 --- a/docs/developer-docs/production/storage.md +++ b/docs/developer-docs/production/storage.md @@ -1,4 +1,4 @@ -# Canister storage +# Storage ## Overview diff --git a/docs/developer-docs/setup/build.md b/docs/developer-docs/setup/build.md new file mode 100644 index 0000000000..609cd185fa --- /dev/null +++ b/docs/developer-docs/setup/build.md @@ -0,0 +1,19 @@ +# Build + +After you have written source code for your project, you need to compile it into a WebAssembly module before deploying it as a canister. + +If you are only compiling your project for local debugging, you can generate a locally-defined identifier for your project. + +To generate a locally-defined identifier: + +- #### Step 1: Create a project with the configuration settings and program logic to suit your needs. + +- #### Step 2: Start the local canister execution environment, if necessary. + + If you were compiling canisters to run on a remote execution environment, e.g. ICP blockchain, you would include the `--network` command-line option to perform tasks on the environment specified under this parameter. + +- #### Step 3: Generate hard-coded local identifiers for the canisters defined in the `dfx.json` by running the following command: + + dfx build --check + + Note that you must register unique canister identifiers to replace your locally-defined identifier before you can deploy the project on ICP blockchain. \ No newline at end of file diff --git a/docs/developer-docs/setup/delete.md b/docs/developer-docs/setup/delete.md new file mode 100644 index 0000000000..025f204231 --- /dev/null +++ b/docs/developer-docs/setup/delete.md @@ -0,0 +1,33 @@ +# Delete + +If you want to permanently delete a specific canister or all canisters for a specific project on a given deployment (either local, or remote), you can do so by running the command: + +``` +dfx canister delete +``` + +Deleting a canister removes the canister identifier, code, and state. Before you can delete a canister, however, you must first stop the canister to clear any pending message requests or replies. + +## Delete all canisters + +To delete all canisters for a project: + +- #### Step 1: Open a new terminal and navigate to your project directory. + +- #### Step 2: Start the local canister execution environment, if necessary. + + In most cases, this step is only necessary if you are running the canisters locally. + + If you were deleting canisters to run on a remote execution environment, e.g. ICP blockchain, you would include the `--network` command-line option to perform tasks on the environment specified under this parameter. + +- #### Step 3: Check the status of the project canisters running on the local canister execution environment by running the following command: + + dfx canister status --all + +- #### Step 4: Stop all of the project canisters by running the following command: + + dfx canister stop --all + +- #### Step 5: Delete all of the project canisters by running the following command: + + dfx canister delete --all \ No newline at end of file diff --git a/docs/developer-docs/setup/deploy.md b/docs/developer-docs/setup/deploy.md new file mode 100644 index 0000000000..62b9bc4f93 --- /dev/null +++ b/docs/developer-docs/setup/deploy.md @@ -0,0 +1,21 @@ +# Deploy + +After you have compiled a program, you can install the compiled code in a canister running either on a local canister execution environment or on ICP blockchain. + +The canister identifier that was created in advance or during the build process determines where your code is installed during deployment. + +To deploy the code for the first time: + +- #### Step 1: Open a new terminal and navigate to your project directory. + +- #### Step 2: Start the local canister execution environment, if necessary. + + In most cases, this step is only necessary if you are running the canisters locally. + + If you were registering canisters to run on a remote execution environment, e.g. ICP blockchain, you would include the `--network` command-line option to perform tasks on the environment specified under this parameter. + +- #### Step 3: Verify you have canister identifiers for all of the canisters you want to deploy. + +- #### Step 4: Deploy all of the canisters by running the following command: + + dfx canister install --all diff --git a/docs/developer-docs/setup/manage-canisters.md b/docs/developer-docs/setup/manage-canisters.md index a92e9aff0b..f141647e16 100644 --- a/docs/developer-docs/setup/manage-canisters.md +++ b/docs/developer-docs/setup/manage-canisters.md @@ -1,4 +1,4 @@ -# Interacting with canisters +# Settings ## Overview @@ -40,48 +40,6 @@ To obtain a unique identifier for a canister: The command creates the `.dfx/local` directory and adds the `canister_ids.json` file to that directory for the project. -## Build a canister with a local identifier - -After you have written source code for your project, you need to compile it into a WebAssembly module before deploying it as a canister. - -If you are only compiling your project for local debugging, you can generate a locally-defined identifier for your project. - -To generate a locally-defined identifier: - -- #### Step 1: Create a project with the configuration settings and program logic to suit your needs. - -- #### Step 2: Start the local canister execution environment, if necessary. - - If you were compiling canisters to run on a remote execution environment, e.g. ICP blockchain, you would include the `--network` command-line option to perform tasks on the environment specified under this parameter. - -- #### Step 3: Generate hard-coded local identifiers for the canisters defined in the `dfx.json` by running the following command: - - dfx build --check - - Note that you must register unique canister identifiers to replace your locally-defined identifier before you can deploy the project on ICP blockchain. - -## Deploy canisters - -After you have compiled a program, you can install the compiled code in a canister running either on a local canister execution environment or on ICP blockchain. - -The canister identifier that was created in advance or during the build process determines where your code is installed during deployment. - -To deploy the code for the first time: - -- #### Step 1: Open a new terminal and navigate to your project directory. - -- #### Step 2: Start the local canister execution environment, if necessary. - - In most cases, this step is only necessary if you are running the canisters locally. - - If you were registering canisters to run on a remote execution environment, e.g. ICP blockchain, you would include the `--network` command-line option to perform tasks on the environment specified under this parameter. - -- #### Step 3: Verify you have canister identifiers for all of the canisters you want to deploy. - -- #### Step 4: Deploy all of the canisters by running the following command: - - dfx canister install --all - ## Look up a canister ID All canisters have unique identifiers. You often need to use these identifiers to interact with the canister. For example, if you want to access the frontend canister for a dapp or interact with a service using the Candid web interface, you must specify the appropriate canister identifier. @@ -178,107 +136,3 @@ To set an identity for a project: dfx canister call project_backend greet '("Sam")' -## Managing the running state of a canister - -After you deploy a canister, it can begin receiving and processing requests from users and from other canisters. Canisters that are available to send requests and receive replies are considered in be in a **Running** state. - -Although canisters are normally placed in the Running state by default, there are cases where you might want to temporarily or permanently stop a canister. For example, you might want to stop a canister before upgrading it. Stopping a canister helps to ensure proper handling of any messages that are in progress and need to either run to completion or be rolled back. You might also want to stop a canister to clear its message queue cleanly as a prerequisite to deleting the canister. - -You can check the current status of all canisters or a specified canister by running the `dfx canister status` command. For example, to see the status for all canisters running on the local canister execution environment, you would run the following command: - - dfx canister status --all - -This command returns output similar to the following if canisters are currently running: - - Canister status_check's status is Running. - Canister status_check_assets's status is Running. - -You can stop canisters that are currently running by running the `dfx canister stop` command. - - dfx canister stop --all - -This command displays output similar to the following: - - Stopping code for canister status_check, with canister_id 75hes-oqbaa-aaaaa-aaaaa-aaaaa-aaaaa-aaaaa-q - Stopping code for canister status_check_assets, with canister_id cxeji-wacaa-aaaaa-aaaaa-aaaaa-aaaaa-aaaaa-q - -If you were to rerun the `dfx canister status` command, you might see a status of `Stopped` indicating that there were no pending messages that needed to processed or a status of `Stopping` indicating that there were messages in-flight that needed to be addressed. - -To restart a canister-for example, after a successful canister upgrade—you can run the `dfx canister start` command. For example, to restart all of the canisters, you would run the following command: - - dfx canister start --all - -This command displays output similar to the following: - - Starting code for canister status_check, with canister_id 75hes-oqbaa-aaaaa-aaaaa-aaaaa-aaaaa-aaaaa-q - Starting code for canister status_check_assets, with canister_id cxeji-wacaa-aaaaa-aaaaa-aaaaa-aaaaa-aaaaa-q - -## Upgrade a canister - -Unlike a canister reinstall that preserves the canister identifier but no state, a canister upgrade enables you to preserve the state of a deployed canister, and change the code. - -For example, assume you have a dapp that manages professional profiles and social connections. If you want to add a new feature to the dapp, you need to be able to update the canister code without losing any of the previously-stored data. A canister upgrade enables you to update existing canister identifiers with program changes without losing the program state. - -To preserve state when you are upgrading a canister written in Motoko, be sure to use the `stable` keyword to identify the variables you want to preserve. For more information about preserving variable state in Motoko, see [stable variables and upgrade methods](/motoko/main/upgrades.md). If you are upgrading a canister written in Rust, you should use `pre_upgrade` and `post_upgrade` functions as illustrated in the [Rust CDK asset storage](https://github.com/dfinity/cdk-rs/blob/master/examples/asset_storage/src/asset_storage_rs/lib.rs) example to ensure data is properly preserved after a canister upgrade. - -To upgrade a canister: - -- #### Step 1: Open a new terminal and navigate to your project directory. - -- #### Step 2: Start the local canister execution environment, if necessary. - - In most cases, this step is only necessary if you are running the canisters locally. - - If you were registering canisters to run on a remote execution environment, e.g. ICP blockchain, you would include the `--network` command-line option to perform tasks on the environment specified under this parameter. - -- #### Step 3: Verify you have canister identifiers for all of the canisters you want to upgrade. - - Note that your program must identify the variables for which to maintain state by using the `stable` keyword in the variable declaration. - - For more information about declaring stable variables, see the [**Motoko documentation**](../../motoko/main/stablememory.md). - -- #### Step 4: Upgrade all of the canisters by running the following command: - - dfx canister install --all --mode upgrade - -## Delete a canister - -If you want to permanently delete a specific canister or all canisters for a specific project on a given deployment (either local, or remote), you can do so by running the command: - -``` -dfx canister delete -``` - -Deleting a canister removes the canister identifier, code, and state. Before you can delete a canister, however, you must first stop the canister to clear any pending message requests or replies. - -## Delete all canisters - -To delete all canisters for a project: - -- #### Step 1: Open a new terminal and navigate to your project directory. - -- #### Step 2: Start the local canister execution environment, if necessary. - - In most cases, this step is only necessary if you are running the canisters locally. - - If you were deleting canisters to run on a remote execution environment, e.g. ICP blockchain, you would include the `--network` command-line option to perform tasks on the environment specified under this parameter. - -- #### Step 3: Check the status of the project canisters running on the local canister execution environment by running the following command: - - dfx canister status --all - -- #### Step 4: Stop all of the project canisters by running the following command: - - dfx canister stop --all - -- #### Step 5: Delete all of the project canisters by running the following command: - - dfx canister delete --all - -## Resources - -- [Building on ICP](../../samples/overview.md) to explore sample dapps. - -- [Concepts](../../concepts/what-is-ic.md) to learn about different ICP concepts. - -- [ICP glossary](../../references/glossary.md) to learn the definitions of various terms used within ICP. diff --git a/docs/developer-docs/setup/pulling-canister-dependencies.md b/docs/developer-docs/setup/pulling-canister-dependencies.md index 1091ea0762..4125e1f807 100644 --- a/docs/developer-docs/setup/pulling-canister-dependencies.md +++ b/docs/developer-docs/setup/pulling-canister-dependencies.md @@ -1,4 +1,4 @@ -# Import a canister +# Import ## Overview diff --git a/docs/developer-docs/setup/state.md b/docs/developer-docs/setup/state.md new file mode 100644 index 0000000000..a1bbab18ea --- /dev/null +++ b/docs/developer-docs/setup/state.md @@ -0,0 +1,34 @@ +# State + +After you deploy a canister, it can begin receiving and processing requests from users and from other canisters. Canisters that are available to send requests and receive replies are considered in be in a **Running** state. + +Although canisters are normally placed in the Running state by default, there are cases where you might want to temporarily or permanently stop a canister. For example, you might want to stop a canister before upgrading it. Stopping a canister helps to ensure proper handling of any messages that are in progress and need to either run to completion or be rolled back. You might also want to stop a canister to clear its message queue cleanly as a prerequisite to deleting the canister. + +You can check the current status of all canisters or a specified canister by running the `dfx canister status` command. For example, to see the status for all canisters running on the local canister execution environment, you would run the following command: + + dfx canister status --all + +This command returns output similar to the following if canisters are currently running: + + Canister status_check's status is Running. + Canister status_check_assets's status is Running. + +You can stop canisters that are currently running by running the `dfx canister stop` command. + + dfx canister stop --all + +This command displays output similar to the following: + + Stopping code for canister status_check, with canister_id 75hes-oqbaa-aaaaa-aaaaa-aaaaa-aaaaa-aaaaa-q + Stopping code for canister status_check_assets, with canister_id cxeji-wacaa-aaaaa-aaaaa-aaaaa-aaaaa-aaaaa-q + +If you were to rerun the `dfx canister status` command, you might see a status of `Stopped` indicating that there were no pending messages that needed to processed or a status of `Stopping` indicating that there were messages in-flight that needed to be addressed. + +To restart a canister-for example, after a successful canister upgrade—you can run the `dfx canister start` command. For example, to restart all of the canisters, you would run the following command: + + dfx canister start --all + +This command displays output similar to the following: + + Starting code for canister status_check, with canister_id 75hes-oqbaa-aaaaa-aaaaa-aaaaa-aaaaa-aaaaa-q + Starting code for canister status_check_assets, with canister_id cxeji-wacaa-aaaaa-aaaaa-aaaaa-aaaaa-aaaaa-q diff --git a/docs/developer-docs/setup/upgrade.md b/docs/developer-docs/setup/upgrade.md new file mode 100644 index 0000000000..9274590787 --- /dev/null +++ b/docs/developer-docs/setup/upgrade.md @@ -0,0 +1,27 @@ +# Upgrade + +Unlike a canister reinstall that preserves the canister identifier but no state, a canister upgrade enables you to preserve the state of a deployed canister, and change the code. + +For example, assume you have a dapp that manages professional profiles and social connections. If you want to add a new feature to the dapp, you need to be able to update the canister code without losing any of the previously-stored data. A canister upgrade enables you to update existing canister identifiers with program changes without losing the program state. + +To preserve state when you are upgrading a canister written in Motoko, be sure to use the `stable` keyword to identify the variables you want to preserve. For more information about preserving variable state in Motoko, see [stable variables and upgrade methods](/motoko/main/upgrades.md). If you are upgrading a canister written in Rust, you should use `pre_upgrade` and `post_upgrade` functions as illustrated in the [Rust CDK asset storage](https://github.com/dfinity/cdk-rs/blob/master/examples/asset_storage/src/asset_storage_rs/lib.rs) example to ensure data is properly preserved after a canister upgrade. + +To upgrade a canister: + +- #### Step 1: Open a new terminal and navigate to your project directory. + +- #### Step 2: Start the local canister execution environment, if necessary. + + In most cases, this step is only necessary if you are running the canisters locally. + + If you were registering canisters to run on a remote execution environment, e.g. ICP blockchain, you would include the `--network` command-line option to perform tasks on the environment specified under this parameter. + +- #### Step 3: Verify you have canister identifiers for all of the canisters you want to upgrade. + + Note that your program must identify the variables for which to maintain state by using the `stable` keyword in the variable declaration. + + For more information about declaring stable variables, see the [**Motoko documentation**](../../motoko/main/stablememory.md). + +- #### Step 4: Upgrade all of the canisters by running the following command: + + dfx canister install --all --mode upgrade \ No newline at end of file diff --git a/plugins/utils/redirects.js b/plugins/utils/redirects.js index d88956b683..67b9c7032a 100644 --- a/plugins/utils/redirects.js +++ b/plugins/utils/redirects.js @@ -198,6 +198,7 @@ const redirects = ` /docs/current/tutorials/ /docs/current/developer-docs/ /docs/current/developer-docs/backend/eu-subnets /docs/current/developer-docs/backend/subnet-types /docs/current/samples/* /docs/current/samples/overview + /docs/current/developer-docs/production/deploying-and-upgrading /docs/current/developer-docs/setup/deploy ` .split(/[\r\n]+/) .map((line) => line.trim().replace(/^#.*$/, "").trim()) diff --git a/sidebars.js b/sidebars.js index 8370551b53..16835106e7 100644 --- a/sidebars.js +++ b/sidebars.js @@ -67,105 +67,17 @@ const sidebars = { }, ], }, - { - type: "category", - label: "Core concepts", - items: [ - "concepts/canisters-code", - "developer-docs/gas-cost", - "developer-docs/cost-estimations-and-examples", - "concepts/governance", - "concepts/nodes-subnets", - "developer-docs/backend/subnet-types", - "concepts/tokens-cycles", - "concepts/trust-in-canisters", - "developer-docs/production/resource-limits", - "references/glossary", - ], - }, - { - type: "category", - label: "Using canisters", - items: [ - { - type: "category", - label: "Calling canisters", - items: [ - { - type: "category", - label: "Agents", - items: [ - "developer-docs/agents/index", - "developer-docs/agents/javascript-intro", - "developer-docs/agents/nodejs", - "developer-docs/agents/ic-agent-dfinity", - ], - }, - { - type: "category", - label: "Candid", - items: [ - "developer-docs/backend/candid/candid-concepts", - "developer-docs/backend/candid/candid-howto", - "developer-docs/backend/candid/generating-candid", - ], - }, - ], - }, - { - type: "doc", - label: "Canister history", - id: "developer-docs/production/canister-history", - }, - { - type: "doc", - label: "Canister recovery", - id: "developer-docs/production/canister-recovery", - }, - { - type: "doc", - label: "Canister storage", - id: "developer-docs/production/storage", - }, - { - type: "doc", - label: "Deploying and upgrading canisters", - id: "developer-docs/production/deploying-and-upgrading", - }, - { - type: "doc", - label: "Managing canisters", - id: "developer-docs/setup/manage-canisters", - }, - { - type: "doc", - label: "Pulling canister dependencies", - id: "developer-docs/setup/pulling-canister-dependencies", - }, - { - type: "category", - label: "Topping up canisters", - link: { - type: "doc", - id: "developer-docs/production/topping-up-canister", - }, - items: [ - "developer-docs/setup/cycles/cycles_management_services", - ], - }, - ], - }, { type: "category", label: "Developer tools", items: [ { type: "category", - label: "Internet Computer SDK", + label: "Command line", items: [ { type: "category", - label: "dfx command line tool", + label: "dfx", link: { type: "doc", id: "references/cli-reference/index", @@ -195,11 +107,12 @@ const sidebars = { "references/cli-reference/dfx-upgrade", "references/cli-reference/dfx-wallet", "references/cli-reference/dfx-envars", + "references/dfx-json-reference", ], }, { type: "category", - label: "quill command line tool", + label: "quill", link: { type: "doc", id: "references/quill-cli-reference/index", @@ -269,76 +182,168 @@ const sidebars = { "references/quill-cli-reference/quill-update-node-provider", ], }, + ], + }, + { + type: "category", + label: "Off-chain libraries", + items: [ { - type: "doc", - label: "dfx.json schema", - id: "references/dfx-json-reference", + type: "category", + label: "Agents", + items: [ + "developer-docs/agents/index", + "developer-docs/agents/javascript-intro", + "developer-docs/agents/nodejs", + "developer-docs/agents/ic-agent-dfinity", + ], }, ], }, - "developer-docs/setup/playground", - "developer-docs/setup/manage-projects", - "developer-docs/setup/vs-code", + { + type: "category", + label: "IDE", + items: [ + "developer-docs/setup/playground", + "developer-docs/setup/vs-code", + ] + } ], }, { type: "category", - label: "Features", + label: "Smart contracts", items: [ + { + type: "doc", + label: "Build", + id: "developer-docs/setup/build", + }, { type: "category", - label: "Bitcoin integration", + label: "Call", items: [ - "developer-docs/integrations/bitcoin/index", - "developer-docs/integrations/bitcoin/ckbtc", - "developer-docs/integrations/bitcoin/local-development", + { + type: "category", + label: "Candid", + items: [ + "developer-docs/backend/candid/candid-concepts", + "developer-docs/backend/candid/candid-howto", + "developer-docs/backend/candid/generating-candid", + ], + }, ], }, { type: "doc", - label: "Composite queries", - id: "developer-docs/integrations/composite-query/composite-query", + label: "Deploy", + id: "developer-docs/setup/deploy", }, { type: "category", - label: "Encryption and signatures", - items: [ - { - type: "doc", - label: "Verifying signatures", - id: "developer-docs/integrations/independently-verifying-ic-signatures", + label: "Maintain", + items:[ + "developer-docs/setup/delete", + "developer-docs/production/canister-history", + "developer-docs/setup/pulling-canister-dependencies", + "developer-docs/production/canister-recovery", + "developer-docs/setup/state", + "developer-docs/setup/manage-canisters", + "developer-docs/production/storage", + "developer-docs/setup/upgrade", + { + type: "category", + label: "Cost", + items: [ + "developer-docs/gas-cost", + "developer-docs/cost-estimations-and-examples", + ], }, { type: "category", - label: "Threshold ECDSA", - link: { - type: "doc", - id: "developer-docs/integrations/t-ecdsa/index", - }, - items: [], + label: "Topping up canisters", + items: [ + "developer-docs/production/topping-up-canister", + "developer-docs/setup/cycles/cycles_management_services", + ], + }, + ] + }, + { + type: "category", + label: "Test", + items: [ + "developer-docs/setup/pocket-ic", + "developer-docs/production/staging-environment", + "developer-docs/backend/reproducible-builds", + "developer-docs/backend/troubleshooting", + ], + }, + { + type: "category", + label: "Advanced features", + items: [ + { + type: "doc", + label: "Composite queries", + id: "developer-docs/integrations/composite-query/composite-query", }, { type: "category", - label: "vetKeys", + label: "Encryption and signatures", items: [ - "developer-docs/integrations/vetkeys/index", - "developer-docs/integrations/vetkeys/using-vetkeys", + { + type: "doc", + label: "Verifying signatures", + id: "developer-docs/integrations/independently-verifying-ic-signatures", + }, + { + type: "category", + label: "Threshold ECDSA", + link: { + type: "doc", + id: "developer-docs/integrations/t-ecdsa/index", + }, + items: [], + }, + { + type: "category", + label: "vetKeys", + items: [ + "developer-docs/integrations/vetkeys/index", + "developer-docs/integrations/vetkeys/using-vetkeys", + ], + }, ], }, + "developer-docs/backend/periodic-tasks", + "developer-docs/production/larger-wasm", ], }, { type: "category", - label: "HTTPS outcalls", + label: "Best practices", items: [ - "developer-docs/integrations/https-outcalls/https-outcalls-how-to-use", - "developer-docs/integrations/https-outcalls/https-outcalls-get", - "developer-docs/integrations/https-outcalls/https-outcalls-post", + { + type: "doc", + label: "General", + id: "developer-docs/security/general-security-best-practices", + }, + { + type: "doc", + label: "Rust", + id: "developer-docs/security/rust-canister-development-security-best-practices", + }, + { + type: "doc", + label: "Web apps", + id: "developer-docs/security/web-app-development-security-best-practices", + }, ], }, - "developer-docs/backend/periodic-tasks", ], }, + { type: "category", label: "Web apps", @@ -363,7 +368,30 @@ const sidebars = { "developer-docs/production/custom-domain/dns-setup"], }, "developer-docs/backend/design-dapps", - "developer-docs/production/larger-wasm", + { + type: "category", + label: "HTTPS outcalls", + items: [ + "developer-docs/integrations/https-outcalls/https-outcalls-how-to-use", + "developer-docs/integrations/https-outcalls/https-outcalls-get", + "developer-docs/integrations/https-outcalls/https-outcalls-post", + ], + }, + { + type: "category", + label: "User sign-up and login", + items: [ + { + type: "category", + label: "Internet Identity (II)", + items: [ + "developer-docs/integrations/internet-identity/overview", + "developer-docs/integrations/internet-identity/alternative-origins", + "developer-docs/integrations/internet-identity/integrate-identity", + ], + }, + ], + }, { type: "category", label: "Sample apps", @@ -381,7 +409,7 @@ const sidebars = { items: [ { type: "doc", - label: "Introduction and overview", + label: "Overview", id: "developer-docs/integrations/ledger/introduction_and_overview", }, { @@ -434,6 +462,15 @@ const sidebars = { }, ], }, + { + type: "category", + label: "Bitcoin", + items: [ + "developer-docs/integrations/bitcoin/index", + "developer-docs/integrations/bitcoin/ckbtc", + "developer-docs/integrations/bitcoin/local-development", + ], + }, { type: "category", label: "Bootcamps", @@ -568,62 +605,22 @@ const sidebars = { }, { type: "category", - label: "Security best practices", - items: [ - { - type: "doc", - label: "General", - id: "developer-docs/security/general-security-best-practices", - }, - { - type: "doc", - label: "General", - id: "developer-docs/security/rust-canister-development-security-best-practices", - }, - { - type: "doc", - label: "General", - id: "developer-docs/security/web-app-development-security-best-practices", - }, - ], - }, - { - type: "category", - label: "Testing and troubleshooting", - items: [ - "developer-docs/setup/pocket-ic", - "developer-docs/production/staging-environment", - "developer-docs/backend/reproducible-builds", - "developer-docs/backend/troubleshooting", - ], - }, - { - type: "category", - label: "Internet Identity (II)", - items: [ - "developer-docs/integrations/internet-identity/overview", - "developer-docs/integrations/internet-identity/alternative-origins", - "developer-docs/integrations/internet-identity/integrate-identity", - ], - }, - { - type: "category", - label: "Network Nervous System (NNS)", - items: [ - "tokenomics/nns/nns-intro", - "tokenomics/token-holders/nns-app-quickstart", - "tokenomics/nns/neurons-fund", - "tokenomics/nns/nns-staking-voting-rewards", - ], - }, - { - type: "category", - label: "Service Nervous System (SNS)", + label: "DAOs", link: { type: "doc", id: "developer-docs/integrations/sns/index", }, items: [ + { + type: "category", + label: "Network Nervous System (NNS)", + items: [ + "tokenomics/nns/nns-intro", + "tokenomics/token-holders/nns-app-quickstart", + "tokenomics/nns/neurons-fund", + "tokenomics/nns/nns-staking-voting-rewards", + ], + }, { type: "category", label: "Introduction to the SNS", @@ -702,6 +699,20 @@ const sidebars = { }, ], }, + { + type: "category", + label: "Core concepts", + items: [ + "concepts/canisters-code", + "concepts/governance", + "concepts/nodes-subnets", + "developer-docs/backend/subnet-types", + "concepts/tokens-cycles", + "concepts/trust-in-canisters", + "developer-docs/production/resource-limits", + "references/glossary", + ], + }, { type: "category", label: "References", diff --git a/submodules/interface-spec b/submodules/interface-spec index a9334ab8d7..83698b28c8 160000 --- a/submodules/interface-spec +++ b/submodules/interface-spec @@ -1 +1 @@ -Subproject commit a9334ab8d7823dcb070615673726ff371367a807 +Subproject commit 83698b28c8447ac16b72f2b7c1c3ad95c01a5ebe diff --git a/submodules/sdk b/submodules/sdk index b74a89038e..a302661f52 160000 --- a/submodules/sdk +++ b/submodules/sdk @@ -1 +1 @@ -Subproject commit b74a89038e0e4917479042b89e6351db49691929 +Subproject commit a302661f52ad6ec18d70cb1f2d32250289adf8ee