An open API service indexing awesome lists of open source software.

https://github.com/cuteolaf/substrate-learning-resources

My self-learning course for mastering Substrate
https://github.com/cuteolaf/substrate-learning-resources

blockchain job-board resources substrate tutorials

Last synced: 3 months ago
JSON representation

My self-learning course for mastering Substrate

Awesome Lists containing this project

README

          

Master Substrate

> My self-learning course for mastering Substrate

## 1. Backgrounds

### Fundamentals

- [ ] [Blockchain basics](https://docs.substrate.io/main-docs/fundamentals/blockchain-basics/)
- [ ] [Why Substrate?](https://docs.substrate.io/main-docs/fundamentals/why-substrate/)
- [ ] [Architecture](https://docs.substrate.io/main-docs/fundamentals/architecture/)
- [ ] [Networks and blockchains](https://docs.substrate.io/main-docs/fundamentals/node-and-network-types/)
- [ ] [Runtime development](https://docs.substrate.io/main-docs/fundamentals/runtime-intro)
- [ ] [Consensus](https://docs.substrate.io/main-docs/fundamentals/consensus/)
- [ ] [Transactions and block basics](https://docs.substrate.io/main-docs/fundamentals/transaction-types/)
- [ ] [Transaction Lifecycle](https://docs.substrate.io/main-docs/fundamentals/transaction-lifecycle/)
- [ ] [State transitions and storage](https://docs.substrate.io/main-docs/fundamentals/state-transitions-and-storage/)
- [ ] [Accounts, addresses and keys](https://docs.substrate.io/main-docs/fundamentals/accounts-addresses-keys/)
- [ ] [Rust for Substrate](https://docs.substrate.io/main-docs/fundamentals/rust-basics/)
- [ ] [Offchain Operations](https://docs.substrate.io/main-docs/fundamentals/offchain-operations/)

### Build

- [ ] [Introduction to libraries](https://docs.substrate.io/main-docs/build/libraries/)
- [ ] [Build process](https://docs.substrate.io/main-docs/build/build-process/)
- [ ] [Runtime storage](https://docs.substrate.io/main-docs/build/runtime-storage/)
- [ ] [Transactions, weights and fees](https://docs.substrate.io/main-docs/build/tx-weights-fees/)
- [ ] [Custom pallets](https://docs.substrate.io/main-docs/build/custom-pallets/)
- [ ] [Pallet coupling](https://docs.substrate.io/main-docs/build/pallet-coupling/)
- [ ] [Events and errors](https://docs.substrate.io/main-docs/build/events-errors/)
- [ ] [Randomness](https://docs.substrate.io/main-docs/build/randomness/)
- [ ] [Chain specification](https://docs.substrate.io/main-docs/build/chain-spec/)
- [ ] [Priviledged calls and origins](https://docs.substrate.io/main-docs/build/origins/)
- [ ] [Remote procedure calls](https://docs.substrate.io/main-docs/build/custom-rpc/)
- [ ] [Application development](https://docs.substrate.io/main-docs/build/application-dev/)
- [ ] [Upgrade the runtime](https://docs.substrate.io/main-docs/build/upgrade/)

### How-to guides

#### Basics

- [ ] [Import a pallet](https://docs.substrate.io/reference/how-to-guides/basics/import-a-pallet/)
- [ ] [Configure runtime constants](https://docs.substrate.io/reference/how-to-guides/basics/configure-runtime-constants/)
- [ ] [Configure genesis state](https://docs.substrate.io/reference/how-to-guides/basics/configure-genesis-state/)
- [ ] [Customize a chain specification](https://docs.substrate.io/reference/how-to-guides/basics/customize-a-chain-specification/)
- [ ] [Use helper functions](https://docs.substrate.io/reference/how-to-guides/basics/use-helper-functions/)
- [ ] [Mint primitive tokens](https://docs.substrate.io/reference/how-to-guides/basics/mint-basic-tokens/)

#### Pallet design

- [ ] [Add the contracts pallet](https://docs.substrate.io/reference/how-to-guides/pallet-design/add-contracts-pallet/)
- [ ] [Implement lockable currency](https://docs.substrate.io/reference/how-to-guides/pallet-design/implement-lockable-currency/)
- [ ] [Incorporate randomness](https://docs.substrate.io/reference/how-to-guides/pallet-design/incorporate-randomness/)
- [ ] [Configure crowdfunding](https://docs.substrate.io/reference/how-to-guides/pallet-design/configure-crowdfunding/)
- [ ] [Create a storage structure (struct)](https://docs.substrate.io/reference/how-to-guides/pallet-design/create-a-storage-structure/)
- [ ] [Use tight pallet coupling](https://docs.substrate.io/reference/how-to-guides/pallet-design/use-tight-coupling/)
- [ ] [Use loose pallet coupling](https://docs.substrate.io/reference/how-to-guides/pallet-design/use-loose-coupling/)

#### Weights

- [ ] [Calculate fees](https://docs.substrate.io/reference/how-to-guides/weights/calculate-fees/)
- [ ] [Add benchmarks](https://docs.substrate.io/reference/how-to-guides/weights/add-benchmarks/)
- [ ] [Use custom weights](https://docs.substrate.io/reference/how-to-guides/weights/use-custom-weights/)
- [ ] [Use conditional weights](https://docs.substrate.io/reference/how-to-guides/weights/use-conditional-weights/)

#### Testing

- [ ] [Set up basic tests](https://docs.substrate.io/reference/how-to-guides/testing/set-up-basic-tests/)
- [ ] [Test a transfer function](https://docs.substrate.io/reference/how-to-guides/testing/test-a-transfer-function/)

#### Consensus models

- [ ] [Create a hybrid node](https://docs.substrate.io/reference/how-to-guides/consensus-models/create-a-hybrid-node/)
- [ ] [Add proof-of-work consensus](https://docs.substrate.io/reference/how-to-guides/consensus-models/add-proof-of-work-consensus/)

#### Parachains

- [ ] [Convert a solo chain](https://docs.substrate.io/reference/how-to-guides/)
- [ ] [Connect to a relay chain](https://docs.substrate.io/reference/how-to-guides/parachains/connect-to-a-relay-chain/)
- [ ] [Select collators](https://docs.substrate.io/reference/how-to-guides/parachains/select-collators/)
- [ ] [Prepare to launch](https://docs.substrate.io/reference/how-to-guides/parachains/prepare-to-launch/)
- [ ] [Runtime upgrades](https://docs.substrate.io/reference/how-to-guides/parachains/runtime-upgrade/)
- [ ] [Auctions and crowdloans](https://docs.substrate.io/reference/how-to-guides/parachains/auctions-and-crowdloans/)
- [ ] [Add HRMP channels](https://docs.substrate.io/reference/how-to-guides/parachains/add-hrmp-channels/)

#### Tools

- [ ] [Use try-runtime](https://docs.substrate.io/reference/how-to-guides/tools/use-try-runtime/)
- [ ] [Create a txwrapper for a chain](https://docs.substrate.io/reference/how-to-guides/tools/create-a-txwrapper/)
- [ ] [Use REST endpoints to get chain data](https://docs.substrate.io/reference/how-to-guides/tools/use-sidecar/)
- [ ] [Verify a Wasm binary](https://docs.substrate.io/reference/how-to-guides/tools/verify-wasm/)

#### Offchain workers

- [ ] [Make offchain transactions](https://docs.substrate.io/reference/how-to-guides/offchain-workers/offchain-transactions/)
- [ ] [Make offchain HTTP requests](https://docs.substrate.io/reference/how-to-guides/offchain-workers/offchain-http-requests/)
- [ ] [Offchain local storage](https://docs.substrate.io/reference/how-to-guides/offchain-workers/offchain-local-storage/)
- [ ] [Offchain indexing](https://docs.substrate.io/reference/how-to-guides/offchain-workers/offchain-indexing/)

### Reference

- [ ] [Glossary](https://docs.substrate.io/reference/glossary/)
- [ ] [Runtime APIs](https://docs.substrate.io/reference/command-line-tools/)
- [ ] [FRAME pallets](https://docs.substrate.io/reference/frame-pallets/)
- [ ] [Frame macros](https://docs.substrate.io/reference/frame-macros/)
- [ ] [Account data structures](https://docs.substrate.io/reference/account-data-structures/)
- [ ] [Type encoding(SCALE)](https://docs.substrate.io/reference/scale-codec/)
- [ ] [Transaction formats](https://docs.substrate.io/reference/how-to-guides/)
- [ ] [Cryptography](https://docs.substrate.io/reference/cryptography/)

### Polkadot

- [ ] [Polkadot Wiki](https://wiki.polkadot.network/)

### PolkadotJS

- [ ] [PolkadotJS Docs](https://polkadot.js.org/docs)

### ink!

- [ ] [Ink! documentation](https://ink.substrate.io/)

## 2. Learn by doing

> "Practice makes perfect"

### https://docs.substrate.io/tutorials/

#### Getting Started

- [ ] [Build a local blockchain](https://docs.substrate.io/tutorials/get-started/build-local-blockchain/)
- [ ] [Simulate a network](https://docs.substrate.io/tutorials/get-started/simulate-network/)
- [ ] [Add trusted nodes](https://docs.substrate.io/tutorials/get-started/trusted-network/)
- [ ] [Authorize specific nodes](https://docs.substrate.io/tutorials/get-started/permissioned-network/)
- [ ] [Monitor node metrics](https://docs.substrate.io/tutorials/get-started/node-metrics/)
- [ ] [Upgrade a running network](https://docs.substrate.io/tutorials/get-started/forkless-upgrade/)

#### Work with pallets

- [ ] [Add a pallet to the runtime](https://docs.substrate.io/tutorials/work-with-pallets/add-a-pallet/)
- [ ] [Configure the contracts pallet](https://docs.substrate.io/tutorials/work-with-pallets/contracts-pallet/)
- [ ] [Use macros in a custom pallet](https://docs.substrate.io/tutorials/work-with-pallets/use-macros-in-a-custom-pallet/)
- [ ] [Specify the origin for a call](https://docs.substrate.io/tutorials/work-with-pallets/specify-the-origin-for-a-call/)
- [ ] [Publish custom pallets](https://docs.substrate.io/tutorials/work-with-pallets/publish-custom-pallets/)

#### Develop smart contracts

- [ ] [Prepare your first contract](https://docs.substrate.io/tutorials/smart-contracts/prepare-your-first-contract/)
- [ ] [Develop a smart contract](https://docs.substrate.io/tutorials/smart-contracts/develop-a-smart-contract/)
- [ ] [Use maps for storing values](https://docs.substrate.io/tutorials/smart-contracts/use-maps-for-storing-values/)
- [ ] [Build a token contract](https://docs.substrate.io/tutorials/smart-contracts/use-maps-for-storing-values/)
- [ ] [Troubleshoot smart contracts](https://docs.substrate.io/tutorials/smart-contracts/troubleshoot-smart-contracts/)

#### Connect with other chains

- [ ] [Start a local relay chain](https://docs.substrate.io/tutorials/connect-other-chains/local-relay/)
- [ ] [Connect a local parachain](https://docs.substrate.io/tutorials/connect-other-chains/local-parachain/)
- [ ] [Connect to Rococo testnet](https://docs.substrate.io/tutorials/connect-other-chains/rococo-slot/)

#### Integrate with tools

- [ ] [Integrate a light client node](https://docs.substrate.io/tutorials/integrate-with-tools/substrate-connect/)
- [ ] [Access EVM accounts](https://docs.substrate.io/tutorials/integrate-with-tools/access-evm-accounts/)

### [Substrate Developer Hub - tutorials](https://github.com/substrate-developer-hub/tutorials) (Stale, not recommended)

- [ ] add a pallet
- [ ] build a dapp
- [ ] create your first substrate chain
- [ ] pallet in own crate
- [ ] start a private network

### [Rusty Crewmate - Substrate tutorials](https://github.com/rusty-crewmates/substrate-tutorials)

- [ ] [writing tests](https://github.com/rusty-crewmates/substrate-tutorials/tree/main/exercises/ex00-writing-tests/)
- [ ] [fungible token](https://github.com/rusty-crewmates/substrate-tutorials/tree/main/exercises/ex01-fungible-token/)
- [ ] [runtime](https://github.com/rusty-crewmates/substrate-tutorials/tree/main/exercises/ex02-runtime/)
- [ ] [nft](https://github.com/rusty-crewmates/substrate-tutorials/tree/main/exercises/ex03-nft/)
- [ ] [marketplace](https://github.com/rusty-crewmates/substrate-tutorials/tree/main/exercises/ex04-marketplace/)

### [Substrate Collectables Workshop](https://github.com/shawntabrizi/substrate-collectables-workshop)

## 3. Useful Tools

- [bs58 decoder](https://whisperd.tech/bs58-codec/)

## 4. Substrate engineer job boards

- https://forms.gle/mUoLGsDUSpy4yB3F9
- https://careers.substrate.io/jobs
- https://dotjobs.net/

## 5. Misc.

- [Awesome Substrate](https://github.com/substrate-developer-hub/awesome-substrate)
- [Substrate StackExchange](https://substrate.stackexchange.com/)
- [SS58 Registry](https://github.com/paritytech/ss58-registry)
- [x] [Smart Contracts vs. Substrate Pallets: Important Building Blocks and Their Differences](https://0xbrainjar.medium.com/smart-contracts-vs-substrate-pallets-important-building-blocks-and-their-differences-6c39b9e8d68d)

## 6. Leading companies in the Substrate ecosystem

- [Parity Technologies](https://www.parity.io/)