Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Title Page
Copyright and Credits
Hands-On Blockchain with Hyperledger
Packt Upsell
Why subscribe?
PacktPub.com
Foreword
Contributors
About the authors
Packt is searching for authors like you
Preface
Who this book is for
What this book covers
To get the most out of this book
Download the example code files
Conventions used
Get in touch
Reviews
Blockchain - Enterprise and Industry Perspective
Defining the terms – what is a blockchain?
Four core building blocks of blockchain framworks
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
Industries putting blockchain technology to work
Blockchain in the enterprise
What applications are a good fit?
How does the enterprise view blockchain?
Litmus testing to justify the application of blockchain technology
Integrating a blockchain infrastructure for the whole enterprise
Enterprise design principles
Business drivers and evolution
Ensuring sustainability
The 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
Use case-driven pluggable choices
Enterprise integration and designing for extensibility
Other considerations
Consensus, ACID property, and CAP
CAP
ACID
Attestation – SSCs are signed and encrypted
Use of HSMs
Summary
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 frameworks
Hyperledger tools
The building blocks of blockchain solutions
Hyperledger Fabric component design
Principles of Hyperledger design
CAP Theorem
Hyperledger Fabric reference architecture
Hyperledger Fabric runtime architecture
Strengths and advantages of componentized design
Hyperledger Fabric – the journey of a sample transaction
Hyperledger Fabric explored
Components in a blockchain network
Developer interaction
Understanding governance in business networks powered by blockchain
Governance structure and landscape
Information technology governance
Blockchain network governance
Business network governance
Summary
Setting the Stage with a Business Scenario
Trading and letter 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
Benefits of blockchain applications over current real-world processes
Setting up the development environment
Designing a network
Installing prerequisites
Forking and cloning the trade-finance-logistics repository
Creating and running a network configuration
Preparing the network
Generating network cryptographic material
Generating channel artifacts
Generating the configuration in one operation
Composing a sample trade network
Network components' configuration files
Launching a sample trade network
Summary
Designing a Data and Transaction Model with Golang
Starting the chaincode development
Compiling and running chaincode
Installing and instantiating chaincode
Invoking chaincode
Creating a chaincode
The chaincode interface
Setting up the chaincode file
The Invoke method
Access control
ABAC
Registering a user
Enrolling a user
Retrieving user identities and attributes in chaincode
Implementing chaincode functions
Defining chaincode assets
Coding chaincode functions
Creating an asset
Reading and modifying an asset
Main function
Testing chaincode
SHIM mocking
Testing the Init method
Testing the Invoke method
Running tests
Chaincode design topics
Composite keys
Range queries
State queries and CouchDB
Indexes
ReadSet and WriteSet
Multiversion concurrency control
Logging output
Configuration
Logging API
SHIM logging levels
Stdout and stderr
Additional SHIM API functions
Summary
Exposing Network Assets and Transactions
Building a complete application
The nature of a Hyperledger Fabric application
Application and transaction stages
Application model and architecture
Building the application
Middleware – wrapping and driving the chaincode
Installation of tools and dependencies
Prerequisites for creating and running the middleware
Installation of dependencies
Creating and running the middleware
Network configuration
Endorsement policy
User records
Client registration and enrollment
Creating a channel
Joining a channel
Installation of chaincode
Instantiation of chaincode
Invoking the chaincode
Querying the chaincode
Completing the loop – subscribing to blockchain events
Putting it all together
User application – exporting the service and API
Applications
User and session management
Designing an API
Creating and launching a service
User and session management
Network administration
Exercising the application
User/client interaction modes
Testing the Middleware and Application
Integration with existing systems and processes
Design considerations
Decentralization
Process alignment
Message affinity
Service discovery
Identity mapping
Integration design pattern
Enterprise system integration
Integrating with an existing system of record
Integrating with an operational data store
Microservice and event-driven architecture
Considering reliability, availability, and serviceability
Reliability
Availability
Serviceability
Summary
Business Networks
A busy world of purposeful activity
Why a language for business networks?
Defining business networks
A deeper idea
Introducing participants
Types of participant
Individual participants
Organizational participants
System or device participants
Participants are agents
Participants and identity
Introducing assets
Assets flow between participants
Tangible and intangible assets
The structure of assets
Ownership is a special relationship
Asset life cycles
Describing asset's life cycles in detail with transactions
Introducing transactions
Change as a fundamental concept
Transaction definition and instance
Implicit and explicit transactions
The importance of contracts
Signatures
Smart contracts for multi-party transaction processing
Digital transaction processing
Initiating transactions
Transaction history
Transaction streams
Separating transactions into different business networks
Transaction history and asset states
A business network as a history of transactions
Regulators and business networks
Discussing events from the perspective of designing a business network using Composer
A universal concept
Messages carry event notifications
An example to illustrate event structure
Events and transactions
External versus explicit events
Events cause participants to act
Loosely coupled design
The utility of events
Implementing a business network
The importance of de-materialization
Blockchain benefits for B2B and EDI
Participants that interact with the blockchain
Accessing the business network with APIs
A 3-tier systems architecture
Hyperledger Fabric and Hyperledger Composer
Summary
A Business Network Example
The letter of credit sample
Installing the sample
Running the sample
Step 1 – preparing to request a letter of credit
Step 2 – requesting a letter of credit
Step 3 – importing bank approval
Step 4 – exporting bank approval
Step 5 – letter received by exporter
Step 6 – shipment
Step 7 – goods received
Step 8 – payment
Step 9 – closing the letter
Step 10 – Bob receives payment
Recapping the process
Analyzing the letter of credit process
The Playground
Viewing the business network
A description of the business network
The participant descriptions
The asset descriptions
The transaction descriptions
The event descriptions
A model of the business network
Namespaces
Enumerations
Asset definitions
Participant definitions
Concept definitions
Transaction definitions
Event definitions
Examining the live network
Examining a letter of credit instance
Examining participant instances
Examining transaction instances
Submitting a new transaction to the network
Understanding how transactions are implemented
Creating business network APIs
SWAGGER API definitions
Querying the network using SWAGGER
Testing the network from the command line
Creating a new letter using SWAGGER
Network cards and wallets
Access-control lists
Summary
Agility in a Blockchain Network
Defining the promotion process
Smart contract considerations
Integration layer considerations
Promotion process overview
Configuring a continuous integration pipeline
Customizing the pipeline process
Local build
Configuring Travis CI
Customizing the pipeline using .travis.yml
Publishing our smart contract package
Configuring your Git repository
Setting the code owners of our smart contract
Sample content of the CODEOWNERS
Protecting the master branch
Configuring Git for commit signing and validation
Configuring GPG on your local workstation
Testing the end-to-end process
Creating a new transaction
Pushing a commit to the master branch directly
Submitting a pull request with an unsigned commit
Adding test cases
Submitting a pull request with a signed commit
Adding the mergeAssets unit test
Releasing the new version
Updating the network
Notifying the consortium
Upgrading the business network
Downloading a new version
Updating the business network
Summary
Life in a Blockchain Network
Modifying or upgrading a Hyperledger Fabric application
Fabric blockchain and application life cycle
Channel configuration updates
Prerequisites for adding a new organization to the network
Generating network cryptographic material
Generating channel artifacts
Generating the configuration and network components in one operation
Launching the network components for the new organization
Updating the channel configuration
Adding the new organization to the network
Smart contract and policy updates
Modification in chaincode logic
Dependency upgrades in chaincode
Ledger resetting
Endorsement policy update
Upgrading chaincode and endorsement policy on the trade channel
Platform upgrades
System monitoring and performance
Measurement and analytics
What should we measure or understand in a Fabric application
Blockchain applications vis-à-vis traditional transaction processing applications
Metrics for performance analysis
Measurement and data collection in a Fabric application
Collecting health and capacity information
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
Redundant committing peer
Data caching
Fabric performance measurement and benchmarking
Summary
Governance, Necessary Evil of Regulated Industries
Decentralization and governance
Exploring the business models
Blockchain benefits
Supply chain management
Healthcare
Finance – letter of credit
From benefits to profits
Network business model
Founder-led network
Consortium-based network
Community-based network
Hybrid models
Joint venture
New corporation
Role of governance in a business network
Business domains and processes
Membership life cycle
Funding and fees
Regulation
Education
Service life cycle
Disputes
Governance structure
Centralized governance
Strategic governance
Operational governance
Tactical governance
Decentralized governance
Governance and the IT solution
Managed on-boarding
Summary
Hyperledger Fabric Security
Hyperledger Fabric design goals impacting security
Hyperledger Fabric architecture
Fabric CA or membership service provider
Peer
Smart contract or chaincode
Ledger
Private data
Ordering service
Network bootstrap and governance – the first step towards security
Creating the network
Adding new members
Deploying and updating chaincode
Data model
Strong identities – the key to the security of the Hyperledger Fabric network
Bootstrapping Fabric CA
Register
Default Fabric roles
Enroll
Which crypto protocols are allowed in certificate signing requests?
Revoking identities
Practical considerations in managing users in Fabric CA
Chaincode security
How is chaincode shared with other endorsing peers?
Who can install chaincode?
Chaincode encryption
Attribute-based access control
Pros and cons of attribute-based access control
Common threats and how Hyperledger Fabric mitigates them
Transaction privacy in Hyperledger Fabric
Channels
Private data
Encrypting transaction data
Hyperledger Fabric and Quantum Computing
General data protection regulation (GDPR) considerations
Summary
The Future of Blockchain and the Challenges Ahead
Summary of key Hyperledger projects
Hyperledger framework – business blockchain technology
Hyperledger tools
Hyperledger Composer
The road ahead for Blockchain
Addressing the divide – the enterprise blockchain and crypto asset-driven ecosystem
Interoperability – understanding business service integration
Scalability and economic viability of the blockchain solution
Staying engaged with the Hyperledger blockchain
Summary
Other Books You May Enjoy
Leave a review - let other readers know what you think
← Prev
Back
Next →
← Prev
Back
Next →