In this course you learn how to develop blockchain applications in Hyperledger Fabric version 2. This self-paced course will prepare you for Certified Hyperledger Fabric Developer certification exam.


Coding Bootcamps School is an authorized training provider for The Linux Foundation.


Blockchain technology is disrupting many traditional businesses. Blockchain technology has moved beyond the hype and there exist hundreds of networks in production today. Many of the production blockchain solutions in production today are built with Hyperledger Fabric.

From the very beginning, Hyperledger Fabric was designed for enterprise use. Hyperledger Fabric is an enterprise-grade, distributed ledger platform that offers modularity and versatility for a broad set of industry use cases. The modular architecture for Hyperledger Fabric accommodates the diversity of enterprise use cases through plug and play components, such as consensus, privacy and membership services. Hyperledger comes with many projects and tools. The most popular project is Hyperledger Fabric that uses chaincode for writing and deploying Blockchain Smart Contracts. 


Behind every great open source technology, sits a strong community. The Hyperledger Fabric community has continuously improved the security, usability, robustness, performance and feature set — all qualities that are of critical importance to enterprise users. To date, there are no other distributed ledger technology frameworks that enjoy the breadth of adoption by Cloud Service Providers such as AWS, Azure, IBM, Google, and Oracle.


Below are some of the key features of Hyperledger Fabric and what differentiates it from other distributed ledger technologies.

  • Permissioned architecture
  • Highly modular
  • Pluggable consensus
  • Open smart contract model — flexibility to implement any desired solution model (account model, UTXO model, structured data, unstructured data, etc)
  • Low latency of finality/confirmation
  • Flexible approach to data privacy : data isolation using ‘channels’, or share private data on a need to-know basis using private data ‘collections’
  • Multi-language smart contract support: Go, Java, JavaScript
  • Support for EVM and Solidity
  • Designed for continuous operations, including rolling upgrades and asymmetric version sup-port
  • Governance and versioning of smart contracts
  • Flexible endorsement model for achieving consensus across required organizations
  • Queryable data (key-based queries and JSON queries)




Learning Objectives

By the end of this self-paced, hands-on, online course, you’ll understand:

  • Hyperledger family and ecosystem
  • Hyperledger development environment
  • Blockchain development with Hyperledger Fabric V2
  • Using Hyperledger to write chaincodes or Smart Contracts
  • Maintaining and testing smart contracts in Hyperledger Fabric
  • Creating and managing wallets in Hyperledger Fabric for identity management
  • Running and testing Hyperledger applications 
  • Basic understanding of Blockchain Use Cases in business


And you’ll be able to:

  • Build Decentralized Applications with Hyperledger Fabric
  • Build and deploy chaincode in Hyperledger Fabric
  • Run Unit Test on Hyperledger Fabric applications
  • Update Hyperledger Smart Contracts


This training is for you because...

  • You know about Blockchain technology and want to learn about Hyperledger by writing chaincode
  • You want to become a subject matter expert in Hyperledger and/or Smart Contracts.
  • You work in a field where Blockchain offers opportunities and Hyperledger has business potential.
  • You want to build your own Hyperledger Blockchain application
  • You are an aspiring blockchain developer that would like to validate your knowledge with the industry-leading blockchain platform like Hyperleder
  • You like to take Certified Hyperledger Fabric Developer certification exam.





Topics and Subtopics

Here is the list of topics and subtopics covered in this course.

1- Overview of Blockchain Technology

  • Introduction to Blockchain
  • What is Blockchain
  • Types of network
  • Public network
  • Permissioned network
  • Private network
  • Blockchain Components
  • Consensus
  • Provenance
  • Immutability
  • Finality
  • Blockchain Use Cases
  • Blockchain Examples

2- Anatomy of Blockchain

  • How Blockchain Works
  • Blockchain Structure
  • Block
  • Hash
  • Blockchain
  • Distributed
  • Blockchain Lifecycle
  • Smart Contract
  • Consensus Algorithm
  • Proof of Work
  • Proof of Stake
  • Practical Byzantine
  • Fault Tolerance
  • Players in Blockchain
  • Developers
  • System administrators
  • Regulators
  • End users
  • Membership service provider
  •  Blockchain in Action



