rusty-crewmates / substrate-tutorials

A collection of exercices to teach yourself Substrate
Apache License 2.0
131 stars 113 forks source link

Add these tutorials to Polkadot.Study #43

Closed sacha-l closed 1 year ago

sacha-l commented 1 year ago

To make these tutorials more visible, it would be neat to have them included in polkadot.study.

Cc @niklasp / niklas@eedee.net

niklasp commented 1 year ago

That would be nice! Are you open for it @tdelabro? I recently included the work in progress "Substrate In Bits" (from @abdbee).

With your input I could also create a filterable landing page for rusty crewmates tutorials.

tdelabro commented 1 year ago

Sure go ahead ! I wasn't aware of this initiative, but it's great!

niklasp commented 1 year ago

I haven't worked with rusty crewmates but it seems this describes it well.

Bildschirmfoto 2023-05-24 um 16 39 16

Actually all the things to learn are inside your repository. However I could imagine that an index page would be good. Something similar to this: https://polkadot.study/tutorials/substrate-in-bits/#table-of-technical-content. With a short description of the exercises and a link to each one. Could you imagine putting something like this together in a markdown file? I would then include your repo as a submodule to make it easier to sync with new content.

Anyway I added your repo to the substrate tag page here: https://polka.study/tutorials/tags/substrate

niklasp commented 1 year ago

@tdelabro could you imagine writing an index page and a short description?

So i could publish that as a tutorial itsself and direct users to this repo?

tdelabro commented 1 year ago

Sure. Is it just the text you are expecting. Or should it be formatted on a specific way (markdown, web)?

niklasp commented 1 year ago

You decide but markdown would be best, you could take this page as reference:

https://polkadot.study/tutorials/substrate-in-bits/#table-of-technical-content https://github.com/Chondria/SiB/blob/main/README.md

niklasp commented 1 year ago

@tdelabro any update here? would be awesoome to include it for more visibility. your tutorials are great for new substrate devs!

tdelabro commented 1 year ago

Hey @niklasp Do you think this will be good enough?

# Substrate tutorials

Substate tutorials is a collection of exercises that will theach you the basics of Substrate development and broaden your skillsets through real-world use cases.

## Getting started

Go to the tutorial [repository](https://github.com/rusty-crewmates/substrate-tutorials), fork it, clone it and start with the [first exercise](https://github.com/rusty-crewmates/substrate-tutorials/tree/main/exercises/ex00-testing).  
Run the crate tests, you will see they fail. Give a look to the `README.md` and code until all tests pass :)

If you want to run your pallet in a real runtime, you can easily edit the `substrate-node-template` and add your pallet to its runtime. It will allow you to interact with your code through tools like [polkadot.js](https://polkadot.js.org/apps/#/explorer).

## Table of content
| | name | objectives |
| ---| ---| ---|
|0| [testing](https://github.com/rusty-crewmates/substrate-tutorials/tree/main/exercises/ex00-testing) | learn how to write simple tests for an existing pallet|
|1| [pallet easy](https://github.com/rusty-crewmates/substrate-tutorials/tree/main/exercises/ex01-pallet-easy)| write a really simple erc20-like pallet |
|2| [runtime](https://github.com/rusty-crewmates/substrate-tutorials/tree/main/exercises/ex02-runtime) | add your pallet to a substrate runtime and launch a node|
|3| [pallet intermediate](https://github.com/rusty-crewmates/substrate-tutorials/tree/main/exercises/ex03-pallet-intermediate)| writing pallet is the bread and butter of substrate development, let's double down on those basics|
|4| [coupling](https://github.com/rusty-crewmates/substrate-tutorials/tree/main/exercises/ex04-pallet-coupling) | pallets can interact with each other, in different complex ways |
|5| [hooks](https://github.com/rusty-crewmates/substrate-tutorials/tree/main/exercises/ex05-hooks)| substrate allow you to write hooks that will multiply the possibilities of your chain|
|6| [weights](https://github.com/rusty-crewmates/substrate-tutorials/tree/main/exercises/ex06-weights) | in order to be incentive the block consensus authorities fees are collected on users transactions |
|7| [imbalances](https://github.com/rusty-crewmates/substrate-tutorials/tree/main/exercises/ex07-imbalances)| the supply of your chain token can vary, but there are some rules to respect when playing with it|
|8| [genesis config](https://github.com/rusty-crewmates/substrate-tutorials/tree/main/exercises/ex08-genesis-config) | you can give your chain an initial state before launching it|
|9| [mock](https://github.com/rusty-crewmates/substrate-tutorials/tree/main/exercises/ex09-mock)| learn how to mock your runtime in order to write handy and powerfull tests |
|10| [offchain worker](https://github.com/rusty-crewmates/substrate-tutorials/tree/main/exercises/ex10-offchain-worker) | another hook that allow nodes to do complex async computation in parallel of the chain execution |

## Contribute

This work is open-source, financed by a Web3 Foundation grant, so it really belongs to the community. Feel free to contribute to the repository with anything you think could help others.
niklasp commented 1 year ago

Yeah, thats fine. In case you write new tutorials, please ping me so i can update the index.

tdelabro commented 1 year ago

Sure I will !