Welcome to Manning India!

We are pleased to be able to offer regional eBook pricing for Indian residents.
All eBook prices are discounted 40% or more!
Blockchain in Action
Bina Ramamurthy
  • MEAP began May 2019
  • Publication in Summer 2020 (estimated)
  • ISBN 9781617296338
  • 375 pages (estimated)
  • printed in black & white

A great introduction to the topic from technical and business perspective.

Luis Moux
There’s a lot more to the blockchain than mining Bitcoin. This secure system for registering and verifying ownership and identity is perfect for supply chain logistics, health records, and other sensitive data management tasks. Blockchain in Action unlocks the full potential of this revolutionary technology, showing you how to build own decentralized apps for secure applications including digital democracy, private auctions, and electronic record management.
Table of Contents detailed table of contents

1 Blockchain basics

1.1 From Bitcoin to blockchain

1.1.1 Exploring a real blockchain

1.2 Blockchain programming

1.2.1 Decentralized infrastructure

1.2.2 Distributed ledger technology

1.2.3 The blockchain protocol

1.2.4 The trust intermediator

1.3 Wrapping it up

1.4 Summary

Part 1: Smart contracts

2 Smart contracts

2.1 The concept of a smart contract

2.1.1 Bitcoin transactions versus smart contract transactions

2.1.2 What does a smart contract do?

2.2 Design of a smart contract

2.2.1 Use case diagram for the counter

2.2.2 Digital assets, peer participants, roles, rules, and transactions

2.2.3 From class diagram to contract diagram

2.3 Development of smart contract code

2.3.1 Solidity

2.3.2 Smart contract code for Counter

2.4 Deploying and testing the smart contract

2.4.1 The Remix IDE

2.4.2 Deployment and testing

2.4.3 Introspection

2.5 Decentralized airline system use case

2.5.1 Use case definition

2.5.2 Sequence of operations

2.6 Airlines smart contract

2.6.1 Peer participants, digital assets, roles, rules, and transactions

2.6.2 Airlines smart contract code

2.6.3 Airlines smart contract deployment and testing

2.7 Motivating decentralized scenarios

2.7.1 Automatic and consistent data collection

2.7.2 Timely information sharing

2.7.3 Verifiable compliance

2.7.4 Auditable actions for provenance

2.7.5 Guidance for governance

2.7.6 Attribution of actions

2.8 Smart contract design considerations

2.9 Best practices

2.10 Wrapping it up

2.11 Summary

3 Techniques for trust and integrity

3.1 Essentials of trust and integrity

3.2 Implementing trust intermediation

3.2.1 Use case diagram

3.2.2 Users, assets, and transactions

3.2.3 Design representation of system dynamics

3.2.4 Defining and using modifiers

3.2.5 Contract diagram including modifiers

3.2.6 Putting it all together: Contract implementation

3.3 Testing

3.4 Establishing trust with modifiers, require(), revert(), and assert()

3.4.1 assert() declarations

3.5 Best practices

3.6 Wrapping it up

3.7 Summary

4 From smart contracts to Dapps

4.1 Preliminary concepts

4.1.1 Identifying participants and smart contracts

4.1.2 Cost of execution on blockchain

4.2 Dapp development using the Truffle IDE

4.2.1 Installing the Truffle IDE

4.2.2 Developing a Dapp on Truffle

4.3 Installing the Ganache test chain

4.4 Smart contract development

4.4.1 Create project folder

4.4.2 Add smart contract and compile

4.4.3 Configure the RPC port

4.4.4 Deploy the smart contract

4.4.5 Interact with the Ballot contract

4.5 Dapp web application development

4.5.1 Launch the Ballot Dapp

4.5.2 Manage accounts using MetaMask

4.5.3 Interact with the Dapp

4.5.4 Connecting the web client to smart contracts

4.6 Introspection

4.7 Best practices

4.8 Summary

5 Security and privacy

5.1 Deploying smart contracts on Ropsten

5.2 Cryptography basics

5.2.1 Symmetric key cryptography

5.2.2 Asymmetric key cryptography—​private and public key pair

5.3 Application of public key cryptography

5.4 Hashing basics

5.4.1 Solidity hashing functions

5.5 Application of secure hashing

5.5.1 Blind auction smart contract

5.5.2 Testing the BlindAuction contract

5.6 Introspection

5.7 Best practices

5.8 Summary

Part 2: Decentralized applications

6 On-chain and off-chain data

6.1 On-chain data

6.1.1 Block header

6.1.2 Transaction tree

6.1.3 Receipt tree

6.1.4 State tree

6.2 Blind auction use case

6.2.1 On-chain event data

6.2.2 Blind auction with events

6.2.3 Testing with the web UI

