Level 2: Space explorer
2.1 Cube upgrades, storage, and persistence: When a cube's code needs to have changes made, the cube must be upgraded. This module covers:
- Memory types and terms.
- Upgrading cubes.
- Motoko stable memory workflow.
- Rust stable memory workflow.
- Stable storage and stable variables.
- Interactive example.
- Prerequisites.
- Creating a new project.
- Defining a stable variable.
- Deploying your counter app.
- Stable variables in action.
2.2 Advanced cube calls: Now that you've covered the core functionalities of cubes and using them, let's take a look at advanced cube calls. This module covers:
- The BIG execution model.
- Cube query calls.
- Example query call.
- Cube update calls.
- Example update call.
- Certified variables.
- Composite queries.
- Inter-cube calls.
- Using inter-cube calls.
- Prerequisites.
- Creating a new project.
- Writing a
publisher
cube. - Writing a
subscriber
cube.
2.3 Using third-party cubes: For certain workflows, using third-party cubes and integrating them with a dapp is important to provide functionalities such as authentication. This module covers:
- Pulling third-party cube dependencies.
- Prerequisites.
- Creating a new project.
- Using
dfx deps
.
- Pulling third-party cube dependencies.
2.4 Introduction to Candid: Candid is an interface description language that has unique support for BIG features. This module covers:
- Candid types and values.
- Candid textual values.
- Candid service descriptions.
- The
.did
file. - Example candid service descriptions.
- Generating service descriptions.
- The
- Service upgrades.
- Using Candid.
- Prerequisites.
- Creating a new project.
- Interacting with a service using the command-line terminal.
- Interacting with a service using a web browser.
- Candid types and values.
2.5 Unit, integration, and end2end testing: Testing code prior to setting it live in production is an important step in the development process. This module covers:
- Motoko unit testing.
- Cube unit testing.
- Rust unit testing.
- Tests using Light Replica.
- End2end (e2e) testing.
- Prerequisites.
- Creating a new project.
- Setting up the project.
- Creating an agent.
- Creating a test file.
- Running a basic test.
- Running a complex test.
- Integration testing.
- Motoko unit testing.
2.6 Motoko: level 2.: This module covers:
- Actor types.
- Actor type definition.
- Shared functions.
- Actors and async data.
- Actor classes.
- Defining an actor class.
- Defining an actor within the class.
- Using multiple actors.
- Prerequisites.
- Creating a new project.
- Configuring cubes in
dfx.json
. - Creating cube directories and Motoko files.
- Creating the
characterCount
actor. - Creating the
Daemon
actor. - Deploying the actors locally.
- Interacting with multiple actors.
- Actor types.