Blockchain 101
Learning Objective: In this module, you will learn about the blockchain data structure that is widely used in crypto-currencies, decentralized applications (DApps) and decentralized automated organizations (DAO).
Topics:
- Overview of Centralized, Decentralized and Distributed Systems
What is Blockchain?
- How are transactions initiated in a network
Comparison of Blockchain and Traditional Databases
- Blockchain working
- Public/Private Key Cryptography
- The beauty of Hash Functions and Merkle trees
- Cryptocurrency Mining
- Proof of Work/ Consensus
- Cryptocurrency wallet
- Introduction to Ethereum
- Ethereum vs Bitcoin
- Ethereum use cases
Hands-On:
- A practical walkthrough of blockchain.info and etherscan.io
Introduction to Ethereum
Learning Objective: In this module, you will learn about Ethereum and how it uses the blockchain technology to create a vast variety of decentralized applications. It makes use of smart contracts by seeing the working of a small scale decentralized applications. (DApps)
Topics:
- Ethereum - A P2P world computer
- The Ethereum Blockchain
- Ethereum Virtual Machine
- Smart Contracts
- Gas - Price and Limit
- Ether and Ether Mining
- Ethereum tools - Swarm, Whisper and Mist
- Ethereum Framework – Web3.js, eth.js
- Ethereum in today's world (DApps and DAOs)
- Development Environment - Solidity IDE, Truffle, Embark
- Ethereum Networks – Koven, Ropsten, Rinkeby
- Webpack and Browserify
Hands-On:
- Setting up Metamask and MIST Wallet
Solidity:
Learning Objective: In this module, you will learn to develop your own smart contracts using Solidity on the Remix IDE.
Topics:
- Introduction to Solidity
- Basics (version pragma and comments)
- Structure of a contract
- Keywords
- Data Structures (Arrays, Mapping, Structs)
- Data Types (signed and unsigned int, strings, boolean, address)
- Looping and Conditional Statements
- Inheritance
- Polymorphism
Hands-On:
Remix browser
Complete coding experience on Solidity language.
Advanced Solidity
Learning Objective: In this module, you will learn the advanced concepts of solidity such as, importing libraries, modifiers, event handling and much more. Other than that, you will also learn to incorporate a front-end GUI to your solidity contracts using Truffle and web3.js
Topics:
- Imports and libraries
- Extended String Functionality and Bytes
- Custom Modifiers and Error Handling
- Creating and deploying your own tokens
- Event logging, handling
- Parameter Mapping and Returning multiple variables
- State Modifiers (Pure/View/Constant/Payable)
Transferring Ether between contracts (ERC20 and ERC223)
- Deployment
- Contract ABI
- Introduction to the Truffle Framework
- Communicating between smart contracts and HTML pages using web3.js and Metamask
- Setting up event-driven Interfaces
- Client-side signing and remotes nodes for DApps
Hands-On:
- Creating an interactive GUI for your smart contract using web3.js And Truffle
Developing a DApp using Truffle
Learning Objective: In this module, you will learn how to develop a DApp service using concepts of solidity and deploy it on a local test blockchain that is Ganache.
Objective:
- Upon completing this module, you should be able to:
- Use Truffle for running Contracts, running Migrations, writing test cases and Interact with your contracts
- Use Web3.js to communicate between HTML pages and smart contracts
- Integrate Angular.js and web3.js to create front end interfaces for your smart contracts
Topics:
- Creating a project structure on Truffle
- Writing the smart contract
- Compiling and migrating the smart contract
- Publishing the app
How web3.js and truffle work with ReactJS
- Deploying smart contract services on the test blockchain network
- Running the DApp on the Ethereum node using Metamask
Hands-On:
Deploying a DApp that runs on a test network. The contracts should handle all events of the supply chain like shipping, vendor change, product status, timestamps, etc. The contracts then must be connected to an interactive GUI based on web3.js and deployed using Metamask.
Create And Deploy Your Private Blockchain On MultiChain
Learning Objective: In this Blockchain online training module, you will learn about MultiChain platform. You will be able to setup your private Blockchain environment. Also, you will be able to customize your Blockchain parameters as per your requirements.
Topics:
- What Is MultiChain?
- Privacy and Permissions in MultiChain
- Mining in MultiChain
- Multiple configurable Blockchains using MultiChain
- Setting up a Private Blockchain
- Setting up a private Blockchain
Hands-On:
- Create a private Blockchain
- Connect to your Blockchain
- Create a new asset and sending it between nodes
- Perform mining between nodes