Practical Blockchain And Smart Contracts : Ethereum And Solidity

A complete Practical Approach to Blockchain & Smart Contracts using Node.js - JavaScript & Solidity - Ethereum - web3.js

  • ( 4.0 ) (1 Reviews) 1 students enrolled

Course Overview

Blockchain is a transaction ledger that maintains identical copies across each member computer within a network. The interesting feature is that, once information is placed inside a block of the blockchain, the tampering or changing of it is impossible.

Governments and financial organizations have already invested millions of dollars into blockchain research and development and most of them have already implemented blockchain in financial services and record keeping.

Also, blockchain-based smart contracts are replacing conventional paper contracts and other promissory deeds. A smart contract is an electronic contract that can execute itself after the conditions mentioned in the contact is full-filled. Since it's also based in blockchain, once created, it cannot be tampered by anyone.

If you are a technology enthusiast or a programmer who wish to integrate blockchain in your applications, this is the right time to get yourself a thorough knowledge about the practical implementation of blockchain.

There are tons of material and books out there explains, the concepts, nuts and bolts of blockchain. But only a very few of them explains how it can be practically implemented.

In this course, I have taken extreme care to keep a 30 / 70 percentage balance between the theoretical concepts and the practical implementation respectively.

After this course, you will get a clear idea of how and where to implement blockchain in your existing software projects as well as your upcoming project ideas.

Here is the overview of the list of topics that I have included in this course

Before we proceed with the intense practice sessions, we will have the first few secessions in which we discuss the history and the basic concepts of blockchain distributed applications and smart contracts.

In Session 1, we will discuss the history of blockchain and distributed applications. Also, we will check the basic structure of a block. Which is the building block of the blockchain, which is a chain of these blocks.

In session 2, we will understand with the help of demographics, how these blocks are linked to form a blockchain and the major security measures in the blockchain which makes it this much secure.

In session 3, we will have a small discussion about the types of networks and the concept of cryptocurrencies like bitcoin which is built based on blockchain technology

In session 4, we will have an overview of what is mean by smart contracts based on blockchain and its working. Also, we will discuss the various fields of applications of blockchain at present and in the future.

And once we have enough basics about the concepts, we will jump directly into our first practical blockchain workshop. In which, we will build a working model of a conceptual blockchain out of simple JavaScript and JavaScript runtime called nodejs. Don't worry if you have only basic JavaScript knowledge, I will explain things very clearly that even a novice can understand and follow.

In session 5, we will prepare our computer by installing and configuring node js and visual studio code which will help us in developing the JavaScript blockchain

In sessions 6 we will create the class for a single block, which we will be using to create the blockchain.

And in session 7, we will create our first block in the chain called the genesis block.

In session 8, We will and the functionality to add new blocks so that we can create rest of the blocks

In session 9, we will test the block addition mechanism in our JavaScript block chain

and in session 10, we will implement hash verification, which is the most important security measure inside our blockchain.

In the next session 11, we will include an additional security measure called proof of work to prevent the quick tampering attempts of our JavaScript block chain.

In session 12, we will implement the concept of mining rewards for the minors who mines and validate new blocks for our JavaScript block chain.

And that's all with our simple JavaScript conceptual blockchain application and from the next session onwards we are going to get our hands dirty with some serious business using the actual ethereum blockchain network. In the coming sessions, we will create an ethereum based blockchain and deploy our smart contract within the ethereum blockchain network. For your information, ethereum is the worlds most popular open-source public blockchain platform.

So in session 13, we will be getting our systems ready to build our ethereum blockchain by downloading and installing the dependencies which include nodejs, ganache, metamask solidity language, the truffle framework and sublime text editor for coding.

In session 14, we will configure these dependencies and we will do a basic test to make sure everything is ready to proceed with the development.

 

We will start building our blockchain smart contract project out of solidity and ethereum. This project is a simple contest application, for finding out the best actor, with two contestants Tom and Jerry. We will have to build a blockchain-based app to find who is getting the maximum viewer support.

 

In the next session 15, we will create the model and class to use for every contestant in the project and we will include tom and Jerry as contestants and

In session 16, we will fetch the contestant list using web3js, which is the library used to interact with the blockchain.

Since smart contract can be created once and cannot be altered, the testing procedure should be done strictly before deploying it into the blockchain network. If any mistake or bug, the only option you will have is to remove the existing contract and deploy the new one instead, which is very time consuming and inconvenient. So In session 17, the blockchain will be tested by using the truffle framework's testing environment by emulating the transaction of creating users.

Till now, all the blockchain interaction happens over the node js command-line interface and the truffle framework command line. Now its time to make it appear to our customers or on-line users in an attractive web-based front end, using a web page. To proceed with that, we will create the HTML part of the front end application in session 18 and session 19, we will include the JavaScript part of the simple and beautiful HTML page we created and we will list the contestants in our best actor contest to the public by running the lite-server which comes along with the truffle framework.

In session 20, in addition to the contestants listing functionality, we will add the voting functionality also to our blockchain smart contract.