3- Hyperledger Blockchain Ecosystem

In this section, we review Hyperledger ecosystem and projects for building blockchain applications. This section describes the organization of the Hyperledger Foundation, its history, and leadership. In addition, we provide an introduction to the open source projects in the portfolio.

  • An introduction to the Hyperledger family begins with a description of the foundation, organization, and leadership. We then describe each project in the foundation which are divided into groups: Distributed Ledgers, Libraries, Tools, and Domain-Specific projects..
  • The framework projects describe: Besu, Burrow, Fabric, Indy, IROHA, and Sawtooth. 
  • The Libraries projects describe: Aries, Quilt, Transact, and Ursa
  • The Tools projects describe: Avalon, Caliper, Cello, and Explorer
  • The Domain-Specific projects describe: Grid
  • Building the Hyperledger framework layers describes the structure of the projects and how they are intended to complement, leverage, and work together.
  • The Hyperledger design philosophy at a glance is a brief discussion on the general design approach and methodology used to select and develop projects within the ecosystem.
  • Framework architecture overview describes at a high-level the layers and components required for implementing blockchain technology.
  • The consensus layer describes and covers the various algorithms used to implement consensus within a blockchain. Fabric and Sawtooth will be used as examples. 
  • Smart contracts are programs used to execute the specific application logic for a blockchain. We will describe the different designs and methods for implementing smart contracts in Hyperledger comparing Fabric with Sawtooth.
  • Databases are used for the immutable ledger and for storing state data. We will describe the different options available for Fabric.
  • Peer networking is a primary component of any blockchain, so we provide a brief description of the network architecture used to create a Fabric blockchain.
  • Quiz

 

4- Components and Architecture of Hyperledger Fabric

In this section, we will review the architecture of Hyperledger Fabric as well as installation requirements for building blockchain applications using Hyperledger Fabric. 

  • Hyperledger Architecture
  • Peer --we describe the peer which is a node and can be a virtual machine or physical machine. It performs the processing. 
  • Ordering service -- is described which is responsible for ensuring the timestamped transactions are in chronological order. Nodes use this service prior to committing transactions.
  • Fabric CA (Credential Authority) is responsible for validating and maintaining the certificates used for cryptography functions. We will provide a description of this component.
  • Fabric ledger is the database for storing the transaction results and is divided into two components which we will describe: the immutable ledger and world state. 
  • Channel is a primary data communications design for connection nodes into secure networks capable of executing transactions for smart contracts and protecting data. We will describe how channels operate and their design.
  • Organization is the basic entity within a Fabric network and is used for creating identities for executing various functions including transactions, security, smart contracts, and more. We will describe the organization and how they are used.
  • Endorsement policy is a Fabric design pattern for securely executing transactions. It is a function carried out by nodes. We will describe this function and the workflow it operated under. 
  • Membership services provider (MSP) is the user store for maintaining and granting rights to identites to carry out functions and transactions in a Fabric blockchain. We will describe the MSP and how it is utilized in Fabric.
  • Fabric Installation Requirements -- Fabric has several requirements that must be implemented in order to establish a proper functioning Fabric blockchain. We will go over what these are and describe each one. 
  • Quiz

 


5- Install and Configure Network

