Blockchain Technology

Blockchain Technology

  • You are Here:
  • Home »
  • Courses »
  • Blockchain Technology

A blockchain is a digitized, decentralized, public ledger of all cryptocurrency transactions. Constantly growing as ‘completed’ blocks (the most recent transactions) are recorded and added to it in chronological order, it allows market participants to keep track of digital currency transactions without central recordkeeping. Each node (a computer connected to the network) gets a copy of the blockchain, which is downloaded automatically.

The blockchain is perhaps the main technological innovation of Bitcoin. Bitcoin isn’t regulated by a central authority. Instead, its users dictate and validate transactions when one person pays another for goods or services, eliminating the need for a third party to process or store payments. The completed transaction is publicly recorded into blocks and eventually into the blockchain, where it’s verified and relayed by other Bitcoin users. On average, a new block is appended to the blockchain every 10 minutes, through mining.

Based on the Bitcoin protocol, the blockchain database is shared by all nodes participating in a system. Upon joining the network, each connected computer receives a copy of the blockchain, which has records, and stands as proof of, every transaction ever executed.

Upcoming Batches

19
May

Monday - Friday

7:00 AM IST - 8:00 AM IST

Syllabus

  • What is Blockchain
  • Blockchain Technology Mechanisms & Networks
  • Blockchain Origins
  • Blockchain Objectives
  • Blockchain Users And Adoption
  • Blockchain Challenges
  • Transactions And Blocks
  • P2P Systems
  • Keys As Identity
  • Digital Signatures
  • Hashes As Addresses
  • Hash Pointers And Data Structures
  • Blockchain Transactions
  • Blockchain Block Structure
  • Mining Explained
  • What is Bitcoin
  • The Bitcoin Network
  • The Bitcoin Minning Process
  • Mining Developments
  • Bitcoin Wallets
  • Decentralization And Hard Forks
  • Alternative Blockchains/Altchains
  • Ethereum Consensus Mechanisms
  • How Smart Contracts Work
  • Difference Between Private Consortium And Public Networks
  • Ethereum Virtual Machine (EVM)
  • Merkle Tree
  • Double-Spend Problem
  • New Developments In Blockchain
  • Ethereum’s Ecosystem And Dapps
  • Blockchain And Digital Currency
  • Transactional Blocks
  • Impact Of Blockchain Technology On Cryptocurrency
  • Cryprography
  • What is Ethereum?
  • Introduction
  • A Short History Lesson
  • Interfacing with Ethereum Networks
  • Metamask Setup
  • Ethereum Accounts
  • Receiving Ether
  • What's a Transaction?
  • Smart Contracts
  • Our First Contract
  • Contract Structure
  • Function Declarations
  • Testing with Remix
  • Redeploying Contracts
  • Behind the Scenes of Deployment
  • More on Running Functions Than You Want to Know
  • Wei vs Ether
  • Gas and Transactions
  • Mnemonic Phrases
  • Getting More Ether
  • Solidity - Language of Smart Contracts
  • Installing Solidity & Ethereum Wallet
  • Basics of Solidity by Example: Subcoin Smart Contract
  • Layout of a Solidity Source File & Structure of Smart Contracts
  • General Value Types (Int, Real, String, Bytes, Arrays, Mapping, Enum, address)
  • Ether Units, Time Units
  • Globally Available Variables & Functions
  • Operators: Arithmetic, Logical & Bitwise Operators
  • Control Structure (if-else, for, while, Do-While)
  • Scoping and Declarations
  • Input Parameters and Output Parameters
  • Function Calls & Return Types
  • Function Modifiers
  • Fallback Function
  • Abstract Contract
  • Inheriting Smart Contracts
  • Creating Contracts via "new" Operator
  • Importing Smart Contracts & Compiling Contracts
  • Events & Logging
  • Exceptions
  • Don't Skip! Node JS Versioning
  • Boilerplate Requirements
  • Project File Walkthrough
  • Syntax Highlighters
  • Compiling Solidity
  • The Compile Script
  • Testing Architecture
  • Running Windows?
  • Installing Modules
  • Web3 Versioning
  • Web3 Providers
  • Testing with Mocha
  • Mocha Structure
  • Fetching Accounts from Ganache
  • Refactor to Async/Await
  • Deployment with Web3
  • Deployed Inbox Overview
  • Asserting Deployment
  • Web3 Version Fix
  • Verifying the Initial Message
  • Testing Message Updates
  • Deployment with Infura
  • Infura Signup
  • Wallet Provider Setup
  • Deployment to Rinkeby
  • Observing Deployment on Etherscan
  • Deployed Contracts in Remix
  • Complete Example: Crowd Funding Smart Contract
  • Complete Example: Voting Ballot Smart Contract
  • The Lottery Contract
  • Lottery Design
  • Basic Solidity Types
  • Starting the Lottery Contract
  • The Message Global Variable
  • Overview of Arrays
  • Overview of Mappings and Structs
  • Big Solidity Gotcha
  • Entering the Lottery
  • Validation with Require Statements
  • The Remix Debugger
  • Psuedo Random Number Generator
  • Selecting a Winner
  • Sending Ether from Contracts
  • Resetting Contract State
  • Requiring Managers
  • Function Modifiers
  • Returning Players Array
  • Contract Review
  • Test Project Updates
  • Test Helper Review
  • Asserting Deployment
  • Entering the Lottery
  • Asserting Multiple Players
  • Try-Catch Assertions
  • Testing Function Modifiers
  • End to End Test
  • Building Interactive Front-Ends
  • Application Overview
  • Getting Started with Create-React-App
  • Multiple Web3 Instances
  • Web3 Setup
  • Deploying the Lottery Contract
  • Local Contract Instances
  • Rendering Contract Data
  • Instance Properties
  • Accessing More Properties
  • The 'Enter' Form
  • Form Setup
  • Entering the Lottery
  • Picking a Winner
  • Project Review
  • Solving Real Problems with Contracts
  • Fixing Kickstarter's Issues
  • Campaign Contract Design
  • Campaign Constructor
  • Contributing to the Campaign
  • A Quick Test
  • The Request Struct
  • More on Function Modifiers
  • Creating Struct Instances
  • Instance Creation Syntax
  • Storage and Memory
  • More on Storage vs Memory
  • Voting System Requirements
  • The Wrong Voting System
  • Issues with Arrays
  • Mappings vs Arrays
  • Basics of Mappings
  • Refactoring to Mappings
  • Refactoring Request Stucts
  • More on Struct Initialization
  • Approving a Request
  • Testing Request Approvals
  • Finalizing a Request
  • Last Remix Test
  • Thinking about Deployment
  • Solution to Deployment
  • Adding a Campaign Factory
  • Testing the Factory
  • Project Setup
  • Directory Structure
  • A Better Compile Script
  • Single Run Compilation
  • More on Compile
  • Test File Setup
  • Creating Campaign Instances
  • Testing Warmup
  • Accessing Mappings
  • Requiring Minimum Contributinos
  • Array Getters
  • One End to End Test
  • Deployment
  • Refactoring Deployment
  • Advanced Multi-Page Front-Ends
  • App Mockups
  • CRA vs Next
  • Next's Pages Architecture
  • Basics of Next Routing
  • Root Routes
  • CampaignFactory Instance
  • Getting a Test Campaign
  • Fetching Deployed Campaigns
  • Why Next.js?
  • Server vs Client Web3 Instances
  • GetInitialProps Function
  • Semantic UI React
  • Card Group Setup
  • Rendering Card Groups
  • Adding CSS
  • Adding a Button
  • The Need for a Layout
  • The Layout Component
  • Assembling a Header
  • Constraining Content Width
  • Two Column Layout
  • Nested Routing
  • Final CSS Fix
  • Form Creation
  • Input Change Handlers
  • Form Submittal
  • Testing Submittal
  • Form Error Handling
  • Button Spinners
  • Routing Issues
  • Next Routes Setup
  • Automatic Navigation
  • Header Navigation
  • Routing to Campaigns
  • Restarting the Server
  • Route Mappings
  • Planning CampaignShow
  • Redeploying CampaignFactory
  • CampaignShow's GetInitialProps
  • Accessing a Campaign
  • Summary Translation Layer
  • Custom Card Groups
  • One Card Per Property
  • The Contribute Form
  • Grid Layouts
  • Form State
  • Communicating the Campaign Address
  • Making a Contribution
  • Refreshing Contract Data
  • Spinners and Error Handlers
  • Listing Requests
  • Grids vs Columns
  • More Routing!
  • Request Creation Form
  • Form Polish
  • Creating a Request
  • Requests One by One
  • Fancy Javascript
  • Small Typo!
  • Rendering a Table
  • Request Row Component
  • Request Row Content
  • Approvers Count Cell
  • Approving a Request
  • Finalizing Requests
  • Testing Finalization
  • Row Status Styling
  • Finishing Requests Index
  • What is Hyperledger?
  • Distributed Ledger Technology & its Challenges
  • Hyperledger & Distributed Ledger Technology
  • Hyperledger Fabric & Composer Concepts
  • Hyperledger Fabric : A DLT for Business Applications
  • Hyperledger Fabric : DLT for Business
  • Assets, Chaincode & Ledger
  • Assets, Chaincode and Transactions
  • Permissioned Network, Members & Membership Service Provider
  • Permissioned Network, Member & Membership Services
  • Nodes and Channels
  • Hyperledger Fabric Composer Overview
  • Pre-Requisites for Fabric development
  • Frequently Asked Questions | Common Issues
  • Development Machine Specifications & IDE
  • Composer Dev Tools Installation
  • Exercise: Validate the Composer Development Environment
  • Install Docker or Docker Toolkit
  • Install CURL and Cygwin (Windows only)
  • Linux/Ubuntu & AWS: Setup of Fabric Development on Local & Cloud VM
  • Mac OS: Setup of Fabric Development Environment
  • Windows : Fabric development environment setup
  • How to use the Dev Tools
  • Development Environment Topology
  • Fabric Under the Hood (Concepts & Terminology)
  • Dev Environment Walkthrough: Peer & CouchDB setup
  • Ledger Implementation
  • Peers Nodes : Anchors and Endorsers
  • Anchor Peers & Endorsing Peers
  • Clients Node: Endorsement Policies
  • Client Peer & Endorsing Policies
  • Orderer Nodes
  • Membership Service Provider & Certification Authority
  • Dev Environment Walkthrough: Orderer and CA Server
  • Chaincode Development
  • Using Composer Tools for Application Development & Administration
  • Fabric Composer Playground
  • Composer Playground
  • Yeoman Hyperledger Generators
  • Yo Generators
  • Participant Roles and Business Network Cards
  • Composer CLI Tool - Deploying a Network Application
  • Composer CLI Tool - Network Application Management
  • Exercise: Create & Deploy Network Application
  • REST Server Overview
  • REST Server Security
  • Skeleton Angular Application using Yo
  • Composer SDK Overview
  • Business Network Application Modelling
  • Case Study: ACME Airlines
  • Modeling Language Files | Namespace
  • Defining the Resources
  • Support for Object Orientation
  • Modeling Arrays
  • Registries & Relationship between Resources
  • Arrays, Registries & Relationships
  • Adding the field Validations
  • Field validations
  • Resource Registries & Identities +Exercise
  • Modeling the Transactions
  • Exercise: Fix the code for generating the FlightId
  • Exercise: Add a set of aircraft queries
  • Managing identities for Network Applications
  • Access Control Language (Part 1 of 2) Simple Rules
  • Exercise: Simple Rule for ACMENetworkAdmin
  • Access Control Language (Part 2 of 2) Conditional Rules
  • Exercise: Conditional Rule for ACMEPersonnel
  • Composer SDK / API : Coding the Client Apps
  • Business Network Card Management
  • Card Storage API
  • Admin Connection Class
  • Business Network Connection Class
  • Submitting a Transaction
  • Registries
  • Resources
  • Querying the Registries
  • Subscribing to Events
  • Write a utility to create | delete test data​ for ACME Airline Model
  • Composer SDK / API : Coding the Transaction Processors
  • Embedded Runtime for Testing
  • Crash course in Mocha and Chai
  • Writing Unit Test Cases for Network Applications
  • Runtime API for Transaction Processing Functions
  • Exercise: Define the Aircraft Assignment Transaction
  • Query invocation in Transaction Processing Functions
  • Implementing Programmatic Access Control
  • Emitting events and Integrating with external systems
  • Developing Front End Applications for Network Applications
  • Application Design Patterns
  • Application Architecture Patterns
  • Securing the REST server with Authentication Strategy
  • Walkthrough: Applying OAuth2.0 Authentication Strategy to REST Server
  • Working of Multi User Enabled REST Server
  • Walkthrough - REST Server Multi User mode
  • Create the Design Blueprint for the Fabric Application UI