Skip to main content

Level 2: Space explorer

Intermediate
Tutorial
  • 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.
  • 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.
    • 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.
  • 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.
  • 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.