In this section, you learn how to build and manage a blockchain network on Hyperledger Fabric. Building a Fabric blockchain involves installing several software components onto one or more nodes. The most popular method uses Docker containers. Managing the network required managing the nodes and the configuration of those nodes. Will we discuss each of the methods, so you can learn how to build your own nodes, or use the project’s provided Docker images and containers to bring up a Fabric blockchain network. We will also discuss how you manage the nodes to add or remove, start and stop, and configure nodes. 

  • Modify the world state database configuration -- the world state represents the current values recorded in the blockchain ledger. We will discuss the different databases available, their use, and management.
  • Define initial multi-org configuration policy -- a typical Fabric blockchain contains more than one organization, each collaborating to carry out a goal. How organizations are added and removed will be discussed as well as how each is configured to collaborate with other organizations part of the blockchain.
  • Configure Ordering service (Kafka) -- this topic will discuss configuring Kafka an open source pub sub platform used by many for streaming applications. We will discuss why and how Fabric uses Kafka and configures Kafka for performing the Ordering function used to ensure transaction integrity.
  • Configure Hyperledger Fabric containers -- Fabric is compatible with Docker images and Cloud Native container standards for packaging and deploying Fabric blockchain into virtual environments. We will discuss the images used and how to use those images to create containers and deploy them to various cloud or on-premises computing environments. 
  • Define network config options (block creation options, etc) -- a Fabric blockchain has several nodes that together form a network. The nodes are each configured for specific functions and work together to form a cohesive blockchain network capable of executing a variety of different smart contracts for the organizations collaborating on the blockchain network. There are many configuration settings that allow the network to function securely and correctly. We will discuss these configurations, purpose, and how to create and manage them.
  • Enable TLS for communication -- the nodes in the Fabric must communicate in a secure manner. TLS an HTTP standard is used to provide secure communications between nodes. TLS requires certificates to operate. We will discuss how to create, deploy, and manage the certificates to establish secure TLS connections between nodes.
  • Generate genesis block -- every blockchain begins with the first block and it is typically called the genesis block. In Fabric this block has a special significance, because it contains configuration and meta data that is used to allow the correct operation of the blockchain. We will discuss how a genesis block is created and what data is in the block and the data’s purpose. 
  • Configure service discovery node (e.g. peer and orderer addresses) -- when nodes are added and started they must find other nodes on the blockchain and connect to them. We will discuss how this happens and what is required to ensure nodes can be added and removed without compromising the integrity of the blockchain network. 

 

6- Smart Contract Development

In this section, we will build a blockchain application using Hyperledger Fabric. In doing so, we show you how to develop chaincode or smart contracts and how to deploy them in a blockchain application. We begin with a quick overview of the chaincode development process and then cover creating chaincode in different languages, compiling or building the chaincode in a deployable package. Then we deploy and test the chaincode followed by modifying the chaincode and testing the changes. This will provide you with the knowledge to execute and manage the full lifecycle of chaincode development.

 

  • Define smart contract class/construct -- a smart contract is chaincode in Fabric. There is a defined structure for implementing chaincode. We will discuss and examine this to understand what the code for a smart contract looks like and requires.
  • Define transaction functions -- the purpose of smart contracts is to perform transactions. These transactions are logical functions that operate on data that gets committed to the ledger. We will discuss what a transaction is, how they execute, and how to create them.
  • Validate and sanitize inputs and arguments -- inputs to smart contracts are data in the blockchain get updated and these inputs become arguments to transactions and functions that operate on data and get committed to the blockchain. We will cover the different types of inputs and arguments and how they are validated by nodes to maintain data integrity in the blockchain ledger.
  • Implement deterministic logic/code -- blockchain smart contracts execute logic that is deterministic which ensure data integrity and proper execution of smart contracts. We will discuss and illustrate how this happens in the smart contract and executed by the chaincode engine.
  • Simple state interaction (Get, Put, Delete) -- the ledger is a name value database and is updated with a few simple commands to add data. The changing of the data is executed by commands that update the current state while the previous state remains. This creates an immutable ledger of data changes over time. We will discuss the command that performs this feature and function.
  • Execute simple queries -- the immutable data stored on the ledger cannot be accessed by simple means, but the state database contains the current world state and is easily accessed. We will discuss how to access and query the world state which allows users to see the current state of the ledger database.
  • Create complex queries -- when using the right database you can execute complex queries against the world state. We will discuss which databases support complex queries and how to execute them.
  • Define assets using key value pairs -- assets are represented by NoSQL name value pairs and stored on the ledger and available via the world state database. We will discuss what are assets in Fabric and how you create, change, and manage their state.
  • Identify potentially private data -- there are times when organizations need to share private data with only a select group of organizations. Fabric incorporated facilities for configuring and executing the secure sharing of private data while protecting it from being viewed by unauthorized organizations. We will discuss what private data is and how to implement private data sharing.
  • Incorporate private data collection -- private data collections can be used in Fabric blockchains and we will discuss what they are and how to use them to share private data collections among authorized organizations. 
  • Implement attribute based access control -- security is critical in a Fabric blockchain and identities are defined for submitting transactions. The authorization is controlled by attributes assigned to identities. We will discuss these attributes and how they are assigned and enforced.
  • Initialization of the ledger state -- each Fabric blockchain must be initialized. We will discuss how to create and initialize a ledger. 
  • Install and instantiate a smart contract -- transactions are executed by smart contracts which are implemented in chaincode. We will discuss how to create, install, and instantiate smart contracts in a Fabric blockchain.
  • Exercise -- the best way to demonstrate new knowledge is through an exercise, which employs the new knowledge. We will perform an exercise, which will help solidify your new knowledge. 
  • Quiz


