Learning Blockchain Application Development
1.0 (1 rating)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
25 students enrolled

Learning Blockchain Application Development

Building Smart Contracts and DApps on Ethereum
1.0 (1 rating)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
25 students enrolled
Created by Packt Publishing
Last updated 1/2019
English [Auto-generated]
Current price: $86.99 Original price: $124.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 3.5 hours on-demand video
  • 1 downloadable resource
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Create Decentralized Applications (DApps) that utilize blockchain technologies
  • Find out how to program Smart Contracts using Solidity
  • Implement business logic in the form of functions to execute tasks on the blockchain
  • Build a local Ethereum network to test and mine your applications
  • Write tests to ensure your applications behave properly
  • Send Ethereum tokens to and from Smart Contracts as payments
  • Deploy your application to Ethereum Test Networks and the Ethereum Main Network
  • Use React to create a user interface for interacting with your Ethereum DApp
Course content
Expand all 25 lectures 03:19:51
+ Start at the End
5 lectures 33:00

This video shows the entire overview of the course.

Preview 03:54

Here we will post an item for sale which is the first task required to use the application.

   •  Understand the workflow of adding an item

   •  Implement the components to create the application workflow

   •  Understand the relationship between workflow and components

Posting an Item for Sale

This video about buying an item is the reverse workflow of what we learned in the previous video, but uses the same technologies and components.

   •  Compare the workflow of adding versus buying

   •  Implement the components to create the application workflow

   •  Review the concepts used in React and Redux

Buying an Item for Sale

This video teaches the viewer how to transfer funds between contracts and wallets, while relying on concepts built in previous videos.

   •  Identify the technology components necessary to transfer funds

   •  Follow the Redux action/reducer pattern to implement the workflow

   •  Identify the role of the Redux store in applications

Concluding the Transaction and Releasing the Funds

In order to build the application, the one must have a properly functioning development environment. This video explains the tools needed and their role in the development lifecycle.

   •  Learn the individual tools and their role in the application

   •  Install tools as needed

   •  Verify tools launch and operate

Setting Up Our Development Environment
+ Create Your First Smart Contract in Ethereum
5 lectures 36:14

Contracts represent the business logic of decentralized applications. This video introduces smart contracts and best practices for creating them.

   •  Learn the principles of Ethereum contracts

   •  Understand the role of a contract in our application

   •  Create a basic Ethereum contract

Creating a Contract with Solidity

Data types and functions are the building blocks of contracts. In this video, we will learn about the different types and how to use them.

   •  Learn the different data types in Ethereum contracts

   •  Learn what functions are in Ethereum contracts

   •  Implement a contract using datatypes and functions

Add Datatypes and Functions to a Contract

Functions use different keywords to identify their roles and capabilities in a contract. This video introduces common keywords and the features associated with them.

   •  Learn the common keywords used in contracts

   •  Understand what each keyword does

   •  Add a function using a keyword modifier

Change Function Behaviors with Modifiers

Events are used in Ethereum contracts to write logs and events to the transaction logs. In this video, we will learn their role and how to implement them.

   •  Understand the capabilities and limitations of events

   •  Create a basic event in a contract

   •  View the emitted event in the logs

Emitting Events

Every contract must have a failsafe, or a way to permanently disable a contract. This video teaches us how to implement one.

   •  Explain why kill() functions are a necessary component

   •  Learn the limitations and other components about kill() functions

   •  Implement a kill() function in a contract

Create a kill() Function for Your Smart Contract
+ Testing Your Smart Contract
5 lectures 58:29

Tests can be thought of as nice-to-have features. This video teaches us why they are necessary for Ethereum contracts.

   •  Learn the role of tests in contract development

   •  Understand common pitfalls of testing

   •  Learn how to convince others the value of tests

Preview 07:48

Tests can be written in Solidity or JavaScript. This video covers tests in Solidity, and shows the viewer how to implement them.

   •  Learn naming conventions required for tests

   •  Explain writing tests using examples

   •  Create tests for an Ethereum contract

Write Unit Tests in Solidity

JavaScript tests allow additional functionality, above and beyond what is possible with solidity tests. This video introduces and explains how to write tests in JavaScript.

   •  Learn how JavaScript tests interact with contracts

   •  Learn the tests possible with JavaScript

   •  Write an integration test simulating user behavior

Write Integration Tests in JavaScript Using Mocha

Ganache provides a local Ethereum test network, utilized during development to promote faster code iteration. This video introduces Ganache and the features it provides.

   •  Learn what capabilities Ganache provides for development

   •  Identify the main components of Ganache

   •  Use Ganache to run your contract tests

Use Ganache to Run Your Tests

