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
- Host: GitHub
- URL: https://github.com/cuteolaf/substrate-learning-resources
- Owner: cuteolaf
- Created: 2022-08-08T21:42:10.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2022-09-15T14:20:32.000Z (about 3 years ago)
- Last Synced: 2025-03-14T19:33:07.008Z (7 months ago)
- Topics: blockchain, job-board, resources, substrate, tutorials
- Homepage:
- Size: 32.2 KB
- Stars: 27
- Watchers: 1
- Forks: 14
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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/)