Course Content
Introduction to Blockchain 101
- Define Distributed, Centralized and Decentralized Systems
- What is Blockchain?
- Transactions initiated in a network
- Blockchain working
- Difference between Blockchain and Traditional Databases
- Public/Private Key Cryptography
- Overview of Hash Functions and Merkle trees
- Cryptocurrency Mining
- Cryptocurrency wallet
- Proof of Work/ Consensus
- Introduction to Ethereum
- Ethereum vs Bitcoin
- Ethereum use cases
Introduction to Ethereum
- Overview of Ethereum
- The Ethereum Blockchain
- Ethereum Virtual Machine
- Smart Contracts
- Ether and Ether Mining
- Gas - Price and Limit
- Ethereum tools – Mist, Swarm and Whisper
- Ethereum Framework – Web3.js, eth.js
- Ethereum in today’s world (DAOs and DApps)
- Development Environment – Embark, Solidity IDE and Truffle
- Ethereum Networks – Koven, Ropsten, Rinkeby
- Webpack and Browserify
Solidity
- Introduction to Solidity
- Basics (version pragma and comments)
- Keywords
- Structure of a contract
- Data Types (signed and unsigned int, boolean, address, strings)
- Data Structures (Structs, Arrays, Mapping)
- Looping and Conditional Statements
- Inheritance
- Polymorphism
Advanced Solidity
- Imports and libraries
- Creating and deploying your own tokens
- Extended String Functionality and Bytes
- Custom Modifiers and Error Handling
- Event logging, handling
- Parameter Mapping
- Returning multiple variables
- State Modifiers (Pure/View/Constant/Payable)
- Transferring Ether between contracts (ERC20 and ERC223)
- Deployment
- Contract ABI
- Overview of the Truffle Framework
- Use web3.js and Metamask to communicate between smart contracts and HTML pages
- Setting up event-driven Interfaces
- Client-side signing and remotes nodes for DApps
Developing a DApp using Truffle
- Creating a project structure on Truffle
- Writing the smart contract
- Compiling and migrating the smart contract
- Publishing the DApp
- Working of web3.js and truffle with ReactJS
- Deploying smart contract services on the test Blockchain network
- Running the DApp on the Ethereum node using Metamask