Become a Blockchain Developer with Ethereum and Solidity
4.4 (3,032 ratings)
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.
15,021 students enrolled

Become a Blockchain Developer with Ethereum and Solidity

Develop your first decentralized application from scratch on the Ethereum blockchain
4.4 (3,032 ratings)
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.
15,019 students enrolled
Last updated 3/2020
English
English [Auto], Italian [Auto]
Current price: $116.99 Original price: $194.99 Discount: 40% off
2 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 17 hours on-demand video
  • 8 articles
  • 61 downloadable resources
  • 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
  • Understand the basic philosophy behind the blockchain and distributed/decentralized applications
  • The basics of how a blockchain generally works, just enough to be able to use it as a development platform
  • Develop a distributed application, from creating a blank project to deploying it in production all the way through writing smart contracts, unit testing them, and creating a user interface for them
  • How to combine the right tools to put together a consistent and real world pragmatic development environment
  • The fundamentals of the Solidity smart contract language
  • How to use the Truffle build and testing framework (covers Truffle 4)
  • How to deploy a decentralized app to various Ethereum instances (testrpc, private chain, test chain, main net)
  • How to unit test smart contracts
Course content
Expand all 95 lectures 18:02:35
+ Why the Blockchain?
3 lectures 17:06
How Do You Represent Value?
06:15

A very interesting video to watch in order to understand CDOs and how the crisis of credit really worked: http://crisisofcredit.com/

