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.
After taking this course, you should be able to:
This course will be delivered using presentations, videos, demos, discussions and many hands-on excercises. On completion, you should be able to:
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:
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.
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!