Introduction to Polkadot SDK - Substrate & FRAME
Developed by the Technical Education team at the Web3 Foundation, this course provides a comprehensive overview of the Substrate blockchain framework and building blockchains.
Prerequisites
Before starting, it would be wise to either have experience with Rust, or have taken our Intro to Rust course. Substrate depends heavily on Rust, and it will be elaborated on extensively in this course.
This course will provide a solid foundation in navigating the creation and modification of custom blockchain modules, called pallets. This course will serve as an introduction into becoming a Substrate developer, the factors involved, as well as a guided, hands on portion to building a custom FRAME pallet.
In this course, you will:
- Learn about FRAME, the primary mode of implementation for Substrate
- Learn at high-level how storage, the runtime, and pallets work in FRAME
- Learn how to build a basic pallet and run a custom blockchain via a template
- Learn basic testing of a FRAME pallet
- Learn best practices and important considerations when building a FRAME pallet
- Build and deploy a basic, social-network like blockchain pallet called
connect
Module 1 - Why Learn Substrate?
Module 2 - Substrate 101 - Overview of the Substrate Framework
Module 3 - Installing Dependencies & Node Template
- Installing Dependencies & Node Template
- Install, configure, and run the Node Template
- Node Template Tour & Overview
- Installing & exploring the frontend template
Module 4 - Intro to Building a Custom FRAME Pallet
- Structuring our project
- Adjusting Pallet Config & Runtime Overview
- Creating storage maps
- Events & Errors
Module 5 - Building a Custom FRAME Pallet - Making our pallet actionable
Module 6 - Building a Custom FRAME Pallet - Deploying & Testing
- Running the node template
- Use the frontend-template to test your pallet
- Using Polkadot.js to explore your storage
Module 7 - Building a Custom FRAME Pallet - FRAME Best Practices
- Thinking in terms of blockchain development
- Runtime Panics & FRAME Best Practices
- How to approach testing in FRAME