/blockchain-learning-path

A suggested learning path for blockchain development

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:

Blockchain

Bitcoin

Ethereum

Theory

Practice

Courses

Concepts

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

Ethereum vs. Bitcoin

Substrate

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

  • - eth-cli - CLI tools.
  • - REPL - Solidity REPL.
  • - Remix - Online realtime compiler and runtime.

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

Videos