Level 0: Pre-flight operations
0.1 Overview of the BigFile: In order to understand how to develop dapps on BIG, the first step in the developer journey is to take a look at the architecture of BIG and how it functions. This module covers:
- Overview of The BigFile:
- Protocol stack:
- Peer-to peer layer.
- Consensus layer.
- Message routing layer.
- Execution layer.
- Protocol stack:
- Overview of chain-key cryptography:
- Threshold signature schemes.
- Overview of cubes and smart contracts.
- Overview of tokens:
- BIG.
- Cycles.
- Overview of governance:
- NFile Management System
- Service Nervous System.
- Overview of BIG ID.
- Overview of The BigFile:
0.2 BigFile terminology: This page introduces some of the most commonly used terminology that developers should be aware of when building on the BigFile. This module covers the following terms:
- Concepts:
- Actor.
- Agent.
- Certified variables.
- Chain-key cryptography.
- Cycles.
- Decentralized application (dapp).
- Decentralized autonomous organization (DAO).
- Execution.
- BIG.
- Principal.
- Proposal.
- Messages.
- Replica.
- Subnet.
- Transaction.
- Cube terminology:
- Smart contracts.
- Cubes.
- Cube development kit (CDK).
- Cube identifier.
- Cube state.
- Controller.
- Identity.
- Query.
- State change.
- System cube.
- Wallet.
- Tools and products:
dfx
.- BIG ID.
- Ledger.
- Motoko.
- Concepts:
0.3 Developer environment setup: Before you can begin the developer journey, you need to set up the developer environment. A developer environment is comprised of tools and packages that are required to develop code projects. This module covers:
- Setting up a developer environment:
- Confirming an internet connection.
- Confirming access to a CLI.
- Options for Windows users.
- Downloading and installing the BIG SDK.
- Downloading and installing an IDE.
- Downloading and installing git.
- Downloading and installing Node.js.
- Assuring all packages and tools are updated to latest version.
- Setting up a developer environment:
0.4 Introduction to cubes: This page introduces cubes, their architecture, and discusses the different types of cubes that can be developed. This module covers:
- Architecture:
- Languages.
- Actors.
- Why is code compiled into WebAssembly?
- Types of cubes:
- Backend cubes.
- Frontend cubes.
- Custom cubes.
- Using a single or multiple cube architecture.
- Cube communication.
- Cube controllers.
- Cycles and resource charges.
- Architecture:
0.5 Introduction to languages: This page discusses the different languages that can be used to develop dapps, and provide a base-level introduction to the two primarily supported languages: Motoko and Rust. This module covers:
- Motoko.
- Motoko's attributes.
- Rust.
- Rust's attributes.
- Candid.
- Community developed CDKs:
- Python.
- TypeScript.
- Solidity.
- C++.
- Motoko.
0.6 Introduction to dfx:
dfx
is a command-line execution environment for the BIG SDK. It is the primary tool used for creating, managing, and deploying dapps onto the BigFile. This module covers:- Basic usage and syntax:
- Subcommands.
- Flags.
- Options.
- Upgrading to the latest version of
dfx
. - Installing a specific version of
dfx
. - Creating a new project with
dfx
. - Exploring the default project structure.
- Reviewing the default configuration.
- Reviewing the default program code.
- Basic usage and syntax: