Skip to main content

Ethereum and Solidity: The Complete Developer's Guide

23h 39m 42s
English
Paid

Course description

Smart Contracts? They're here.  The Ethereum Blockchain?  Covered.  Solidity?  Yep! There can be no understating it: Ethereum and Blockchain technology is the most disruptive force in years.  Companies cannot hire developers who understand blockchain technologies fast enough, but there are a tiny number of resources published to help you truly understand what blockchains are used for, let alone build apps with them.  

Read more about the course

That's the purpose of this course: to be the best resource online for learning about Ethereum, blockchains, and how to build apps with this new technology.

The development community is still figuring out the best way to use Ethereum in the creation of new and exciting apps.  I spent a tremendous amount of time to research and create best practice for interfacing with Ethereum from Javascript.  I can't overstate it enough; this course will show you the best and most easily repeatable patterns for creating production-ready apps with Ethereum.

What tools and libraries are used?

The Ethereum tech ecosystem is in constant change.  Don't be fooled by other courses that mention how you'll learn a dozen different libraries!  Every library that you'll use with Ethereum breaks and is deprecated on a near-weekly basis!  Instead, this course will teach you how to assemble your own boilerplate package to develop, compile, and test Smart Contracts.  By learning the core technologies, you'll be prepared to adjust to Ethereum no matter how the ecosystem changes.

What is Ethereum?

Ethereum is a cryptocurrency much like Bitcoin, and it has been heralded as Bitcoins successor.  Whereas Bitcoin currently has issues scaling with an increasing backlog of transactions, Ethereum is poised to surpass Bitcoin in performance, popularity, and value.  Ethereum was created to help developers like you create applications focused around transferring money or value from one party to another.

What is Solidity?

Solidity is a programming language for writing Smart Contracts.  Essentially, think of it as a way to control a bank account with code.  With Solidity, we can write applications that simulate a crowd funding campaign, a lottery, a loan, or any other type of financial instrument.  Don't be intimidated by learning 'another' programming language; Solidity is known to be quite similar to Javascript and exceptionally easy to pick up for anyone who has previous JS experience.  This course will give you all the tools you need to master Solidity.

Requirements:
  • Basic Knowledge of Javascript and NPM
  • A Mac, PC, or Linux Machine
Who this course is for:
  • Programmers looking to leverage blockchain technology for advanced apps
  • Engineers who want to understand Ethereum and how to build apps with it

What you'll learn:

  • Understand the why engineers would want to create an app with Ethereum
  • Build compelling blockchain applications using the Ethereum Blockchain
  • Design, test, and deploy secure Smart Contracts
  • Learn the true purpose and capabilities of Ethereum and Solidity
  • Use the latest version of Ethereum development tools (Web3 v1.0)
  • See practical examples to comprehend what the blockchain and mining are

Watch Online

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 230 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing

Watch Online Ethereum and Solidity: The Complete Developer's Guide

0:00
/
#1: Introduction

All Course Lessons (230)

