Hands-on blockchain with hyperledger building decentralized applications with hyperledger fabric and composer
Leverage the power of Hyperledger Fabric to develop Blockchain-based distributed ledgers with ease Key Features Write your own chaincode/smart contracts using Golang on hyperledger network Build and deploy decentralized applications (DApps) Dive into real world blockchain challenges such as integrat...
Otros Autores: | |
---|---|
Formato: | Libro electrónico |
Idioma: | Inglés |
Publicado: |
Birmingham, England :
Packt Publishing
2018.
|
Edición: | 1st edition |
Materias: | |
Ver en Biblioteca Universitat Ramon Llull: | https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009630628806719 |
Tabla de Contenidos:
- 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 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
- 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 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
- Chapter 3: 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
- Chapter 4: 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
- Chapter 5: 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
- Chapter 6: 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
- Chapter 7: 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.