Syllabus

1. Introduction Section:
1.1 Why the Blockchain?
1.2 How Do You Represent Value?
1.3 The Internet of Value
1.4 Blockchain Use Cases
2. What is a blockchain (and what it's not)?
2.1 The 3-layer Model
2.2 The Bitcoin whitepaper
2.3 Blockchain Design Goals
2.4 Blockchain Implementations
2.5 The Bitcoin source code
2.6 Blockchain Instances
2.7 Public Blockchains as Tricameral Systems
2.8 What Qualifies as a Blockchain?
2.9 The Bitcoin whitepaper
2.10 The Ethereum whitepaper
2.11 Blockchain Key Components
2.12 Vinay Gupta at Michel Bauwens & the Promise of the Blockchain
2.13 Coinbase
2.14 Kraken
2.15 Blockchain Key Components
2.16 What a Blockchain Is Not
2.17 zkSnarks in a Nutshell
2.18 The Tezos blockchain
3. Cryptography
3.1 Hashing Functions
3.2 Hashing functions online
3.3 SHAttered (Google researchers break the SHA-1 hashing function)
3.4 Asymmetric Cryptography
3.5 LedgerWallet (hardware wallet)
3.6 Ethereum paper wallet
3.7 Merkle Trees
3.8 Understanding the Ethereum Tries
3.9 Anders Brownworth's Blockchain Demo
3.10 Blockchain Demo Video
4. Installing the Development Environment (Truffle 4)
4.1 Windows environment setup
4.2 Geth
4.3 Ganache
4.4 NodeJS and NPM
4.5 Setting up a private node on Windows
4.6 ChainSkills.json
4.7 Geth console.
4.8 Troubleshooting your private node
4.9 Setting up MetaMask on all environments
4.10 MetaMask website

4.11 MetaMask Slack
4.12 MetaMask FAQ
5. My First Smart Contract: Greetings (Truffle 4)
5.1 Deploying a smart contract
5.2 Deploying a smart contract without Truffle
5.3 Deploying a smart contract with Truffle
5.4 Javascript Promises for Dummies
5.5 Deploying a smart contract with Truffle
5.6 Blocks and transactions
5.7 Gas
5.8 EthGasStation
5.9 OpCodes
5.10 EtherScan Opcode Tool
5.11 Ethereum Yellow Paper
5.12 Sending ether
6. How do you design and develop a decentralized application? (Truffle 4)
6.1 ChainList application preview
6.2 Sell an article: smart contract
6.3 ChainSkills Truffle Box
6.4 Sell an article: smart contract
6.5 Javascript Promises for Dummies
6.6 Sell an article: tests
6.7 Sell an article: frontend preparation
6.8 Sell an article: display article in the frontend
6.9 Sell an article from the frontend
6.10 Hexadecimal String Converter
6.11 Sell an article through MetaMask
6.12 MetaMask Nonce calculation issue
6.13 Sell an article: smart contract with event
6.14 Sell an article: events in the frontend
6.15 MetaMask event processing issue
6.16 Unknown transaction when migrating with Truffle 4.0.4
6.17 Deploy ChainList to a private network
6.18 Buy an article: smart contract
6.19 Buy an article: tests
6.20 Buy an article: frontend
6.21 List of articles: smart contract
6.22 List of articles: tests
6.23 List of articles: frontend
6.24 Smart contract deactivation
6.25 Ethereum Name Service (ENS)
6.26 Function modifiers
6.27 Smart contract inheritance
6.28 Solidity Smart Contract Inheritance documentation
6.29 Deploying the frontend
6.30 Create a Github account
6.31 Create a Github repository
6.32 Deploying smart contracts to the Rinkeby test net
6.33 MetaMask FAQ
6.34 Rinkeby Faucet
6.35 Google Plus

6.36 Deploying smart contracts to the main net
6.37 List of Exchanges
6.38 Ethereum Gas Station
7. Conclusion
7.1 Truffle Framework documentation
7.2 Solidity documentation
7.3 TestRPC documentation