Book Image

Learn Blockchain Programming with JavaScript

By : Eric Traub
Book Image

Learn Blockchain Programming with JavaScript

By: Eric Traub

Overview of this book

Learn Blockchain Programming with JavaScript begins by giving you a clear understanding of what blockchain technology is. You’ll then set up an environment to build your very own blockchain and you’ll add various functionalities to it. By adding functionalities to your blockchain such as the ability to mine new blocks, create transactions, and secure your blockchain through a proof-of-work you’ll gain an in-depth understanding of how blockchain technology functions. As you make your way through the chapters, you’ll learn how to build an API server to interact with your blockchain and how to host your blockchain on a decentralized network. You’ll also build a consensus algorithm and use it to verify data and keep the entire blockchain network synchronized. In the concluding chapters, you’ll finish building your blockchain prototype and gain a thorough understanding of why blockchain technology is so secure and valuable. By the end of this book, you'll understand how decentralized blockchain networks function and why decentralization is such an important feature for securing a blockchain.
Table of Contents (10 chapters)

What this book covers

Chapter 1, Setting Up the Project, covers what a blockchain actually is and enables readers to understand how it functions. Then, you'll get to learn how to set up a project in order to create your very own blockchain.

Chapter 2, Building a Blockchain, covers how to add various functionalities to your blockchain. You will implement the functionalities in the blockchain, creating some amazing methods such as createNewBlock, creatNewTransaction, and getLastBlock. Once these methods are added to the blockchain, you will test them to verify that they are working perfectly. Also, you'll get to learn about the hashing method, that is, SHA256 hashing, and then implement a method to generate a hash for your block data. Also, you'll get to explore what a proof of work is, how it benefits the blockchain, and how to implement it.

Chapter 3, Accessing the Blockchain through an API, explains how to set up Express.js in your project, as well as how to use it to build the API/server. Then, you will build various server endpoints for your blockchain and test these endpoints to verify whether or not they are working properly.

Chapter 4, Creating a Decentralized Blockchain Network, covers how to set up a decentralized network for your blockchain. In this chapter, you will get to learn a lot of new concepts related to how to set up various nodes and interconnect them to form a network. You'll also define various endpoints, such as /register-and-broadcast-node, /register-node, and /register-nodes-bulk. These endpoints will assist you in implementing the decentralized blockchain network.

Chapter 5, Synchronizing the Network, explains how to synchronize the entire decentralized blockchain network so as to have the same transaction data and blocks on all the nodes in the blockchain. You'll implement network synchronization by refactoring the endpoints to broadcast the data to all the nodes present in the network.

Chapter 6, Consensus Algorithm, explains how to build your own consensus algorithm, which implements the longest chain rule. Through implementing this algorithm, you will have built a blockchain that is similar to a real-life blockchain.

Chapter 7, Block Explorer, explains how to build an amazing user interface to explore the blockchain that you have built over the course of the book.

Chapter 8, In Conclusion..., provides a quick summary of everything you will have learned throughout the course of this book. You will also explore what more you can do to improve the blockchain that you have developed.