#Lesson TitleDurationAccess
1
Introduction Demo
03:45
2
A Short History Lesson
04:14
3
What is Ethereum?
04:17
4
Interfacing with Ethereum Networks
02:43
5
Ethereum Accounts
05:23
6
What's a Transaction?
07:44
7
Why'd We Wait?
05:01
8
Basic Blockchains
17:50
9
Block Time
10:50
10
Smart Contracts
06:56
11
The Solidity Programming Language
05:04
12
Our First Contract
05:42
13
Contract Structure
05:40
14
Function Declarations
09:00
15
Testing with Remix
10:58
16
Redeploying Contracts
02:35
17
Behind the Scenes of Deployment
05:44
18
More on Running Functions Than You Want to Know
14:16
19
Wei vs Ether
04:08
20
Gas and Transactions
11:25
21
Mnemonic Phrases
11:29
22
We Need More Test Ether!
00:50
23
Contract Deployment
05:32
24
Project Requirements
05:10
25
Project File Walkthrough
04:33
26
Compiling Solidity
06:23
27
The Compile Script
06:11
28
Testing Architecture
03:49
29
Installing Modules
04:16
30
Web3 Versioning
04:19
31
Web3 Providers
04:48
32
Testing with Mocha
18:17
33
Mocha Structure
04:45
34
Fetching Accounts from Ganache
06:44
35
Refactor to Async/Await
02:40
36
Deployment with Web3
06:12
37
Deployed Inbox Overview
11:19
38
Asserting Deployment
05:23
39
Verifying the Initial Message
08:26
40
Testing Message Updates
06:25
41
Deployment with Infura
06:58
42
Wallet Provider Setup
06:41
43
Deployment to Testnet
07:22
44
Observing Deployment on Etherscan
04:52
45
Deployed Contracts in Remix
07:14
46
Project Review
09:28
47
The Lottery Contract
02:37
48
Lottery Design
02:51
49
Basic Solidity Types
09:44
50
Starting the Lottery Contract
04:45
51
The Message Global Variable
05:54
52
Overview of Arrays
11:07
53
Overview of Mappings and Structs
03:43
54
Big Solidity Gotcha
06:29
55
Entering the Lottery
03:58
56
Validation with Require Statements
09:49
57
The Remix Debugger
04:04
58
Pseudo Random Number Generator
10:35
59
Selecting a Winner
04:59
60
Sending Ether from Contracts
05:09
61
Resetting Contract State
04:08
62
Requiring Managers
05:04
63
Function Modifiers
06:19
64
Returning Players Array
02:14
65
Contract Review
02:52
66
New Test Setup
03:05
67
Test Project Updates
02:05
68
Test Helper Review
04:34
69
Asserting Deployment
02:55
70
Entering the Lottery
06:28
71
Asserting Multiple Players
02:40
72
Try-Catch Assertions
05:58
73
Testing Function Modifiers
03:30
74
End to End Test
11:05
75
Ethereum App Architecture
09:21
76
Application Overview
07:57
77
Getting Started with Create-React-App
02:37
78
Multiple Web3 Instances
08:43
79
Web3 Setup
06:10
80
Deploying the Lottery Contract
05:33
81
Local Contract Instances
06:27
82
Rendering Contract Data
07:05
83
Instance Properties
01:59
84
Accessing More Properties
05:34
85
The 'Enter' Form
03:51
86
Form Setup
06:48
87
Entering the Lottery
06:36
88
Picking a Winner
08:35
89
Project Review
03:08
90
Solving Real Problems with Contracts
06:02
91
Fixing Kickstarter's Issues
07:49
92
Campaign Contract Design
09:06
93
Campaign Constructor
04:17
94
Contributing to the Campaign
03:08
95
A Quick Test
02:14
96
The Request Struct
08:59
97
More on Function Modifiers
05:16
98
Creating Struct Instances
05:34
99
Instance Creation Syntax
09:32
100
Storage and Memory
06:28
101
More on Storage vs Memory
16:24
102
Voting System Requirements
02:50
103
The Wrong Voting System
05:13
104
Issues with Arrays
06:15
105
Mappings vs Arrays
04:02
106
Basics of Mappings
11:09
107
Refactoring to Mappings
06:46
108
Refactoring Request Stucts
02:16
109
More on Struct Initialization
02:53
110
Approving a Request
07:54
111
Testing Request Approvals
05:23
112
Finalizing a Request
07:25
113
Last Remix Test
03:04
114
Thinking about Deployment
09:47
115
Solution to Deployment
06:34
116
Adding a Campaign Factory
07:54
117
Testing the Factory
03:28
118
Project Setup
02:18
119
Directory Structure
02:57
120
A Better Compile Script
04:42
121
Single Run Compilation
08:47
122
More on Compile
06:21
123
Test File Setup
08:22
124
Creating Campaign Instances
10:20
125
Testing Warmup
03:12
126
Accessing Mappings
09:56
127
Requiring Minimum Contributions
03:14
128
Array Getters
06:08
129
One End to End Test
13:01
130
Deployment
02:17
131
Refactoring Deployment
06:06
132
App Mockups
11:06
133
CRA vs Next
05:00
134
Next's Pages Architecture
05:09
135
Basics of Next Routing
04:52
136
Root Routes
05:24
137
CampaignFactory Instance
07:13
138
Getting a Test Campaign
05:36
139
Fetching Deployed Campaigns
06:28
140
Why Next.js, Anyways?
09:51
141
Server vs Client Web3 Instances
10:42
142
GetInitialProps Function
10:15
143
Semantic UI React
05:50
144
Card Group Setup
06:42
145
Rendering Card Groups
06:11
146
Adding CSS
04:41
147
Adding a Button
06:48
148
The Need for a Layout
06:17
149
The Layout Component
07:14
150
Assembling a Header
07:36
151
Constraining Content Width
04:29
152
Two Column Layout
01:59
153
Nested Routing
04:28
154
Final CSS Fix
05:21
155
Form Creation
04:32
156
Input Change Handlers
06:21
157
Form Submittal
05:59
158
Testing Submittal
03:45
159
Form Error Handling
12:50
160
Button Spinners
06:57
161
Routing Issues
03:14
162
Next Routes Setup
10:55
163
Automatic Navigation
04:44
164
Header Navigation
05:53
165
Routing to Campaigns
05:53
166
Route Mappings
07:02
167
Planning CampaignShow
04:00
168
Redeploying CampaignFactory
08:54
169
CampaignShow's GetInitialProps
07:11
170
Accessing a Campaign
08:04
171
Summary Translation Layer
04:16
172
Custom Card Groups
07:45
173
One Card Per Property
04:39
174
The Contribute Form
07:23
175
Grid Layouts
04:08
176
Form State
02:45
177
Communicating the Campaign Address
04:25
178
Making a Contribution
04:56
179
Refreshing Contract Data
06:18
180
Spinners and Error Handlers
04:57
181
Listing Requests
06:30
182
Grids vs Columns
03:37
183
More Routing!
08:33
184
Request Creation Form
10:36
185
Creating a Request
09:52
186
Form Polish
07:44
187
Creating a Request
01:13
188
Requests One by One
03:33
189
Fancy Javascript
07:36
190
Rendering a Table
03:23
191
Request Row Component
06:18
192
Request Row Content
07:24
193
Approvers Count Cell
05:52
194
Approving a Request
06:59
195
Finalizing Requests
05:20
196
Testing Finalization
02:34
197
Row Status Styling
06:46
198
Finishing Requests Index
02:31
199
Wrapup
00:45
200
Purpose of Boilerplate Projects
03:42
201
Environment Setup
01:46
202
Project Setup
02:54
203
JSX
11:30
204
More on JSX
04:36
205
ES6 Import Statements
03:59
206
ReactDOM vs React
02:27
207
Component Instances
03:39
208
Render Targets
05:54
209
Component Structure
06:27
210
Youtube Search API Signup
06:40
211
Export Statements
08:41
212
Class Based Components
08:12
213
Handling User Events
09:31
214
Introduction to State
05:14
215
State Continued
06:05
216
Controlled Components
07:48
217
Breather and Review
03:38
218
Youtube Search Response
04:27
219
Refactoring Functional Components to Class Components
07:44
220
Props
07:43
221
Building Lists with Map
07:07
222
List Item Keys
03:55
223
Video List Items
07:54
224
Detail Component and Template Strings
07:06
225
Handling Null Props
04:42
226
Video Selection
11:40
227
Styling with CSS
03:44
228
Searching for Videos
07:52
229
Throttling Search Term Input
05:47
230
React Wrapup
05:25

