Hyperledger Fabric component design
Let's discuss various components that facilitate the blockchain technology tenets of shared ledger, encryption, the trusts system, and smart contracts. The components represent the Hyperledger Fabric infrastructure components and provide isolation from chain code or smart contract development constructs. Chain code or smart contract development details will be discussed in detail in a separate chapter.
The following diagram depicts the Hyperledger Fabric infrastructure components:
Hyperledger Fabric infrastructure components
Following are the infrastructure components:
- Hyperledger Fabric CA is an implementation of membership services but is not required to be used (that is, any X509-based PKI infrastructure that can issue EC certificates can be used)
- Dedicated orderer nodes
- Implements atomic broadcast API
- Orders and batches transactions and signs each batch (block) to create a hash chain
- Hyperledger Fabric provides two implementations—Solo (for dev/test) and a Kafka-based implementation for production/fault tolerance
- The ordering service is pluggable—the implementer needs to only provide an atomic broadcast API based on the gRPC interface definition
- Peers are now responsible for existing smart logic (chaincode) and maintaining the ledger
- Endorsement simulates transactions (that is, it executes them, but does not commit them)
- Peers receive batches of endorsed transactions from the orderer nodes and then validate and commit transactions (this eliminates non-determinism)