𝔖 Scriptorium
✦   LIBER   ✦

πŸ“

Blockchain with Hyperledger Fabric

✍ Scribed by Nitin Gaur; Luc Desrosiers; Petr Novotny; Anthony O'Dowd; Salman Baset; Venkatraman Ramakrishna;


Year
2020
Tongue
English
Leaves
757
Edition
2
Category
Library

⬇  Acquire This Volume

No coin nor oath required. For personal study only.

✦ Table of Contents


Cover
Copyright
Packt Page
Contributors
Table of Contents
Preface
Chapter 1: Blockchain – An Enterprise and Industry Perspective
Our focus for the new edition
Defining the terms – what is blockchain?
Design considerations for blockchain solutions
Four core building blocks
Additional capabilities to consider
Fundamentals of the secure transaction processing protocol
Where blockchain technology has been and where it's going
The great divide
An economic model for blockchain delivery
Learning as we go
The promise of trust and accountability
Blockchain in the enterprise
What applications are a good fit?
Enterprise blockchain business evaluation considerations
A few thoughts on blockchain business models
Business growth and innovation
How do growth and innovation relate to a blockchain-powered network?
Considerations for evaluating the economic value of blockchain entities
Blockchain investment rubric
How does the enterprise view blockchain?
Integrating a blockchain infrastructure for the whole enterprise
Enterprise design principles
Business drivers and evolution
Ensuring the sustainability of blockchain-based business networks
Design principles that drive blockchain adoption
Business considerations for choosing a blockchain framework
Technology considerations for choosing a blockchain framework
Identity management
Scalability
Enterprise security
Development tooling
Crypto-economic models
Decentralization with systemic governance
Enterprise support
Use case-driven pluggability choices
Shared ledger technology
Consensus
Crypto algorithms and encryption technology
Enterprise integration and designing for extensibility
Other considerations
Consensus, ACID properties, and CAP
Attestation – SSCs are signed and encrypted
Use of HSMs
Summary
References
Chapter 2: Exploring Hyperledger Fabric
Building on the foundations of open computing
Fundamentals of the Hyperledger project
The Linux Foundation
Hyperledger
Open source and open standards
Hyperledger frameworks, tools, and building blocks
Hyperledger distributed ledger frameworks
Hyperledger libraries
Hyperledger tools
The building blocks of blockchain solutions
Hyperledger Fabric component design
Principles of Hyperledger design
Hyperledger Fabric reference architecture
Hyperledger Fabric runtime architecture
Strengths and advantages of a componentized design
Hyperledger Fabric: the journey of a sample transaction
Actors and components in a Hyperledger Fabric network
Actors in a blockchain network
Components in a blockchain network
Developer interaction
CAP theorem
New features covered in this book
Summary
Chapter 3: Business Networks
A busy world of purposeful activity
Why a language for business networks?
Defining a business network
Introducing participants
Types of participant
Individual participants
Organizational participants
System or device participants
A participant is an agent
Participant identity
Introducing assets
Assets flow between participants
Tangible and intangible assets
The structure of assets
Ownership
A special kind of relationship
Ownership and asset tokenization
Asset life cycles
Describing a life cycle with transactions
Introducing transactions
Change and transactions
Transaction definition and instance
Implicit and explicit transactions
The importance of contracts
Signatures
Smart contract multi-party transactions
Digital transaction processing
Initiating transactions
Transaction history
Transaction streams
A network of networks
Current value and transaction history
A business network as a history of transactions
Regulators
Introducing events
A universal concept
Event notifications
An event example
Events and transactions
External and explicit events
Loosely coupled design
Events are useful!
Business network technology
More dematerialization
The blockchain benefit
Interacting with a blockchain
Organizational structure
Technical componentry
Participants
APIs
Application tier
Smart contract
Ledger
Peer
Ordering service
Network channel
Identity
Summary
Chapter 4: Setting the Stage with a Business Scenario
Trading and letters of credit
The importance of trust in facilitating trade
The letter of credit process today
Business scenario and use case
Overview
Real-world processes
Simplified and modified processes
Terms used in trade finance and logistics
Shared process workflow
Shared assets and data
Participants' roles and capabilities
Advantages of blockchain applications over current real-world processes
Designing and configuring a Hyperledger Fabric trade network
Designing a network
Installing prerequisites
Setting up the development/test environment
Testing the IBP extension
Forking and cloning the trade-network repository
Creating and running a network configuration
Preparing the network
Generating network cryptographic material
Generating channel artifacts
Composing a sample trade network
Network components' configuration files
Configuring peer databases
Launching a sample trade network
Configuring our development environment for network operations
Creating Fabric identity wallets
Creating a Fabric environment
Creating a node file
Creating and connecting to a Fabric environment in VS Code
Summary
Chapter 5: Designing Smart Contract Transactions and Ledger Data Structures
Architecture of the trade solution
Starting the contract development
Opening and packaging a contract
Deploying a contract in the testing environment
Invoking and debugging a contract
Creating a contract
The contract interface
Implementing the contract
Access control
ABAC
Registering a user
Enrolling a user
Access control in the contract
Implementing contract functions
Scenario contracts' functions
Defining contract assets
Coding contract functions
Creating an asset
Reading and modifying an asset
Testing a contract
Creating a test suite file
Defining a test suite
Unit tests
Running tests in the terminal
Running tests in VS Code
Advanced contract design topics
Cross-contract and cross-ledger invocation
Composite keys
Range and composite key queries
State queries and CouchDB
Indexes
History queries
Transaction mechanisms
The ReadSet and WriteSet
Multiversion concurrency control
Logging output
Configuration
Logging API
Standard output and error
Additional API functions
Summary
Chapter 6: Developing Smart Contracts
Business networks
Solution application components
The transaction ledger and multi-party transactions
Smart contracts
Applications
Network channels
The multi-party transaction
Transaction type
Transaction identifier
Proposal
Response
Valid and invalid transactions
The ledger
State database
State
State collections
Blockchain
Immutable blocks and transactions
Immutability
Primacy of the blockchain
Smart contracts
A central role in the network
Smart contracts and consensus
Writing a smart contract
Smart contract structure
Contract class and transaction methods
Elaborating a smart contract
Writing smart contract transaction methods
Marshalling the transaction proposal input
Accessing the ledger to generate a transaction response
Accessing the state database
Returning a signed transaction response
Checking that business objects exist
Transaction handlers
Other functionality available in fabric-contract-api
Annotations
Packaging smart contracts
A word on terminology
Smart contract package definition agreement
Programming language
Choice of programming language
Using a type system
Modularity – a big idea in Hyperledger Fabric
Endorsement policy
The structure of an endorsement policy
Network agreement
Why endorsement?
Endorsement policy – a separate concern
State-based endorsement
Collection endorsement policy
Summary
Chapter 7: Developing Applications
Applications
The three basic application operations
The application SDK
Declarative APIs and the fabric-network package
Separating the physical from the logical
Querying the ledger
Submitting a new transaction
The process
How the SDK makes consensus easy
Requesting ledger notification
Wallets and identity
Using an identity
Using a wallet
Gateways
Why gateways are useful
Discovery
A network view for an application
Accessing networks and smart contracts
Single network gateway
Multi-network gateway
Querying the ledger
Smart contract packaging and namespaces
Using EvaluateTransaction to query the ledger
Separating the logical from the physical
Synchronous and asynchronous queries
Query in a more complex topology
Submitting a new transaction
The other organizations in the network
What it means to evaluate and submit a transaction
The network topology doesn't matter!
Atomic transactions within and across networks
Combining transactions in a single unit of work
Events and notifications
Transactions, events, and smart contracts
Transactions and events
Smart contracts and events
Event listening and notification
Listening – how it works
Asynchronous responses
Summary
Chapter 8: Advanced Topics for Developing Smart Contracts and Applications
Customizing SDK behavior
Connection options to the rescue
Event handler functions
Checkpoint handler
Transient data
Explicitly recording transaction input
Hiding the transaction input
Private data
Using private data collections
Smart contract exploitation
Private data with transient data
Understanding private data collections
Private data consensus and off-chain data
Private data collections and verifiability
Recapping on styles
The verify-style transaction
Applications, organizations, and private data
Private data consensus
The insert-style transaction
The most important trade
Insert-style smart contract
Insert-style application transaction submission
Read your own writes
Collection and state endorsements policy
Levels of endorsement policy
A note on collection policies
The transfer-style transaction
The createInfo transaction
The transferInfo transaction
The updateInfo transaction
The transfer-style application transaction submission
Summarizing smart contracts, transactions, and applications
Advanced smart contract packaging
Multi-definition packages
Functional packaging
Summary
Chapter 9: Network Operation and Distributed Application Building
Stages in a Fabric network's life cycle
Fabric application model and architecture
Fabric application development overview
Architecture of a Fabric application for trade
Operations – network setup and bootstrap
Operations overview – channel and contract setup
Prerequisites – creating all channel artifacts
Creating all channel artifacts
Launching the network
Overview of Fabric tools and commands
Creating channels
Using the trade.sh script as a shortcut
Verifying block creation
Joining organization peers to channels
Setting organization anchor peers on channels
Running all channel operations in one go
Installing and initializing contracts
Using CLI tools to install and initialize contracts
Installing contracts using the VS Code IBP extension
Developing service-layer applications
Application runtime life cycle
An application for the importer’s organization
Importer application structure
Project dependencies
Setting application properties and generating a connection profile
Designing a service API for the importer application
User registration, login, and session management
User roles and access control
Fabric registration, enrolment, and identity wallets
Contract invocations through gateways
Launching and testing the application
Event management
Exercising the application through a presentation layer
Launching applications
An end-to-end scenario – trade request to final payment
Users and their credentials
Registering users
Logging in users
Requesting a trade as an importer
Accepting a trade as an exporter
Requesting a letter of credit as an importer
Issuing a letter of credit as an importer’s bank
Accepting a letter of credit as an exporter’s bank
Requesting an export license as an exporter
Issuing an export license as a regulator
Preparing a shipment as an exporter
Accepting a shipment and issuing a bill of lading as a carrier
Requesting a partial payment as an exporter’s bank
Making a partial payment as an importer’s bank
Delivering a shipment as a carrier
Requesting the balance payment as an exporter’s bank
Making the balance payment as an importer’s bank
Viewing the list of active or processed trades as an importer
Using a production-grade ordering service
Summary of key steps
Summary
Chapter 10: Enterprise Design Patterns and Considerations
Design considerations
Managing heterogeneity
Process alignment
Message affinity
Service discovery
Identity mapping
Integration design patterns
Integrating with an existing system of record
Integrating with an operational data store for blockchain analytics
Microservice and event-driven architecture
Resiliency and fault tolerance
Reliability and availability
Serviceability
Summary
Chapter 11: Agility in a Blockchain Network
Defining the promotion process
Aligning the promotion process to components
Smart contract considerations
Integration layer considerations
Continuous integration
Promotion process overview
Configuring a CI pipeline
Customizing the pipeline process
Publishing our smart contract package
Configuring your GitHub repository
Setting the code owners of our smart contract
Protecting the master branch
Configuring Git for commit signing and validation
Configuring GPG on your local workstation
Testing considerations for the trade network
Unit testing
Defining our user story and business scenarios
Test fixture
Mapping scenarios to Mocha
Implementing unit tests
Integration testing
Setting up the integration tests
Testing the trade business process
Running the integration tests
Exercising the end-to-end process
Creating a new transaction
Adding the mergeTrade unit test
Submitting a pull request with a signed commit
Releasing the new version
Continuous delivery
Kubernetes as a platform for Hyperledger Fabric
Infrastructure as Code and Ansible
Deployment process overview
Centralization versus decentralization
Notifying the consortium
Applying these concepts to our network
Setting up Ansible
Starting the network using Ansible
Pulling a new chaincode release
Upgrading the network
Summary
Chapter 12: Governance – A Necessary Evil of Regulated Industries
Decentralization and governance
Exploring business models
Blockchain benefits
Supply chain management
Healthcare
Letters of credit
From benefits to profits
B2B and B2C considerations
Network business models
Founder-led networks
Consortium-based networks
Community-based networks
Hybrid models
Funding models
Token-based models
Traditional models
Membership considerations
Governance of a business network
Mapping business roles to blockchain roles
Governance structure
Centralized governance
Exploring the levels of governance
Mapping governance to organizational structure
Decentralized governance
Business domains and processes
Membership life cycle
Funding and fees
Regulation
Education
Service life cycle
Disputes
Blockchain as a governance tool
Managing network policies
Types of policies
Organization level versus network level
Consortiums
Channels
Endorsements
Summary
Chapter 13: Life in a Blockchain Network
Modifying or upgrading a Hyperledger Fabric application
Changing requirements and update modes
Fabric blockchain and application life cycle
Network organization resource updates
Adding a peer to an organization
Installing a smart contract on a new peer
Removing a peer from an organization
Channel configuration updates
Adding a new organization to a live network
Prerequisites for adding a new organization to the network
Generating cryptographic material for the new organization
Generating channel artifacts for the new organization
Generating the cryptographic and channel artifacts in one operation
Docker containers for the new organization
Launching network components for the new organization
Updating the channel configuration
Joining the new organization's peer to the channels
Setting the anchor peer for the new organization's peer on the channels
Installing contracts on peers in the new organization
Smart contract and policy updates
Overview of contract update procedures
Modification in contract business logic
Endorsement policy updates
Upgrading contract code and endorsement policies on the channels
Augmenting the distributed application
Platform upgrades
Upgrading a live four-organization trade network
System monitoring and performance
Measurement and analytics
Fabric system measurement considerations
Metrics for performance analysis
Fabric application performance measurement and data collection
Measuring system health indicators
Fabric support for component monitoring
Profiling containers and applications
Measuring application performance
Fabric engineering guidelines for performance
Platform performance characteristics
System bottlenecks
Configuration and tuning
Ledger data availability and caching
Fabric performance measurement and benchmarking
Summary
Chapter 14: Hyperledger Fabric Security
Hyperledger Fabric design goals impacting security
Hyperledger Fabric architecture
Fabric CA or membership service provider
Peer
Smart contracts
Ledger
Private data
Ordering node
History of the ordering service in Hyperledger Fabric
Network bootstrap and data governance: the first step toward security
Bootstrapping the network with known members
Defining the process for sharing data
Defining the data model of the shared data
Mapping data sharing needs Hyperledger-based mechanisms for operational agility
Adding new members to the network (or channel)
Deploying, instantiating, and upgrading smart contracts on peers in the network
Strong identities: the key to the security of the Hyperledger Fabric network
Bootstrapping Fabric CA
Register
Enroll
Revoking identities
Practical considerations in managing users in Fabric CA
Smart contract security
How is a smart contract shared with other endorsing peers?
Who can install smart contracts?
Smart contract encryption
Attribute-based access control
Common threats and how Hyperledger Fabric mitigates them
Hyperledger Fabric and quantum computing
GDPR considerations
Summary
Chapter 15: Blockchain's Future, Protocol Commercialization, and Challenges Ahead
Summary of key Hyperledger projects
Hyperledger frameworks: business blockchain technology
Distributed ledger frameworks
Hyperledger libraries
Hyperledger tools
Blockchain's future and the challenges ahead
Addressing the divide: the enterprise blockchain and cryptoasset-driven ecosystem
Interoperability: understanding business service integration
Blockchain protocol commercialization: a "BizTech" agenda
Layer 1: Foundational trust and transaction layer
Layer 2: Protocol optimization layer
Layer 3: Blockchain business service layer
Layer 4: Industry/business application layer
Adjunct business layer
Devising modularity to avoid lock-in linkages
Scalability and economic viability of blockchain solutions
How can you help and stay engaged?
Summary
Another Book You May Enjoy
Index


