Substrate onboarding

A word of introduction and some tips.

Introduction

Substrate is a framework, on top of which we develop our blockchain. It provides a highly configurable environment and comes with a wide range of advanced functionalities. Behind its generic API there hides an impressive, but very complex codebase.

For us - Aleph developers - it is essential to be familiar with the high-level architecture of a Substrate-based system. What is more, on a daily basis we work directly with Substrate code, implement extensions to the provided software and programmatically interact with a running chain. Therefore, we treat getting acquainted with Substrate as the second crucial step in the onboarding process.

There are already a lot of Substrate tutorials and introductory materials, available both as coding exercises, live presentations, videos, or slides. However, we will provide you with yet another learning path. There are two main reasons for that. Firstly, even with so much stuff out there, it is completely not obvious where you should start: there is no clear entry point for newcomers. Secondly, the tasks that we created are well suited to our common needs, and thus, they should better prepare you for the forthcoming challenges.

Nevertheless, as with most tutorials, we don't expect that 'one size fits all'. We did our best, but it is possible, that you will not need or enjoy all the tasks. The best thing to do then, is to discuss with your buddy the approach that will be the most appropriate for you. You may pick only a subset of the exercises, modify their goals or come up with alternative ones, once you get some feeling. The main goal of this part of onboarding is to familiarize yourself with the basics of Substrate and get your hands dirty with all that stuff.

Prerequisites

You should be quite comfortable with Rust programming language - mainly for reading the existing code, but also for implementing short pieces of new functionalities.

Content overview

Firstly, we gather some materials about Substrate, including official tutorials and repositories. You should find some of them helpful in completing exercises. Other materials may serve as supplementary to the exercises.

It may be a good idea to breeze through official Substrate tutorials after completing Exercise 01. You really don't have to perform each task: the most valuable thing there is to get a general hang of things and know where to find detailed instructions for some actions. A serious part of the topics raised there will be covered by our tasks (but they will be put in the Aleph context).

The main content of this tutorial is a suite of more than a dozen exercises. Most of them are rather single-goal, focusing on a particular aspect of Substrate. There are some dependencies between them, so the recommended order is to follow them one by one. Part of them will leave you some freedom for deciding about details, so that you can experiment on your own and explore some possibilities.

At the end, you will find two old exercises that originally formed our internal Substrate onboarding suite. They are much more complex than any of the new task, and each of them is quite a challenge. If you prefer this way of learning a new framework - they are waiting.

None of the tasks (except the old ones) should take you more than 1 or 2 days. If you are struggling with some exercise for too long, reach out to your buddy or the #dev-hotline channel.

Last updated

Was this helpful?