Architecture for blockchain applications /

Saved in:
Bibliographic Details
Author / Creator:Xu, Xiwei, author.
Imprint:Cham, Switzerland : Springer, [2019]
Description:1 online resource
Language:English
Subject:
Format: E-Resource Book
URL for this record:http://pi.lib.uchicago.edu/1001/cat/bib/11851783
Hidden Bibliographic Details
Other authors / contributors:Weber, Ingo, author.
Staples, Mark, author.
ISBN:9783030030353
3030030350
3030030342
9783030030346
9783030030360
3030030369
9783030030346
Digital file characteristics:text file PDF
Notes:5.4.1 Data Communication
Includes bibliographical references and index.
Online resource; title from digital title page (viewed on April 11, 2019).
Summary:This book addresses what software architects and developers need to know in order to build applications based on blockchain technology, by offering an architectural view of software systems that make beneficial use of blockchains. It provides guidance on assessing the suitability of blockchain, on the roles blockchain can play in an architecture, on designing blockchain applications, and on assessing different architecture designs and tradeoffs. It also serves as a reference on blockchain design patterns and design analysis, and refers to practical examples of blockchain-based applications. The book is divided into four parts: Part I provides a general introduction to the topic and to existing blockchain platforms including Bitcoin, Ethereum, and Hyperledger Fabric, and offers examples of blockchain-based applications. Part II focuses on the functional aspects of software architecture, describing the main roles blockchain can play in an architecture, as well as its potential suitability and design process. It includes a catalogue of 15 design patterns and details how to use model-driven engineering to build blockchain-based applications. Part III covers the non-functional aspects of blockchain applications, which are cross-cutting concerns including cost, performance, security, and availability. Part IV then presents three detailed real-world use cases, offering additional insights from a practical perspective. An epilogue summarizes the book and speculates on the role blockchain and its applications can play in the future. This book focusses on the bigger picture for blockchain, covering the concepts and technical considerations in the design of blockchain-based applications. The use of mathematical formulas is limited to where they are critical. This book is primarily intended for developers, software architects and chief information officers who need to understand the basic technology, tools and methodologies to build blockchain applications. It also provides students and researchers new to this field an introduction to this hot topic.
Other form:Print version: Xu, Xiwei. Architecture for Blockchain Applications. Cham : Springer, ©2019 9783030030346
Standard no.:10.1007/978-3-030-03035-3
10.1007/978-3-030-03
Table of Contents:
  • Intro; Foreword; How to Read This Book; Acknowledgements; Legal Disclaimer for Code Samples; Contents; Part I Blockchain in Software Architecture; 1 Introduction; 1.1 What Is Blockchain and Why Should I Care?; 1.1.1 Defining Blockchain; 1.1.2 Smart Contracts and Decentralized Applications; 1.1.3 Cryptocurrencies and Tokens; 1.2 Blockchain-Based Applications; 1.2.1 Enterprise and Industry; 1.2.2 Financial Services; 1.2.3 Government Services; 1.3 Blockchain Functionality; 1.3.1 Blockchain as Data Storage; Transactions; Digital Assets; 1.3.2 Blockchain as a Computational Infrastructure
  • 1.4 Blockchain Non-functional Properties1.4.1 Non-functional Properties and Requirements; 1.4.2 Non-functional Properties of Blockchain; 1.5 Blockchain Architecture Design; 1.5.1 Software Architecture: Design and Analysis; 1.5.2 Designing Blockchain-Based Applications; 1.6 Summary; 1.7 Further Reading; 2 Existing Blockchain Platforms; 2.1 Bitcoin; 2.1.1 Bitcoin Transactions; 2.1.2 Script; 2.1.3 Mining; 2.1.4 Accounts and State; 2.1.5 Nakamoto Consensus; 2.1.6 Deflationary Cryptocurrency; 2.1.7 Wallets; 2.1.8 Exchanges; 2.2 Ethereum; 2.2.1 Ethereum Protocol; 2.2.2 Ethereum Transactions
  • 2.2.3 Smart Contract2.2.4 Paying Fees in `Gas'; 2.2.5 Decentralized Application (dapp); 2.3 Hyperledger Fabric; 2.3.1 Permissioned Blockchain; 2.3.2 Chaincode as Smart Contract; 2.3.3 Nodes; 2.3.4 Transactions; 2.3.5 Consensus; 2.4 Other Representative Blockchain Platforms; 2.5 Further Reading; 3 Varieties of Blockchains; 3.1 Fundamental Properties of Blockchain; 3.2 Decentralization; 3.2.1 Permission; 3.2.2 Deployment; 3.3 Ledger Structure; 3.4 Consensus Protocol; 3.5 Block Configuration; 3.6 Auxiliary Blockchains; 3.7 Anonymity; 3.8 Incentives; 3.9 Summary; 3.10 Further Reading
  • 4 Example Use Cases4.1 Agricultural Supply Chains; 4.1.1 Key Non-functional Requirements; 4.1.2 Conventional Technology; 4.1.3 A Blockchain Solution; 4.1.4 Non-functional Property Discussion; 4.2 Open Data Registry; 4.2.1 Key Non-functional Requirements; 4.2.2 Conventional Technology; 4.2.3 A Blockchain Solution; 4.2.4 Non-functional Property Discussion; 4.3 International Money Transfers; 4.3.1 Key Non-functional Requirements; 4.3.2 Conventional Technologies; 4.3.3 A Blockchain Solution; 4.3.4 Non-functional Property Discussion; 4.4 Electricity Contract Selection and Continuous Reporting
  • 4.4.1 Key Non-functional Requirements4.4.2 Conventional Technologies; 4.4.3 A Blockchain Solution; 4.4.4 Non-functional Property Discussion; 4.5 Further Reading; Part II Architecting Blockchain-Based Applications; 5 Blockchain in Software Architecture; 5.1 Blockchain as an Architectural Element; 5.2 Blockchain as Storage Element; 5.2.1 Comparison with Centralized Databases; 5.2.2 Comparison with Cloud Services; 5.2.3 Comparison with Peer-to-Peer Data Storage; 5.2.4 Comparison with Replicated State Machines; 5.3 Blockchain as Computational Element; 5.4 Blockchain as Communication Mechanism