Hyperledger Fabric


What is Hyperledger Fabric? For an introductory article on this topic click here. We have some information at this website on blockchain that you should read first before reading this post.

On that Hyperledger page it recommends the following: “It’s recommended for first-time users to begin by going through the Getting Started section in order to gain familiarity with the Hyperledger Fabric components and the basic transaction flow. Once comfortable, continue exploring the library for demos, technical specifications, APIs, etc.”

Bitcoin uses a proof-of-work concept to join the network when mining rigs compete to guess the nonce. No so with Hyperledger Fabric.

Hyperledger Fabric is an enterprise distributed ledger based on blockchain technologies that use smart contracts to enforce trust between parties that do not necessarily trust each other. The Linux Foundation has taken control of this project and it has become the fastest growing Linux Foundation project ever. This is an open source project.

Hyperledger is based on blockchain, but Hyperledger is not crypto-currency. Cryptocurrencies use blockchain. Hyperledger uses blockchain. You could use Hyperledger to create a new crypto-currency, but in Hyperledger there is no mining. Hyperledger uses a distributed database that runs on all of the parties that are inside the network. The data is shared between all parties in the network. The data is immutable and distributed. This is how we enforce trust.

The database may store records that relate owners to assets, for example. Suppose a mistake is made and you assign an incorrect owner to a particular asset and that transaction is recorded in the blockchain. You cannot delete or update that entry. To fix it you must create a new transaction. All transactions are dated and time stamped. So you can go to the beginning of the transactions and “replay” all the transactions to end up with the “world state” of the data which will always be the same each time you replay it.

The really nice thing about Hyperledger is that it does not enforce any particular hardware or network or operating system restrictions. It runs on many types of hardware and operating systems and networks.

Three Main Components

There are three main components to Hyperledger Fabric: CA, Peer and the ordering service. When you begin working with Hyperledger fabric it is recommended to use Docker. The source code allows you to replace Docker with virtualization software (VMWare for example) but this requires an in depth knowledge of all of the components and how they work together. All three run inside Docker containers.

Hyperledger Fabric CA

Hyperledger Fabric CA is the default Certificate Authority component, which issues PKI-based certificates to network member organizations and their users. The CA issues one root certificate (rootCert) to each member and one enrollment certificate (ECert) to each authorized user. Every operation must be signed with a certificate. This certificate is similar to the ones that secure your website and make it https instead of http. You are not forced to use Fabric CA. You can generate this yourself if you want.

Peer

A network entity that maintains a ledger and runs chaincode containers in order to perform read/write operations to the ledger. Peers are owned and maintained by members. The peer is our main workhorse. In a production environment you will have more than one peer. One peer may be part of many many channels. Every single channel is inside the peer but they are completely isolated. The peer endorses and updates the ledger.

Ordering Service

The ordering service is at the heart of the consensus. Before anything is committed to the ledger it must pass through the ordering service. The ordering service creates the blocks. It is a defined collective of nodes that orders transactions into a block. The ordering service exists independent of the peer processes and orders transactions on a first-come-first-serve basis for all channel’s on the network. The ordering service is designed to support pluggable implementations beyond the out-of-the-box SOLO and Kafka varieties. The ordering service is a common binding for the overall network; it contains the cryptographic identity material tied to each Member. A Member is a legally separate entity that owns a unique root certificate for the network. Network components such as peer nodes and application clients will be linked to a member. When the block is full the ordering service sends the block to the peers and the peers apply it to the ledger.

Series Navigation<< Blockchain Implementation

Leave a comment

Your email address will not be published. Required fields are marked *