6.2.4 Accessing on-chain data using the web3 API

6.3 Off-chain data: External data sources

6.4 ASK airline system

6.4.1 ASK concept

6.4.2 Airlines smart contract

6.4.3 ASK on-chain data

6.4.4 ASK off-chain data

6.4.5 ASK Dapp development process

6.4.6 ASK web user interface

6.4.7 Putting it all together

6.4.8 Interacting with ASK Dapp

6.5 Introspection

6.6 Best practices

6.7 Summary

7 Web3 and a channel Dapp

The web3 API

Web3 in the Dapp stack

Web3 packages

The channel concept

The micropayment channel

Micropayment channel (MPC) use case

Traditional banking solution

Users and roles

On-chain and off-chain operations

MPC smart contract (MPC-contract)

MPC application development (MPC-app)

MPC sequence diagram

Demonstration of MPC execution

Accessing the web3 provider

Extensions of MPC

Relevance of the micropayment channel

Other web3 packages of interest

Best practices


8 Going public with Infura

8.1 Nodes and networks

8.2 Infura blockchain infrastructure

8.3 Going public with Infura

8.3.1 Blockchain node as a service

8.4 End-to-end process for public deployment

8.4.1 Account generation and management

8.4.2 Choosing a network and Importing accounts

8.4.3 Collecting Ether from faucets

8.4.4 Creating blockchain nodes on Infura

8.4.5 Installing HDWallet provider

8.4.6 Configuring and deploying the smart contract

8.4.7 Configuring and deploying the web application

8.5 Deploying BlindAuction Dapp on Infura

8.5.1 Setting up the blind auction environment

8.5.2 Configure and deploy the beneficiary account

8.5.3 Configure and deploy bidders

8.5.4 Interact with deployed blind auction Dapp

8.6 Deploying MPC Dapp on Infura

8.6.1 Setting up the MPC environment

8.6.2 Configure and deploy the organizer

8.6.3 Configure and deploy the worker

8.7 Looking ahead

8.8 Best practices

8.9 Summary

9 Decentralized file system (IPFS)

Part 3: Blockchain ecosystem

10 Blockchain data analytics

11 Blockchain protocols and platforms

12 Blockchain business use cases


Appendix A: UML blockchain design models

A.1 Problem analysis and design

A.2 Behavioral diagrams

A.2.1 Use case diagrams

A.2.2 Finite state machine diagrams

A.3 Structural diagrams

A.3.1 Class diagrams

A.3.2 Classes and relationships

A.4 Interaction diagrams

A.5 Summary

Appendix B: Blockchain node installation and management

About the Technology

A blockchain is a decentralized record, stored across numerous devices with no central control or authority. Copies of this shared database are constantly reconciled with one another, and records are cryptographically encoded to make them unchangeable. The result is a type of database that is at once transparent and publicly accessible, and where it is impossible to falsify or alter the historic data record. Initially hailed for cryptocurrencies such as Bitcoin, recent blockchain platforms such as Ethereum and Hyperledger are opening up new applications for immutable public and private digital records management.

About the book

Written by Bina Ramamurthy, award-winning creator of the blockchain Coursera online course, Blockchain in Action begins with the essential principles of blockchain and teaches you to create your own decentralized apps. From the start you’ll go hands-on with the Ethereum blockchain, designing and coding your first smart contract with the JavaScript-based Solidity language. This smart contract will become the foundation on which you will build advanced functionality, including trust validation, a web UI for better user access, and privacy and security features that enable deployment on a public blockchain network. By the time you’re finished, you’ll be fully prepared to build useful blockchain applications.

What's inside

  • How blockchain differs from other distributed systems
  • Smart contract development with Ethereum and the Solidity language
  • Web UI for decentralized apps
  • Identity, privacy and security techniques
  • On-chain and off-chain data storage

About the reader

For intermediate programmers who know the basics of object-oriented languages and have a working knowledge of JavaScript.

About the author

Bina Ramamurthy holds a Ph.D. in fault-tolerant distributed systems, and has thirty years of experience teaching cryptography, peer-to-peer networking, and distributed systems. She is the instructor and content creator for the University of Buffalo four-course specialization on blockchain technology on the Coursera MOOC platform, and the recipient of the 2019 SUNY Chancellor’s Award for Teaching Excellence.

Manning Early Access Program (MEAP) Read chapters as they are written, get the finished eBook as soon as it’s ready, and receive the pBook long before it's in bookstores.
MEAP combo $44.99 pBook + eBook + liveBook
MEAP eBook $35.99 pdf + ePub + kindle + liveBook
Prices displayed in rupees will be charged in USD when you check out.

placing your order...

Don't refresh or navigate away from the page.

FREE domestic shipping on three or more pBooks