Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Best of 2016 Recommended by Editor Recommended by Reviewer Recommended by Reader
Search
Blockchain applications : a hands-on approach
Bahga A., Madisetti V., VPT, 2017. Type: Book (9780996025560)
Date Reviewed: Jun 29 2017

Blockchain is known from its first generation implementing cryptocurrency bitcoins. This book casts a much wider net and surveys a mixed sample of applications using the technology. The book covers blockchain conceptually, but also includes a number of coded examples. Blockchain applications is part of the “Hands-On Approach” series of textbooks authored by Arshdeep Bahga and Vijay Madisetti. The authors have been quite prolific producing books that address the latest IT trends such as cloud computing, Internet of things (IoT), big data science and analytics, and this book on blockchain applications.

The work is divided into three parts: “Blockchain Technology,” “Blockchain Components & Applications,” and “Advanced Topics.” “Blockchain Components & Applications” (Part 2) represents the core of the book. Because it is targeted to an academic market, the book also points to a supporting website. Some of the other books in the series have good online supporting material, but I could not find code or teaching support material on the authors’ website. I hope this will be forthcoming because typing the examples is prone to errors and the technology is evolving rapidly.

In chapter 1, the authors introduce the blockchain concepts linked to the distributed and public ledger and one of the most popular stacks illustrated by the Ethereum implementation. In a short chapter 2, the authors introduce a design methodology for blockchain applications and propose a few applications templates.

Part 2 illustrates blockchain components and applications starting with chapter 3 on setting up Ethereum development tools. They explain two Ethereum clients using Go and Python, and introduce the Solidity programming language complemented by a tutorial on Solidity offered in the appendix. Next, TestRPC, a client based on Node.js, is used for in-memory blockchain. This important chapter also covers the Mist Ethereum Wallet, MetaMask as a Chrome extension, the Web3 JavaScript application programming interface (API), and finally the Truffle Framework for decentralized application (DAPP) development. Chapter 4 describes the two types of Ethereum accounts: externally owned accounts (EOA) and contract accounts. The EOAs are accounts controlled by the users. Chapter 5 covers the structure of smart contracts, as well as their development and deployment, and a transaction cost method called Gas to propel the system. Different patterns such as the conditions-effects-interaction and withdrawal patterns are also discussed. Chapter 6 is the longest chapter of the book and covers DAPPs. Use cases and code are offered for crowdfunding, event registrations, document verification, call option, interest rate swap, industrial IoT, and solar charging station applications. The applications are explained in some detail and the code is provided in multiple languages such as Hypertext Markup Language (HTML), JavaScript, Solidity, and Python. Chapter 7 covers mining blocks, an essential part of the blockchain/Ethereum architecture. Mining aims at adding a block of transactions to the blockchain after a complex vetting process based on proof of work and consensus.

Chapter 8 describes the Whisper communication protocol that allows distributed applications to exchange messages. The use case in this chapter is a smart switch DAPP.

Chapter 9 addresses the decentralized storage platform called Swarm. Swarm is a decentralized and redundant store for Ethereum’s public records and stores and distributes DAPP code. The authors also explain other blockchain parts such as Swarm accounting protocol (SWAP); storage with enforced archiving rules, enforcement, and registration (SWEAR); and secured with insurance deposit litigation and escrow (SWINDLE). The use case for the chapter is the study of a DAPP for stock photos.

The final part of the book is only composed of one chapter. It covers a number of threats related to the security and scalability of the blockchain platforms. Some of the issues include possible double spending; distrust; the consistency, availability, and partition tolerance (CAP) theorem; smart contract vulnerabilities; and finally scalability concerns due to the growing size of the blockchain.

Blockchain has increasingly been in the news and proposed as a solution to a number of hard problems, but information about its architecture and mode of operation is still scarce. While there are a number of other books on the topic in the publishing pipeline, the authors have provided a step in the direction of a better understanding of the topic as well as scaffolding for building actionable applications. Overall the book is well written, offers clear and useful content, and is a good base upon which to build blockchain applications. The balance between the explanation of the blockchain architecture and more technical proof of concept through code is also quite engaging.

More reviews about this item: Amazon

Reviewer:  Jean-Pierre Kuilboer Review #: CR145392 (1709-0606)
Bookmark and Share
  Reviewer Selected
Editor Recommended
 
 
Payment Schemes (K.4.4 ... )
 
 
Electronic Commerce (K.4.4 )
 
 
Data Encryption (E.3 )
 
Would you recommend this review?
yes
no
Other reviews under "Payment Schemes": Date
Electronic payment systems for E-Commerce
O’Mahony D., Peirce M., Tewari H., Artech House, Inc., Norwood, MA, 2001.  345, Type: Book (9781580532686)
Mar 1 2002
Implementing electronic card payment systems
Radu C., Artech House, Inc., Norwood, MA, 2002.  484, Type: Book (9781580533058)
Jun 9 2003
Insights and analyses of online auctions
 Communications of the ACM 44(11): 42-50, 2001. Type: Article
May 24 2002
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy