Book Image

Blockchain for Enterprise

By : Narayan Prusty
Book Image

Blockchain for Enterprise

By: Narayan Prusty

Overview of this book

The increasing growth in blockchain use is enormous, and it is changing the way business is done. Many leading organizations are already exploring the potential of blockchain. With this book, you will learn to build end-to-end enterprise-level decentralized applications and scale them across your organization to meet your company's needs. This book will help you understand what DApps are and how the blockchain ecosystem works, via real-world examples. This extensive end-to-end book covers every blockchain aspect for business and for developers. You will master process flows and incorporate them into your own enterprise. You will learn how to use J.P. Morgan’s Quorum to build blockchain-based applications. You will also learn how to write applications that can help communicate enterprise blockchain solutions. You will learn how to write smart contracts that run without censorship and third-party interference. Once you've grasped what a blockchain is and have learned about Quorum, you will jump into building real-world practical blockchain applications for sectors such as payment and money transfer, healthcare, cloud computing, supply chain management, and much more.
Table of Contents (14 chapters)
Title Page
Packt Upsell
Contributors
Preface
Index

Index

A

  • abstract contracts / Abstract contracts
  • Amazon Elastic Container Service for Kubernetes (Amazon EKS) / Diving into K8s
  • Amazon Web Services / Introduction to cloud computing
  • arrays / Arrays
  • atomic swap smart contracts
    • USD, locking / Atomic swap smart contracts
    • for USD / Atomic swap smart contracts
  • Automated Clearing House (ACH) / Settlement and clearance of InterBank transfers
  • Azure Kubernetes Service (AKS) / Diving into K8s

B

  • Bank Identifier Code (BIC) / Settlement and clearance of InterBank transfers
  • BigchainDB / BigchainDB
  • BigNumber.js library / BigNumber.js
  • binary Merkle tree / What is a Merkle tree?
  • blockchain
    • advantages / What is a blockchain?
    • forking / What is forking in blockchain?
  • blockchain interoperability
    • about / Understanding blockchain interoperability
    • implementation strategies / Strategies for implementing blockchain interoperability
  • Block Collider / Understanding blockchain interoperability
  • Byzantine Fault Tolerance (BFT) / Understanding Byzantine Fault Tolerance

C

  • cell phone number
    • using, as identity / Using a cell phone number as identity
  • centralized EMR management systems
    • versus decentralized EMR management systems / Centralized versus decentralized EMR management systems
  • client, for ownership contract
    • building / Building a client for the ownership contract
    • project structure / The project structure
    • backend, building / Building the backend
    • frontend, building / Building the frontend
    • testing / Testing the client
  • cloud computing
    • about / Introduction to cloud computing
    • advantages / Introduction to cloud computing
  • cloud provider / IaaS versus PaaS and SaaS
  • cloud solutions
    • comparing / Private versus public versus hybrid cloud
  • consensus protocol / Understanding Byzantine Fault Tolerance
  • consortium DApp / What is a DApp?
  • constellation
    • about / Private contracts and constellation
    • installing / Installing Quorum and constellation
  • containers / What are containers?
  • contract events
    • retrieving / Retrieving and listening to contract events
    • listening to / Retrieving and listening to contract events
  • contracts
    • creating, new operator used / Creating contracts using the new operator
    • features / Features of contracts
    • compiling / Compiling and deploying contracts
    • deploying / Compiling and deploying contracts
    • working with / Working with contracts
  • Corda
    • about / Corda
    • transaction validity / Transaction validity
  • CorDapps / Corda
  • Cosmos / Understanding blockchain interoperability

