Ecosyste.ms: Awesome

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

https://github.com/protofire/blockchain-learning-path

A suggested learning path for blockchain development
https://github.com/protofire/blockchain-learning-path

Last synced: about 2 months ago
JSON representation

A suggested learning path for blockchain development

Lists

README

        

# 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](https://www.youtube.com/watch?v=GSIDS_lvRv4). (Est. time: 7 minutes)
2. Read [What is Public-key Cryptography?](https://www.globalsign.com/en/ssl-information-center/what-is-public-key-cryptography). (Est. time: 4 minutes)
- Digital signatures
1. Read [Cryptography Digital Signitures](https://www.tutorialspoint.com/cryptography/cryptography_digital_signatures.htm). (Est. time: 10 minutes)
2. Watch [What are Digital Signatures and How Do They Work?](https://www.youtube.com/watch?v=JR4_RBb8A9Q) (Est. time: 3 minutes)
- Cryptographic hashing
1. Watch [What is Hashing on the Blockchain?](https://www.youtube.com/watch?v=IGSB9zoSx70) (Est. time: 5 minutes)
2. Read [What is Hashing in Blockchain?](https://learn.bybit.com/blockchain/what-is-hashing-in-blockchain/). (Est. time: 9 minutes)

## Blockchain

1. Read [Blockchain Explained](https://www.investopedia.com/terms/b/blockchain.asp). (Est.time: 26 minutes)
2. Read [What is Blockchain?](https://www.scaler.com/topics/what-is-blockchain/). (Est.time: 13 minutes)
3. Watch [Blockchain - A visual demo](https://www.youtube.com/watch?v=_160oMzblY8). (Est. time: 18 minutes)

## Bitcoin

1. Read [How the Bitcoin protocol actually works](http://www.michaelnielsen.org/ddi/how-the-bitcoin-protocol-actually-works/). (Est. time: 45 minutes)
2. Watch [this video](https://www.youtube.com/watch?v=bBC-nXj3Ng4) (lighter than the previous
article but useful to solidify your knowledge). (Est. time: 26 minutes)

## Ethereum

#### Theory

1. Read [How does Ethereum work, anyway?](https://medium.com/@preethikasireddy/how-does-ethereum-work-anyway-22d1df506369) (Est. time: 38 minutes)
2. Read [this article](https://blog.openzeppelin.com/the-hitchhikers-guide-to-smart-contracts-in-ethereum-848f08001f05)
on smart contracts development. (Est. time: 15 minutes)
3. Learn about hardhat [Hardhat Documentation](https://hardhat.org/getting-started/)
4. Read the [Web3 Documentation](https://web3js.readthedocs.io/en/1.0/) / [Ethers Documentation](https://docs.ethers.io/v5/)
5. Book [Mastering Ethereum](https://github.com/ethereumbook/ethereumbook)
6. Set of learning resources from [ethereum.org](https://ethereum.org/en/learn/)

#### Practice

1. Learn Ethereum development by making a [Zombie Game](https://cryptozombies.io/) (Est. time: 8 hs)
2. Read and make and example: [Pet shop tutorial](https://www.trufflesuite.com/tutorial)
3. [Time-locked Wallets: An Introduction to Ethereum Smart Contracts](https://www.toptal.com/ethereum-smart-contract/time-locked-wallet-truffle-tutorial)
4. [The Ultimate ENS and ĐApp Tutorial](https://www.toptal.com/ethereum/ethereum-name-service-dapp-tutorial)
5. [Ultimate Introduction to Ethereum Ðapp Development](https://www.youtube.com/playlist?list=PLV1JDFUtrXpFh85G-Ddyy2kLSafaB9biQ) (Est. time: 4 hs)
6. [Ethernaut](https://ethernaut.zeppelin.solutions/) 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](https://www.udemy.com/ethereum-and-solidity-the-complete-developers-guide/) (Est. time: 24 hs)
2. Free tutorial [Learning Solidity](https://github.com/willitscale/learning-solidity)
3. [Introduction to Smart Contract Development with Solidity](https://www.youtube.com/playlist?list=PLV1JDFUtrXpGvu8QHL9b78WYNSJsYNZsb) (Est. time: 2 hs)
4. FreeCodeCamp course [Learn Blockchain, Solidity, and Full Stack Web3 Development with JavaScript](https://www.youtube.com/watch?v=gyMwXuJrbJQ) (32 hours)

## Concepts

0. [Crypto vocabulary](https://medium.com/datadriveninvestor/crypto-vocabulary-expanded-76131d26537b)
1. [Blockchain Oracles, Explained](https://cointelegraph.com/explained/blockchain-oracles-explained) (Est. time: 4 minutes)
2. [ABI](https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI) (Est. time: 15 minutes)
3. [Keccak256](https://www.slideshare.net/RajeevVerma14/keccakpptx) (Est. time: 15 minutes)
4. [Random numbers](https://ethereum.stackexchange.com/questions/191/how-can-i-securely-generate-a-random-number-in-my-smart-contract) (Est. time: 5 minutes)
5. [Velocity of Tokens](https://medium.com/newtown-partners/velocity-of-tokens-26b313303b77) (Est. time: 9 minutes)
6. [Gas](https://ethereum.org/en/developers/docs/gas/) (Est. time: 11-14 minutes)
7. [Weth](https://weth.io/)
8. Decentralized Finance (DeFi):
- [Intro to DeFi](https://ethereum.org/en/defi/) - Introduction to DeFi and its main ideas.
- [Awesome Decentralized Finance](https://github.com/ong/awesome-decentralized-finance)
- [DeFi Prime](https://defiprime.com) - Curated directory of DeFi projects.
9. [Smart Contracts](https://www.investopedia.com/terms/s/smart-contracts.asp)
## Under the hood

1. [Inside an Ethereum transaction](https://medium.com/@codetractio/inside-an-ethereum-transaction-fa94ffca912f)
2. [Diving Into the Ethereum VM](https://blog.qtum.org/diving-into-the-ethereum-vm-6e8d5d2f3c30)

## Best Practices

- [Consensys best practices](https://consensys.github.io/smart-contract-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](https://github.com/fravoll/solidity-patterns) - A compilation of patterns and best practices.

## Libraries

- [dapp-bin](https://github.com/ethereum/dapp-bin) - Ethereum repo providing implementations for many common data structures and utilities in Solidity, Serpent and LLL.
- [Solidity Collections](https://github.com/ethereum/wiki/wiki/Solidity-Collections) - Collections of code snippets and utility libraries.
- [OpenZeppelin](https://openzeppelin.org/) - Framework to build secure smart contracts.

## Examples

- [Solidity By Example](http://solidity.readthedocs.io/en/latest/solidity-by-example.html) - Contract examples from the official docs.

## Ethereum vs. Bitcoin

- [Some key differences between Bitcoin and Ethereum](https://www.investopedia.com/articles/investing/031416/bitcoin-vs-ethereum-driven-different-purposes.asp) - Features and differences between Bitcoin and Ethereum.

## Substrate

- [Initiate a Forkless Runtime Upgrade](https://docs.substrate.io/tutorials/v3/forkless-upgrades#schedule-an-upgrade) - Forkless Runtime Upgrade useful for initial setups and parachains' CI/CD pipelines.

## Smart Contract Standards

#### The Ethereum Request for Comment repository

- [ERCs](https://eips.ethereum.org/erc) - Ethereum Improvement Proposals

#### Tokens

- [ERC-20](https://eips.ethereum.org/EIPS/eip-20) - Token contract for fungible assets.
- [ERC-721](https://github.com/ethereum/eips/issues/721) - Token standard for non-fungible assets.
- [ERC-1155](https://eips.ethereum.org/EIPS/eip-1155) - Multi Token Standard that aims to take the best from previous standards to create a fungibility-agnostic and gas-efficient token contract.
- [ERC-918](https://eips.ethereum.org/EIPS/eip-918) - Mineable Token Standard.

#### Others

- [ERC-165](https://eips.ethereum.org/EIPS/eip-165) - Creates a standard method to publish and detect what interfaces a smart contract implements.
- [ERC-725](https://eips.ethereum.org/EIPS/eip-725) - A standard interface for a simple proxy account.
- [ERC-173](https://eips.ethereum.org/EIPS/eip-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

- [eth-cli](https://github.com/protofire/eth-cli) - CLI tools.
- [REPL](https://github.com/raineorshine/solidity-repl) - Solidity REPL.
- [Remix](https://remix.ethereum.org/) - Online realtime compiler and runtime.

#### Audit

- [Static and dynamic code analysis](https://consensys.github.io/smart-contract-best-practices/security-tools/static-and-dynamic-analysis/)

#### Utility

- [solhint](https://github.com/protofire/solhint) - Solidity linter that provides security, style guide and best practice rules for smart contract validation.
- [solium](https://github.com/duaraghav8/Solium) - Linter to identify and fix style & security issues in Solidity smart contracts.
- [sol-tester](https://github.com/androlo/sol-tester) - Utilities for building, linking and testing contracts using go-ethereum and the simulated chain.
- [solidity-coverage](https://github.com/sc-forks/solidity-coverage) - Code coverage tool.
- [TypeChain](https://github.com/ethereum-ts/TypeChain) - TypeScript bindings for Ethereum Smart Contracts.

## Miscellaneous

#### Newsletters

- [Week in Ethereum News](https://www.weekinethereumnews.com/) - Ethereum news and links, layer 1, layer 2, client releases, stuff for developers, interviews, podcasts, videos, talks, etc
- [Reddit: /r/ethereum/](https://www.reddit.com/r/ethereum/) - Reddit about next-generation platform for decentralised applications.
- [Reddit: /r/ethdev](https://www.reddit.com/r/ethdev) - Reddit about ethereum-related dev talk: Contracts, DApps, Wallets, Clients, Infrastructure, Tooling, UIs, Patterns, and others.
- [Ethereum Research](http://ethresear.ch/) - Civilized discussion furthering Ethereum research

#### Talks

- [Understanding Blockchain function](https://www.youtube.com/watch?v=RplnSVTzvnU) - Say hello to the decentralized economy. (Est. time: 15 minutes)

#### Videos

- [DeFi from Finematics](https://www.youtube.com/c/Finematics/videos) - Educational videos on DeFi (Decentralized Finance).