Definitive Guide for Learning Blockchain Hyperledger Development from Beginner to Advance Level
Tags: blockchain, hyperleder, hyperledgerfabric, node
Published: 2019-07-11 14:55:13

<p>This article is only focused on building a blockchain  application using one of Hyperledger projects. I briefly survey each project  followed by its hands-on recipes. Also, if you wish to learn and practice Ethereum  blockchain development, visit <a href="https://myhsts.org/tutorial-comprehensive-blockchain-ethereum-and-solidity-developer-guide-for-all-professional-programmers.php">Comprehensive  Ethereum Training Tutorials</a> page to get the outline of our Ethereum  tutorial articles. </p>
<p><strong>Note:</strong> Good knowledge of blockchain concepts, JavaScript and Python as well as  basic skills in Linux OS are required in order to complete tutorials listed on  this article.</p>

<p><a href="https://learn.coding-bootcamps.com/blog/202224/why-build-blockchain-applications-with-hyperledger-fabric" target="_blank" >Here</a> is a good article on why choosing Hyperledger Fabric over other blockchain development platforms.</p>

<p><strong>Overview of Hyperledger Project and Family</strong><br>
  Hyperledger project is  made of many frameworks and tools.<br>
  <strong>Hyperledger Project Frameworks</strong> <br>
  The frameworks under  Hyperledger project aim to provide platforms to build a variety of distributed  ledgers and their components. They are as follows:</p>
<ul>
  <li><strong>Hyperledger Fabric</strong>: Fabric  is the most popular Hyperledger framework. Smart<strong>&nbsp;</strong>contracts (also known as&nbsp;<strong>chaincode</strong>) are  written in Golang and JavaScript, and run in Docker containers. Fabric is known  for its extensibility and allows enterprises to build distributed ledger  networks on top of an established and successful architecture.</li>
  <li><strong>Hyperledger Sawtooth</strong>:  Sawtooth is the second project to reach 1.0 release<strong>&nbsp;</strong>maturity. Sawtooth-core is written in Python, while Sawtooth Raft  and Sawtooth Sabre are written in Rust. It also has JavaScript and Golang  components. Sawtooth supports both permissioned and permissionless deployments.  It supports the EVM through a collaboration with the Hyperledger Burrow.</li>
  <li><strong>Hyperledger Burrow</strong>: Burrow  is the first permissioned ledger that supports<strong>&nbsp;</strong>EVM. It  is written in Go and heavily focuses on being a deterministic Smart Contract  engine.</li>
  <li><strong>Hyperledger Indy</strong>: Indy is  built explicitly for decentralized identity<strong>&nbsp;</strong>management.  The server portion, Indy node, is built in Python, while the Indy SDK is  written in Rust. It offers tools and reusable components to manage digital  identities on blockchains or other distributed ledgers.</li>
  <li><strong>Hyperledger Iroha</strong>: Iroha  is designed to target the creation and management of<strong>&nbsp;</strong>complex digital assets and identities. It is written in C++ and is  end user friendly. Iroha has a powerful role-based model for access control and  supports complex analytics.</li>
</ul>
<p>Below graph succinctly  depicts Hyperledger frameworks and tools. </p>
<p>&nbsp;</p>
<p><img border="0" width="624" height="305" src="https://coding-bootcamps.com/img/external/11/hyperledger-project-and-tools-overview.png"></p>
<p>For learning more about  Hyperledger project tools&nbsp;and Hyperledger family the following articles  are strongly recommended. <a href="https://weg2g.com/application/touchstonewords/article-intro-to-hyperledger-family-and-hyperledger-blockchain-ecosystem.php">Intro  to Hyperledger Family and Hyperledger Blockchain Ecosystem</a>&nbsp;and&nbsp;<a href="https://weg2g.com/application/touchstonewords/article-overview-of-hyperledger-design-philosophy-and-framework-architecture.php">Hyperledger  Design Philosophy and Framework Architecture</a>&nbsp;.</p>
<p><strong>I- Hyperledger Fabric Project and Development</strong><br>
  It is out of question that  Hyperledger Fabric is currently the most popular platform for blockchain  development. Hyperledger Fabric is an open source enterprise-grade platform  that leverages a highly-modular and configurable architecture. Hyperledger  Fabric is optimized for a broad range of industry use cases, including the  finance, banking, healthcare, insurance, and public sectors, as well as supply  chains and digital asset management. Read below article to learn about  Hyperledger Fabric architecture and design:<br>
  <a href="https://weg2g.com/application/touchstonewords/article-the-survey-of-hyperledger-fabric-architecture-and-components-for-blockchain-developers.php">https://weg2g.com/application/touchstonewords/article-the-survey-of-hyperledger-fabric-architecture-and-components-for-blockchain-developers.php</a><br>
  <br>
  We  have written two sets of tutorials to explore Hyperledger Fabric in depth.  First set covers the following six recipes:<br>
  It starts with <a href="https://myhsts.org/tutorial-learn-how-to-install-blockchain-hyperledger-fabric-on-amazon-web-services.php">installing  Hyperledger Fabric on an AWS EC2 virtual machine</a>,  <a href="https://developer.ibm.com/recipes/tutorials/building-hyperledger-fabric-network-for-blockchain-applications/">setting  up the first Hyperledger Fabric network</a> and <a href="https://myhsts.org/tutorial-learn-how-to-work-with-hyperledger-fabric-cli-to-setup-network-and-manage-chaincode.php">working  with Hyperledger Fabric Command Line Interface or CLI</a>. We learn the  following: </p>