Since the members and non-members of the network may use the voting app, we need to thoroughly check for the conditions and rules we implemented in the smart contract. We will test the functionality until now using the truffle framework testing mechanism in session 21

In session 22, we will include rules and restrictions for our best actor contest. Rules like a user can vote only once and the user cannot vote for any non-existing contestants.

Till now the voting can only be done via a command line. In session 22, in our simple web interface, we will include the functionality to cast vote to any contestant from our web page.

And in the final session, we will create an event watch which will listen for the event of voting and once the voting is done, it will refresh the page and fetch data from the blockchain network so that the winner of the contest can be known every then and there.

Even though these are sample projects, it will surely give enough insight to your mind about how the blockchain can be included in your web or mobile projects. This course will also give you enough knowledge to get yourself ahead of others in the blockchain race which has already started.

After successful completion of the course, we will provide you with a course completion certificate which will add much value to your career as a developer, software engineer or as a software architect.

What are the requirements?

  • A Technology enthusiast with basic programming knowledge. A window, mac or linux computer.

What am I going to get from this course?

  • A thorough understanding about blockchain technology. Create blockchain applications and Smart Contracts using Solidity language in Ethereum platform

What is the target audience?

  • Beginner programmer or technology enthusiast who wish to learn about blockchain technology and implement it in projects

About the Author

I  am a pioneering, talented and security-oriented Android/iOS Mobile and PHP/Python Web Developer Application Developer offering more than eight years’ overall IT experience which involves designing, implementing, integrating, testing and supporting impact-full web and mobile applications. I am a Post Graduate Masters Degree holder in Computer Science and Engineering. My experience with PHP/Python Programming is an added advantage for server based Android and iOS Client Applications. I am currently serving full time as a Senior Solution Architect managing my client's projects from start to finish to ensure high quality, innovative and functional design.

Course Curriculum

Course Introduction and Topics Included
1 Video Lectures | 00:10:54

  • Course Introduction and Topics Included
    10:54
     

Theory Session 1 - Introduction to Blockchain - history and structure of blocks
1 Video Lectures | 00:04:52

  • Theory Session 1 - History of Blockchain and structure of Blocks
    04:52
     

Theory Session 2 - Blockchain Concept, Working and Security Mechanisms
1 Video Lectures | 00:05:07

  • Theory Session 2 - Blockchain Concept, Working and Security Mechanisms
    05:07
     

Theory Session 3 - Different Types of Networks, Blockchains and Cryptocurrencies
1 Video Lectures | 00:06:11

  • Theory Session 3 - Different Types of Networks, Blockchains and Cryptocurrencies
    06:11
     

Theory Session 4 - Smart Contracts and Future of Blockchain
1 Video Lectures | 00:03:13

  • Theory Session 4 - Smart Contracts and Future of Blockchain
    03:13
     

Javascript and NodeJS based Conceptual Blockchain Implementation - System Setup
1 Video Lectures | 00:06:51

  • JavaScript based Simple Blockchain - System Setup
    06:51
     

JavaScript Blockchain - Create Block Class - Part 1
1 Video Lectures | 00:04:51

  • JavaScript Blockchain - Create Block Class - Part 1
    04:51
     

JavaScript Blockchain - Create Block Class - Part 2
1 Video Lectures | 00:06:34

  • JavaScript Blockchain - Create Block Class - Part 2
    06:34
     

JavaScript Blockchain - Create Genesis Block
1 Video Lectures | 00:04:38

  • JavaScript Blockchain - Create Genesis Block
    04:38
     

JavaScript Blockchain - Create Other Blocks
1 Video Lectures | 00:05:12

  • JavaScript Blockchain - Create Other Blocks
    05:12
     

JavaScript Blockchain - Testing Blocks Addition
1 Video Lectures | 00:06:38

  • JavaScript Blockchain - Testing Blocks Addition
    06:38
     

JavaScript Blockchain - Implementing Security - Hash Validation
1 Video Lectures | 00:09:23

  • JavaScript Blockchain - Implementing Security - Hash Validation
    09:23
     

JavaScript Blockchain-Implementing Security - Proof of Work : Part 1 - The Logic
1 Video Lectures | 00:06:34

  • JavaScript Blockchain-Implementing Security - Proof of Work : Part 1 - The Logic
    06:34
     

JavaScript Blockchain-Implementing Security - Proof of Work : Part 2 - Implement
1 Video Lectures | 00:11:26

  • JavaScript Blockchain-Implementing Security - Proof of Work : Part 2 - Implement
    11:26
     

JavaScript Blockchain-Transactions and Mining Rewards - Part1 - Building Logic
1 Video Lectures | 00:09:55

  • JavaScript Blockchain-Transactions and Mining Rewards - Part1 - Building Logic
    09:55
     

JavaScript Blockchain-Transactions and Mining Rewards - Part2 - Cryptocurrency
1 Video Lectures | 00:10:41

  • JavaScript Blockchain-Transactions and Mining Rewards - Part2 - Cryptocurrency
    10:41
     

