diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 713b33b8ed..9d6545af95 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -13,9 +13,10 @@ docs/developer-docs/web-apps/custom-domains @dfinity/boundary-node docs/developer-docs/web-apps/http-compatible-canisters @dfinity/trust # Each piece of documentation must be owned by the respective teams -docs/developer-docssmart-contracts/advanced-features/simd.mdx @dfinity/execution -docs/developer-docssmart-contracts/advanced-features/periodic-tasks.mdx @dfinity/execution +docs/developer-docs/smart-contracts/advanced-features/simd.mdx @dfinity/execution +docs/developer-docs/smart-contracts/advanced-features/periodic-tasks.mdx @dfinity/execution docs/developer-docs/smart-contracts/best-practices/idempotency.mdx @dfinity/research @dfinity/product-security +docs/developer-docs/smart-contracts/maintain/backtraces.mdx @dfinity/execution # The Interface Specification docs/references/_attachments/certificates.cddl @dfinity/canister-os diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 84f01e9543..e14d426891 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -33,8 +33,6 @@ jobs: - name: Install DFX uses: dfinity/setup-dfx@main - with: - dfx-version: "0.22.0" - name: Dump Identity run: | @@ -69,6 +67,8 @@ jobs: CONTENTFUL_SPACE_ID: ${{ secrets.CONTENTFUL_SPACE_ID }} AIRTABLE_KEY: ${{ secrets.AIRTABLE_SA_PORTAL_SERVICE_ACCOUNT }} YOUTUBE_API_KEY: ${{ secrets.YOUTUBE_API_KEY }} + DFX_WARNING: -mainnet_plaintext_identity + - name: Get URL id: get-url diff --git a/.github/workflows/interface-spec.yml b/.github/workflows/interface-spec.yml index 9ff34ae0f6..c96c4c0001 100644 --- a/.github/workflows/interface-spec.yml +++ b/.github/workflows/interface-spec.yml @@ -1,6 +1,6 @@ name: Interface Specification on: - pull_request: + pull_request_target: paths: - .github/workflows/interface-spec.yml - docs/references/http-gateway-protocol-spec.md @@ -38,7 +38,7 @@ jobs: ./didc check docs/references/_attachments/ic.did interface-spec-tag: name: Tag PR with interface-spec - if: ${{ github.event_name == 'pull_request' }} + if: ${{ github.event_name == 'pull_request_target' }} runs-on: ubuntu-latest steps: - name: Checkout code diff --git a/.github/workflows/preview-deployment.yml b/.github/workflows/preview-deployment.yml index cb03e1e5a4..8a6ecbdc07 100644 --- a/.github/workflows/preview-deployment.yml +++ b/.github/workflows/preview-deployment.yml @@ -88,6 +88,7 @@ jobs: env: DFX_IDENTITY_PREVIEW: ${{ secrets.DFX_IDENTITY_PREVIEW }} + DFX_WARNING: -mainnet_plaintext_identity POOL_CANISTER_ID: ${{ secrets.POOL_CANISTER_ID }} CONTENTFUL_ACCESS_TOKEN: ${{ secrets.CONTENTFUL_ACCESS_TOKEN }} CONTENTFUL_HOST: ${{ secrets.CONTENTFUL_HOST }} diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 9875c90c1d..d1e40f91e9 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -119,7 +119,7 @@ version 2.0, available at https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. Community Impact Guidelines were inspired by [Mozilla's code of conduct -enforcement ladder](https://github.com/mozilla/diversity). +enforcement liftoff](https://github.com/mozilla/diversity). [homepage]: https://www.contributor-covenant.org diff --git a/MAINTENANCE.md b/MAINTENANCE.md index b6adfda148..c01376f341 100644 --- a/MAINTENANCE.md +++ b/MAINTENANCE.md @@ -1,19 +1,20 @@ -# Updating motoko content +# Updating Motoko content +``` cd portal/ git submodule update --init # if necessary cd submodules/motoko -git checkout 0.7.6 #or whatever new tag you desire +git checkout 0.14.1 #or whatever new tag you desire cd ../.. git add submodules/motoko # add the change to the submodule +``` +Replace `static/moc-interpreter-0.14.0.js` with `static/moc_interpreter-0.14.1.js` downloaded from the Motoko release page. -Now replace static/moc-interpreter-0.7.3.js with static/moc_interpreter-0.7.6.js, downloaded from motoko release page. It would be better if this wasn't checked in, but, for now, it is. - -Edit static/load_moc.ts to use the correct version of the interpreter and base libs. - -Finally, edit docs/motoko/version.md to report the current version of motoko. +Edit `static/load_moc.ts` to use the correct version of the interpreter and base libs. +Finally, edit `docs/motoko/version.md` to report the current version of Motoko. +``` git add -u -git commit -m "updating motoko doc" +git commit -m "chore: updating motoko doc" git push - +``` diff --git a/README.md b/README.md index e45e6a96ad..95552d18a3 100644 --- a/README.md +++ b/README.md @@ -66,7 +66,7 @@ docs ├── motoko // Motoko documentation - submodule ├── references // reference documentation ├── samples // sample projects - submodule -├── tutorials // tutorial series (developer ladder, hackathon prep course, etc). +├── tutorials // tutorial series (developer liftoff, hackathon prep course, etc). ``` # Contributing to the Dev Docs @@ -150,7 +150,7 @@ Concept pages describe in more detail a specific concept of ICP. Concept pages s Concept pages should remain simple and high-level without providing unnecessary, in-depth details. Readers should be able to quickly understand the technology and its benefits, convincing them to continue learning more and begin developing using the technology. #### Tutorial -A tutorial uses a step-by-step format to walk a user through a specific workflow. The Developer Ladder is an example of a tutorial series. +A tutorial uses a step-by-step format to walk a user through a specific workflow. The Developer Liftoff is an example of a tutorial series. #### Reference A reference page provides low level detail into a feature or technology. API reference pages are an example that provide in-depth detail about different endpoints and methods. Some examples include: @@ -593,21 +593,16 @@ The [Ecosystem Helper](https://mvw4g-yiaaa-aaaam-abnva-cai.icp0.io/) is an oncha The list of tags is not final, and will be updated as the project evolves. For now, the following tags are available: -- `AI` - `Chain Fusion` - `Bitcoin` -- `Ethereum` -- `DAO` - `DeFi` -- `Enterprise` -- `Gaming` -- `Metaverse` -- `NFT` -- `SocialFi` -- `Tools / Infrastructure` - `Wallet` -- `Analytics` +- `AI` +- `Gaming` - `Creator Economy` +- `Enterprise` +- `Analytics` +- `Tools / Infrastructure` ### Object schema @@ -615,11 +610,10 @@ The list of tags is not final, and will be updated as the project evolves. For n { id: string, name: string, - oneLiner: string, // short description of the project website: string, // URL starting with `https://` - tags: ('AI' | 'Chain Fusion' | 'Bitcoin' | 'Ethereum' | 'DAO' | 'DeFi' | 'Enterprise' | 'Gaming' | 'Metaverse' | 'NFT' | 'SocialFi' | 'Tools / Infrastructure' | 'Wallet' | 'Analytics' | 'Creator Economy')[], - description: string, // description of the project + tags: ( `Chain Fusion` | `Bitcoin` | `DeFi` | `Wallet` | `AI` | `Gaming` | `Creator Economy` | `Enterprise` |`Analytics` | `Tools / Infrastructure`)[], + description: string, // description of the project - up to 150 characters stats: string, // eg. "10,000 users" logo: string, // url to logo file, eg. /img/showcase/awesome-icp-project_logo.webp diff --git a/blog/news-and-updates/2023-08-16-update.mdx b/blog/news-and-updates/2023-08-16-update.mdx index 63e2f17cd8..a231571c18 100644 --- a/blog/news-and-updates/2023-08-16-update.mdx +++ b/blog/news-and-updates/2023-08-16-update.mdx @@ -1,6 +1,6 @@ --- title: Developer weekly update August 16, 2023 -description: In this issue, we're excited to introduce the first portion of a new documentation series, Developer Ladder, plus talk about the upcoming `dfx` release and new documentation on the Motoko feature `mo-doc`. +description: In this issue, we're excited to introduce the first portion of a new documentation series, Developer Liftoff, plus talk about the upcoming `dfx` release and new documentation on the Motoko feature `mo-doc`. tags: [Devs] image: /img/blog/dev-update-blog-aug-16.jpg --- @@ -9,11 +9,11 @@ image: /img/blog/dev-update-blog-aug-16.jpg ![August 16 2023](../../static/img/blog/dev-update-blog-aug-16.jpg) -Hey developers! Welcome to this week's developer weekly update. In this issue, we're excited to introduce the first portion of a new documentation series: Developer Ladder, plus talk about the upcoming `dfx` release and new documentation on the Motoko feature `mo-doc`. +Hey developers! Welcome to this week's developer weekly update. In this issue, we're excited to introduce the first portion of a new documentation series: Developer Liftoff, plus talk about the upcoming `dfx` release and new documentation on the Motoko feature `mo-doc`. -## Introducing the Developer Ladder +## Introducing the Developer Liftoff -Today we're excited to introduce the new Developer Ladder tutorial series! This series is designed to bring new developers on a detailed, diverse journey through development on the Internet Computer. The journey starts with 'pre-flight operations', which is an introductory level that provides context for the remainder of the journey, such as an overview of what ICP is, how it works, and how to set up your developer environment. Then, the journey will bring you through a series of modules to develop your skills and learn about additional ICP components in order to become an ICP astronaut! +Today we're excited to introduce the new Developer Liftoff tutorial series! This series is designed to bring new developers on a detailed, diverse journey through development on the Internet Computer. The journey starts with 'pre-flight operations', which is an introductory level that provides context for the remainder of the journey, such as an overview of what ICP is, how it works, and how to set up your developer environment. Then, the journey will bring you through a series of modules to develop your skills and learn about additional ICP components in order to become an ICP astronaut! Overall, the journey will contain the following modules and components: @@ -101,7 +101,7 @@ Overall, the journey will contain the following modules and components: - 5.6: Next steps. -The first portion of this series, Level 0: Pre-flight operations, is out now and ready for you to follow along with! You can get started with the Developer Ladder [here](https://internetcomputer.org/docs/current/tutorials/developer-journey/level-0/). +The first portion of this series, Level 0: Pre-flight operations, is out now and ready for you to follow along with! You can get started with the Developer Liftoff [here](https://internetcomputer.org/docs/current/tutorials/developer-liftoff/level-0/). ## Upcoming `dfx 0.15` release @@ -111,13 +111,13 @@ The first portion of this series, Level 0: Pre-flight operations, is out now and - Fixes for the asset canister's response verification v2. We dove into this fix a bit further in last week's developer weekly update [here](2023-08-09-update.mdx). -- Removal of the `dfx nns` and `dfx sns` commands, which will be part of the new upcoming subcommand, `dfx extensions`. +- Removal of the `dfx nns` and `dfx sns` commands, which will be part of the new upcoming subcommand, `dfx extensions`. -A detailed breakdown of the full release notes will be available in an upcoming blog post. Stay tuned! +A detailed breakdown of the full release notes will be available in an upcoming blog post. Stay tuned! ## `mo-doc` -`mo-doc` is a command-line tool that can be used to generate documentation for Motoko code. It can generate various formats of documentation based on Motoko source code. +`mo-doc` is a command-line tool that can be used to generate documentation for Motoko code. It can generate various formats of documentation based on Motoko source code. To use `mo-doc`, you can download it directly from the Motoko Github releases page, or use the binary that is included in `dfx`. @@ -133,7 +133,7 @@ The options for the tool are: - `--output `: This option specifies the directory where the documentation will be generated; the default is `docs`. -- `--format `: This option specifies the generated format, which can be HTML, ADOC, or Markdown; the default is HTML. +- `--format `: This option specifies the generated format, which can be HTML, ADOC, or Markdown; the default is HTML. - `--help`: This option shows usage information. diff --git a/blog/news-and-updates/2023-09-06-update.mdx b/blog/news-and-updates/2023-09-06-update.mdx index 489ef050af..6a35d3c189 100644 --- a/blog/news-and-updates/2023-09-06-update.mdx +++ b/blog/news-and-updates/2023-09-06-update.mdx @@ -1,6 +1,6 @@ --- title: Developer weekly update September 6, 2023 -description: This week, we're excited to talk about the next installment of the new documentation series Developer ladder, plus talk about upcoming features and integrations such as the Ethereum integration and the cycles ledger. +description: This week, we're excited to talk about the next installment of the new documentation series Developer liftoff, plus talk about upcoming features and integrations such as the Ethereum integration and the cycles ledger. tags: [Devs] image: /img/blog/dev-update-blog-sept-6.jpg --- @@ -9,15 +9,15 @@ image: /img/blog/dev-update-blog-sept-6.jpg ![September 6 2023](../../static/img/blog/dev-update-blog-sept-6.jpg) -Hello devs and welcome to this week's issue of developer weekly! This week, we're excited to talk about the next installment of the new documentation series developer ladder, plus talk about upcoming features and integrations such as the Ethereum integration and the cycles ledger. +Hello devs and welcome to this week's issue of developer weekly! This week, we're excited to talk about the next installment of the new documentation series developer liftoff, plus talk about upcoming features and integrations such as the Ethereum integration and the cycles ledger. -Let's get into it! +Let's get into it! -## Developer ladder level 1 +## Developer liftoff level 1 -The second level of the developer ladder tutorial series is now live on the developer docs! In this level, level 1, we begin to dive into the building blocks of developing on ICP, such as learning about Motoko fundamentals, developing a simple poll dapp, and learning about canister deployment and management. Modules in this level include: +The second level of the developer liftoff tutorial series is now live on the developer docs! In this level, level 1, we begin to dive into the building blocks of developing on ICP, such as learning about Motoko fundamentals, developing a simple poll dapp, and learning about canister deployment and management. Modules in this level include: -- [1.1: Exploring a live demo](/docs/current/tutorials/developer-journey/level-1/1.1-live-demo): +- [1.1: Exploring a live demo](/docs/current/tutorials/developer-liftoff/level-1/1.1-live-demo): In this module, you can learn about: @@ -27,7 +27,7 @@ In this module, you can learn about: - Interacting with the canister via the CLI. - Interacting with the canister via the Candid interface. -- [1.2: Motoko level 1](/docs/current/tutorials/developer-journey/level-1/1.2-motoko-lvl1): +- [1.2: Motoko level 1](/docs/current/tutorials/developer-liftoff/level-1/1.2-motoko-lvl1): In this module, you can learn about: @@ -42,7 +42,7 @@ In this module, you can learn about: - Printing values. - Passing text arguments. -- [1.3: Developing your first dapp](/docs/current/tutorials/developer-journey/level-1/1.3-first-dapp): +- [1.3: Developing your first dapp](/docs/current/tutorials/developer-liftoff/level-1/1.3-first-dapp): In this module, you can learn about: @@ -63,7 +63,7 @@ In this module, you can learn about: - Adding pre-developed frontend code. - Re-deploying the dapp. -- [1.4: Acquiring and using cycles](/docs/current/tutorials/developer-journey/level-1/1.4-using-cycles): +- [1.4: Acquiring and using cycles](/docs/current/tutorials/developer-liftoff/level-1/1.4-using-cycles): In this module, you can learn about: @@ -72,11 +72,11 @@ In this module, you can learn about: - Acquiring cycles using a cycles coupon. - Converting ICP tokens to cycles. -- [1.5: Deploying canisters](/docs/current/tutorials/developer-journey/level-1/1.5-deploying-canisters): +- [1.5: Deploying canisters](/docs/current/tutorials/developer-liftoff/level-1/1.5-deploying-canisters): In this module, you can learn about deploying to the mainnet. -- [1.6: Managing canisters](/docs/current/tutorials/developer-journey/level-1/1.6-managing-canisters): +- [1.6: Managing canisters](/docs/current/tutorials/developer-liftoff/level-1/1.6-managing-canisters): In this module, you can learn about: @@ -90,7 +90,7 @@ In this module, you can learn about: - Setting the canister's freezing threshold. - Deleting a canister. -You can learn more about the developer ladder and get started with level 0 in the [tutorials section of our developer documentation](/docs/current/tutorials/developer-journey/). +You can learn more about the developer liftoff and get started with level 0 in the [tutorials section of our developer documentation](/docs/current/tutorials/developer-liftoff/). ## Ethereum starter project @@ -103,13 +103,13 @@ If you want to use this sample project as a boilerplate to build your own, or le ## Upcoming feature: cycles ledger -Another exciting upcoming feature is the new cycles ledger feature. The cycles ledger, which is expected to launch in October 2023, will simplify cycle management by providing the ability for principal IDs to hold cycles. +Another exciting upcoming feature is the new cycles ledger feature. The cycles ledger, which is expected to launch in October 2023, will simplify cycle management by providing the ability for principal IDs to hold cycles. -Currently, cycles wallets are a complex solution that is used to associate cycles with principals, since cycles wallets must be deployed locally, consume cycles themselves, and are easily lost if the cycles wallet canister ID is lost. +Currently, cycles wallets are a complex solution that is used to associate cycles with principals, since cycles wallets must be deployed locally, consume cycles themselves, and are easily lost if the cycles wallet canister ID is lost. -The cycles ledger is an alternative to the cycles wallet, and will be deployed as a single global ledger canister, rather than a local deployment. The cycles ledger will comply with the ICRC-2 standard and will also interact with the NNS canisters and user canisters to provide ledger-specific functions, such as creating new canisters using cycles, sending cycles to canisters, and accepting incoming cycles. +The cycles ledger is an alternative to the cycles wallet, and will be deployed as a single global ledger canister, rather than a local deployment. The cycles ledger will comply with the ICRC-2 standard and will also interact with the NNS canisters and user canisters to provide ledger-specific functions, such as creating new canisters using cycles, sending cycles to canisters, and accepting incoming cycles. -Be sure to check back in October for a more detailed blog post when the feature is live! +Be sure to check back in October for a more detailed blog post when the feature is live! That'll wrap things up for now, see you next time! diff --git a/blog/news-and-updates/2023-09-13-update.mdx b/blog/news-and-updates/2023-09-13-update.mdx index d51008eb13..2b583f9391 100644 --- a/blog/news-and-updates/2023-09-13-update.mdx +++ b/blog/news-and-updates/2023-09-13-update.mdx @@ -41,9 +41,9 @@ Want to get started? The interactive tutorial can be found in our Motoko documen Over the past few weeks, we've had some great new pages added to our developer documentation. Let's take a look at some of the new additions! -- [Developer ladder level 0](/docs/current/tutorials/developer-journey/level-0/): Start the developer ladder at the very beginning by following the level 0 module. In level 0, we cover the fundamentals of what the Internet Computer is, what terms you should be familiar with, and what tools we'll be using throughout our journey. +- [Developer liftoff level 0](/docs/current/tutorials/developer-liftoff/level-0/): Start the developer liftoff at the very beginning by following the level 0 module. In level 0, we cover the fundamentals of what the Internet Computer is, what terms you should be familiar with, and what tools we'll be using throughout our journey. -- [Developer ladder level 1](/docs/current/tutorials/developer-journey/level-1/): In the next stage of the developer ladder, become a space cadet by getting comfortable creating your first dapp, managing your canisters, and acquiring and using cycles. +- [Developer liftoff level 1](/docs/current/tutorials/developer-liftoff/level-1/): In the next stage of the developer liftoff, become a space cadet by getting comfortable creating your first dapp, managing your canisters, and acquiring and using cycles. - [Pulling canister dependencies](/docs/current/developer-docs/smart-contracts/maintain/import): Learn how to use the new `dfx deps` feature to pull third-party canister dependencies. diff --git a/blog/news-and-updates/2023-09-27-update.mdx b/blog/news-and-updates/2023-09-27-update.mdx index a1668a7121..01e73343cc 100644 --- a/blog/news-and-updates/2023-09-27-update.mdx +++ b/blog/news-and-updates/2023-09-27-update.mdx @@ -1,6 +1,6 @@ --- title: Developer weekly update September 27, 2023 -description: This week, we're going to talk all things new documentation, including level 2 of the developer ladder series, plus the new workflow for requesting a cycles coupon. +description: This week, we're going to talk all things new documentation, including level 2 of the developer liftoff series, plus the new workflow for requesting a cycles coupon. tags: [Devs] image: /img/blog/dev-update-blog-sept-27.jpg --- @@ -9,13 +9,13 @@ image: /img/blog/dev-update-blog-sept-27.jpg ![September 27 2023](../../static/img/blog/dev-update-blog-sept-27.jpg) -Hello ICP developers and welcome to this edition of developer weekly! This week, we're going to talk all things new documentation, including level 2 of the developer ladder series, plus the new workflow for requesting a cycles coupon. Let's get into it! +Hello ICP developers and welcome to this edition of developer weekly! This week, we're going to talk all things new documentation, including level 2 of the developer liftoff series, plus the new workflow for requesting a cycles coupon. Let's get into it! -## Developer ladder level 2 +## Developer liftoff level 2 -This week, level 2 of the developer ladder series was published. To recap, the developer ladder is a new tutorial series that acts as the map for a developer to start or grow their journey as an ICP developer. In level 2, developers learn about canister upgrades, storage, data persistence, advanced canister calls, Candid, unit testing, and using third-party canisters. The full breakdown can be found below: +This week, level 2 of the developer liftoff series was published. To recap, the developer liftoff is a new tutorial series that acts as the map for a developer to start or grow their journey as an ICP developer. In level 2, developers learn about canister upgrades, storage, data persistence, advanced canister calls, Candid, unit testing, and using third-party canisters. The full breakdown can be found below: -- [2.1: Canister upgrades, storage, and persistence.](/docs/current/tutorials/developer-journey/level-2/2.1-storage-persistence): When a canister's code needs to have changes made, the canister must be upgraded. This module covers: +- [2.1: Canister upgrades, storage, and persistence.](/docs/current/tutorials/developer-liftoff/level-2/2.1-storage-persistence): When a canister's code needs to have changes made, the canister must be upgraded. This module covers: - Memory types and terms. - Upgrading canisters. - Motoko stable memory workflow. @@ -28,7 +28,7 @@ This week, level 2 of the developer ladder series was published. To recap, the d - Deploying your counter app. - Stable variables in action. -- [2.2: Advanced canister calls.](/docs/current/tutorials/developer-journey/level-2/2.2-advanced-canister-calls): Now that we've covered the core functionalities of canisters and using them, let's take a look at advanced canister calls. This module covers: +- [2.2: Advanced canister calls.](/docs/current/tutorials/developer-liftoff/level-2/2.2-advanced-canister-calls): Now that we've covered the core functionalities of canisters and using them, let's take a look at advanced canister calls. This module covers: - The ICP execution model. - Canister query calls. - Example query call. @@ -43,13 +43,13 @@ This week, level 2 of the developer ladder series was published. To recap, the d - Writing a `publisher` canister. - Writing a `subscriber` canister. -- [2.3: Using third-party canisters.](/docs/current/tutorials/developer-journey/level-2/2.3-third-party-canisters): For certain workflows, using third-party canisters and integrating them with a dapp is important to provide functionalities such as authentication. This module covers: +- [2.3: Using third-party canisters.](/docs/current/tutorials/developer-liftoff/level-2/2.3-third-party-canisters): For certain workflows, using third-party canisters and integrating them with a dapp is important to provide functionalities such as authentication. This module covers: - Pulling third-party canister dependencies. - Prerequisites. - Creating a new project. - Using `dfx deps`. -- [2.4: Introduction to Candid.](/docs/current/tutorials/developer-journey/level-2/2.4-intro-candid): Candid is an interface description language that has unique support for ICP features. This module covers: +- [2.4: Introduction to Candid.](/docs/current/tutorials/developer-liftoff/level-2/2.4-intro-candid): Candid is an interface description language that has unique support for ICP features. This module covers: - Candid types and values. - Candid textual values. - Candid service descriptions. @@ -63,7 +63,7 @@ This week, level 2 of the developer ladder series was published. To recap, the d - Interacting with a service using the command-line terminal. - Interacting with a service using a web browser. -- [2.5: Unit, integration, and end-to-end testing](/docs/current/tutorials/developer-journey/level-2/2.5-unit-testing): Testing code prior to setting it live in production is an important step in the development process. This module covers: +- [2.5: Unit, integration, and end-to-end testing](/docs/current/tutorials/developer-liftoff/level-2/2.5-unit-testing): Testing code prior to setting it live in production is an important step in the development process. This module covers: - Motoko unit testing. - Canister unit testing. - Rust unit testing. @@ -78,7 +78,7 @@ This week, level 2 of the developer ladder series was published. To recap, the d - Running a complex test. - Integration testing. -- [2.6: Motoko: level 2.](/docs/current/tutorials/developer-journey/level-2/2.6-motoko-lvl2): This module covers: +- [2.6: Motoko: level 2.](/docs/current/tutorials/developer-liftoff/level-2/2.6-motoko-lvl2): This module covers: - Actor types. - Actor type definition. - Shared functions. @@ -96,7 +96,7 @@ This week, level 2 of the developer ladder series was published. To recap, the d - Deploying the actors locally. - Interacting with multiple actors. -Want to start at the beginning? You can get started with the developer ladder [here](/docs/current/tutorials/developer-journey/). +Want to start at the beginning? You can get started with the developer liftoff [here](/docs/current/tutorials/developer-liftoff/). ## New cycles coupon workflow diff --git a/blog/news-and-updates/2023-10-18-update.mdx b/blog/news-and-updates/2023-10-18-update.mdx index 8eb21be631..43f7257877 100644 --- a/blog/news-and-updates/2023-10-18-update.mdx +++ b/blog/news-and-updates/2023-10-18-update.mdx @@ -1,6 +1,6 @@ --- title: Developer weekly update October 18, 2023 -description: This week, we'll take a look at a new AI tool on the developer documentation, the latest level of the developer ladder series, and ask for your feedback on naming a new tool! +description: This week, we'll take a look at a new AI tool on the developer documentation, the latest level of the developer liftoff series, and ask for your feedback on naming a new tool! tags: [Devs] image: /img/blog/dev-update-blog-oct-18.jpg --- @@ -9,7 +9,7 @@ image: /img/blog/dev-update-blog-oct-18.jpg ![October 18 2023](../../static/img/blog/dev-update-blog-oct-18.jpg) -This week, we'll take a look at a new AI tool on the developer documentation, the latest level of the developer ladder series, and ask for your feedback on naming a new tool! +This week, we'll take a look at a new AI tool on the developer documentation, the latest level of the developer liftoff series, and ask for your feedback on naming a new tool! ## Developer docs 'Ask AI' chat bot @@ -23,13 +23,13 @@ An example question might be, "What is ckBTC?", in which, the AI replies with a Try it yourself on the [developer docs](https://internetcomputer.org/docs/current/developer-docs/) by clicking the 'Ask AI' button! -## Developer ladder level 3 +## Developer liftoff level 3 -Level 3 of the [developer ladder tutorial series](/docs/current/tutorials/developer-journey/) is now live on the developer docs! In level 3, we cover Motoko package managers, HTTPS outcalls, certified data, agents, and Internet Identity. A full breakdown can be found below: +Level 3 of the [developer liftoff tutorial series](/docs/current/tutorials/developer-liftoff/) is now live on the developer docs! In level 3, we cover Motoko package managers, HTTPS outcalls, certified data, agents, and Internet Identity. A full breakdown can be found below: # Level 3: Space engineer -- [3.1 Motoko package managers.](/docs/current/tutorials/developer-journey/level-3/3.1-package-managers): To use packages developed outside of the Motoko base library, a Motoko package manager can be used. This module covers: +- [3.1 Motoko package managers.](/docs/current/tutorials/developer-liftoff/level-3/3.1-package-managers): To use packages developed outside of the Motoko base library, a Motoko package manager can be used. This module covers: - What is a package manager? - Installing Mops. - Installing Vessel. @@ -42,7 +42,7 @@ Level 3 of the [developer ladder tutorial series](/docs/current/tutorials/develo - Using Vessel. - Importing packages into your Motoko code. -- [3.2 Using HTTPS outcalls.](/docs/current/tutorials/developer-journey/level-3/3.2-https-outcalls): HTTPS outcalls are a feature of canisters on ICP that allow smart contracts to directly make calls to HTTP servers that are external to ICP. This module covers: +- [3.2 Using HTTPS outcalls.](/docs/current/tutorials/developer-liftoff/level-3/3.2-https-outcalls): HTTPS outcalls are a feature of canisters on ICP that allow smart contracts to directly make calls to HTTP servers that are external to ICP. This module covers: - Supported HTTP methods. - Cycles. - HTTPS outcalls API. @@ -58,7 +58,7 @@ Level 3 of the [developer ladder tutorial series](/docs/current/tutorials/develo - Calling the HTTP `POST` request. -- [3.3 Certified data.](/docs/current/tutorials/developer-journey/level-3/3.3-certified-data): Certified data utilizes **chain-key cryptography** at the canister level to generate a digital signature that can be validated using a permanent, public key that belongs to the Internet Computer, whose private key counterpart is constantly distributed across many different nodes on the network. This module covers: +- [3.3 Certified data.](/docs/current/tutorials/developer-liftoff/level-3/3.3-certified-data): Certified data utilizes **chain-key cryptography** at the canister level to generate a digital signature that can be validated using a permanent, public key that belongs to the Internet Computer, whose private key counterpart is constantly distributed across many different nodes on the network. This module covers: - How data is certified. - Data certificates. - How canisters certify data. @@ -75,7 +75,7 @@ Level 3 of the [developer ladder tutorial series](/docs/current/tutorials/develo - Interacting with certified variables. - Resources. -- [3.4 Introduction to agents.](/docs/current/tutorials/developer-journey/level-3/3.4-intro-to-agents): On the Internet Computer, an **agent** is a library used to make calls to ICP's public interface. This module covers: +- [3.4 Introduction to agents.](/docs/current/tutorials/developer-liftoff/level-3/3.4-intro-to-agents): On the Internet Computer, an **agent** is a library used to make calls to ICP's public interface. This module covers: - What does an agent do? - Structuring data. - Decoding data. @@ -89,7 +89,7 @@ Level 3 of the [developer ladder tutorial series](/docs/current/tutorials/develo - Creating the JavaScript agent. - Using the agent. -- [3.5 Identities and authentication.](/docs/current/tutorials/developer-journey/level-3/3.5-identities-and-auth): When developing on the Internet Identity, there are several types of identities and methods of authentication that you'll encounter. This module covers: +- [3.5 Identities and authentication.](/docs/current/tutorials/developer-liftoff/level-3/3.5-identities-and-auth): When developing on the Internet Identity, there are several types of identities and methods of authentication that you'll encounter. This module covers: - Types of identity. - Internet Identity. - Internet Identity architecture. @@ -103,7 +103,7 @@ Level 3 of the [developer ladder tutorial series](/docs/current/tutorials/develo - Pulling the Internet Identity canister. - Interacting with the integration. -- [3.6 Motoko level 3.](/docs/current/tutorials/developer-journey/level-3/3.6-motoko-lvl3): In this Motoko level, we'll look into caller identification, adding access control with identities, plus other non-identity related functionalities such as pattern matching and periodic tasks. This module covers: +- [3.6 Motoko level 3.](/docs/current/tutorials/developer-liftoff/level-3/3.6-motoko-lvl3): In this Motoko level, we'll look into caller identification, adding access control with identities, plus other non-identity related functionalities such as pattern matching and periodic tasks. This module covers: - Principals and caller identification. - Adding access control with identities. - Prerequisites. diff --git a/blog/news-and-updates/2023-10-25-update.mdx b/blog/news-and-updates/2023-10-25-update.mdx index a5c127e340..b3a7a56f22 100644 --- a/blog/news-and-updates/2023-10-25-update.mdx +++ b/blog/news-and-updates/2023-10-25-update.mdx @@ -1,6 +1,6 @@ --- title: Developer weekly update October 25, 2023 -description: This week, we're excited to share the first video tutorial in the developer ladder series, announce the name for the dfx version manager, and take a look at the details of a proposed new workflow for SNS launches. +description: This week, we're excited to share the first video tutorial in the developer liftoff series, announce the name for the dfx version manager, and take a look at the details of a proposed new workflow for SNS launches. tags: [Devs] image: /img/blog/dev-update-blog-oct-25.jpg --- @@ -9,37 +9,37 @@ image: /img/blog/dev-update-blog-oct-25.jpg ![October 25 2023](../../static/img/blog/dev-update-blog-oct-25.jpg) -Hello developers and welcome back to developer weekly! This week, we're excited to share the first video tutorial in the developer ladder series, announce the name for the `dfx` version manager, and take a look at the details of a proposed new workflow for SNS launches. +Hello developers and welcome back to developer weekly! This week, we're excited to share the first video tutorial in the developer liftoff series, announce the name for the `dfx` version manager, and take a look at the details of a proposed new workflow for SNS launches. -## Developer ladder video series +## Developer liftoff video series -In previous dev updates, we've introduced the developer ladder documentation series and provided updates when new 'levels' of the tutorial series have been published. In today's update, we're excited to share that the first video corresponding to the documentation has been released! +In previous dev updates, we've introduced the developer liftoff documentation series and provided updates when new 'levels' of the tutorial series have been published. In today's update, we're excited to share that the first video corresponding to the documentation has been released! -The first video, **ICP Developer Ladder 0.1 | Overview of the Internet Computer** corresponds to the very first page in the developer ladder series, which can be found [here](/docs/current/tutorials/developer-journey/level-0/ic-overview). +The first video, **ICP Developer Liftoff 0.1 | Overview of the Internet Computer** corresponds to the very first page in the developer liftoff series, which can be found [here](/docs/current/tutorials/developer-liftoff/level-0/ic-overview). -New videos will be released every week, and will follow each page of the developer ladder documentation - that means there will be a total of 36 videos! +New videos will be released every week, and will follow each page of the developer liftoff documentation - that means there will be a total of 36 videos! The first video can be found on the DFINITY Youtube channel: -[![ICP Developer Ladder 0.1 | Overview of the Internet Computer](https://img.youtube.com/vi/oBUpJ4CqmN0/0.jpg)](https://youtu.be/oBUpJ4CqmN0?si=q5r223tFnWoZTMGz) +[![ICP Developer Liftoff 0.1 | Overview of the Internet Computer](https://img.youtube.com/vi/oBUpJ4CqmN0/0.jpg)](https://youtu.be/oBUpJ4CqmN0?si=q5r223tFnWoZTMGz) -## `dfx` version manager name decision +## `dfx` version manager name decision -Last week, we asked for your feedback on naming an upcoming tool known as the `dfx` version manager. The results are in, and a name has been decided! +Last week, we asked for your feedback on naming an upcoming tool known as the `dfx` version manager. The results are in, and a name has been decided! -The `dfx` version manager will be called **dfxvm**. +The `dfx` version manager will be called **dfxvm**. -Stay tuned for more updates on this new tool! +Stay tuned for more updates on this new tool! ## Proposed new SNS workflow -Recently, a new SNS hand-off workflow has been proposed on the developer forum. This new workflow has been proposed because there has been a high amount of friction during the canister hand-off process, especially when handing off the SNS's asset canister. +Recently, a new SNS hand-off workflow has been proposed on the developer forum. This new workflow has been proposed because there has been a high amount of friction during the canister hand-off process, especially when handing off the SNS's asset canister. For an SNS to be launched, the dapp's canisters must be handed over from the developers to the SNS itself. Prior to August 2023, this process included the following steps: - An SNS is first approved to be launched through an NNS proposal. -- The dapp's canisters are then created and initialized, with the SNS governance canister's ID being publicly known. +- The dapp's canisters are then created and initialized, with the SNS governance canister's ID being publicly known. - Then, developers hand over the dapp's canisters to the SNS. @@ -47,11 +47,11 @@ For an SNS to be launched, the dapp's canisters must be handed over from the dev - Lastly, an NNS proposal is used to start the SNS decentralization swap and launch the SNS. -This process was amended in August 2023 to simplify and condense several steps, ultimately providing an SNS to be created through a single NNS proposal. In this revised workflow, the dapp's canisters are handed over from the developers to the NNS, then an NNS proposal creates the SNS canisters, initializes them, hands them over to the SNS, then starts the decentralization swap and launches the SNS. +This process was amended in August 2023 to simplify and condense several steps, ultimately providing an SNS to be created through a single NNS proposal. In this revised workflow, the dapp's canisters are handed over from the developers to the NNS, then an NNS proposal creates the SNS canisters, initializes them, hands them over to the SNS, then starts the decentralization swap and launches the SNS. -This is how the SNS process currently operates. +This is how the SNS process currently operates. -The newly proposed workflow takes this current workflow and adds an additional step where once the SNS is launched, the SNS community upgrades the dapp's canisters through an SNS proposal. Within this upgrade, they can set the privileges within the dapp appropriately. +The newly proposed workflow takes this current workflow and adds an additional step where once the SNS is launched, the SNS community upgrades the dapp's canisters through an SNS proposal. Within this upgrade, they can set the privileges within the dapp appropriately. You can read more about this proposed workflow and provide your thoughts on the [developer forum](https://forum.dfinity.org/t/handing-over-dapp-canisters-to-an-sns-dao/23877). diff --git a/blog/news-and-updates/2023-11-01-update.mdx b/blog/news-and-updates/2023-11-01-update.mdx index 731c794a6a..bd4e38a4b6 100644 --- a/blog/news-and-updates/2023-11-01-update.mdx +++ b/blog/news-and-updates/2023-11-01-update.mdx @@ -1,6 +1,6 @@ --- title: Developer weekly update November 1, 2023 -description: In this update, we announce the publication of the developer ladder level 4 documentation, a handful of other documentation updates, and a new ledger method for retrieving your account identifier. +description: In this update, we announce the publication of the developer liftoff level 4 documentation, a handful of other documentation updates, and a new ledger method for retrieving your account identifier. tags: [Devs] image: /img/blog/dev-update-blog-nov-1.jpg --- @@ -10,14 +10,14 @@ image: /img/blog/dev-update-blog-nov-1.jpg ![November 1 2023](../../static/img/blog/dev-update-blog-nov-1.jpg) -Hello developers and welcome to this week's developer weekly update! In this update, we announce the publication of the developer ladder level 4 documentation, a handful of other documentation updates, and a new ledger method for retrieving your account identifier. Let's dive in! +Hello developers and welcome to this week's developer weekly update! In this update, we announce the publication of the developer liftoff level 4 documentation, a handful of other documentation updates, and a new ledger method for retrieving your account identifier. Let's dive in! -## Developer ladder level 4 +## Developer liftoff level 4 -This week, the Space Pilot level of the developer ladder series was published! In this level, developers learn about tokens such as ICP and ICRC-1, how to deploy and use their respective ledgers, and how to use the ICP Bitcoin integration. This level also covers ICP's form of governance through the NNS and the CLI tool quill that can be used to interact with the ICP ledger, ckBTC, and the NNS. +This week, the Space Pilot level of the developer liftoff series was published! In this level, developers learn about tokens such as ICP and ICRC-1, how to deploy and use their respective ledgers, and how to use the ICP Bitcoin integration. This level also covers ICP's form of governance through the NNS and the CLI tool quill that can be used to interact with the ICP ledger, ckBTC, and the NNS. Here's the full breakdown of level 4: -- [4.1 Using the ICP ledger](/docs/current/tutorials/developer-journey/level-4/4.1-icp-ledger): In this tutorial, we'll dive into how to deploy a local instance of the ICP ledger canister and how to interact with it: +- [4.1 Using the ICP ledger](/docs/current/tutorials/developer-liftoff/level-4/4.1-icp-ledger): In this tutorial, we'll dive into how to deploy a local instance of the ICP ledger canister and how to interact with it: - Accounts. - Transaction types. - Deploying the ICP ledger locally. @@ -32,7 +32,7 @@ Here's the full breakdown of level 4: - Using the Candid UI. - Resources. -- [4.2 ICRC-1 tokens](/docs/current/tutorials/developer-journey/level-4/4.2-icrc-tokens): For developers to create their own fungible tokens on the Internet Computer, the ICRC-1 token standard can be used. For this tutorial, we'll focus on the ICRC-1 standard, ICRC-1 ledger, and briefly look into the ICRC-2 standard: +- [4.2 ICRC-1 tokens](/docs/current/tutorials/developer-liftoff/level-4/4.2-icrc-tokens): For developers to create their own fungible tokens on the Internet Computer, the ICRC-1 token standard can be used. For this tutorial, we'll focus on the ICRC-1 standard, ICRC-1 ledger, and briefly look into the ICRC-2 standard: - What’s the difference between the ICP and ICRC-1 ledgers? - `Account`s versus `AccountIdentifier`s. - Endpoints. @@ -50,7 +50,7 @@ Here's the full breakdown of level 4: - Using the Candid UI. - Resources. -- [4.3 ckBTC and Bitcoin integration](/docs/current/tutorials/developer-journey/level-4/4.3-ckbtc-and-bitcoin): One of the key features of the Internet Computer is known as **chain-key cryptography**. This feature enables integrations with other networks, such as the Bitcoin network. In this tutorial, we take a look at ckBTC and the Internet Computer's Bitcoin integration: +- [4.3 ckBTC and Bitcoin integration](/docs/current/tutorials/developer-liftoff/level-4/4.3-ckbtc-and-bitcoin): One of the key features of the Internet Computer is known as **chain-key cryptography**. This feature enables integrations with other networks, such as the Bitcoin network. In this tutorial, we take a look at ckBTC and the Internet Computer's Bitcoin integration: - Bitcoin integration architecture. - What is ckBTC? - Bitcoin use cases on ICP. @@ -65,7 +65,7 @@ Here's the full breakdown of level 4: - Sending BTC. - Resources. -- [4.4 NNS governance and staking](/docs/current/tutorials/developer-journey/level-4/4.4-nns-governance): The Network Nervous System (NNS) is the governing body of the Internet Computer. It is a decentralized autonomous organization that is hosted fully onchain and is responsible for making protocol-level upgrades to ICP: +- [4.4 NNS governance and staking](/docs/current/tutorials/developer-liftoff/level-4/4.4-nns-governance): The Network Nervous System (NNS) is the governing body of the Internet Computer. It is a decentralized autonomous organization that is hosted fully onchain and is responsible for making protocol-level upgrades to ICP: - What is the NNS? - Neurons. - Proposals. @@ -75,7 +75,7 @@ Here's the full breakdown of level 4: - Staking ICP in a neuron. - Interacting with NNS proposals. -- [4.5 Using quill](/docs/current/tutorials/developer-journey/level-4/4.5-using-quill): Quill is a ledger and governance toolkit that provides support for self-custody of ICP tokens and functionality to interact with the NNS, SNSs, and ICP ledger from a **cold wallet**: +- [4.5 Using quill](/docs/current/tutorials/developer-liftoff/level-4/4.5-using-quill): Quill is a ledger and governance toolkit that provides support for self-custody of ICP tokens and functionality to interact with the NNS, SNSs, and ICP ledger from a **cold wallet**: - What is quill? - Downloading and installing quill. - Using quill’s basic commands. @@ -83,7 +83,7 @@ Here's the full breakdown of level 4: - Using quill with the NNS. - Resources. -- [4.6 Motoko level 4](/docs/current/tutorials/developer-journey/level-4/4.6-motoko-lvl4): In this final Motoko module of the developer ladder series, we'll cover the following Motoko concepts and components: +- [4.6 Motoko level 4](/docs/current/tutorials/developer-liftoff/level-4/4.6-motoko-lvl4): In this final Motoko module of the developer liftoff series, we'll cover the following Motoko concepts and components: - Mutable state. - Immutable variables versus mutable variables. - Reading data from mutable memory. @@ -115,7 +115,7 @@ You can view the reference documentation for the ledger [here](/docs/current/ref This week, the developer docs saw several updates, which include: -- Publication of the six documents that make up [Level 4 of the developer ladder](/docs/current/tutorials/developer-journey/level-4/). +- Publication of the six documents that make up [Level 4 of the developer liftoff](/docs/current/tutorials/developer-liftoff/level-4/). - The [ledger reference documentation](/docs/current/references/ledger#_accounts) has been updated to include the new `account_identifier` method. - A new document on the [canister history](/docs/current/developer-docs/smart-contracts/maintain/history) feature has been created. - A new community-contributed JavaScript signature verification library has been added to the documentation for [independently verifying signatures](/docs/current/developer-docs/web-apps/independently-verifying-ic-signatures). diff --git a/blog/news-and-updates/2023-11-15-update.mdx b/blog/news-and-updates/2023-11-15-update.mdx index bd9da29203..cdc2c578b2 100644 --- a/blog/news-and-updates/2023-11-15-update.mdx +++ b/blog/news-and-updates/2023-11-15-update.mdx @@ -1,6 +1,6 @@ --- title: Developer weekly update November 15, 2023 -description: In this week's issue, we're excited to talk about episode 3 of the ICP developer ladder video series, the recent 'Let's Talk ICP-ETH integration' talk, and the latest Motoko release, v0.10.2. +description: In this week's issue, we're excited to talk about episode 3 of the ICP developer liftoff video series, the recent 'Let's Talk ICP-ETH integration' talk, and the latest Motoko release, v0.10.2. tags: [Devs] image: /img/blog/dev-update-blog-nov-15.jpg --- @@ -9,20 +9,20 @@ image: /img/blog/dev-update-blog-nov-15.jpg ![November 15 2023](../../static/img/blog/dev-update-blog-nov-15.jpg) -Good afternoon developers and welcome to this week's edition of developer weekly! In this week's issue, we're excited to talk about episode 3 of the ICP developer ladder video series, the recent 'Let's Talk ICP-ETH integration' talk, and the latest Motoko release, v0.10.2. Let's get started! +Good afternoon developers and welcome to this week's edition of developer weekly! In this week's issue, we're excited to talk about episode 3 of the ICP developer liftoff video series, the recent 'Let's Talk ICP-ETH integration' talk, and the latest Motoko release, v0.10.2. Let's get started! -## Episode 3 of the developer ladder video series +## Episode 3 of the developer liftoff video series -Episode 3 of the video series corresponding to the developer ladder tutorial series is now live on the DFINITY YouTube channel! In this episode, we walk through how to set up your developer environment by installing IC SDK, Node.js, and getting familiar using a command line interface through gaining a basic introduction to using CLI commands. +Episode 3 of the video series corresponding to the developer liftoff tutorial series is now live on the DFINITY YouTube channel! In this episode, we walk through how to set up your developer environment by installing IC SDK, Node.js, and getting familiar using a command line interface through gaining a basic introduction to using CLI commands. -New episodes of the developer ladder are released every week, and will correspond to each tutorial included in the developer ladder series on the [developer documentation](/docs/current/tutorials/developer-journey/). +New episodes of the developer liftoff are released every week, and will correspond to each tutorial included in the developer liftoff series on the [developer documentation](/docs/current/tutorials/developer-liftoff/). You can find the video tutorial on YouTube [here](https://t.co/X9nF5k9zFF). ## Let’s talk ICP-ETH integration: ckETH, EVM world computer and more -In addition to the developer ladder video, another great educational asset has been published on the DFINITY YouTube channel this past week: 'Let’s talk ICP-ETH integration: ckETH, EVM world computer and more'! This video features an insightful, in-depth discussion about the upcoming ICP-ETH integration, featuring Kyle Langham, Director of Data and Analytics at DFINITY, Jan Camenisch, CTO of DFINITY -Lomesh Dutta, VP of Growth at DFINITY, Manu Drijvers, Director of Engineering at DFINITY, Marcin Kaźmierczak, COO at Redstone Oracles, and Max Chamberlin, CEO of BITFINITY. You'll definitely want to give this one a listen! +In addition to the developer liftoff video, another great educational asset has been published on the DFINITY YouTube channel this past week: 'Let’s talk ICP-ETH integration: ckETH, EVM world computer and more'! This video features an insightful, in-depth discussion about the upcoming ICP-ETH integration, featuring Kyle Langham, Director of Data and Analytics at DFINITY, Jan Camenisch, CTO of DFINITY +Lomesh Dutta, VP of Growth at DFINITY, Manu Drijvers, Director of Engineering at DFINITY, Marcin Kaźmierczak, COO at Redstone Oracles, and Max Chamberlin, CEO of BITFINITY. You'll definitely want to give this one a listen! You can find the full talk on YouTube [here](https://www.youtube.com/watch?v=JuwHREhrsTc). @@ -38,13 +38,13 @@ This week, Motoko version 0.10.2 was released! Some important takeaways from the - The actor literal (actor ``) will trap if the binary representation of the textually encoded principal `` contains more than 29 bytes. -- A bug fix to separate `tag` from `underscore` in coverage warnings. +- A bug fix to separate `tag` from `underscore` in coverage warnings. -- Code compiled for targets WASI (-wasi-system-api) and pure Wasm (-no-system-api) can now use up to 4GB of stable memory. +- Code compiled for targets WASI (-wasi-system-api) and pure Wasm (-no-system-api) can now use up to 4GB of stable memory. -- A bug fix to fully implement Region.loadXXX/storeXXX for `Int8`, `Int16`, and `Float`. +- A bug fix to fully implement Region.loadXXX/storeXXX for `Int8`, `Int16`, and `Float`. -- A bug fix in `motoko-base` that fixes `Array.tabulateVar` to avoid repeated side effects. +- A bug fix in `motoko-base` that fixes `Array.tabulateVar` to avoid repeated side effects. You can read the full release notes [here](https://github.com/dfinity/motoko/releases/tag/0.10.2). diff --git a/blog/news-and-updates/2023-11-22-update.mdx b/blog/news-and-updates/2023-11-22-update.mdx index cc87683026..b9408c9032 100644 --- a/blog/news-and-updates/2023-11-22-update.mdx +++ b/blog/news-and-updates/2023-11-22-update.mdx @@ -1,6 +1,6 @@ --- title: Developer weekly update November 22, 2023 -description: This week, we dive into the new replica-signed queries feature, the new ICP JavaScript agent release, and episode 4 of the developer ladder video series! +description: This week, we dive into the new replica-signed queries feature, the new ICP JavaScript agent release, and episode 4 of the developer liftoff video series! tags: [Devs] image: /img/blog/dev-update-blog-nov-22.jpg --- @@ -9,11 +9,11 @@ image: /img/blog/dev-update-blog-nov-22.jpg ![November 22 2023](../../static/img/blog/dev-update-blog-nov-22.jpg) -Hello developers and welcome to this week's edition of developer weekly! This week, we dive into the new replica-signed queries feature, the new [ICP JavaScript agent](https://www.npmjs.com/package/@dfinity/agent)` release, and episode 4 of the developer ladder video series! +Hello developers and welcome to this week's edition of developer weekly! This week, we dive into the new replica-signed queries feature, the new [ICP JavaScript agent](https://www.npmjs.com/package/@dfinity/agent)` release, and episode 4 of the developer liftoff video series! ## Replica-signed queries -This past week, we've rolled out our newest feature: replica-signed queries! This feature strives to enhance the trustworthiness of queries by providing signatures in query responses that provide a level of validation to better guarantee against malicious query attacks. +This past week, we've rolled out our newest feature: replica-signed queries! This feature strives to enhance the trustworthiness of queries by providing signatures in query responses that provide a level of validation to better guarantee against malicious query attacks. This feature includes two primary changes. First, the subnet state tree now exposes the public keys of the replicas. Then, query responses will now contain a signature that signs specific parts of the response using the replica's private key. The query response can be validated by fetching the replica's public key from the state tree, reading the public key of the signing replica, then verifying the signature. @@ -25,17 +25,17 @@ To support replica-signed queries, a new version of the [ICP JavaScript agent](h ### New features: -- Node keys can now be fetched from subnet certificates. +- Node keys can now be fetched from subnet certificates. -- Logic catches that throw errors are now retried. +- Logic catches that throw errors are now retried. - `canisterStatus` now shows subnet metrics. -- Round ingress expiry is now enabled. +- Round ingress expiry is now enabled. - Nonce values have been removed from queries. -- `ExpirableMap` has been introduced and is used for subnet keys. +- `ExpirableMap` has been introduced and is used for subnet keys. ### Bug fixes: @@ -43,14 +43,14 @@ To support replica-signed queries, a new version of the [ICP JavaScript agent](h - Fixed a bug regarding `bigint` `toJson` trailing space. -- Fixed a bug where service ordering must be alphabetical. +- Fixed a bug where service ordering must be alphabetical. You can read the full release notes [here](https://github.com/dfinity/agent-js/releases/tag/v0.20.0). -## Developer ladder episode 0.4: Introduction to canisters +## Developer liftoff episode 0.4: Introduction to canisters -The fourth video installment of the developer ladder video series has been released! In this episode, developers are introduced to canisters, their architecture, and the different types of canisters that they'll come across in the developer ladder. +The fourth video installment of the developer liftoff video series has been released! In this episode, developers are introduced to canisters, their architecture, and the different types of canisters that they'll come across in the developer liftoff. You can watch the full video on YouTube here: -[![ICP Developer Ladder 0.4 | Introduction to Canisters](https://img.youtube.com/vi/mwbRRk9T5Nw/0.jpg)](https://www.youtube.com/watch?v=mwbRRk9T5Nw) +[![ICP Developer Liftoff 0.4 | Introduction to Canisters](https://img.youtube.com/vi/mwbRRk9T5Nw/0.jpg)](https://www.youtube.com/watch?v=mwbRRk9T5Nw) diff --git a/blog/news-and-updates/2023-12-06-update.mdx b/blog/news-and-updates/2023-12-06-update.mdx index da5a0ab057..2519996865 100644 --- a/blog/news-and-updates/2023-12-06-update.mdx +++ b/blog/news-and-updates/2023-12-06-update.mdx @@ -1,6 +1,6 @@ --- title: Developer weekly update December 6, 2023 -description: This week, we have some very exciting announcements about ckETH, an EU subnet proposal, and the final level of the developer ladder series! +description: This week, we have some very exciting announcements about ckETH, an EU subnet proposal, and the final level of the developer liftoff series! tags: [Devs] image: /img/blog/dev-update-blog-dev-6.jpg --- @@ -9,11 +9,11 @@ image: /img/blog/dev-update-blog-dev-6.jpg ![December 6 2023](../../static/img/blog/dev-update-blog-dev-6.jpg) -Hello developers and welcome back to developer weekly! This week, we have some very exciting announcements about ckETH, an EU subnet proposal, and the final level of the developer ladder series! Let's get started. +Hello developers and welcome back to developer weekly! This week, we have some very exciting announcements about ckETH, an EU subnet proposal, and the final level of the developer liftoff series! Let's get started. -## ckETH: now live! +## ckETH: now live! -On Friday, December 1st, the NNS proposals to enable ckETH on ICP went live. We're excited to announce that all proposals were passed by the NNS, and ckETH is now live on the mainnet! +On Friday, December 1st, the NNS proposals to enable ckETH on ICP went live. We're excited to announce that all proposals were passed by the NNS, and ckETH is now live on the mainnet! ckETH has been added to the ICP dashboard, which you can view [here](https://dashboard.internetcomputer.org/ethereum). You can learn how to interact with ckETH by reviewing the ckETH minter documentation [here](https://github.com/dfinity/ic/blob/master/rs/ethereum/cketh/minter/README.adoc). @@ -27,25 +27,25 @@ You can join the forum discussion [here](https://forum.dfinity.org/t/cketh-a-can ## EU subnet NNS proposal -Another new and exciting proposal is now live for voting on the NNS. This proposal is the first of three proposals that proposes launching an EU subnet! Adding this subnet would be a huge milestone in enabling GDPR-compliant services on ICP. +Another new and exciting proposal is now live for voting on the NNS. This proposal is the first of three proposals that proposes launching an EU subnet! Adding this subnet would be a huge milestone in enabling GDPR-compliant services on ICP. -This proposal will create a new subnet type of 'European'. If this initial proposal passes, two additional proposals will be submitted. The first will propose the creation of a subnet with only node machines located in the European geographic region, and a second proposal will assign the subnet type 'European' to the newly created subnet. +This proposal will create a new subnet type of 'European'. If this initial proposal passes, two additional proposals will be submitted. The first will propose the creation of a subnet with only node machines located in the European geographic region, and a second proposal will assign the subnet type 'European' to the newly created subnet. This new subnet type will enable developers and enterprises alike to benefit from: - Building and deploying applications that require a GDPR-aligned infrastructure. -- Building and deploying applications that leverage blockchain decentralization with regional data sovereignty needs. +- Building and deploying applications that leverage blockchain decentralization with regional data sovereignty needs. It is important to note that while the creation of an EU subnet would enable applications to be GDPR-compliant, developers and enterprises will need to take further measures to ensure that their applications meet all GDPR requirements. You can join the discussion on the forum [here](https://forum.dfinity.org/t/european-subnet-on-the-internet-computer-a-step-toward-gdpr-ready-infrastructure/25110), and you can vote on the first proposal [here](https://nns.ic0.app/proposal/?u=qoctq-giaaa-aaaaa-aaaea-cai&proposal=126328) -## Developer ladder level 5 +## Developer liftoff level 5 -The final level of the developer ladder tutorial series has been published! In this final level, you can learn about the most advanced features of ICP, how to build dapps that utilize these features, and where to go to further your developer ladder on your own. This level's tutorials cover: +The final level of the developer liftoff tutorial series has been published! In this final level, you can learn about the most advanced features of ICP, how to build dapps that utilize these features, and where to go to further your developer liftoff on your own. This level's tutorials cover: -- [5.1 Developing an encrypted notes dapp with vetKeys](/docs/current/tutorials/developer-journey/level-5/5.1-vetKeys-tutorial): The Internet Computer vetKeys feature provides developers with more enhanced privacy, encryption, threshold decryption, and security capabilities for their projects and dapps: +- [5.1 Developing an encrypted notes dapp with vetKeys](/docs/current/tutorials/developer-liftoff/level-5/5.1-vetKeys-tutorial): The Internet Computer vetKeys feature provides developers with more enhanced privacy, encryption, threshold decryption, and security capabilities for their projects and dapps: - What is vetKeys? - Crypto primitives. - Public key encryption (PKE). @@ -66,7 +66,7 @@ The final level of the developer ladder tutorial series has been published! In t - Starting the local development server. - Using the dapp. -- [5.2 Developing a dapp using the IC Ethereum integration](/docs/current/tutorials/developer-journey/level-5/5.2-ICP-ETH-tutorial): In this tutorial, you'll use the DFINITY IC ETH starter project to deploy a boilerplate dapp that showcases how the IC can query information from the Ethereum network using HTTPS outcalls: +- [5.2 Developing a dapp using the IC Ethereum integration](/docs/current/tutorials/developer-liftoff/level-5/5.2-ICP-ETH-tutorial): In this tutorial, you'll use the DFINITY IC ETH starter project to deploy a boilerplate dapp that showcases how the IC can query information from the Ethereum network using HTTPS outcalls: - Deploying the ETH starter project. - Project technology stack. - Prerequisites. @@ -79,7 +79,7 @@ The final level of the developer ladder tutorial series has been published! In t - Going further. - Resources. -- [5.3 Creating a decentralized token swap](/docs/current/tutorials/developer-journey/level-5/5.3-token-swap-tutorial): In this tutorial, you'll deploy a simple token swap canister that demonstrates how to deposit, swap, and withdraw tokens: +- [5.3 Creating a decentralized token swap](/docs/current/tutorials/developer-liftoff/level-5/5.3-token-swap-tutorial): In this tutorial, you'll deploy a simple token swap canister that demonstrates how to deposit, swap, and withdraw tokens: - Decentralized token swap canister. - Prerequisites. - Cloning the `icrc2-swap` example. @@ -93,10 +93,10 @@ The final level of the developer ladder tutorial series has been published! In t - Depositing tokens into the swap canister. - Performing a token swap. - Withdrawing tokens. - - Checking token balances. + - Checking token balances. -- [5.4 Creating NFTs on the IC](/docs/current/tutorials/developer-journey/level-5/5.4-NFT-tutorial): A **non-fungible token**, commonly referred to as an NFT, is a type of tokenized asset that is assigned a unique identifier that is used to distinguish one NFT from another: +- [5.4 Creating NFTs on the IC](/docs/current/tutorials/developer-liftoff/level-5/5.4-NFT-tutorial): A **non-fungible token**, commonly referred to as an NFT, is a type of tokenized asset that is assigned a unique identifier that is used to distinguish one NFT from another: - How do NFTs work? - NFT standards. - DIP721. @@ -118,7 +118,7 @@ The final level of the developer ladder tutorial series has been published! In t - Querying the owner of a specific token ID. - Resources. -- [5.5 Creating an auction dapp](/docs/current/tutorials/developer-journey/level-5/5.5-auction-tutorial): +- [5.5 Creating an auction dapp](/docs/current/tutorials/developer-liftoff/level-5/5.5-auction-tutorial): - How does an auction work? - Creating an auction dapp. - Prerequisites. @@ -129,7 +129,7 @@ The final level of the developer ladder tutorial series has been published! In t - Deploying the project's canisters. - Using the dapp. -- [5.6 Next steps](/docs/current/tutorials/developer-journey/level-5/5.6-next-steps): In this final tutorial, you'll learn about some of the different resources to help guide you further in your personal developer ladder: +- [5.6 Next steps](/docs/current/tutorials/developer-liftoff/level-5/5.6-next-steps): In this final tutorial, you'll learn about some of the different resources to help guide you further in your personal developer liftoff: - Developer grants. - Developer bounties. - Hackathons. diff --git a/blog/news-and-updates/2023-12-20-update.mdx b/blog/news-and-updates/2023-12-20-update.mdx index c8ac05a471..493a8a0df3 100644 --- a/blog/news-and-updates/2023-12-20-update.mdx +++ b/blog/news-and-updates/2023-12-20-update.mdx @@ -1,6 +1,6 @@ --- title: Developer weekly update December 20, 2023 -description: This week, we're excited to talk about the upcoming 'Zero to Dapp' hackathon, introduce a new node metrics API, and the latest episode of the developer ladder video series! +description: This week, we're excited to talk about the upcoming 'Zero to Dapp' hackathon, introduce a new node metrics API, and the latest episode of the developer liftoff video series! tags: [Devs] image: /img/blog/dev-update-blog-dec-20.jpg --- @@ -9,7 +9,7 @@ image: /img/blog/dev-update-blog-dec-20.jpg ![December 20 2023](../../static/img/blog/dev-update-blog-dec-20.jpg) -Hello developers and welcome back to developer weekly! This week, we're excited to talk about the upcoming 'Zero to Dapp' hackathon, introduce a new node metrics API, and the latest episode of the developer ladder video series! Let's get started. +Hello developers and welcome back to developer weekly! This week, we're excited to talk about the upcoming 'Zero to Dapp' hackathon, introduce a new node metrics API, and the latest episode of the developer liftoff video series! Let's get started. ## 'Zero to Dapp' hackathon @@ -19,17 +19,17 @@ In a collaboration with Encode Club, ICP is launching a four-week hackathon star Node Provider compensation is receiving an upgrade! ICP is introducing a new approach that will enable a new node provider compensation model that rewards nodes for providing 'useful work' rather than the current, fixed-rate location based model. This change has the potential to improve the network's performance and reliability. -Providing a new node metrics API endpoint is the first step toward implementing a new reward distribution model in the future. The metrics are determined through consensus, which ensure that the metrics provided are authentic and not manipulated by a node provider. Developing these new trustworthy node metrics has been a collaboration between the Consensus, Message Routing, Execution, and Decentralized Reliability Engineering teams. +Providing a new node metrics API endpoint is the first step toward implementing a new reward distribution model in the future. The metrics are determined through consensus, which ensure that the metrics provided are authentic and not manipulated by a node provider. Developing these new trustworthy node metrics has been a collaboration between the Consensus, Message Routing, Execution, and Decentralized Reliability Engineering teams. For developers and users, this initiative signifies a performance-driven and transparent system that strives to encourage node providers to maintain optimal performance and health of their nodes. These new metrics enable reliable monitoring and provide deeper insights into the operation of nodes, and ensures alignment with the network's goals. You can learn more in the forum post [here](https://forum.dfinity.org/t/trustworthy-node-metrics-for-useful-work/22989). -## Developer ladder episode 1.1: Exploring a live demo +## Developer liftoff episode 1.1: Exploring a live demo -In this episode of the ICP developer ladder, developers will learn how to explore a live, deployed canister that utilizes the playground through the `dfx deploy --playground` command to get a feel for deploying canisters on the IC before developing and deploying their own. +In this episode of the ICP developer liftoff, developers will learn how to explore a live, deployed canister that utilizes the playground through the `dfx deploy --playground` command to get a feel for deploying canisters on the IC before developing and deploying their own. -The documentation for this episode can be found [here](/docs/current/tutorials/developer-journey/level-1/1.1-live-demo), and you can watch the full video on the DFINITY YouTube channel [here](https://www.youtube.com/watch?v=-se6Se9z-aM). +The documentation for this episode can be found [here](/docs/current/tutorials/developer-liftoff/level-1/1.1-live-demo), and you can watch the full video on the DFINITY YouTube channel [here](https://www.youtube.com/watch?v=-se6Se9z-aM). That'll wrap up this week. Tune back in next week for more developer updates! diff --git a/blog/news-and-updates/2024-01-03-update.mdx b/blog/news-and-updates/2024-01-03-update.mdx index 8d7fe1dfb3..ea1bb3006c 100644 --- a/blog/news-and-updates/2024-01-03-update.mdx +++ b/blog/news-and-updates/2024-01-03-update.mdx @@ -13,15 +13,15 @@ Hello developers and happy New Year! To kick off the year, let's explore some of ## `dfx new` updates -`dfx new` is a core command used by developers to create new projects. By default, it uses a 'Hello, world!' template. Currently, this command doesn't support the ability to choose a different project template, CDK, or frontend framework. To offer a richer workflow for bootstrapping new projects, the `dfx new` command will be updated and reworked to enhance the developer experience. Part of this update will include the ability to choose between different project templates, languages, and frontend frameworks when creating a new project. +`dfx new` is a core command used by developers to create new projects. By default, it uses a 'Hello, world!' template. Currently, this command doesn't support the ability to choose a different project template, CDK, or frontend framework. To offer a richer workflow for bootstrapping new projects, the `dfx new` command will be updated and reworked to enhance the developer experience. Part of this update will include the ability to choose between different project templates, languages, and frontend frameworks when creating a new project. ## Version manager for dfx -When developers want to use different versions of dfx, the current workflow to switch between them can be tedious and time consuming. To make this process easier, a new dfx version manager tool is currently under development. The tool, known as `dfxvm`, will provide developers the ability to install and manage different versions of dfx seamlessly. It will also pave the way for supporting package manager installations of dfx in the future. +When developers want to use different versions of dfx, the current workflow to switch between them can be tedious and time consuming. To make this process easier, a new dfx version manager tool is currently under development. The tool, known as `dfxvm`, will provide developers the ability to install and manage different versions of dfx seamlessly. It will also pave the way for supporting package manager installations of dfx in the future. ## Cycles ledger -To enhance and improve cycles management across projects, the upcoming cycles ledger will replace the current cycles wallet workflow. The current cycles wallet workflow is a common pain point for new developers, since it requires significant prerequisite knowledge to be used effectively. Once the cycles ledger has been released, dfx will use this new cycles ledger to simplify the cycles management workflow for developers deploying their dapps to the mainnet. The cycles wallet will still be maintained and available for developers to use if they prefer. +To enhance and improve cycles management across projects, the upcoming cycles ledger will replace the current cycles wallet workflow. The current cycles wallet workflow is a common pain point for new developers, since it requires significant prerequisite knowledge to be used effectively. Once the cycles ledger has been released, dfx will use this new cycles ledger to simplify the cycles management workflow for developers deploying their dapps to the mainnet. The cycles wallet will still be maintained and available for developers to use if they prefer. ## Canister logging @@ -29,23 +29,23 @@ An important enhancement for canister debugging is on the way: logging for canis ## Streaming support -To support video hosting and streaming dapps, the asset canister will soon support streaming through content-range requests. For example, this support will include the ability for the HTML `