The Internet of Value
05:36
Blockchain Use Cases
05:15
+ What is a blockchain (and what it's not)?
8 lectures 59:03
The 3-layer Model
03:24
Blockchain Design Goals
08:01
Blockchain Implementations
09:24
Blockchain Instances
05:08
Public Blockchains as Tricameral Systems
06:33
Blockchain Key Components 1/2
07:17
Blockchain Key Components 2/2
08:04
What a Blockchain Is Not
11:12
+ Cryptography 101
3 lectures 18:31
Hashing Functions
07:01
Asymmetric Cryptography
06:15
Merkle Trees
05:15
+ Installing the Development Environment (Truffle 4)
10 lectures 03:11:40
Course Update for Truffle 5
00:40
Installing Ganache on Windows 8
01:29
Setting up a private node on MacOS
37:52
Setting up a private node on Windows
36:19
Setting up a private node on Linux
34:22
Troubleshooting your private node
03:38
Setting up MetaMask on all environments
22:07
+ My First Smart Contract: Greetings (Truffle 4)
10 lectures 01:37:40
Deploying a smart contract without Truffle (1/2)
13:04
Deploying a smart contract without Truffle (2/2)
14:43
Working around the truffle init error in the next lesson
01:10
Deploying a smart contract with Truffle (1/3)
09:30
Deploying a smart contract with Truffle (2/3)
12:21
Deploying a smart contract with Truffle (3/3)
08:55
Blocks and transactions
11:12
Gas
15:44
OpCodes
05:05
Sending ether
05:56
+ How do you design and develop a decentralized application? (Truffle 4)
51 lectures 08:18:30
ChainList application preview
02:15
Sell an article: smart contract (1/2)
12:14
Sell an article: smart contract (2/2)
11:00
Sell an article: tests (1/2)
10:03
Sell an article: tests (2/2)
11:20
Sell an article: frontend preparation (1/2)
06:54
Sell an article: frontend preparation (2/2)
07:23
Sell an article: display article in the frontend (1/3)
09:00
Sell an article: display article in the frontend (2/3)
10:54
Sell an article: display article in the frontend (3/3)
11:53
Sell an article from the frontend (1/2)
07:34
Sell an article from the frontend (2/2)
06:41
Sell an article through MetaMask
12:36
Sell an article: smart contract with event (1/3)
08:26
Sell an article: smart contract with event (2/3)
09:01
Sell an article: smart contract with event (3/3)
06:02
Sell an article: events in the frontend (1/2)
06:39
Sell an article: events in the frontend (2/2)
07:54
Unknown transaction when migrating with Truffle 4.0.4
00:29
Deploy ChainList to a private network (1/3)
08:04
Deploy ChainList to a private network (2/3)
06:16
Deploy ChainList to a private network (3/3)
05:52
Buy an article: smart contract (1/3)
12:49
Buy an article: smart contract (2/3)
08:24
Buy an article: smart contract (3/3)
10:37
Buy an article: tests (1/3)
15:38
Buy an article: tests (2/3)
09:45
Buy an article: tests (3/3)
13:21
Buy an article: frontend (1/3)
06:10
Buy an article: frontend (2/3)
05:06
Buy an article: frontend (3/3)
07:24
List of articles: smart contract (1/4)
08:11
List of articles: smart contract (2/4)
08:09
List of articles: smart contract (3/4)
08:01
List of articles: smart contract (4/4)
10:46
List of articles: tests (1/5)
05:18
List of articles: tests (2/5)
09:35
List of articles: tests (3/5)
08:30
List of articles: tests (4/5)
08:15
List of articles: tests (5/5)
06:38
List of articles: frontend (1/3)
08:44
List of articles: frontend (2/3)
04:45
List of articles: frontend (3/3)
07:23
Smart contract deactivation (1/2)
08:44
Smart contract deactivation (2/2)
07:07
Function modifiers
09:38
Smart contract inheritance
09:52
Deploying the frontend
22:24
Deploying smart contracts to the Rinkeby test net
39:30
Deploying smart contracts to the main net
26:46
Deploying to a test node with an Infura remote node
12:30
+ Truffle 5 Update
7 lectures 02:55:54
Before we start
00:05
Updating the development environment
24:04
Updating contracts
15:52

Test conversion checklist:

  • replace all the vars by let or const

  • transform the it() function into an async fat arrow function

  • replace all then() blocks with awaits

  • web3.eth.getBalance() is now asynchronous, so you can precede it with await

  • Replace all occurrences of web3.toWei() by web3.utils.toWei(), and web3.fromWei() by web3.utils.fromWei()

  • convert ether amounts into BNs at initialization

  • remove all calls to web3.toBigNumber()

  • convert BNs into strings everywhere we compare them with assert.equal()

  • remove all calls to toNumber() on getBalance() return values

  • call parseFloat() around calls to web3.eth.getBalance() to convert strings into javascript numbers for calculation

  • convert article prices back into numbers for calculations, using BN.toNumber()

Adapting happy path tests
25:45

Test conversion checklist:

  • replace all the vars by let or const

  • transform the it() function into an async fat arrow function

  • replace all then() blocks with awaits

  • web3.eth.getBalance() is now asynchronous, so you can precede it with await

  • Replace all occurrences of web3.toWei() by web3.utils.toWei(), and web3.fromWei() by web3.utils.fromWei()

  • convert ether amounts into BNs at initialization

  • remove all calls to web3.toBigNumber()

  • convert BNs into strings everywhere we compare them with assert.equal()

  • remove all calls to toNumber() on getBalance() return values

  • call parseFloat() around calls to web3.eth.getBalance() to convert strings into javascript numbers for calculation

  • convert article prices back into numbers for calculations, using BN.toNumber()

  • encapsulate all contract function calls expected to throw an exception into try/catch blocks

Adapting exception tests
11:41
Adapting the frontend
59:56
ChainList Update Transcript
38:31
Requirements
  • You should already have developed a couple of software applications, backend, frontend or both
  • You need a Mac, Linux or Windows 10 machine to develop the sample application
  • A basic understanding of a programming language like Javascript is definitely a plus
Description

February 2018 Update

We released the first version of this course in September 2017. Back then, the latest version of Truffle was version 3, and the best Ethereum node emulator was testrpc, on the command line. 

Then, in November 2017, the Truffle team released both Truffle 4 and a new user interface for testrpc called Ganache. Those tools had a big impact on the development lifecycle, so we took this opportunity to completely rewrite and re-shoot the practical part of this course.

We also took this opportunity to integrate most of the comments and feedbacks we got in the Q&A section of this course. So all the details you needed to troubleshoot issues are now part of the content.

This results in a consequent update with quite a few improvements:

  • Full Truffle 4 coverage, including Truffle debug and Truffle develop
  • Full Ganache coverage
  • MetaMask workarounds, tips and tricks
  • All the content has been tested on MacOS, Linux and Windows (PowerShell)
  • Code is not copy-pasted anymore, we type everything live to make it easier to follow along

Note that the old content will remain online for a few weeks, and then we will unpublish them so that students don't need to watch all the old content to complete the course and get the Udemy certificate.

If you notice any issue, bug, outdated content, missing link or resource, please let us know in the Q&A section of this course.

Welcome to "Become a Blockchain Developer with Ethereum and Solidity"!

This course is a complete introduction to decentralized application (Dapp) development on the Ethereum blockchain using the Solidity language and the Truffle build framework.

No need to know anything about the blockchain, you should just have some basic software development experience. Whether you have already written some code for backend, web or mobile applications, it should be enough to become a blockchain developer thanks to this course.

The blockchain is all the rage these days, and there is a lot of theoretical or anticipative talk around it, but this course will help you get your hands dirty with actual code in order to build your first decentralized application. This is the kind of skill that can get you an actual job as a blockchain developer, something that is in skyrocketing demand right now.

Have you ever looked back on the nineties, thinking you would have loved to be a part of the web revolution. Well, stop dreaming: the blockchain is here and it promises to be even bigger than the web or even the mobile revolution.

What we cover

  • We briefly cover the philosophy of the blockchain, both as a crypto-currency system and as a development platform
  • Then we will explain how blockchains work, what are their main components and how its ecosystem is structured
  • After that we quickly go over the main cryptographic tools you need to understand
  • We continue with a description of the perfect development environment, including tools that are used by most professional blockchain developers
  • And the biggest part of the course is dedicated to guiding you through the iterative creation, development, testing and deployment of the ChainList decentralized application

The tools we use

  • Ethereum of course
  • The Metamask Chrome extension
  • The Solidity smart contract language
  • The Truffle build and test framework (Truffle 4)
  • The Ganache Ethereum node emulator
  • Github Pages
  • Atom (text editor)
  • The Rinkeby test network

We deliberately don't reinvent the wheel or develop our own build tools because it didn't seem very pragmatic to do that. That's why we demonstrate the use of development tools like Truffle and Ganache that offer a lot of very powerful features, even though they evolve very often.

Most of the videos were shot on a Mac, but we give detailed instructions on how to set up your environment on Linux and Windows, and all the other lessons have been tested and adapted with a few OS-specific instructions.

Who this course is for:
  • Anybody with a little bit of backend and/or frontend software development experience