Reader small image

You're reading from  Blockchain with Hyperledger Fabric - Second Edition

Product typeBook
Published inNov 2020
PublisherPackt
ISBN-139781839218750
Edition2nd Edition
Concepts
Right arrow
Authors (6):
Nitin Gaur
Nitin Gaur
author image
Nitin Gaur

Nitin Gaur, is the director of IBM's Blockchain Labs, and an IBM Distinguished Engineer.
Read more about Nitin Gaur

Anthony O'Dowd
Anthony O'Dowd
author image
Anthony O'Dowd

Anthony O'Dowd is a Distinguished Engineer at IBM, focusing on Blockchain. He led IBM's contribution to the design and development of the new smart contract and application SDKs found in Hyperledger Fabric v2. Anthony has also made significant contributions to Hyperledger Fabric documentation and samples.
Read more about Anthony O'Dowd

Petr Novotny
Petr Novotny
author image
Petr Novotny

Petr Novotny is a research scientist at IBM Research, with an MSc from University College London and PhD from Imperial College London, where he was also a post-doctoral research associate.
Read more about Petr Novotny

Luc Desrosiers
Luc Desrosiers
author image
Luc Desrosiers

Luc Desrosiers is an IBM-certified IT architect with 20+ years of experience.
Read more about Luc Desrosiers

Venkatraman Ramakrishna
Venkatraman Ramakrishna
author image
Venkatraman Ramakrishna

Venkatraman Ramakrishna is an IBM researcher, with a BTech from IIT Kharagpur and PhD from UCLA.
Read more about Venkatraman Ramakrishna

Salman A. Baset
Salman A. Baset
author image
Salman A. Baset

Dr. Salman A. Baset is the CTO of security in IBM Blockchain Solutions.
Read more about Salman A. Baset

View More author details
Right arrow

Preface

We would like to thank our readers for taking time to consume our collective body of work that is representative of the practice, experience, and knowledge gained throughout our careers.

This book was motivated by the desire that we and others have had to contribute to the evolution of blockchain technologies. We were also challenged by a lack of a comprehensive guide that addresses myriad considerations, including but not limited to technology design choices, architecture choices, business considerations, and governance models. We represent a unique and diverse set of skills, and we have strived to cover a lot of ground in this book. We have collectively focused on organization and flow to ensure not only an easy-to-follow and natural flow but also topical modularity.

The contents of this book are aimed at addressing a diverse audience, from business leaders to blockchain developers and anyone who would like to learn from the practitioners' experience expressed in this book. We believe that not only will the audience enjoy and benefit personally and professionally from the book, but also this book will be used as reference material, a handbook of sorts, and aid in making informed design decisions. We encountered various challenges while writing this book, including our own demanding schedules, but ensured that we delivered up-to-date information at the time of publication. The blockchain technology landscape is in flux and keeping up with evolution and innovation is a challenge. We have attempted to distill a model that will enable the reader to create a framework to methodically consume blockchain-related updates and build upon the foundation laid in this book. We have also expended a lot of energy in addressing business design and resulting technology design choices, because unlike other pure technology platforms, blockchain (particularly blockchain-powered business networks) is a very business-specific and technology-centric discipline.

We hope the findings and documented considerations from practitioners will arm business leaders and technology managers in making informed decisions and avoiding the failures experienced by the authors.

The technical content covered in this book aims to provide a solid foundation for a diverse set of skills to people such as IT professionals, blockchain novices, and advanced blockchain developers. Modeled after a real-world use case, the application development story weaves in various steps from infrastructure creation to DevOps models and model-driven development, covering various enterprise technology management challenges with a focus on the blockchain network-centric impact of application deployment. We have provided a framework for security and performance design that we hope the technical audience finds particularly helpful in establishing a solid foundation as a technology-design consideration.

We'll conclude the book with a pragmatic overview of various challenges and related opportunities, and call for the community of readers to rise to the challenges and reap the rewards of the resulting opportunities. While this book focuses on Hyperledger Fabric, we expect the core topics covered in this book to be universally applicable to the blockchain technology discipline. We sincerely hope that our effort and acumen is well received by our readers and arms them with a strong foundation to make impactful contributions to progressing the blockchain innovation agenda.

