Build a Blockchain and Cryptocurrency from Scratch [2/2]

David Katz, Software Engineer - Coding Instructor

Play Speed
  • 0.5x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 2x
35 Videos (3h 35m)
    • Wallet, Keys, and Transactions

      5:56
    • Create Wallet

      4:25
    • Chain Util and Key Generation

      7:37
    • Create a Transaction

      8:13
    • Test the Transaction

      9:33
    • Sign a Transaction

      7:13
    • Test the Transaction Input

      1:52
    • Verify Transactions

      4:47
    • Test Transaction Verification

      3:18
    • Transaction Updates

      6:32
    • Test Transaction Updates

      6:05
    • Transaction Pool

      1:41
    • Transaction Pool - Add Transaction

      4:41
    • Test the Transaction Pool

      8:45
    • Create Transactions with the Wallet

      7:08
    • test Wallet Transaction

      10:51
    • Get Transactions

      5:16
    • Post Transactions

      5:40
    • Add the Transaction Pool to the Peer-to-peer Server

      7:45
    • Handle Transaction Messages in the Peer-to-peer Server

      8:38
    • Public Key Endpoint

      2:07
    • Miners of Transactions

      1:27
    • Create the Miner Class

      5:38
    • Grab Valid Transactions

      6:13
    • Test Valid Transactions

      8:13
    • Reward Transactions

      8:28
    • Test Reward Transactions

      4:01
    • Reward Valid, and Clear Transactions

      4:59
    • Broadcast Clear Transactions

      3:17
    • Mine Transactions Endpoint

      8:46
    • The Nuance of Wallet Balance

      3:00
    • Calculate the Wallet Balance

      10:40
    • Calculate the Balance during each Transaction

      5:08
    • Test Balance Calculation

      12:31
    • The Cryptocurrency in Action

      4:39

About This Class

This class will get you to build a blockchain and cryptocurrency from scratch.

The blockchain is a revolutionary technology that allows for the secure, distributed, decentralized storage of information. Over the past few years, the blockchain has taken the engineering landscape by storm. Many people in the industry predict that the blockchain will disrupt the ways we interact with technology on the same way the Internet did in the early 2000s.

The blockchain is the main technology behind Bitcoin, Ethereum, and the other prominent cryptocurrencies that we read about in the news today. By leveraging the blockchain, cryptocurrencies create a system of “trustless”ness. This cuts the need for middle men like banks and traders in economic systems.

Do you want to enter this young market, and become a highly sought-after blockchain engineer? The industry is starving for people who understand, and even better, can build blockchains. The supply is low, but the demand is high. So having a blockchain project under your belt will open doors and jobs for you.

For engineers, coders, and software developers, the best way to truly understand the revolutionary technologies of blockchain and cryptocurrencies, is to build a blockchain and cryptocurrency yourself. Therefore, this class will take you through implementing a blockchain and cryptocurrency - discovering the underlying techniques and concepts.

The class is designed into sections that introduce the main concepts of the blockchain one-by-one. By the end of the class, you will have a respectable blockchain project in your repertoire.

Some of the main class highlights:

  • Build a Blockchain in the object-oriented programming style.
  • Generate hashes for blocks in the chain.
  • Unit Test Components of the Blockchain.
  • Create an API around the Blockchain.
  • Create a real-time connected peer-to-peer server.
  • Implement a proof-of-work algorithm.
  • Sign Transactions with cryptography and digital signature.
  • Create a Transaction Pool for a real-time list of incoming data.
  • Include transactions in core blocks of the chain.

We’ll use NodeJS to implement this project. Don’t worry if you’re not familiar with JavaScript. This class explains the purpose behind every line and keyword. So, while JS experience will help, it’s not an absolute requirement.

Written summaries supplement each tutorial. That way, you can move along at your own pace, either watching the more thorough filmed tutorial, or reading the summary.

Ultimately, knowledge of the Blockchain will set you up for success in the future, as an engineer in a blockchain-dominated world. So what are you waiting for? Let’s get started building a blockchain!

**********

 

In-Course information

 

Course Repository:

The completed code for this course can be found here: https://github.com/15Dkatz/sf-chain-guides.

Use this repository as a reference to help you find bugs in your code.

Software Requirements:

  1. You will need a command line application. For MacOS and Linux, I recommend the native Terminal application. Iterm2 is also a good option on MacOS. For Windows, I recommend using the Git Bash shell application.
  2. You will need a code editor. Use whatever you're already comfortable with. But if you're looking for one, I recommend Visual Studio Code (it's the code editor used in the course). I also suggest configuring the editor to be launchable from the command line. Do so by pressing "CMD-Shift-P", and typing in "Shell." An option for "Shell Command: Install 'code' command in PATH" should appear. Select it, and re-start your command line and Visual Studio Code.

Course Requirements:

We will use NodeJS as the engine to run our JavaScript-based project. Make sure you have Node installed on your system. Here is the installation link: https://nodejs.org/en/download/. You’ll need to download the appropriate installer for your system, and go through the installation process.

With Node installed, you should get responses similar to this on the command line:

$ node -v

v8.8.1 (or newer)

$ npm -v

5.4.2 (or newer)



We’ll also use a tool called Postman. This app will allow us to send custom HTTP Requests to our running blockchain servers. Here is the link to install Postman: https://www.getpostman.com/docs/postman/launching_postman/installation_and_updates

2 of 2 students recommendSee All

Easy and straightforward, as long as you have basic programming knowledge.

13

Students

--

Project

David Katz

Software Engineer - Coding Instructor

Hello! I'm David - a native San Franciscan and biracial American. I currently study CS at the University of San Francisco.

I'm a self-taught full-stack developer with hopes to become a software engineer. In my spare time, I make apps and coding tutorials.

I've used technologies like ReactJS, React Native, NodeJS, and plenty more to build my applications.

Because the programming community has given me so much, I spend a lot of time teaching.

At MVCodeClub, I help ki...

See full profile