Book Image

Foundations of Blockchain

By : Koshik Raj
Book Image

Foundations of Blockchain

By: Koshik Raj

Overview of this book

Blockchain technology is a combination of three popular concepts: cryptography, peer-to-peer networking, and game theory. This book is for anyone who wants to dive into blockchain from first principles and learn how decentralized applications and cryptocurrencies really work. This book begins with an overview of blockchain technology, including key definitions, its purposes and characteristics, so you can assess the full potential of blockchain. All essential aspects of cryptography are then presented, as the backbone of blockchain. For readers who want to study the underlying algorithms of blockchain, you’ll see Python implementations throughout. You’ll then learn how blockchain architecture can create decentralized applications. You’ll see how blockchain achieves decentralization through peer-to-peer networking, and how a simple blockchain can be built in a P2P network. You’ll learn how these elements can implement a cryptocurrency such as Bitcoin, and the wider applications of blockchain work through smart contracts. Blockchain optimization techniques, and blockchain security strategies are then presented. To complete this foundation, we consider blockchain applications in the financial and non-financial sectors, and also analyze the future of blockchain. A study of blockchain use cases includes supply chains, payment systems, crowdfunding, and DAOs, which rounds out your foundation in blockchain technology.
Table of Contents (14 chapters)

Building the Proof of Existence application

As we have discussed in the architecture of the Proof of Existence application, each blockchain node has a web interface through which its user will publish and verify the existence of a document.

We will be creating a web interface that will communicate with the deployed MultiChain node. The user will then communicate with the web interface through the use of REST APIs. In our example, we'll be using the Python Sanic web server used in Chapter 4, Networking in Blockchain, to create simple REST APIs. This web interface will then communicate with the MultiChain node's JSON-RPC server, which will allow the node to perform any operation on the MultiChain blockchain. All the functionality provided by the multichain-cli will be available in the JSON-RPC invocation. We will be using a Python driver called Savoir to communicate with...