Technology Fridays: IBM Hyperledger Fabric Brings the Blockchain to Enterprises
welcome to Technology Fridays! every week we try to cover exciting new technologies that are driving transformations in hot market trends. Today, we are going to cover IBM’s Hyperledger Fabric, one of the platforms that is trying to streamline the development of blockchain applications in the enterprise.
Hyperledger Fabric is one of the several blockchain projects under the Hyperledger branch of the Linux Foundation, In 2015, the Linux foundation partnered with IBM to create Hyperledger in order to advance blockchain technologies. Hyperledger Fabric is IBM’s marquee contribution of the foundation in the sense that it provides a complete platform for the implementation of blockchain solutions.
Like other blockchain technologies, IBM Hyperledger Fabric combines smart contracts and an immutable ledger to enable different endpoints to exchange assets using transactions. However, differently from other blockchain technologies, Hyperledger Fabric is completely extensible allowing developers to incorporate new data formats, consensus protocols, membership services and other aspects of blockchain applications. Also, Hyperledger Fabric differs from other blockchain technologies in the fact that it is private and permission.
Assets are a key elements of Hyperledger Fabric that defines any component of monetary value in the network. Assets can be defined using Fabric’s Chaincode which is the language used for modeling business logic as well as tools such as Fabric Composer. Hyperledger represents Assets either as binary or JSON formats and its states its typically recorded in the ledger.
In order to define Assets and business logic, Hyperledger Fabric relies on Chaincode. The language allow developers to define functions and Smart Contracts that are initiated via transactions and interact with the ledger. Hyperledger Fabric supports different programming languages in order to write Chaincode such as Go or Java. Like other blockchain technologies, Fabric relies on an immutable ledger to maintain a verifiable history of all transactions in the platform. However, Fabric takes the concept of a blockchain ledger a step further by associating it with a specific scope of privacy known as Channels. Essentially, Fabric’s ledgers live within Channels which can be shared to all nodes in the network or be constrained to a few participants.
Conceptually, you can think of Hyperledger Fabric as a network of nodes that communicate with each other executing transactions and interacting with ledger data. In the Fabric architecture, we can find three types of nodes: Peer, Client and Ordering-Service. At a high level, Peer nodes are responsible f recommitting transaction into the ledger and maintaining its state. Fabric also uses Peer nodes is an special role as Endorsers which allow them to “endorse” a transaction before is committed. Fabric networks maintain an endorsement policy that details the rules for endorsing transactions before successfully committing them.
Client nodes connect to Peers in the blockchain and invoke the corresponding transactions. The communication between Client and Peer nodes is achieved through Channels created by Ordering-Service nodes. clients can connect to a Channel and broadcast messages which are then delivered to the Peer nodes via the Ordering-Service.
Hyperledger Fabric uses Transactions to abstract Chaincode that is either deployed or execute it. Fabric refers to those two types of transactions as Deploy-Transactions and Invoke-Transactions respectively.
There are several other components of the Hyperledger Fabric architecture but most of them center around Nodes, Chaincode, Transactions and, of course, Ledgers.
IBM Hyperledger Fabric should be considered as a blockchain application development platform and, therefore, is operating in a very competitive market. Platform such as Ethereum or Ripple are some of the best known platforms in the space. Technologies such as Microsoft Project Bletchey (based on Ethereum) or Chain can also be considered competitors.