7- Smart contracts Invocation

In this section, you will learn how to invoke and manage smart contracts in Hyperledger Fabric.

  • Invoke smart contracts via CLI
  • Submit one or more transactions
  • Evaluate transaction functions e.g. for queries
  • Query transaction history
  • Call a transaction using transaction class (stateful)
  • Create and issue an application contract
  • Register and handle channel-based events


8- Maintenance and Testing

In this section, we will show you how to maintain Hyperledger applications and run unit test.

  • Handle error and success responses
  • Identify and review logs
  • Unit test contracts
  • Diagnose and endorse policy conflicts
  • Identify and correct non-determinism in functions
  • Troubleshoot transaction flow


9- Identity Management

In this section, you learn how create and manage wallets with Hyperledger Fabric.

  • Instantiate a wallet
  • Import identities to a wallet
  • Select and manage identity from a wallet


10- Extra Hyperledger Fabric Lab

  • Starting the Network
  • Introduction
  • Lab Work
  • Task 1 - Generate the crypto material for the various participants.
  • Task 2 - Generate the genesis block for the Orderer node and start ordering service (solo node).
  • Task 3 - Generated the configuration transaction block to create a new channel.
  • Task 4 - Sign the configuration block and create the new channel.
  • Task 5 - Make peers of all the organizations join the channel that we created in Task 4



Requirements


  • Basic knowledge of Linux commands and good knowledge of Node.JS is required.
  •  Basic understanding of programming. You should understand how programs are created, basic programming logic, how text editors and use of an IDE (Integrated Development Environment) are used to create software code, the use of command line tools used to compile and package programs so they are able to be deployed for execution.
  • Basic understanding of Java, Python, JavaScript, GO, which are the languages used to create blockchain applications. A high level understanding of one or more will help you follow the development flow and understand the simple design patterns, logic, and operation of blockchain programs.
  • Basic understanding of using Blockchain as covered in our Intro to Blockchain course. You should understand the primary components databases, peer-to-peer networking, consensus, basic cryptography like encryption, signatures, and hashing, and how these components work together to form a blockchain and perform the operations of processing and committing transactions onto an immutable ledger.
  • It is highly recommended to take our Blockchain Management in Hyperledger for System Admins course prior to taking this class.






Related Courses






Complete Training Bundle

If you are serious about becoming a pro blockchain specialist, you should enroll in our Complete Blockchain Development Training. This bundle covers all essential and practical topics related to blockchain design and development. For $290 monthly subscription, you can have access to 300+ hours of hands-on project-based training covering all courses related to blockchain technology like Hyperledger, Ethereum, Solidity, Blockchain Security, Corda R3 and more. Click here to learn more.





What Is Next?

After finishing this course, you can enroll in any of following classes:




Recommended Free Courses

If you are new to the IT or programming, we suggest the following free courses:


Select a pricing plan and sign up

$190

Paid Course

2 payments of $119/m

Paid Course

4 payments of $69/m

Paid Course