ABOUT THE COURSE

The ultimate course to learning and writing comprehensive smart contract driven Blockchain applications in just 3 days

Ethereum is the worlds largest Blockchain platform for building distributed, smart contract driven Blockchain applications. At the same time, Ethereum is undergoing rapid changes to its API, consensus mechanisms and the solidity programming language used for writing smart contracts. Many online learning resources tend to become outdated very quickly. For someone wishing to learn Ethereum, it becomes quite challenging to find up to date courses and learning content. To solve this problem, we have designed this course to enable participants to learn from the latest version of the platform. We keep the course up to date by continuously updating the content whenever changes occur.

The key objective of the course is to help you go from zero knowledge of Blockchain or Ethereum, to learn all the key concepts and get started with writing Eathereum smart contracts and DApps (distributed applications) within 3 days. After taking this course, you should be able to go beyond simple token contracts and focus on building DApps and smart contracts for different use cases.

Outcomes

After taking this course, you should be able to:

  • Identify use cases where a Blockchain can be used
  • Select the right consensus mechanism for different types of Blockchain application
  • Decide whether Ethereum fits a specific business use case
  • Work with product managers to plan and build a proof of concept Blockchain application
  • Setup the development environment and workflow for other developers in a team
  • Setup a simple DevOps workflow for building, testing and deploying applications
  • Design and write smart contracts for different use cases
  • Design and write tests for testing smart contracts
  • Design and build complete DApp (distributed/decentralized application) with smart contracts and Frontend UI using ReactJS

Learning objectives

This course will be delivered using presentations, videos, demos, discussions and many hands-on excercises. On completion, you should be able to:

  • Explain what a Blockchain is and how it works under the hoods
  • Understand the different types of Blockchain platforms and which ones to use for specific use cases
  • Understand how smart contracts work and what problems they solve
  • Write smart contracts for various use cases
  • Explain how Ethereum works
  • Install and administer Geth
  • Understand what kinds of Blockchain projects are a good fit to build on Ethereum
  • Install and setup Ethereum wallets for development and transactional use cases
  • Setup a complete development environment for rapid application development
  • Setup a basic DevOps workflow to automate testing and deploying Blockchain applications on AWS cloud
  • Write smart contracts without using any frameworks
  • Write smart contracts using the truffle framework
  • Write unit tests to test and ensure the correctness of smart contract functionality
  • Understand and explore the various Ethereum Request for Comments and how they help the ecosystem develop
  • Understand the various issues and problems that are likely to occur in developing Blockchain applications and how to work around them
  • Write complete smart contract driven applications that end-users can interact with through beautiful front-end UIs built using ReactJS.

Pre-requisites

Ideal: At least 2 years’ experience with any object-oriented programming language and basic knowledge of javascript and web development.

Participants must have knowledge of the below concepts

  • Writing javascript functions with callbacks
  • Writing modern javascript with promises and async/await
  • Basic HTML and CSS
  • Basic understanding of how CommonJS modules are written in NodeJS applications
  • Ability to use npm to install and use javascript libraries
  • Basic understanding of using JSON files for configuration
  • Conceptual understanding of javascript tools like Webpack, Gulp, or Babel
  • If you do not have the required experience with Javascript, we offer a 1 day introductory training on Javascript one day before this course.

Course Duration

  • 3 days
  • day on Javascript (optional and only for participants who do not meet the pre-requisites)

Course Outline:

1. Case study: Why do we need a Blockchain?

In this section, you will understand the scenario in which using a Blockchain makes sense for a specific business use case. You will work through a real life case study and understand the problems that can occur when you do not use a Blockchain. You will then work through the problem to design the ideal architecture that uses Blockchain for the business use case.

2. How does a Blockchain work, exactly?

Learning about Blockchain by reading and working through diagrams and presentations is fine. However, we feel that the best way to understand Blockchain is by breaking up the various components of Blockchain and work through them using a live demo. This is exactly what we will do in this section.

3. Blockchain vs. Traditional storage

It is important to understand when to use a Blokchain, as well as how it compares to using a standard database like RDBMS or NoSql. In thsi section, you will get answers to three important questions:

  • How does a Blockchain compare with traditional storage mediums such as RDBMS or NoSql?
  • What are the pros and cons?
  • When do we use a Blockchain vs. a database?

4. Types of Blockchain Platforms

There are hundreds of Blockchain platforms available for building applications. Some are designed for a general purpose while others for specific use cases. It is extremely important to choose the right platform for a given use case. Choosing wrong will lead to fighting the platform and to compromises in the application design and architecture. In this section, you will understand the different types of Blockchain platforms and how to select the right one for various use cases.

5. Consensus Models

The consensus mechanism in a Blockchain is very important. In this section, you will learn some of the popular consensus models and how they can impact DApp design and scalability. You will also learn why we need consensus in a Blockchain, as well as how various consensus models fit different use cases.

6. What are Smart Contracts?

Smart contracts are an exciting feature of Blockchain, and most real world applications use smart contracts in some form. In this section, you will learn the basics of smart contracts, and how they help in automation and elimination of third parties in business processes.

7. Why and when do we need Smart Contracts?