Who this book is for

The book benefits business leaders as it provides a comprehensive overview of blockchain business models, governance structure, and business design considerations for blockchain solutions. Technology leaders stand to gain a lot from the detailed discussion around the technology landscape, technology design, and architecture considerations in the book. With its coverage of model-driven application development, this guide will speed up understanding and concept development for blockchain application developers. The simple and well-organized content will put novices at ease with blockchain concepts and constructs.

What this book covers

Chapter 1, Blockchain – An Enterprise and Industry Perspective

You've heard about blockchain and you are wondering, What is all the fuss about? In this chapter, we explore why blockchain is a game changer, what innovation it brings, and what the technology landscape looks like.

Chapter 2, Exploring Hyperledger Fabric

With an understanding of the blockchain landscape, we turn our attention to Hyperledger Fabric. The aim of this chapter is to walk you through the deployment of each component of Hyperledger Fabric while unveiling/building the architecture.

Chapter 3, Business Networks

This chapter introduces the notion of a business network. By understanding how a business network is structured in terms of participants, assets, transactions, and events, we're able to create a framework for analysing how real-world problems and opportunities can be addressed with blockchain technology. This chapter is helpful for technical architects, software developers, and business analysts.

Chapter 4, Setting the Stage with a Business Scenario

This chapter describes a business use case and then focuses on understanding the process of creating a good business network using blockchain, from requirements to design and launch, with instructions to set up prerequisite software and a development environment.

Chapter 5, Designing Smart Contract Transactions and Ledger Data Structure

This chapter talks about how to implement the business logic of the smart contracts of the scenario presented in Chapter 4, Setting the Stage with a Business Scenario, and explores the key concepts and libraries necessary for developing a fully functional contract.

Chapter 6, Developing Smart Contracts

This chapter introduces the concept of a multi-part transaction; what it is, why it's important, how it's stored in a blockchain ledger, and how it's generated by a smart contract. Starting with first principles, using fully worked examples, you'll understand how blockchain transactions, ledgers, and smart contracts form the core of a blockchain solution. This chapter is a must-read for technical architects and software developers.

Chapter 7, Developing Applications

This chapter examines and describes how applications can exploit the smart contracts deployed with a Hyperledger Fabric network. Using a broad range of worked examples, we'll see how applications use the three fundamental operations of ledger query, transaction submission, and ledger notification to perform shared transaction processing to improve multi-organization business processing. This chapter is a must-read for technical architects and software developers.

Chapter 8, Advanced Topics for Developing Smart Contracts and Applications

This chapter covers a range of advanced techniques for smart contract and application development. Building on chapters 6 and 7, you'll learn how to customize the SDK, use private and transient data, and make the most of advanced smart contract packaging techniques. This chapter also introduces design patterns that are particularly helpful in asset transfer, asset trading, and other privacy preserving scenarios. The advanced techniques in this chapter are important for technical architects and software developers alike.

Chapter 9, Network Operation and Distributed Application Building

This chapter helps you build and operate a Fabric network and distributed application for the business entities that participate in our trade scenario. This chapter will also help you learn how to build a production-grade ordering service that generates transaction blocks by consensus of a cluster of nodes running the Raft protocol.

Chapter 10, Enterprise Design Patterns and Considerations

This chapter looks at various design patterns and best practices that can be used to build industry-scale blockchain applications.

Chapter 11, Agility in a Blockchain Network

This chapter focuses on the aspects required to maintain agility in a blockchain network. Applying DevOps concepts, the reader is presented with a continuous integration / continuous delivery pipeline.

Chapter 12, Governance – A Necessary Evil of Regulated Industries

Governance is a necessary evil for regulated industries. However, governance is required not only for business networks that deal with use cases for regulated industries, but it also is a good practice to ensure the longevity and scalability of a business network. This chapter explores vital considerations for production readiness for any founder-led blockchain network.

Chapter 13, Life in a Blockchain Network

This chapter aims to raise the reader's awareness on the key activities and challenges that organizations and consortiums may face when adopting a distributed ledger solution, ranging from the management of network and application changes to the maintenance of adequate performance levels. A successful network deployment will hopefully see many organizations join it and the number of transactions increase.

