We have written this textbook, as part of our expanding "A Hands-On Approach"(TM) series, to serve as a textbook for senior-level and graduate-level courses on financial and regulation technologies, business analytics, Internet of Things, and cryptocurrency. This book is also written for use within industries in the FinTech and RegTech space that may be interested in rolling out products and services that utilize this new area of technology. An accompanying website for this book contains additional support for instruction and learning (www.hands-on-books-series.com). The book is organized into three main parts, comprising a total of ten chapters. Part I provides an introduction to blockchain concepts, design patterns, and architectures for blockchain applications. A blockchain stack comprising a decentralized computation platform, a decentralized messaging platform, and a decentralized storage platform is described. While in this book we describe a specific realization of the blockchain stack based on the Ethereum blockchain platform, the same blockchain concepts can be applied to other blockchain platforms as well, such as Eris and Multichain. The blockchain stack and application design methodology form the pedagogical foundation of this book. Part II introduces the readers to tools and platforms for blockchain, such as Geth, PyEthApp, TestRPC, Mist Ethereum Wallet, MetaMask, Web3 JavaScript API and the Truffle Dapp framework. Implementation examples of various smart contracts and decentralized applications (Dapps) are provided. An in-depth study of the consensus mechanism in a blockchain network, the steps involved in mining, mining proof of work algorithm, and state storage in Ethereum are provided. The reader is introduced to the Whisper decentralized messaging platform and Swarm decentralized storage platform. Part III focuses on advanced topics such as the security and scalability related challenges for the blockchain platforms.
This book is an exceptional guide for both tenderfoots and veteran professionals hazarding into the blockchain world. With its inclusive yet amicable presentation, this book conduits the breach between theory and practice, making it an appreciated resource for students, developers, and industry experts. The book delivers on its promise of a hands-on approach by combining conceptual simplicity with comprehensive instances and exercises. It is structured to guide readers through building real-world blockchain applications, providing ample code samples and step-by-step instructions. The practical focus ensures that readers gain tangible skills rather than just theoretical knowledge. The authors cover a varied assortment of blockchain platforms, including Ethereum, Hyperledger Fabric, and others. This multiplicity helps readers realize the fortes and use cases of diverse blockchain ecosystems, allowing them to choose the right tools for their projects. The authors break down intricate blockchain perceptions into digestible parts, starting with initial topics such as cryptography and distributed ledgers, before progressing to advanced topics like smart contracts, decentralized applications (DApps), and enterprise blockchains. This rational movement caters to readers with fluctuating echelons of expertise. The book explores blockchain's transformative prospecs across industries such as supply chain management, healthcare, finance, and IoT. These practical case studies contextualize blockchain's value, stimulating readers to think beyond the hype and propaganda and develop evocative solutions. Every chapter includes practical coding examples, primarily in Python, and provides entree to expedient tools and frameworks. This feature makes the book principally suitable for developers eager to apply blockchain solutions. All said and done, there’s always room for progress. While the book shines in many areas, there are a few minor inadequacies. Firstly, one might note the absence of depth of ‘Code Explanations’. Although the code samples are abundant, some readers may find the clarifications of the code oddments a bit short-term. Beginners might need extra resources to fully understand certain implementations. Secondly, given the fast-paced development of blockchain technology, some aspects of the book, especially related to precise tools and platforms, may require updates to reflect the latest advancements. Nevertheless, we can conclude that this book is an invaluable resource for anyone looking to master blockchain technology. Its practical orientation, coupled with in-depth industry applications, makes it a must-read for aspiring blockchain developers and innovators. Despite minor limitations, the book's strengths far outweigh its flaws, making it a conclusive guide in this speedily embryonic field.