πŸ“œ SIMILAR VOLUMES


Blockchain for Business with Hyperledger
✍ Nakul Shah πŸ“‚ Library πŸ“… 2019 πŸ› BPB Publications 🌐 English

<b>Step-by-step guide to understand the business implementation of Hyperledger Fabric </b> <b>Key Features</b><li>Learn the basics of blockchain and Distributed Ledger Technology from a business and enterprise perspective</li><li>Understand the advantages of Hyperledger Fabric and get acquainted w

Hands-on blockchain with Hyperledger: Bu
✍ Nitin Gaur, Luc Desrosiers, Venkatraman Ramakrishna, Petr Novotny, Salman A. Bas πŸ“‚ Library πŸ“… 2018 πŸ› Packt Publishing 🌐 English

Blockchain and Hyperledger technologiesare hot topics today. Hyperledger Fabric and Hyperledger Composer are open source projects that help organizations create private, permissioned blockchain networks. These find application in finance, banking, supply chain, and IoT among several other sectors. T

Hands-On Blockchain with Hyperledger: Bu
✍ Baset, Salman;Desrosiers, Luc;Gaur, Nitin;Novotny, Petr;O'Dowd, Anthony;Ramakris πŸ“‚ Library πŸ“… 2018 πŸ› Packt Publishing Ltd 🌐 English

Cover; Title Page; Copyright and Credits; Packt Upsell; Foreword; Contributors; Table of Contents; Preface; Chapter 1: Blockchain -- Enterprise and Industry Perspective; Defining the terms -- what is a blockchain?; Four core building blocks of blockchain framworks; Additional capabilities to conside

Blockchain Development with Hyperledger
✍ Baset, Salman A πŸ“‚ Library πŸ“… 2019 πŸ› Packt Publishing 🌐 English

Learn quick and effective techniques for developing blockchain-based distributed ledgers with ease Key Features Discover why blockchain is a game changer in the technology landscape Set up blockchain networks using Hyperledger Fabric Write smart contracts at speed with Hyperledger Composer Book Desc

Blockchain Developer's Guide: Develop sm
✍ Brenn Hill, Samanyu Chopra, Paul Valencourt, Narayan Prusty πŸ“‚ Library πŸ› Packt Publishing 🌐 English

<p><span>Build real-world projects like a smart contract deployment platform, betting apps, wallet services, and much more using blockchain</span></p><h4><span>Key Features</span></h4><ul><li><span><span>Apply blockchain principles and features for making your life and business better </span></span>