Technical Introduction to Hyperledger Fabric

by Roger StrukhoffApril 12, 2016
How does peer discovery work in Hyperledger Fabric? In this post, Sergey Matykevich of Altoros guides through Hyperledger Fabric (also known as Open Blockchain).


A recent Hyperledger meetup in New York included a technical introduction to Open Blockchain, IBM’s contribution to the Hyperledger Project.

All the speakers addressed specific aspects of Hyperledger, a blockchain-based project that was launched under the framework of the Linux Foundation in December 2015. IBM’s Open Blockchain (OBC) technology was recently open-sourced and forms a core part of a proposed Hyperledger incubation project. This part is now called Fabric and available at GitHub. Both DAH and Blockstream have also made proposed contributions to the project.


Technical Introduction to Hyperledger Fabric

Sergey Matyukevich, Senior Cloud Engineer at Altoros, led attendees through a slide presentation that demonstrated with some code and graphics how to address this problem:

IBM Hyperledger-Bottleneck-Step-1

IBM Hyperledger-Bottleneck-Step-2

After adding a third validation peer in Step 3, he then moved on to Step 4, to deploy and distribute the application, then deploy the chaincode and execute a transaction:

IBM Hyperledger-Bottleneck-Step-4

IBM Hyperledger-Bottleneck-Code-1

IBM Hyperledger-Bottleneck-Code-2

IBM Hyperledger-Bottleneck-Code-3


Peer discovery

Sergey outlined how peer discovery works:

  • VP2 sends DISC_HELLO message to its root discovery node (VP1).
  • VP1 replies.
  • Nodes start “chatting”—periodically sending DISC_GET_PEERS (asking to share active connections).
  • Each node should reply with DISC_PEERS (list of connections).
  • After node receives new connections it starts chatting with them.

IBM Hyperledger-Bottleneck-Step-4-Again


Hyperledger resources

Details of the Hyperledger Project can be found here. There are also a GitHub repo, Wiki, and Slack channel.


Related slides

A presentation from the Hyperledger meetup in New York has been posted to Slideshare:


Related reading

  • TheMonkeyKing

    Let me understand that this is upon creation of nodes and “DISC_GET_PEERS” but before, one node has the application. (Reminds me of peer to peer code injection…)

    So how do I handle application injection with nodes already “chatting”? Also this seems to be cloned resources and not a ‘meta-concert,’ where the sum is far greater than the parts. Is that the next iteration of the fabric, where it might account for disparate hardware platforms (where some machines are better suited for some tasks than others)?