<ul>
  <li>Generating the crypto/certificate  using cryptogen</li>
  <li>Generating the configuration  transaction using configtxgen</li>
  <li>Bring up the nodes based on what  is defined in the docker-compose file</li>
  <li>Using the CLI to set up the first  network</li>
  <li>Using  the CLI to install and instantiate the chaincode </li>
  <li>Using  the CLI to invoke and query the chaincode</li>
</ul>
<p>We move on to show you how  to <a href="https://myhsts.org/tutorial-learn-how-to-add-organization-to-channel-in-hyperledger-fabric.php">Add  New Network to a Channel</a>, <a href="https://developer.ibm.com/recipes/tutorials/use-couchdb-as-a-state-database-for-hyperledger-fabric/">Use  CouchDB as a State Database for Hyperledger Fabric</a>, and <a href="https://myhsts.org/tutorial-learn-how-to-write-first-blockchain-application-in-hyperledger-fabric.php">Create  a Smart Contract and then Deploy it into the Blockchain</a>.<br>
  In  short, in first 6 recipes, we learn about how to set up and configure  Hyperledger Fabric. We explore its key components, including channels, <strong>Membership Service Providers</strong> (<strong>MSPs</strong>), the ordering service, and Fabric <strong>Certificate Authority</strong> (<strong>CA</strong>). <br>
  The  second set, we will show you how to build a simple device asset  management DApp. It consists of 6 recipes as follows:</p>
<ul>
  <li><a href="https://myhsts.org/tutorial-learn-how-to-implement-hyperledger-fabric-via-inventory-asset-management-application.php">Reviewing of inventory asset  management and chaincode</a></li>
  <li><a href="https://developer.ibm.com/recipes/tutorials/writing-hyperledger-fabric-chaincode-using-go-programming-language/">Writing chaincode as a smart  contract using Go</a></li>
  <li><a href="https://myhsts.org/tutorial-learn-learn-how-to-compile-and-deploy-hyperledger-fabric-chaincode-and-smart-contracts.php">Compiling and deploying Fabric  chaincode</a></li>
  <li><a href="https://developer.ibm.com/recipes/tutorials/running-and-testing-smart-contracts-for-hyperledger-fabric/">Running and testing the smart  contract</a></li>
  <li><a href="https://myhsts.org/tutorial-learn-learn-how-to-design-front-end-application-with-hyperledger-fabric-through-sdk.php">Designing front-end of an  application with Hyperledger Fabric through the SDK</a></li>
  <li><a href="https://developer.ibm.com/recipes/tutorials/developing-backend-application-with-hyperledger-fabric-through-sdk/">Developing  back-end of an application with Hyperledger Fabric through the SDK</a></li>
</ul>
<p>In summary, in the second set of recipes, we are going to  build a simple device asset management DApp. We will exploit this example by  writing chaincode implemented by various programming languages and we'll also  build, test, and deploy our DApp.<br>
  <br>
  After finishing first two sets of tutorials, you can move on  to more advance topics on Hyperledger Fabric development via the following  recipes: <a href="https://developer.ibm.com/recipes/tutorials/build-blockchain-applications-with-hyperledger-fabric-and-composer-on-ibm-cloud/">Build  Blockchain Applications with Hyperledger Fabric and Composer on IBM Cloud</a>, <a href="https://blockchain.dcwebmakers.com/build-blockchain-letter-of-credit-using-hyperledger-fabric-and-composer.html">Building A Blockchain for     Letter of Credit Using Hyperledger  Fabric and Composer</a> and <a href="https://coding-bootcamps.com/ultimate-guide-for-building-a-blockchain-supply-chain-using-hyperledger-fabric-and-composer.html">Ultimate Guide for Building A  Blockchain Supply Chain Using Hyperledger Fabric and Composer</a>. </p>