D

  • DApp
    • advantages / What is a DApp?
    • requisites / What is a DApp?
    • examples / What is a DApp?
    • architecting, for EMRs / Architecting DApp for EMRs
    • building / Building the DApp
  • DApp, for EMRs
    • smart contracts for access control / Smart contracts for identity and access control
    • smart contracts for identity / Smart contracts for identity and access control
    • Python scripts, writing for testing smart contracts / Writing Python and JS scripts for testing
    • JS scripts, writing for testing smart contracts / Writing Python and JS scripts for testing
  • Database as a Service (DBaaS) / IaaS versus PaaS and SaaS
  • data locations, Solidity / Data locations in Solidity
  • data types, Solidity
    • about / The different types of data
    • arrays / Arrays
    • strings / Strings
  • decentralized EMR management systems
    • versus centralized EMR management systems / Centralized versus decentralized EMR management systems
  • delete operator / The delete operator
  • deployments
    • creating / Creating deployments and services
  • Direct Acyclic Graph (DAG) / InterPlanetary File System
  • Distributed Hash Table (DHT) / InterPlanetary File System
  • Distributed Ledger Technology (DLT) / What is a blockchain?
  • Docker
    • about / Introduction to Docker
    • reference, for installation instructions / Building a Hello World Docker container
    • registry / Pushing images to Docker Hub
    • repository / Pushing images to Docker Hub
    • tag / Pushing images to Docker Hub
  • Dockerfile
    • working / Building a Hello World Docker container
  • Docker Hub
    • about / Introduction to Docker
    • images, pushing to / Pushing images to Docker Hub
  • Docker image
    • building / Building a Hello World Docker container

E

  • election timeout / Raft consensus
  • Electronic Funds Transfer (EFT) / Settlement and clearance of InterBank transfers
  • Electronic Medical Records (EMRs)
    • DApp, architecting for / Architecting DApp for EMRs
  • elementary types / Conversion between elementary types
  • Elliptic Curve Cryptography (ECC) / Ethereum accounts
  • EMR data management and sharing systems
    • about / Introduction to EMRs data management and sharing systems
    • limitations / Limitations of EMR data management and sharing systems
  • ether
    • about / Overview of Quorum
    • sending / Sending ether
  • Ethereum / Ethereum
  • Ethereum accounts / Ethereum accounts
  • ether units / Ether units
  • Everledger / Everledger
  • exceptions / Exceptions
  • external function call / External function calls

F

  • fallback function / The fallback function
  • features, contracts
    • visibility / Visibility
    • function modifiers / Function modifiers
    • fallback function / The fallback function
    • inheritance / Inheritance
  • FedCoin
    • building / Building a FedCoin
  • fiat currency
    • digitalizing / Digitalizing fiat currency
  • fork
    • about / What is forking in blockchain?
    • regular fork / What is forking in blockchain?
    • soft fork / What is forking in blockchain?
  • forking
    • in blockchain / What is forking in blockchain?
  • function modifiers / Function modifiers

G

  • genesis block / Overview of Quorum
  • globally-available variables
    • block and transaction properties / Globally-available variables, Block and transaction properties
    • address-type-related variables / Address-type-related variables
    • contract-related variables / Contract-related variables
  • gossip data dissemination protocol / Hyperledger Fabric 1.0

H

  • hash locking / Hash locking
  • hash table / Mappings
  • Hello World app
    • deploying, on K8s / Deploying the Hello World app on k8s
  • Hello World Docker container
    • building / Building a Hello World Docker container
  • hybrid cloud / Private versus public versus hybrid cloud
  • Hyperledger Fabric 1.0
    • about / Hyperledger Fabric 1.0
    • reference / Hyperledger Fabric 1.0
  • Hyperledger Sawtooth / Hyperledger Sawtooth

I

  • IBFT network
    • building / Building your first IBFT network
    • genesis block, creating / Creating a genesis block
    • nodes, starting / Starting nodes
    • validator, adding / Adding or removing a validator dynamically
    • validator, removing / Adding or removing a validator dynamically
  • IBFT tools
    • installing / Installing IBFT tools
  • images
    • pushing, to Docker Hub / Pushing images to Docker Hub
  • Immediate Payment Service (IMPS) / Settlement and clearance of InterBank transfers
  • implementation strategies, blockchain interoperability
    • single custodian / Single custodian
    • multisignature federation / Multisignature federation
    • sidechain / Sidechains or relays
    • relays / Sidechains or relays
    • hash locking / Hash locking
  • Infrastructure as a Service (IaaS) / IaaS versus PaaS and SaaS
  • inheritance / Inheritance
  • integrity / Proof of existence, integrity, and ownership contract
  • InterBank transfers
    • settlement / Settlement and clearance of InterBank transfers
    • working / Settlement and clearance of InterBank transfers
    • clearance / Settlement and clearance of InterBank transfers
  • Interledger / Understanding blockchain interoperability
  • internal function call / External function calls
  • interoperable blockchains
    • achieving / What can interoperable blockchains achieve?
  • InterPlanetary File System (IPFS) / InterPlanetary File System
  • Istanbul Byzantine Fault Tolerence
    • about / Istanbul Byzantine Fault Tolerence
    • reference / Istanbul Byzantine Fault Tolerence

