Hyperledger Fabric Features

Hyperledger Fabric Features

  1. Authentication
    • Hyperledger Fabric provides the methods that manage user authentication.
  2. Confidentiality
    • Each Ledger is composed of serveral channel, and each channel can limit the users's usage. Because only allowed users can access the channel and read data in it, confidentiality is guaranteed.
  3. Effective Procedure
    • Since only permitted users can access, we can suppose that there are not vicious users, so the consensus processing can be simplified.
    • Since transaction process and transaction consensus process are separated, parallel process is possible.
    • There are not excessive data until transaction occur yet.
  4. Chain code
    • A chain code is permitted, it can access other chain code in other channels.
    • Chain code can be written in Go, Node.js, Java languages, and be installed in specific nodes.

Hyperledger Fabric Network Configuration

Source: Hyperledger Korea User GroupSource: Hyperledger Korea User Group

Source: Hyperledger Korea User Group

The fabric network consists of the following elements:

  1. Organization
  • Hyperledger Fabric is a permissioned Blockchain network that is set up by organizations that come together to build a consortium. The organizations that take part in this consortium are known as members.
  1. CA(Certificate Authority)
  • Certificate Authority or CA is responsible for managing user certificates such as user registration, user enrollment, user revocation, and etc.
  • More specifically, Hyperledger Fabric is a permissioned blockchain network. This means that only permitted users can query (access to information) or invoke (create a new transaction) a transaction on a granted channel.
  • Each Organization participating in the Fabric network use an individual CA.
  1. Peer
  • Peer is a blockchain node that stores all transactions on a joining channel. Each peer can join one or more channels as required. However, the storage for different channels on the same peer would be separate. Therefore, an organization can ensure that confidential information would be shared to only permitted participants on a certain channel.
  1. Orderer, Ordering service
  • Orderer is one of the most important components used in the Fabric consensus mechanism. Orderer is a service responsible for ordering transactions, creating a new block of ordered transactions, and distributing a newly created block to all peers on a relevant channel.
  • Orderer broadcasts the generated block to all Peers (to both Endorsing Peers and Committing Peers) on the relevant channel. Then, each Peer ensures that each transaction in the received block was signed by the appropriate Endorsing Peers (i.e., determining from the invoked chaincode’s endorsement policy) and enough endorsements are present. After that, a versioning check (called the multi-version concurrency control (MVCC) check) will take place to validate the correctness of each transaction in the received block.
  • That is, each Peer will compare each transaction’s readset with its ledger’s world state. If the verification check passes, the transaction is marked as valid and each Peer’s world state is updated. Otherwise, the transaction is marked as invalid without updating the world state. Finally, the received block is appended into each Peer’s local blockchain regardless of whether or not the block contains any invalid transactions.
  • Hyperledger Fabric(v1.4.1) launched its new ordering service based on Raft protocol. Kafka-based ordering service is no longer supported from Hyperleder Fabric(v2.0)
  1. Channel
  • In Hyperledger Fabric, there is a concept of channels which allows participating organizations to join and communicate with one another. Channel might be considered as a tunnel for one organization to secretly communicate with other participating organizations joining the same channel.
  • Any others who do not take part in the channel in question do not ever have access to any transaction or information associated with that channel. One organization can take part in multiple channels at the same time.
  1. Client
  • Client is considered to be an application that interacts with Fabric blockchain network. That is, Client can interact with Fabric network according to its permissions, roles, and attributes as specified on its certificate derived from its associated organization’s CA server.
  • Hyperledger Fabric SDK now supports three languages that are Node.js, Java, Go.