<p>&nbsp;</p>
<p><strong>II- Hyperledger Sawtooth Project and  Development</strong><br>
  Hyperledger Sawtooth is an enterprise blockchain platform  for building distributed ledger applications and networks. The design  philosophy targets keeping ledgers&nbsp;distributed&nbsp;and making smart  contracts&nbsp;safe, particularly for enterprise use. Read below article to  learn more:<br>
  <a href="https://weg2g.com/application/touchstonewords/article-essential-hyperledger-sawtooth-features-for-enterprise-blockchain-developers.php">https://weg2g.com/application/touchstonewords/article-essential-hyperledger-sawtooth-features-for-enterprise-blockchain-developers.php</a><br>
  <br>
  Follow below 5 steps or  tutorials for building blockchain application in Sawtooth:<br>
  <strong>1. Install </strong><strong>Hyperledger Sawtooth</strong><br>
  Follow <a href="https://myhsts.org/tutorial-learn-how-to-install-and-work-with-blockchain-hyperledger-sawtooth.php">Install  and Work with Hyperledger Sawtooth</a> recipe.<br>
  <br>
  <strong>2. Configure Sawtooth Validators and REST API</strong><br>
  Follow <a href="https://myhsts.org/tutorial-learn-how-to-configure-hyperledger-sawtooth-validator-and-rest-api-on-aws.php">Configuring  Hyperledger Sawtooth Validator and REST API on AWS</a> recipe. <br>
  <br>
  <strong>3. Design a Namespace and Address for  Transaction Family and Implement Transaction Family</strong><br>
  Follow <a href="https://developer.ibm.com/recipes/tutorials/designing-namespace-and-address-for-hyperledger-sawtooth-transaction-family/">Designing  Namespace and Address for Hyperledger Sawtooth Transaction Family</a> recipe<br>
  <strong><br>
    4. Build a Transaction Processor and Grant Permission on the Sawtooth Network</strong><br>
  Follow <a href="https://developer.ibm.com/recipes/tutorials/building-transaction-handler-and-processor-for-hyperledger-sawtooth-with-python-sdk/">Building  Transaction Handler and Processor for Hyperledger Sawtooth with Python SDK</a> recipe<br>
  <strong><br>
    5. Develop Client Applications with the Sawtooth REST API and SDK</strong><br>
  Follow <a href="https://myhsts.org/tutorial-learn-how-to-build-transaction-processor-as-a-service-and-python-egg-for-hyperledger-sawtooth.php">Transaction Processor and Python Egg For Hyperledger Sawtooth</a> recipe. </p>
<p><strong>III- Hyperledger Composer Project and  Development</strong><br>
  <strong>Hyperledger  Composer&nbsp;</strong>is a set of  collaboration tools for business owners and developers<strong>&nbsp;</strong>that make it  easy to write chaincode for Hyperledger Fabric and&nbsp;<strong>decentralized  applications</strong>&nbsp;(<strong>DApps</strong>). With Composer, you can quickly build POC  and deploy chaincode to the blockchain in a short amount of time. Hyperledger  Composer consists of the following toolsets:</p>
<ul type="disc">
  <li><strong>A modeling language called CTO</strong>: A domain modeling language that defines a<strong>&nbsp;</strong>business       model, concept, and function for a business network definition</li>
  <li><strong>Playground</strong>: Rapid configuration, deployment, and testing of a       business network</li>
  <li><strong>Command-line interface (CLI)       tools</strong>: The client command-line tool       is used to<strong>&nbsp;</strong>integrate business network with Hyperledger Fabric</li>
</ul>
<p>Follow below tutorials  for building blockchain application using Hyperledger Composer:</p>
<ul>
  <li> <a href="https://myhsts.org/tutorial-learn-how-to-build-blockchain-hyperledger-composer-business-network-modeling-and-environment-setup-part1.php">Hyperledger Composer business network and development  components</a></li>
  <li>&nbsp;<a href="https://myhsts.org/tutorial-learn-how-to-build-blockchain-hyperledger-composer-business-network-modeling-and-environment-setup-part2.php">Setting  up the Hyperledger Composer Prerequisites &amp; Development environment</a></li>
  <li><a href="https://myhsts.org/tutorial-learn-how-to-build-blockchain-hyperledger-composer-business-network-modeling-and-environment-setup-part3.php">Configuring  a Hyperledger Composer business network</a>&nbsp;</li>