K

  • K8s
    • about / Diving into K8s
    • benefits / Diving into K8s
    • resource objects / Getting into resource objects
    • deployment / Deployments and pods
    • pods / Deployments and pods
    • services / Services
    • Ingress controllers / Ingress controllers and resources
    • resources / Ingress controllers and resources
    • secrets / ConfigMaps and secrets
    • ConfigMaps / ConfigMaps and secrets
    • bind mount / Bind mounts and volumes
    • persistence volumes / Bind mounts and volumes
    • labels / Labels and selectors
    • selectors / Labels and selectors
    • Hello World app, deploying on / Deploying the Hello World app on k8s
  • K8s dashboard
    • accessing / Accessing the K8s dashboard
  • K8s master exposes APIs
    • nodes, creating / Creating nodes using the K8s APIs
  • Keccak-256 hash / Ethereum accounts
  • Key Management Service (KMS) / The NuCypher PRE library
  • kubectl command
    • download link / Installing minikube on Windows

L

  • LevelDB / What is a blockchain?
  • libraries
    • about / Libraries
    • use cases / Libraries
  • light client verification technology / Sidechains or relays

M

  • macOS
    • minikube, installing on / Installing minikube on macOS
  • mappings / Mappings
  • Merkle root / What is a Merkle tree?
  • Merkle tree / What is a Merkle tree?, Sidechains or relays
  • microservices architecture
    • about / Understanding the microservices architecture
    • benefits / Understanding the microservices architecture
  • Microsoft Azure / Introduction to cloud computing
  • minikube
    • installing, on macOS / Installing minikube on macOS
    • installing, on Ubuntu / Installing minikube on Ubuntu
    • installing, on Windows / Installing minikube on Windows
    • starting / Starting minikube
    • stopping / Stopping and deleting minikube 
    • deleting / Stopping and deleting minikube 
    • status, checking / Minikube status
  • MultiChain / MultiChain
  • multiple values
    • returning / Returning multiple values

N

  • network permissioning
    • in Quorum / Network permissioning in Quorum
  • new operator
    • contracts, creating / Creating contracts using the new operator
  • nodes
    • creating, K8s master exposes APIs used / Creating nodes using the K8s APIs
  • NuCypher PRE library
    • about / The NuCypher PRE library
    • installing / Installing the library
    • using / Using the library

O

  • one-to-one pegs / What can interoperable blockchains achieve?
  • Oraclize / Single custodian
  • orderer / Hyperledger Fabric 1.0
  • OSN / Hyperledger Fabric 1.0
  • ownership contract / Proof of existence, integrity, and ownership contract

P

  • paper-based medical records
    • issues / Problems with paper-based medical records
  • Parity / Parity
  • payment system
    • overview / Overview of the payment system
  • permissioned blockchain, use cases
    • Everledger / Popular blockchain use cases, Everledger
    • Walmart's food tracking / Walmart's food tracking 
    • Ghana's land registry / Ghana's land registry 
    • Dubai's housing rental / Dubai's housing rental 
    • Project Ubin / Project Ubin
  • permissioned blockchain platforms
    • about / Popular permissioned blockchain platforms
    • Ethereum / Ethereum
    • Quorum / Quorum
    • Parity / Parity
    • MultiChain / MultiChain
    • Hyperledger Fabric 1.0 / Hyperledger Fabric 1.0
    • BigchainDB / BigchainDB
    • InterPlanetary File System (IPFS) / InterPlanetary File System
    • Corda / Corda
    • Hyperledger Sawtooth / Hyperledger Sawtooth
  • permissioned DApp / What is a DApp?
  • Platform as a Service (PaaS) / IaaS versus PaaS and SaaS
  • Polkadot / Understanding blockchain interoperability
  • PRE
    • data privacy, ensuring in blockchain / Ensuring data privacy in a blockchain using PRE
  • private blockchain / What is a blockchain?
  • private cloud / Private versus public versus hybrid cloud
  • private contracts / Private contracts and constellation
  • private transactions
    • downsides / Private contracts and constellation
  • Project Ubin / Project Ubin
  • Proof-of-Authority (PoA) / Understanding Byzantine Fault Tolerance
  • Proof-of-Stake (PoS) / Understanding Byzantine Fault Tolerance
  • Proof-of-Work (PoW) / Understanding Byzantine Fault Tolerance
  • Proof of Concepts (PoCs) / BigchainDB
  • Proof of Elapsed Time (PoET) / Hyperledger Sawtooth
  • proof of existence / Proof of existence, integrity, and ownership contract
  • public cloud / Private versus public versus hybrid cloud
  • public DApp / What is a DApp?