Chapter 14, Hyperledger Fabric Security

This chapter lays the foundation for the security design of blockchain networks. Various security constructs are discussed and Hyperledger Fabric security is explained in detail. An essential chapter to understand security design considerations.

Chapter 15, Blockchain's Future, Protocol, Commercialization, and Challenges Ahead

This chapter looks ahead and discusses the challenges and opportunities that lie ahead. Through the use of open technologies, it invites readers to engage in and promote the blockchain innovation agenda.

Downloading the example code

The code bundle for the book is hosted on GitHub at https://github.com/HyperledgerHandsOn/trade-network. Once you follow the instructions carefully, you should be able to import the trade-contracts and trade-apps repos as submodules.

We also have other code bundles from our rich catalog of books and videos available at https://github.com/PacktPublishing/. Check them out!

Conventions used

There are a number of text conventions used throughout this book.

CodeInText: Indicates code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles. For example; "The code to configure and launch our network using shell scripts can be found in the bash folder in our repository."

A block of code is set as follows:

PeerOrgs:
  Name: ImporterOrg
  Domain: importerorg.trade.com
  EnableNodeOUs: true
  Template:
    Count: 1
  Users:
    Count: 2

Any command-line input or output is written as follows:

$ export GOPATH=$HOME/go

Bold: Indicates a new term, an important word, or words that you see on the screen, for example, in menus or dialog boxes, also appear in the text like this. For example: "Retain the historical and evolutionary provenance of Hyperledger Fabric as a building block."

Warnings or important notes appear like this.

Tips and tricks appear like this.

Get in touch

Feedback from our readers is always welcome.

General feedback: Email feedback@packtpub.com, and mention the book's title in the subject of your message. If you have questions about any aspect of this book, please email us at questions@packtpub.com.

Errata: Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you have found a mistake in this book we would be grateful if you would report this to us. Please visit, http://www.packtpub.com/submit-errata, selecting your book, clicking on the Errata Submission Form link, and entering the details.

Piracy: If you come across any illegal copies of our works in any form on the Internet, we would be grateful if you would provide us with the location address or website name. Please contact us at copyright@packtpub.com with a link to the material.

If you are interested in becoming an author: If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, please visit http://authors.packtpub.com.

Reviews

Please leave a review. Once you have read and used this book, why not leave a review on the site that you purchased it from? Potential readers can then see and use your unbiased opinion to make purchase decisions, we at Packt can understand what you think about our products, and our authors can see your feedback on their book. Thank you!

For more information about Packt, please visit packtpub.com.

lock icon
The rest of the chapter is locked
You have been reading a chapter from
Blockchain with Hyperledger Fabric - Second Edition
Published in: Nov 2020Publisher: PacktISBN-13: 9781839218750
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
undefined
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $15.99/month. Cancel anytime

Authors (6)

author image
Nitin Gaur

Nitin Gaur, is the director of IBM's Blockchain Labs, and an IBM Distinguished Engineer.
Read more about Nitin Gaur

author image
Anthony O'Dowd

Anthony O'Dowd is a Distinguished Engineer at IBM, focusing on Blockchain. He led IBM's contribution to the design and development of the new smart contract and application SDKs found in Hyperledger Fabric v2. Anthony has also made significant contributions to Hyperledger Fabric documentation and samples.
Read more about Anthony O'Dowd

author image
Petr Novotny

Petr Novotny is a research scientist at IBM Research, with an MSc from University College London and PhD from Imperial College London, where he was also a post-doctoral research associate.
Read more about Petr Novotny

author image
Luc Desrosiers

Luc Desrosiers is an IBM-certified IT architect with 20+ years of experience.
Read more about Luc Desrosiers

author image
Venkatraman Ramakrishna

Venkatraman Ramakrishna is an IBM researcher, with a BTech from IIT Kharagpur and PhD from UCLA.
Read more about Venkatraman Ramakrishna

author image
Salman A. Baset

Dr. Salman A. Baset is the CTO of security in IBM Blockchain Solutions.
Read more about Salman A. Baset