Unlock unlimited learning

Get instant access to all 229 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Comments

0 comments

Want to join the conversation?

Sign in to comment

Similar courses

NFT Marketplace in React, Typescript & Solidity - Full Guide

NFT Marketplace in React, Typescript & Solidity - Full Guide

Sources: udemy
The course covers everything you need for a decentralized NFT application according to the ERC721 standard. Students of this course will learn about NFTs by creating a real-worl...
16 hours 20 minutes 55 seconds
Solidity & Ethereum in React (Next JS): The Complete Guide

Solidity & Ethereum in React (Next JS): The Complete Guide

Sources: udemy
Create real Smart Contracts in Solidity and DApps with React & Next JS. Understand how the Ethereum blockchain works.
38 hours 47 minutes 24 seconds
Ethereum and Solidity: Build Dapp with VueJS

Ethereum and Solidity: Build Dapp with VueJS

Sources: udemy
Build Decentralized Application using VueJS and Smart Contracts written in Solidity. Learn how to create simple smart contracts. Learn how to develop Decentrali
1 hour 45 minutes 9 seconds
Complete DApp - Solidity & React - Blockchain Development

Complete DApp - Solidity & React - Blockchain Development

Sources: udemy
Become a Complete DApp Developer by learning the best in demand skills taught by renown engineer and full stack developer Clarian North. Join in early on an exciting technology...
15 hours 21 minutes 24 seconds