JavaScript Blockchain-Transactions and Mining Rewards - Part3 - Cryptocurrency
1 Video Lectures | 00:03:51

  • JavaScript Blockchain-Transactions and Mining Rewards - Part3 - Cryptocurrency
    03:51
     

Ethereum and Solidity based blockchain smart contract web App - System Setup
1 Video Lectures | 00:09:37

  • Ethereum Blockchain Smart Contract - System Setup
    09:37
     

Ethereum Blockchain - Best Actor Selection App. Build Contestant Class - Part 1
1 Video Lectures | 00:08:32

  • Ethereum Blockchain Smart Contract - Creating Class and getting Snippet - Part 1
    08:32
     

Ethereum Blockchain - Testing the solidity code Migration to Blockchain Network
1 Video Lectures | 00:07:56

  • Ethereum Blockchain Smart Contract - Testing and migrating to Blockchain
    07:56
     

Ethereum Blockchain-Creating Class and Accessing Contestant class Data - Part 3
1 Video Lectures | 00:05:54

  • Ethereum Blockchain Smart Contract - Creating Class and Accessing data - part 3
    05:54
     

Ethereum Blockchain - Multiple Contestants Structure and Functions - Part 1
1 Video Lectures | 00:11:04

  • Ethereum Blockchain - Multiple Contestants Structure and Functions - Part 1
    11:04
     

Ethereum Blockchain - Add, List and Count Multiple Contestants , Deploy - Part 2
1 Video Lectures | 00:07:25

  • Ethereum Blockchain - Add, List and Count Multiple Contestants , Deploy - Part 2
    07:25
     

Ethereum Blockchain - Fetch Contestant Attributes, get accounts using web3js
1 Video Lectures | 00:08:42

  • Ethereum Blockchain - Fetch Contestant Attributes, get accounts using web3js
    08:42
     

Ethereum Blockchain - Logic Test 1 - Prior to Smart Contract Deployment
1 Video Lectures | 00:11:31

  • Ethereum Blockchain - Logic Test 1 - Prior to Smart Contract Deployment
    11:31
     

Ethereum Blockchain - Listing Contestants - Building the front-end HTML page
1 Video Lectures | 00:10:44

  • Ethereum Blockchain - Listing Contestants - Building the front-end HTML page
    10:44
     

Ethereum Blockchain - Listing Contestants - Building the JavaScript Code - Part1
1 Video Lectures | 00:08:56

  • Ethereum Blockchain - Listing Contestants - Building the JavaScript Code - Part1
    08:56
     

Ethereum Blockchain - Listing Contestants - Building the JavaScript Code - Part2
1 Video Lectures | 00:08:04

  • Ethereum Blockchain - Listing Contestants - Building the JavaScript Code - Part2
    08:04
     

Ethereum Blockchain - Listing Contestants - Build the UI Render Function - Part3
1 Video Lectures | 00:06:27

  • Ethereum Blockchain - Listing Contestants - Build the UI Render Function - Part3
    06:27
     

Ethereum Blockchain - Listing Contestants - Testing the Web UI - Part 4
1 Video Lectures | 00:14:12

  • Ethereum Blockchain - Listing Contestants - Testing the Web UI - Part 4
    14:12
     

Ethereum Blockchain - Build, Implement and Test the Voting Mechanism
1 Video Lectures | 00:15:56

  • Ethereum Blockchain - Build, Implement and Test the Voting Mechanism
    15:56
     

Ethereum Blockchain - Testing Voting using Truffle Built-in Testing Environment
1 Video Lectures | 00:08:48

  • Ethereum Blockchain - Testing Voting using Truffle Built-in Testing Environment
    08:48
     

Ethereum Blockchain - Adding Validation and Restrictions to Voting functionality
1 Video Lectures | 00:10:56

  • Ethereum Blockchain - Adding Validation and Restrictions to Voting functionality
    10:56
     

Ethereum Blockchain - Adding Voting Function to Web UI - Part 1
1 Video Lectures | 00:09:25

  • Ethereum Blockchain - Adding Voting Function to Web UI - Part 1
    09:25
     

Ethereum Blockchain - Adding Voting Function to Web UI - Part 2
1 Video Lectures | 00:06:18

  • Ethereum Blockchain - Adding Voting Function to Web UI - Part 2
    06:18
     

Ethereum Blockchain - Adding Event Watcher to Voting Functionality
1 Video Lectures | 00:06:10

  • Ethereum Blockchain - Adding Event Watcher to Voting Functionality
    06:10
     

Ethereum Blockchain -STEPS - TROUBLESHOOTING WEB UI
1 Video Lectures | 00:02:24

  • Ethereum Blockchain -STEPS - TROUBLESHOOTING WEB UI
    02:24
     

SOURCE CODE ATTACHED
2 Document Lectures

  • ETHEREUM SOURCE CODE ATTACHED
    57 Page
  • JS SOURCE CODE ATTACHED
    88 Page

reviews

  • Sandhya tr
    Amar