Learn JavaScript: Build Your Own Blockchain
4.1 (5 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.
31 students enrolled

Learn JavaScript: Build Your Own Blockchain

Program with JavaScript by creating your own Blockchain
4.1 (5 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.
31 students enrolled
Created by Packt Publishing
Last updated 12/2018
English [Auto]
Current price: $80.99 Original price: $124.99 Discount: 35% off
14 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 3 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
  • JavaScript concepts for developing applications as diverse as Blockchain
  • Set up a new development environment for JavaScript programming
  • Use npm to install pertinent JavaScript libraries
  • Implement a basic Blockchain system in an easy and practical way
  • Secure Blockchain with the cryptographic essentials
  • Create a cryptocurrency on top of an existing Blockchain network
  • Get better prepared to begin working with new and existing JavaScript projects
Course content
Expand all 29 lectures 02:51:00
+ Welcome to Learn JavaScript: Build Your Own Blockchain
5 lectures 36:01

This video will give you an overview about the course.

Preview 05:03

In this video, we’ll learn why we should spend time and effort becoming better JavaScript coders and, as application developers, why blockchain will play a role in our future.

   •  Understand where JS sits in the web-app development arena

   •  Get to know the evolution of a modern web developer

   •  Blockchain, the disruptive technology we must know

Practical JavaScript and Blockchain

In this video, we will take a look at JavaScript from a more technical perspective and review how the language is used in practical web development.

   •  Understand where JavaScript fits in terms of application development

   •  Learn how JavaScript works on web pages

   •  See how it interacts with the browser

JavaScript – The Language of the Web

Let’s now dive into basic blockchain concepts and begin understanding how these ideas work together to formulate a blockchain solution.

   •  Comprehend blockchain data in a ledger

   •  Understand how blocks are distributed, redundantly, across all network nodes

   •  Learn the benefits of blockchain data

Blockchain for Dummies

For coding exercises in upcoming sections, let’s now get a new dev environment set up on codeanywhere.com and get crypto.js installed so that we can write JavaScript code for the blockchain.

   •  Get an overview of Codeanywhere for JavaScript development

   •  Set up a new project on Codeanywhere

   •  Install crypto.js via NPM

A New Dev Environment
+ Nuts and Bolts of JavaScript
5 lectures 24:09

In this video, we will learn about the npm package management tool and HTML JavaScript host file.

   •  Understand the benefits of npm

   •  Load JavaScript in index.html

   •  Use script tags to properly load JavaScript

What Do We Need to Make a JavaScript Project Work?

In this video, we will get our dev environment set up so that we can easily access the supporting libraries that the project requires.

   •  Learn about the “npm -v” command

   •  Understand the “npm install node” command

   •  Understand the “npm i -g npm” command

Introducing npm to a JavaScript Project

In this video, we will move beyond the environment that npm is running within and look at the NPM configuration specifics of a project itself.

   •  Learn about the package.json file

   •  Create project portability

   •  Understand the importance of the --save flag

Configuring npm for Dependencies

We will learn to correctly add some basic custom JavaScript to a web page by creating a "Hello World!" example.

   •  Learn to organize files in a project

   •  Install a simple HTTP server with NPM

   •  Properly place<script> tags in an HTML document

HTML and JavaScript

In this video, we will learn the relationship between JavaScript and the DOM.

   •  Get an overview of the DOM

   •  Dive deeper into the DOM

   •  Learn how scripts interact with the DOM

JavaScript and the DOM
+ JavaScript Necessities: The Must-Have Stuff
5 lectures 28:02

Conditionals are what enable automatic decisions within our JavaScript programs. In this video, we will learn the forms, usage, and syntax of conditionals and leverage them in our code.

   •  Study the basic Boolean-level logic of conditional statements

   •  Learn conditional syntax

   •  Understand the available logical operators used in conditional logic

Preview 05:08

Programming languages allow for rapidly completing repetitive tasks, from quick-fire mathematical calculations to just about any other situation where a lot of repetitive processes need to execute. In this video, we'll look at the loop structures available in JavaScript that provide this kind of iteration.

   •  Study the iterative functionality of looping statements

   •  Learn iterative syntax

   •  Understand the various forms of looping and their syntax

Looping and Iteration

Functions allow us to store a piece of code that does a single task inside a defined block, and then call that code whenever we need rather than having to type out the same code multiple times. In this video, we will dig into functions, including their basic syntax and how to invoke and define them.

   •  Study the isolation and reusability of JavaScript functions

   •  Learn function syntax

   •  Understand how to create and invoke functions as needed


We are now aware of functions and their easy-to-use syntax. We understand how they encapsulate logical units of code. In this video, let's dig a bit deeper into functions and discover more of their powerful features and some of their more interesting nuances.

   •  Study additional features of JavaScript functions

   •  Learn extended syntax of functions

   •  Understand function parameters, return values, and scoping

Fancy Functions

In this video, we'll look at basic JavaScript object syntax. We should be aware at this point, if we're not already, that most of the structures we've worked with so far in this course are in fact objects. Let's get into some details and see why this is so.

   •  Understand the structure and use of objects

   •  Learn how classes are defined and used to create object instances

   •  Discuss the use of constructors in class definitions

Objects and Classes
+ Blockchain Crash Course
5 lectures 30:24

In this video, we’ll discuss various use cases for blockchain technology and how the needs of many of these cases have been met with different implementations. We can begin with the most obvious and currently popular case—that of cryptocurrencies.

   •  Gain an understanding of blockchain’s ledger concept

   •  Realize the network as a collection of nodes

   •  Learn how blocks are used to securely package transaction data

Blockchain: A Quick Study

In this video, we'll review how the data in a blockchain is secured, how the participants in a blockchain network work together to validate new entries for the blockchain ledger, and how the blocks are processed to provide security and consistency.

   •  Discuss how blockchain data is secured

   •  Learn how transactions are validated by blockchain participants

   •  Review the steps of processing blocks for validity and consistency

Validating and Securing Data

In this video, we’ll learn about the economic properties that make Bitcoin valuable, and thus, a successful network.

   •  Discuss the economic properties of cryptocurrencies

   •  Apply cryptoeconomic strategies

   •  Realize the viability of blockchain’s success per economic factors

Cryptoeconomics: An Incentive

We understand how data is validated with hash comparisons and how transaction linking provides validity. But the complexity of this chaining mechanism is much more elaborate than we can see from the surface. This is where the concept of Merkle tree comes into play.

   •  Learn about the complex structure of Merkle trees

   •  Understand the application of these structures in a blockchain

   •  Realize the efficiencies of blockchain data validation using Merkle trees

Merkle Trees? What?

In this video, we’ll learn about the gatekeeping security measure called proof of work.

   •  Understand security concerning the “proof” concept

   •  Understand how transactions are kept true, relevant, and consistent

   •  Focus on the “proof of work” approach to blockchain integrity

Proof of Work
+ Creating Our Own Basic Blockchain
4 lectures 22:49

Let’s begin utilizing what we’ve learned about JavaScript and Blockchain and begin planning for our JavaScript-based blockchain project.

   •  Start designing our own JavaScript-based blockchain

   •  Utilize our new JavaScript knowledge by writing functional code

   •  Ensure that we have a fully functioning environment

A Basic Blockchain (Made with JavaScript)

Blockchains (and especially cryptocurrency chains) are heavily dependent on great cryptography. We need to understand how all the complexities of crypto are wrapped up in libraries that we can leverage.

   •  Discuss the crypto-js library and its functionality

   •  Understand why cryptography libraries are necessary

   •  Leave the complexities of cryptography to the professionals

crypto-js Is Our Workhorse

The bulk of our blockchain’s core functionality can be written into a single class within our project’s root.

   •  Create a blockchain class to control our chain

   •  Use our blockchain class to begin producing blocks

   •  Validation of the new blocks we produce

A Blockchain Class

Proof of work is used to secure a blockchain. We need to understand it and the alternative approaches for solving this universal blockchain problem.

   •  Attempt to eliminate spam transactions

   •  Valid transactions are a product of a “proof of work” commitment

   •  Economics of mining provides validity to individual transactions

Securing Our Blockchain
+ Finishing Touches to Complete Our Project
5 lectures 29:35

We can implement the concept of mining (validating transactions and minting new tokens) in our project with just a few new classes.

   •  Upgrade our blockchain to an official “cryptocurrency”

   •  Add the ability to mint coins on our blockchain

   •  Introduce the concept of mining coins/tokens

Mining and Rewards

At this point, we can enable some utility for our blockchain users so that they can easily facilitate transactions by finding their token balance. Then, we need to rework how we produce the chain’s genesis block.

   •  Add functionality for blockchain users to easily create transactions

   •  Create a function that easily computes a user’s token balance

   •  Re-evaluate how the chain’s genesis block should be introduced

Just Regular Transactions

Our users need tokens to be able to produce transactions. We can implement an airdrop function to make this happen each time the genesis block is generated.

   •  A simple function can get tokens from the mint

   •  Looping through the users on the blockchain to assign tokens

   •  All airdrop transactions must be mined to allocate the assigned tokens

A JavaScript Token AirDrop

Finally, our blockchain implementation needs to be able to ensure that transactions are valid prior to adding them to the chain. We can add a few new functions to ensure validation.

   •  A validateTransaction() function is what we need to encapsulate validation logic

   •  Logging the action to the console

   •  Walk through the transaction sequence

Validating Transactions

Let’s review what we’ve learned in this series of lectures and coding exercises by taking a second look at the JavaScript concepts that were presented and how we implemented them in our project.

   •  We discussed conditional logic, looping, and functions

   •  We learned how to define and use custom classes

   •  We applied the lecture material to the code in our project

That’s a Wrap!
  • No prior knowledge of JavaScript or Blockchain is required

As the Blockchain revolution rages around us, you may be feeling left behind as the technology and coin values continue to develop at breakneck speed.

As budding JavaScript developers, breaking into Blockchain tech is something we’ve most likely wanted as we definitely need to stay up-to-speed in our evolving environment.

While the steep and rigorous learning curve that the likes of Bitcoin and Ethereum programming present may be too much for us as we step into the Blockchain arena, this course eases the barrier of entry with a hands-on implementation of Blockchain tech with a familiar language, JavaScript, that you can use to create and understand a Blockchain system capable of hosting our own Cryptocurrency.

Join me in Learn java script: Build your own Blockchain and we’ll position ourselves to become well rounded JavaScript developers and new Blockchain entrepreneurs.

About the Author

Brett Hooper is a well-seasoned software engineer, entrepreneur, teacher, and all-round techno-surfer. His decades of experience have taken him from years of IT consulting for fortune 100 behemoths, to a number of entrepreneurial startup efforts, to the U.S. Dept of Defense in defining their way forward in mobile and web-related technologies. Brett’s excitement in learning, implementing, and teaching new, interesting development frameworks, stacks, services, and Blockchain technologies never wanes and keeps him heads-down more than not. He develops new teaching content from his Aloha CodeWorks headquarters in beautiful Maui, HI.

Who this course is for:
  • If you are a developer with no prior experience of JavaScript and want to write your own JavaScript classes, this course is for you. This course takes you a step beyond simply applying pre-written JavaScript from a library and teaches a JavaScript from Scratch approach, using lectures and a Blockchain project in its delivery.