</ul>
<p>After completing above  3 recipes, it&rsquo;s recommended to learn the following topics: i- Implementing  models, transaction logic, access control, and query definitions, ii-  Deploying, testing, and exporting business network archives using the Composer  command-line interface and iii- Interacting with Composer through the RESTful  API as covered in the below links: <br>
  <a href="https://developer.ibm.com/recipes/tutorials/blockchain-hyperledger-composer-and-playground-development-components/">https://developer.ibm.com/recipes/tutorials/blockchain-hyperledger-composer-and-playground-development-components/</a> <br>
  <a href="https://developer.ibm.com/recipes/tutorials/interacting-with-hyperledger-composer-through-restful-api/">https://developer.ibm.com/recipes/tutorials/interacting-with-hyperledger-composer-through-restful-api/</a></p>
<p><strong>IV- Hyperledger Explorer Project and  Development</strong><br>
  Hyperledger Explorer is a  powerful utility that allows users to create user-friendly web-based  applications. It is a blockchain dashboard and provides the ability to view,  invoke, deploy, and query raw blockchain data and network information,  including block details, chain codes, and transactions stored in the ledger.<br>
  Follow below recipes to  install and configure Explorer:<br>
  <a href="https://myhsts.org/tutorial-learn-how-to-install-blockchain-hyperledger-explorer-and-configure-it-with-fabric.php">https://myhsts.org/tutorial-learn-how-to-install-blockchain-hyperledger-explorer-and-configure-it-with-fabric.php</a> <br>
  <a href="https://myhsts.org/tutorial-learn-how-to-build-blockchain-hyperledger-explorer-and-development-environment.php">https://myhsts.org/tutorial-learn-how-to-build-blockchain-hyperledger-explorer-and-development-environment.php</a><br>
  <br>
  Follow below tutorials for  building your first blockchain application using Hyperledger Explorer and  Fabric. <br>
  <a href="https://developer.ibm.com/recipes/tutorials/configure-hyperledger-explorer-with-fabric-to-build-blockchain-applications/">https://developer.ibm.com/recipes/tutorials/configure-hyperledger-explorer-with-fabric-to-build-blockchain-applications/</a> <br>
  <a href="https://developer.ibm.com/recipes/tutorials/building-hyperledger-explorer-for-developing-blockchain-applications/">https://developer.ibm.com/recipes/tutorials/building-hyperledger-explorer-for-developing-blockchain-applications/</a></p>
<p><strong>V- Hyperledger Indy Project and Development</strong><br>
  Hyperledger Indy is a  distributed ledger in The Linux Foundation family which is built for  decentralized digital-identity management. Hyperledger Indy is in its  incubation stage so in this recipe we will explore the Indy Command Line  Interface or CLI to look at the concept and functions offered by Hyperledger  Indy with the current distribution.<br>
  To develop blockchain  applications using Hyperledger Indy, you need to run Hyperledger Indy and  explore it&rsquo;s the power of its Command line Interface or CLI by creating,  opening, and listing the wallet, creating, importing, and using decentralized  identifier or DID and creating, connecting, and listing Hyperledger Indy node  pool. Follow below three tutorials to build your blockchain application using  Hyperledger Indy. <br>
  <a href="https://myhsts.org/tutorial-learn-how-to-install-blockchain-hyperledger-indy-on-amazon-web-services.php">https://myhsts.org/tutorial-learn-how-to-install-blockchain-hyperledger-indy-on-amazon-web-services.php</a> <br>
  <a href="https://developer.ibm.com/recipes/tutorials/manage-hyperledger-indy-wallet-and-did-through-indy-cli-and-docker/">https://developer.ibm.com/recipes/tutorials/manage-hyperledger-indy-wallet-and-did-through-indy-cli-and-docker/</a> <br>
  <a href="https://myhsts.org/tutorial-learn-how-to-work-with-hyperledger-indy-command-line-interface.php">https://myhsts.org/tutorial-learn-how-to-work-with-hyperledger-indy-command-line-interface.php</a></p>