Q

  • QaaS
    • building / Building QaaS
  • QNM
    • working / How does QNM work?
    • containerizing / Containerizing QNM
    • deployment, creating / Creating QNM deployment and service mainfest files
    • service mainfest files, creating / Creating QNM deployment and service mainfest files
  • queued transaction / Sending ether
  • Quorum
    • about / Quorum
    • overview / Overview of Quorum
    • installing / Installing Quorum and constellation
    • network permissioning / Network permissioning in Quorum
  • Quorum Network Manager (QNM)
    • about / Building QaaS
    • reference / Building QaaS
  • Quorum networks
    • building / Building the network

R

  • Raft consensus / Raft consensus
  • Raft network
    • building / Build your first Raft network
    • constellation network setup / Setting up a constellation network
    • enodes, generating / Generating enodes
    • account, creating / Creating an account
    • genesis block, creating / Creating the genesis block
    • nodes, starting / Starting nodes
    • nodes, adding / Adding or removing nodes dynamically
    • nodes, removing / Adding or removing nodes dynamically
  • Recursive Length Prefix (RLP)
    • reference / Compiling and deploying contracts
  • regular fork / What is forking in blockchain?
  • relays / Sidechains or relays
  • resource objects, K8s / Getting into resource objects
  • resources, K8s API
    • functions / Getting into resource objects
  • Rivest–Shamir–Adleman (RSA) / Ethereum accounts

S

  • services
    • creating / Creating deployments and services
  • sidechain / Sidechains or relays
  • Simple Byzantine Fault Tolerance (SBFT) / Hyperledger Fabric 1.0
  • smart contract
    • about / Overview of Quorum
    • structure / The structure of a smart contract
    • fiat currency, digitalizing / Smart contracts to digitalize fiat currency, Building the DApp
    • testing / Testing
  • Society for Worldwide Interbank Financial Telecommunications (SWIFT)
    • reference / Settlement and clearance of InterBank transfers
  • soft fork / What is forking in blockchain?
  • Software as a Service (SaaS) / IaaS versus PaaS and SaaS
  • Solidity
    • about / Overview of Quorum
    • data locations / Data locations in Solidity
    • data types / The different types of data
  • Solidity source files
    • about / Solidity source files
    • importing / Importing other Solidity source files
  • StatefulSets / Bind mounts and volumes
  • strings / Strings
  • super keyword / The super keyword
  • Swarm / Introduction to web3.js

T

  • transaction / What are Ethereum transactions?
  • transaction endorsement / Hyperledger Fabric 1.0
  • transaction fees / What are Ethereum transactions?
  • Trusted Execution Environment (TEE) / Hyperledger Sawtooth
  • two-way pegs / What can interoperable blockchains achieve?

U

  • Ubuntu
    • minikube, installing on / Installing minikube on Ubuntu
  • Unspent Transaction Outputs (UTXO) / What are UTXOs?
  • user accounts
    • representing / Representation of user accounts 
  • using for directive / using for

V

  • var
    • using / Using var
  • VirtualBox
    • download link / Installing minikube on Windows
  • Virtual Machines (VMs)
    • provisioning / What are containers?

W

  • web3.js
    • about / Introduction to web3.js
    • reference / Introduction to web3.js
    • importing / Importing web3.js
    • connecting, to nodes / Connecting to nodes
    • API structure / The API structure
    • unit conversion / Unit conversion
    • gas price, retrieving / Retrieving gas price, balance, and transaction details
    • address balance, retrieving / Retrieving gas price, balance, and transaction details
    • transaction details, retrieving / Retrieving gas price, balance, and transaction details
    • ether, sending / Sending ether
  • Whisper / Introduction to web3.js
  • Windows
    • minikube, installing on / Installing minikube on Windows
  • worker nodes / Diving into K8s