Developing Applications on Ethereum Blockchain

Learn to develop applications for the Ethereum platform. Start with the basics of blockchain and Ethereum, then learn the core skills for writing smart contracts using Solidity programming language.
Course info
Rating
(17)
Level
Beginner
Updated
Dec 7, 2018
Duration
5h 15m
Table of contents
Course Overview
Ethereum Protocol
Getting Started with Smart Contracts
Solidity Programming Language
Ethereum API
Truffle Framework
Developing Advanced Smart Contracts
Web Applications with Ethereum
Description
Course info
Rating
(17)
Level
Beginner
Updated
Dec 7, 2018
Duration
5h 15m
Description

For years client-server applications dominated the software development landscape. Despite the advancements in technologies and architecture, the fundamental model remained the same. In this course, Developing Applications on Ethereum Blockchain, you will gain the ability to develop decentralized applications for Ethereum. First, you will learn the basics of blockchain and the Ethereum platform. Next, you will discover how to develop smart contracts using Solidity, how to interact with smart contracts, and how to create an efficient development environment for Ethereum projects. Finally, you will explore how to develop web applications that interact with an Ethereum blockchain. When you’re finished with this course, you will have the skills and knowledge of the Ethereum platform needed to develop your applications for both public and private networks.

About the author
About the author

Ivan is a software development engineer at Amazon in CloudWatch team. Before he joined Amazon he was working at Samsung R&D. In his free time, he contributes to Apache Flink.

More from the author
AWS DynamoDB Deep Dive
Intermediate
3h 21m
Oct 2, 2017
Section Introduction Transcripts
Section Introduction Transcripts

Course Overview
(Music) Hi everyone. My name is Ivan Mushketyk, and welcome to my course, Developing Applications on Ethereum Blockchain. I am a software engineer at Consensus, a blockchain software technology company. For the last several years, many different companies were developing platforms for decentralized applications that allowed your use cost, increased transparency, and security. Ethereum is a versatile platform that enables building decentralized applications for both private and public projects. In this course, we are going to learn how to develop applications for an Ethereum blockchain. Ethereum, as other blockchain projects, as a steep learning curve, but this course starts from the very foundations of those technologies and progresses to more and more complex features, and covers the related technologies as well. Some of the major topics that we will cover include foundations of the blockchain and Ethereum technologies, Solidity programming language, developing smart contracts with Solidity, Truffle build tool, and how to build web applications for Ethereum. By the end of this course, you will know how to develop non-trivial applications for Ethereum and will be able to implement full-stack applications for this platform. Before beginning this course, you should be familiar with at least one object-oriented programming language and have at least basic knowledge of JavaScript. I hope you will join me on this journey to learn how to write decentralized applications for Ethereum with the Developing Applications on Ethereum Blockchain course at Pluralsight.

Getting Started with Smart Contracts
Hi, and welcome to the next module of this course called Getting Started with Smart Contracts. In this module, we will take a look at how to develop smart contracts, and if you recall, smart contracts are executable bits of code that live on the Ethereum network. To develop these smart contracts, we will use the Solidity programming language. This is a language that was specifically designed to create smart contracts on the Ethereum network, and another concept that we will talk about is called Ethereum Virtual Machine. It turns out that these smart contracts are run in the Ethereum Virtual Machine, and it's important to understand at least the basics of how it operates. There are two main goals of this module. First of all, we will implement a simple Hello World application, and what it means for blockchain development is that we will implement an app that allows to store a single value on Ethereum Blockchain. Now the second goal of this module is to learn the basics of smart contract development. When it comes to developing smart contracts, there are a lot of concepts to digest, and this is because it is quite different from conventional programming, and our goal in this module is to create a foundation that we can build upon in the following modules.

Solidity Programming Language
Hi, this is Ivan Mushketyk with Pluralsight, and welcome to the next module of this course, Solidity Programming Language. In this module we will dive deep into the Solidity programming language. Specifically, we will look at the data structures in Solidity programming language. We will look at control structures like if/else, loops, and so on. We will look into structs and structs is a way to group several fields together in one type in Solidity, and we will also look at features like constructors that allows you to initialize smart contracts, and other useful methods and features that you will likely use if you develop real smart contracts. At the end of this module, we will look into payments on Ethereum and we will see how we can accept payments in a smart contract, and we will see how we can pay Ethereum to other participants. Now to make our discussion more practical, we will develop two simple applications. So first of all, we will develop a simple voting application where different users on the Ethereum network can vote for one your options, and with this application, we will learn more about data structures and control structures in Solidity. The second application that we will develop is called multi-sig wallet, and this is a smart contract that allows us to store funds and to spend those funds, we need to get approvals from multiple people before we can spend those funds. And we will use this application to learn more about payments with the Ethereum network. Now without any further ado, let's get started.

Ethereum API
Hi, this is Ivan Mushketyk with Pluralsight, and welcome to the next module of this course called Ethereum API. And as you know, in the previous modules, we were using Remix IDE to work with Ethereum, but Remix IDE is only good for just learning Solidity programming language. However, if you want to work with real smart contracts, you need a different set of skills, and we will start learning them in this module. First of all, we'll talk about the Ethereum API that you can use to access Ethereum network programmatically, and at the end of this module, we'll dive deep into how blocks are actually generated in Ethereum network, a topic that we've just skimmed over so far. My hope is that by the end of this module, you will get two new skills. So first of all, you will be able to deploy a contract using Ethereum API, something that was hidden from us by the Remix IDE that we were using so far, and I hope that you will learn how to interact with smart contracts on Ethereum using Ethereum API, a vital skill if you want to implement unit tests for your smart contracts or if you want to implement an application that works with Ethereum network. Before we start this module, I would like you to install three tools on your machine. First of all, you would need to install Node. js, an environment that allows us to run JavaScript applications. Then you would need to install npm and npm is a tool that allows us to install JavaScript libraries. And you would also need an editor that supports Solidity code highlight, and there are many editors that support Solidity code highlight. Specifically, I will use Visual Studio Code, and the reason for this is that we will write a lot of JavaScript code and Visual Studio Code has a good support for JavaScript, and this is a nice editor to use in general, but you can use any editor that you prefer.

Truffle Framework
Hi, this is Ivan Mushketyk with Pluralsight, and welcome to the next module of this course called Truffle Framework. In the previous module, we were using web3. js to deploy our smart contract and interact with it, but to implement operations that we did in the previous module, we had to write quite a bit of code, and this is because web3. js requires us to write too much code to deploy or test a smart contract. It is too low-level to implement operations to implement a proper development environment, but to be efficient in developing smart contracts, we need to have a proper development environment. And in this module, we will finally learn how build one to work with Solidity smart contracts. We will learn Truffle Framework, which is as for today, the most popular development environment for smart contracts, and we will see how we can create a project with Truffle Framework to work on smart contracts. So what skills will we learn in this module? So first of all, we will see how we can deploy smart contracts with Truffle, and this is way, way easier than deploying it with web3. js. Second, we will see how we can write unit tests for our smart contracts with JavaScript, and how to write unit tests for our smart contracts with Solidity. And we will also learn how to run a test Ethereum network. In the previous modules, we will either using Remix or interacting with a real Ethereum network, but in this module, we will see how we can start a process on our machine that will emulate an Ethereum network. Okay, now without any further ado, let's get started!