Blockchain Learning Path
An opinionated learning path for getting into speed with Blockchain (specially Ethereum). This is a work in progress, please open an issue or send a pull request to help improving it.
Pre-requisites
Besides a programming background, this path assumes that the reader is at least a little comfortable with:
- Public key cryptography
- 1. Watch Public Key Cryptography. (Est. time: 7 minutes)
- 2. Read What is Public-key Cryptography?. (Est. time: 4 minutes)
- Digital signatures
- 1. Read Cryptography Digital Signitures. (Est. time: 10 minutes)
- 2. Watch What are Digital Signatures and How Do They Work? (Est. time: 3 minutes)
- Cryptographic hashing
- 1. Watch What is Hashing on the Blockchain? (Est. time: 5 minutes)
- 2. Read What is Hashing in Blockchain?. (Est. time: 9 minutes)
Blockchain
- 1. Read Blockchain Explained. (Est.time: 26 minutes)
- 2. Watch Blockchain - A visual demo. (Est. time: 18 minutes)
Bitcoin
- 1. Read How the Bitcoin protocol actually works. (Est. time: 45 minutes)
- 2. Watch this video (lighter than the previous article but useful to solidify your knowledge). (Est. time: 26 minutes)
Ethereum
Theory
- 1. Read How does Ethereum work, anyway? (Est. time: 38 minutes)
- 2. Read this article on smart contracts development. (Est. time: 15 minutes)
- 3. Read the Truffle Documentation / Hardhat Documentation
- 4. Read the Web3 Documentation / Ethers Documentation
- 5. Book Mastering Ethereum
- 6. Set of learning resources from ethereum.org
Practice
- 1. Learn Ethereum development by making a Zombie Game (Est. time: 8 hs)
- 2. Read and make and example: Pet shop tutorial
- 3. Time-locked Wallets: An Introduction to Ethereum Smart Contracts
- 4. The Ultimate ENS and ĐApp Tutorial
- 5. Ultimate Introduction to Ethereum Ðapp Development (Est. time: 4 hs)
- 6. Ethernaut is a Web3/Solidity based wargame for those interested in learning ethereum
Courses
- 1. Do this course Ethereum and Solidity: The Complete Developer's Guide (Est. time: 24 hs)
- 2. Free tutorial Learning Solidity
- 3. Introduction to Smart Contract Development with Solidity (Est. time: 2 hs)
Concepts
- 0. Crypto vocabulary
- 1. Blockchain Oracles, Explained (Est. time: 4 minutes)
- 2. ABI (Est. time: 15 minutes)
- 3. Keccak256 (Est. time: 15 minutes)
- 4. Random numbers (Est. time: 5 minutes)
- 5. Velocity of Tokens (Est. time: 9 minutes)
- 6. Gas (Est. time: 5 minutes)
- 7. Weth
- 8. Decentralized Finance (DeFi):
- - Intro to DeFi - Introduction to DeFi and its main ideas.
- - Awesome Decentralized Finance
- - DeFi Prime - Curated directory of DeFi projects.
- 9. Smart Contracts
Under the hood
Best Practices
- - Consensys best practices - This document provides a baseline knowledge of security considerations for intermediate Solidity programmers. It is maintained by ConsenSys Diligence, and the broader Ethereum community.
- - Solidity Patterns - A compilation of patterns and best practices.
Libraries
- - dapp-bin - Ethereum repo providing implementations for many common data structures and utilities in Solidity, Serpent and LLL.
- - Solidity Collections - Collections of code snippets and utility libraries.
- - OpenZeppelin - Framework to build secure smart contracts.
Examples
- - Solidity By Example - Contract examples from the official docs.
Ethereum vs. Bitcoin
- - Some key differences between Bitcoin and Ethereum - Features and differences between Bitcoin and Ethereum.
Substrate
- - Initiate a Forkless Runtime Upgrade - Forkless Runtime Upgrade useful for initial setups and parachains' CI/CD pipelines.
Smart Contract Standards
The Ethereum Request for Comment repository
- - ERCs - Ethereum Improvement Proposals
Tokens
- - ERC-20 - Token contract for fungible assets.
- - ERC-721 - Token standard for non-fungible assets.
- - ERC-918 - Mineable Token Standard.
Others
- - ERC-165 - Creates a standard method to publish and detect what interfaces a smart contract implements.
- - ERC-725 - A standard interface for a simple proxy account.
- - ERC-173 - A standard interface for ownership of contracts.
Toolbox
List of tools curated by Protofire team to better apply best practices to the Protocol and DApps development projects.
General
Audit
- - SmartCheck - Online tool for checking smart contracts for vulnerabilities and bad practices.
Utility
- - solhint - Solidity linter that provides security, style guide and best practice rules for smart contract validation.
- - solium - Linter to identify and fix style & security issues in Solidity smart contracts.
- - sol-tester - Utilities for building, linking and testing contracts using go-ethereum and the simulated chain.
- - solidity-coverage - Code coverage tool.
- - TypeChain - TypeScript bindings for Ethereum Smart Contracts.
Miscellaneous
Newsletters
- - Week in Ethereum News - Ethereum news and links, layer 1, layer 2, client releases, stuff for developers, interviews, podcasts, videos, talks, etc
- - Reddit: /r/ethereum/ - Reddit about next-generation platform for decentralised applications.
- - Reddit: /r/ethdev - Reddit about ethereum-related dev talk: Contracts, DApps, Wallets, Clients, Infrastructure, Tooling, UIs, Patterns, and others.
- - Ethereum Research - Civilized discussion furthering Ethereum research
Talks
- - Understanding Blockchain function - Say hello to the decentralized economy. (Est. time: 15 minutes)
Videos
- - DeFi from Finematics - Educational videos on DeFi (Decentralized Finance).