It is easy to get carried away and try to build everything in an application as a smart contract. However, not everything is meant to be built as a smart contract. You will learn the key scenarios where a smart contract must be used and when they must be avoided.M

8. The Business Case for Ethereum

In this section, you will learn the business scenarios and use cases where Ethereum is an ideal fit. You will also understand the pros and cons of Ethereum so that you can make the right choice when asked to develop a Blockchain application.

9. The Ethereum Ecosystem

The Ethereum world is huge! Let us explore this universe and identify some of the projects that are relevant for building Blockchain applications.

10. Ethereum Concepts, Virtual Machine and Architecture

In this section, we will go under the hoods and explore the key concepts and components that make up Ethereum. We will explore the architecture of the Ethereum Virtual Machine so that you have a good understanding about how everything functions internally.

11. Ethereum Cryptography

Cryptography is the foundation on which Blockchain applications are built. In this section, you will learn the important cyptography concepts and algorithms used in Ethereum that make it a secure Blockchain platform for building DApps.

12. Consensus Algorithms in Ethereum

Ethereum supports multiple consensus models. In this section, you will learn the pros and cons of each one, and the criteria to choose the right one for a use case.

13. Ethereum Networks

In this section, you will explore the Ethereum Main Network and the different types of test networks available. You will also learn how to leverage these networks when building a DApp.

14. Ethereum Wallets and Transactions

Ethereum has multiple wallets. Learn how to use each one of them and when to use the right wallet for different use cases.

15. Installing a Node and interacting with it

You will install the Geth client and configure it on your local machine. You will also learn how to interact with it and configure it for development. Finally, you will learn about other clients that are available and how they compare with Geth.

16. Tools of the Trade

There are a number of tools that you can use to build smart contract driven applications. However, the variety of choices can be quite confusing. In this section, you will learn and use tools such as Ganache, Remix, Truffle, Webpack, etc. that will help you quickly build, compile, test and deploy Blockchain applications. We will show how to do rapid development with the various tools, and also the pros and cons of each one.

17. Setting up the Ethereum Development Environment

Having built multiple products on Ethereum, we have identified the best development setup that will help you start working quickly without installing too many tools and softwares. In this section, you will use this setup for building Ethereum smart contracts and DApps in the rest of this course.

18. Writing Smart Contracts using Solidity

Solidity is a programming language that is designed specifically to write smart contracts for Ethereum. In this section, you will also learn why solidity was created to build smart contracts instead of using an existing programming language. You will also learn the key solidity language types and constructs used in writing smart contracts. This is an extremely important section, in which you will learn how to write different types of smart contracts and best practices.

19. Create a basic DevOps workflow

Now that you are set to start writing smart contract applications, you will learn to setup a basic DevOps workflow that will help you build and test on your local machine, and then deploy and test on the cloud.

20. Writing Smart Contracts without Frameworks

Frameworks are designed to make us productive and get results quickly. At the same time, frameworks such as truffle undergo fast developments and changes, and sometimes this leads to bugs or issues that can break your existing workflow. In this section, you will understand how frameworks such as Truffle work by building a mini framework from scratch.

21. Testing Driven Smart Contract Development

Writing tests is crucial in order to ensure that your smart contracts function as intended. You will learn the different ways to write tests and run them before deploying your application to a network.

22. Writing Smart Contracts with Truffle Framework

Now that you have a very strong foundation of working without a framework, you will learn the truffle framework and how it helps speed up your development. If you ever get stuck due to a bug in truffle, you can always fall back to using your own mini-framework.

23. Building Beautiful Blockchain based Web Applications

No DApp is complete without a frontend that end users can use to interact with it. In this section, you will learn how to use ReactJS and Web3JS to create beautiful, reactive Blockchain applications.

24. Build a complete Blockchain application

This is the most exciting part! You will build a complete smart contract driven business application from start to finish. Once you are done, you will use a DevOps workflow to test and deploy the completed application to AWS cloud.

25. ERC Proposals and tokenomics

If you are interested in creating tokens on Ethereum, this section is for you. We will explore ERC specifications like ERC-20, ERC-777, etc. that will help you create tokens. These specifications are standard and you dont have to build these smart contracts from scratch. We will show you where to find ready solidity code that meet these specifications and have been tested thoroughly by other users. It is best not to re-invent the wheel by trying to implement your own token contract.

26. Security

No training on Blockchain is complete without understanding security. Security is critical in a Blockchain application, especially if the application handles money or tokens. In this section, you will learn many security best practices that have been designed and recommended by the Ethereum community.

27. Lessons from the Trenches

Having consulted for many companies on building Blockchain based applications, as well as building our own product (genesisidentity.com), we have listed many gotchas and best practices. We will share some of these with you so that will know how to troubleshoot problems when they occur (and they will occur!)

28. What next?

Now that you are capable of writing smart contract driven applications using Ethereum, where do you go from here? We will share some resources that will help you move forward in your Blockchain learning journey.

Blockchain development is happening at a very fast pace. The number of companies that are exploring and building on Blockchain is mind boggling. The demand for Blockchain developers has already exceeded the number of people available multiple times over. This is truly an exciting time to learn Blockchain from a technology and career perspective. We look forward to see you in one of our training sessions and go through the learning journey together!

Mode: Hands On, Written Exercises, Group Discussion, Case Study etc