Failing tests are a staple of test driven development. However, tests often fail for reasons other than what you were expecting. This video teaches the viewer how to interactively debug contracts to identify bugs.

   •  Learn two different types of debugging available – JavaScript and Truffle

   •  Debug a problem using JavaScript

   •  Debug a problem using Truffle

Debugging Your Smart Contract When Tests Fail
+ Build a User Interface for Your Smart Contract Using React
5 lectures 34:19

React comprises the User Interface for our decentralized application. This video introduces React and teaches the action/reducer/store pattern.

   •  Learn what React components are

   •  Identify the action/reducer/store pattern

   •  Implement a function to call data on page load

Retrieve the Data from the Smart Contract on Page Load

Executing contract functions that update the contract represent a unique problem in decentralized applications. This video focuses on the unique challenges of updating contracts.

   •  Execute a function call from React with Ether

   •  Analyze function response for user information

   •  Review the action/reducer/store pattern for payable transactions

Implement the Contract Purchases in the UI

Providing user feedback can be challenging in non-real-time networks like blockchain. In this video, we will learn how to provide feedback to users and update the UI when new data is available.

   •  Examine the components available for providing updates

   •  Implement a Snackbar container for confirmations

   •  Implement a background poller to refresh data

Persist the Contract State and Refresh the UI on State Change

MetaMask represents an Ethereum bridge for the browser. In this video, we will learn why this is necessary in decentralized applications.

   •  Learn what MetaMask provides and alternative solutions

   •  Configure a MetaMask wallet

   •  Add additional accounts to the wallet

Configure a MetaMask Wallet for Purchases

In this video, we will learn the challenges of collecting metrics and logs from remote users. As well as the challenges, they will learn some solutions for addressing this problem.

   •  Identify the challenges of collecting metrics and data from users

   •  Learn about different solutions used to solve this problem

   •  Implement elasticsearch to collect metrics

Instrument User Feedback and Logging for Successful Transactions and Errors
+ Deploying Your Smart Contract
5 lectures 37:49

Contract deployment is the process of publishing your contract to an Ethereum network.

   •  Learn how to deploy and launch all application components

   •  Launch the application and test

   •  Add an item using the constructor function

Deploy Your Contract Locally Using Ganache

Multiple Ethereum test networks exist. This video introduces them to us and provides guidelines for choosing one.

   •  Learn the common Ethereum test networks available

   •  Understand the differences between them

   •  Connect to the Ropsten network using geth

Deploy Your Contract to Testnet

In order for the world to access our application, we need to host it somewhere. This video teaches us how to package and deploy their application using AWS.

   •  Identify the major components used in AWS

   •  Learn the deployment process for AWS

   •  Launch an application using AWS

Deploy Your UI to AWS

In the final stage of this course, we will use the application for an end-to-end transaction, simulating multiple users.

   •  Post an item for sale as a seller

   •  Buy an item for sale as a buyer

   •  Claim the proceeds of the sale as the buyer

Interacting with Your Application on Testnet

When things go wrong, having a solid strategy for resolving them reduces time to resolution. In this video, we will learn common, effective troubleshooting techniques.

   •  Learn a common pattern for identify failures

   •  Identify sources of information in AWS

   •  Learn common contract deployment errors

Troubleshooting Deployments
  • No prerequisite skills in blockchain technology are required though some familiarity with writing code and applications will be helpful.

Blockchain disrupts many different aspects of our life including finance, retail, merchandising, identity, and more. Ethereum is a platform that runs smart contracts: applications that run exactly as programmed without any possibility of downtime, censorship, fraud, or third-party interference. This is the perfect guide to help you learn the basics of building decentralized applications with the Ethereum network. You’ll learn the core concepts of decentralized applications as we build an online marketplace, connecting buyers and sellers together to exchange goods and services. In doing so, you’ll deploy your code to the Ethereum network, and build a user Interface to expose your decentralized application to the world.

The focus of this course is learning blockchain and using it for application development by building applications, where each application should do something useful. You’ll learn how to create smart contracts, implement business logic using Solidity, and test your code. By the end of this course, you’ll have the skills necessary to build, test, and deploy applications in the Ethereum network. You’ll also have a solid understanding of blockchain application development, with skills that readily transfer to application development on other blockchains such as NEO, EOS, Cardano, and more.

About the Author

Will Button has worked in software engineering and information technology since 1995. For the past 10 years, he has focused on scaling, performance, and automation for tech start-ups in healthcare, logistics, fitness, and more. During that time, he has helped start-ups manage explosive growth, align expenses with funding, and control customer acquisition costs.

Having turned his attention to blockchain in 2017, Will is bullish on its long-term potential and the opportunities available for tech industry professionals. He believes we are at the forefront of the next big revolution in technology and shares his experience, skills, and knowledge with those ready to be a part of it.

Who this course is for:
  • This course is suitable for IT Professionals and Software Engineers at all levels seeking to learn Blockchain Application Development.