<p><strong>VI- Hyperledger Iroha Project and Development</strong><br>
  Hyperledger Iroha is a  general-purpose permissioned blockchain system hosted by&nbsp;<strong>The  Linux Foundation</strong>. It was  contributed by Soramitsu, Hitachi, NTT DATA, and Colu.Hyperledger Iroha is  written in C++ and incorporates the BFT consensus algorithm, named&nbsp;<strong>Yet  Another Consensus&nbsp;</strong>(<strong>YAC</strong>). Hyperledger Iroha consists of simple  deployment and fast<strong>&nbsp;</strong>development. It can be used in applications that manage digital assets,  identity, interbank payment, and so on. Follow below link to install Iroha on  Amazon Web Services or AWS:<br>
  <a href="https://myhsts.org/tutorial-learn-how-to-install-blockchain-hyperledger-iroha-on-amazon-web-services.php">https://myhsts.org/tutorial-learn-how-to-install-blockchain-hyperledger-iroha-on-amazon-web-services.php</a><br>
  For the next step, follow  below two tutorials for building your blockchain application using Iroha:<br>
  <a href="https://myhsts.org/tutorial-learn-how-to-work-with-hyperledger-iroha-cli-to-create-cryptocurrency.php">https://myhsts.org/tutorial-learn-how-to-work-with-hyperledger-iroha-cli-to-create-cryptocurrency.php</a> <br>
  <a href="https://developer.ibm.com/recipes/tutorials/configuring-hyperledger-iroha-peer-node-and-network/">https://developer.ibm.com/recipes/tutorials/configuring-hyperledger-iroha-peer-node-and-network/</a></p>
<p><strong>VII- Hyperledger Burrow Project and Development</strong><br>
  Hyperledger Burrow is one  of the Hyperledger projects hosted by The Linux Foundation. Hyperledger Burrow  was originally contributed by&nbsp;Monax&nbsp;and co-sponsored by Intel.  Hyperledger Burrow provides a modular blockchain client with a permissioned  smart contract interpreter partially developed to the specification of the  Ethereum Virtual Machine (EVM). Follow the below recipe to install Burrow on  AWS:<br>
  <a href="https://myhsts.org/tutorial-learn-how-to-install-blockchain-hyperledger-burrow-on-amazon-web-services.php">https://myhsts.org/tutorial-learn-how-to-install-blockchain-hyperledger-burrow-on-amazon-web-services.php</a><br>
  For next steps, follow below tutorials to build your  blockchain application using Hyperledger Burrow: <br>
  <a href="https://developer.ibm.com/recipes/tutorials/deploying-and-calling-ethereum-smart-contracts-on-hyperledger-burrow/">https://developer.ibm.com/recipes/tutorials/deploying-and-calling-ethereum-smart-contracts-on-hyperledger-burrow/</a> <br>
  <a href="https://myhsts.org/tutorial-learn-how-to-build-and-deploy-ethereum-smart-contracts-on-hyperledger-burrow.php">https://myhsts.org/tutorial-learn-how-to-build-and-deploy-ethereum-smart-contracts-on-hyperledger-burrow.php</a></p>
<p>&nbsp;</p>
<p><strong>Summary</strong><br>
  In this article, we reviewed  blockchain Hyperleger project such as its frameworks and tools. We also cover  its 5 development frameworks- Fabric, Iroha, Burrow, Indy and Sawtooth and two  most popular tools- Composer and Explorer. To learn and master blockchain  development, it requires patience and consistent training. Also, Hyperledger  development libraries and resources are updated frequently, so it is good to  check their website and use their latest documentations. </p>
<p>As of this  writing, Hyperledger Foundation offers the following two Hyperledger  certifications: <a href="https://www.hyperledger.org/resources/training/hyperledger-fabric-certification">The Certified Hyperledger Fabric  Administrator</a> (CHFA) and <a href="https://www.hyperledger.org/resources/training/hyperledger-sawtooth-certification">The Certified Hyperledger Sawtooth  Administrator</a> (CHSA), both of which are highly regarded in the industry. Hyperledger Foundation  is in the process of creating Hyperledger Developer certification program,  which may be released in early or middle of 2020. </p>
<p><strong>About Authors</strong><br>
  This article  is written by Matt Zand (Founder of <a href="https://myhsts.org">High School Technology Services</a>, <a href="https://hashflow.us">Hash Flow</a>, and <a href="https://coding-bootcamps.com">Coding Bootcamps</a>) in collaboration with Brian Wu who is an advisor at <a href="https://blockchain.dcwebmakers.com/">DC Web Makers</a>. </p>