Blockchain Development on Hyperledger Fabric using Composer
4.5 (2,000 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
8,930 students enrolled

Blockchain Development on Hyperledger Fabric using Composer

Learn to develop Network Applications on Hyperledger Fabric & Composer Technology
4.5 (2,000 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
8,930 students enrolled
Created by Rajeev Sakhuja
Last updated 4/2019
English
English, Portuguese [Auto-generated]
Current price: $27.99 Original price: $39.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 8.5 hours on-demand video
  • 16 articles
  • Full lifetime access
  • Access on mobile and TV
  • Assignments
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Develop Hyperledger Blockchain Applications using Composer Framework
  • Model the Blockchain Applications using Composer modeling language
  • Evaluate if a business application will benefit by adoption of Distributed Ledger Technology
  • Develop front end (Client) applications using Composer API
  • Leverage Composer REST Server to design a web based Blockchain solution
  • Describe the various components of Hyperledger Fabric Technology (Peers, Orderer, MSP, CA ...)
  • Design Hyperledger Fabric Composer Business Network Application (NOT the infrastructure)
Requirements
  • Student should have hands on experience with Javascript *or* Java *or* NodeJS
  • Basic working knowledge of Web Applications (HTTP, REST)
  • Student must be comfortable in learning new design patterns & an architectural paradigm
  • Basic knowledge of concepts of Blockchain
  • A decent computer & internet connection
  • Good to have : Docker, Unix commands, NodeJS
Description

PS: Please READ all the points before proceeding


***Composer - DEPRECATED - it is NO more supported for Fabric updates***
But it is still a GREAT way to learn Fabric Blockchain fundamentals & for carrying out POC. For production grade apps It is suggested that you take a look at my course "Mastering Chaincode Development using GoLang ...."

  1. Please do NOT join the course if you are NOT comfortable with coding

  2. Focus of the course is Composer based application development. Course will NOT teach you how to use ALL the various utilities/tools for hypereldger infrastructure component setup.

  3. Course is NOT for Operators or Infrastructure engineers *but* you are welcome to try as it would help you in building a strong foundational knowledge. Take a look at my other Fabric courses if you are an Operations person.

  4. You MUST have a basic understanding of Blockchain technology. Do take a preview before joining.

  5. This course will NOT teach you Javascript or any Javascript framework to develop UI

  6. You MUST be comfortable in installing software & tools on your machine. Course requires many tools to be installed.

  7. Please read the Pre-Requisites before signing up

  8. Try out the lectures in preview - if you have difficulty understanding the lectures/accent....I request you NOT to join 

If you are still with me lets continue :-)

Background

Demand for Blockchain technologists is going up as multiple enterprises (& startups) are looking to achieve efficiency or/and create new business models enabled by the Blockchain technologies. Bitcoin & Ethereum have proven to the world that Blockchain technologies can change the way we do business. The challenge with these technologies is that they were both built ground up for public domain applications and are not always suitable for building an enterprise grade application. Hyperldger project, a Linux foundation initiative is driven by the industry leaders to build Blockchain technology(s) that would provide a platform for creating Enterprise Blockchain Applications.

Business | Enterprise Blockchain Applications

The obvious question you may have at this point is, what do I mean by "Enterprise Blockchain Applications". The idea is that Blockchain technology for Business (or enterprise) would need to have certain characteristics that do not necessarily apply to the public domain Blockchain technology such as Ethereum. Characteristics that are desired

  • Permissioning, 

  • Network support | operation

  • Smart contract management

  • Control on how transactions are validated

  • Trust management

  • Scaling, Performance, Throughput

  • ...

Hyperledger Fabric | Composer Framework

Hyperledger Fabric is a "Distributed Ledger Technology" a.k.a. Blockchain technology that has been built ground up with the needs of the "Business Blockchain Applications" in mind. Composer is a development framework that accelerates the development of Business Blockchain applications of Fabric platform.

This course will teach you how to develop Fabtric Blockchain Application using Composer. 

Course Approach?

This course takes the approach of “Learn by doing”. Students are encouraged to try out all aspects of the technologies on their own after each lecture. Almost all of the concepts discussed in the lectures are shown in action by way code samples etc. The demo code used in the lectures is available for download from GitHub so that students can change the code to try out new things.

Multiple quizzes in each section will validate student’s knowledge. Coding exercises will help them understand the concepts better & gain confidence.

Course Outline

#1 Build a foundation - covers Blockchain concepts + Hyperledger project-fabric-composer

#2 Introduction to  Hyperledger Fabric & Composer Technology

#3 Setting up the development tools - (Docker, NodeJS, Fabric, Composer tools ...)

#4 Fabric under the hood - student will learn how the Fabric technology works

#5 Learn to use the Composer tools   (Modeling, Yo generators, REST Server, CLI, Playground  ...)

#6 ACME Airline Blockchain Application : We will develop a Network application for this fictitious Airline

  • Business network modelling

  • Smart contracts development

  • Transaction processors - coding in Javascript

  • Client side code - in Javascript

  • Participant management

#7 Composer SDK/API

#8 Transaction flow in Fabric - unravel some of the mysteries :)

How can this course help you?

Many enterprises today are embarking on building Blockhain applications for their business domain. At this time the focus is on trying out the technologies by way of Proof of Concepts | Pilots. This course can put you on track to build the pilots/PoC in a very short period of time (~3 weeks)

Information of Hyperledger frabric (& Composer) is available online and freely.....so why take this course?

  • There are known challenges : The author of this course have gone through the development cycle many times and have taken care of describing the known challenges (& pitfalls) and solutions so, students won't struggle....& spend time on learning rather than searching for solutions on google :)

  • Learning curve is steep : Although information is available it would take new students considerable amount of time to digest & understand. The course has been designed to accelerate the learning process without overwhelming the students with too many details.

  • Coding guides | experience is limited : For every topic discussed in the course, there is a sample code. Seeing things in action and trying out the code will accelerate the learning

  • Time to market : Taking this course will prepare the student for the challenge - delivery of a working Fabric PoC/Pilot in 3 weeks is the goal :)       [Assuming student spends 2 Hour/Day]

Who this course is for:
  • Technologist seeking to expand their knowledge into Blockchain
  • Architects looking to leverage Distributed Ledger Technology for addressing Business Problems | Opportunities
  • Developers interested in learning Blockchain application development
  • Developers willing to learn Blockchain by doing, that is by coding
  • Experimenters curious to learn how Blockchain technology can change the way we do business
  • Entrepreneurs with technology background interested in realizing their business idea on the Blockchain
Course content
Expand all 89 lectures 08:41:23
+ Introduction
4 lectures 20:39

Introduction to the course.

Preview 05:04

This lecture has information about the course + a list of updates. Students are suggested to check this article often.

Preview 02:01

The term "Hyperledger" is used in different contexts......this causes confusion. In this lecture students will learn about Hyperledger project and its relationship with multiple  Hyperledger "Distributed Ledger Technology" initiatives.


Preview 05:50

At the end of this lecture, students should be able to explain (conceptually)

  • What is Distributed Ledger Technology
  • How DLT benefits the businesses
  • Typical realization challenges associated with DLT
Distributed Ledger Technology & its Challenges
07:44
Hyperledger & Distributed Ledger Technology
7 questions
+ Hyperledger Fabric & Composer Concepts
5 lectures 26:32

Students will learn about 4 characteristics desired in a DLT technology geared towards adoption by businesses. By end of this lecture students will have a high level understanding of why Hyperledger Fabric is suitable for building DLT Business applications.

Preview 06:51

Quiz will check student's understanding of the characteristics of "DLT for Business"

Hyperledger Fabric : DLT for Business
6 questions

Covers the Hyperledger Fabric concept of:

  • Assets
  • Chaincode
  • Ledger
Assets, Chaincode & Ledger
02:44

Checks student's understanding of the relationship between assets, chaincode and transactions

Assets, Chaincode and Transactions
4 questions
Permissioned Network, Members & Membership Service Provider
05:10
Permissioned Network, Member & Membership Services
7 questions

In this lecture students will learn 

  • the role of a node in Blockchain technologies. 
  • how Hypreledger fabric nodes are different from the nodes in a public Blockchain network
  • different types of nodes in HL Fabric
  • what is channel & how it is used
Nodes and Channels
06:08

Check student's understanding of concept of Hyperledger Fabric Nodes and Channels

Nodes and Channels
5 questions

Composer Framework provides a set of tools that make it easy for businesses to create Hyperledger Fabric applications. By the end of this lecture students will:

  • understand the benefits of using composer
  • tools offered by composer
Hyperledger Fabric Composer Overview
05:39

This quiz will check student's understanding of the Hyperledger Composer tool set.

Hyperledger Fabric Composer Overview
5 questions
+ Pre-Requisites for Fabric development
5 lectures 18:58

Lecture covers the common installation issues.

Frequently Asked Questions | Common Issues
02:28

Students will need a decent development machine for installing the tools used in this course. They are also expected to code Hyperledger Fabric Applications. This lecture provides information on:

  1. Minimal configuration for the development machine
  2. Machine/Configuration used for the development of the course material
  3. Integrated Development Environment - Visual Studio Code
Development Machine Specifications & IDE
02:15

Walk through of instructions for the installation of the:

  • Pre-Requisites for the composer tools
  • Composer Tools
    • CLI
    • Yo Generator
    • REST Server
Composer Dev Tools Installation
06:13

This exercise is to ensure that the Student's development machine has all the required composer tools installed on their machine.

Exercise: Validate the Composer Development Environment
00:44

The Fabric Runtime is available as Docker container images. Students MUST install appropriate version of Docker on their machine before proceeding any further.

Install Docker or Docker Toolkit
07:17
+ Virtual Machine: Hyperledger Fabric Dev Environment Setup
7 lectures 31:13

Covers some of the common issues with Vagrant based setup.

FAQ: Vagrant Setup
00:20

Students can install Hyperledger dev environment natively or in a virtual machine. This lecture will help the student evaluate the options and make a decision on whether to install Hyperledger on

  • their host machine
  • or in a virtual machine
Preview 04:08

Explains how the setup will work

Virtual Machine based Hyperledger Dev Setup
04:41

In this lecture students will learn how to :

  1. Install VirtualBox Hypervisor
  2. Install Vagrant
  3. Execute the common Vagrant command
Setting up the Virtual Machine using VirtualBox+Vagrant
08:47

In this exercise students will try out some commands to become comfortable with Vagrant

Exercise: Tryout the Vagrant Commands
00:36

Shows the steps students need to follow for the installation of the Hyperledger Tools on VM

Installation of Fabric Tools
05:19

Shows the steps students need to carry out for:

  • Pulling the Docker images for fabric
  • Creating the PeerAdminCard
  • Validating composer tool
  • Connecting from Docker client on host with Docker Daemon on VM
Post Installation Steps
07:22
+ Native: Hyperledger Fabric Dev Environment Setup
6 lectures 33:43

Lecture covers the common installation issues.

Frequently Asked Questions | Common Issues
07:48

To install the Fabric tools on Windows/Mac OS Students will need to install the Curl tool on their development machines. This lecture will provide a walk through of instructions for installing Curl.

The Fabric tools use Bash scripts for starting/stopping the Fabric setup. On windows platform there is no in built support for executing the Bash scripts. Students will use the instructions in this lecture to install Cygwin that would provide the capability of executing Bash scripts on Windows machines

Install CURL and Cygwin (Windows only)
05:05

Students may use the Hyperledger Fabric Tools on Ubuntu. This lectures demonstrates the steps needed for installation of the Fabric tools on Amazon AWS Ubuntu/EC2 instance.

Linux/Ubuntu & AWS: Setup of Fabric Development on Local & Cloud VM
09:35

This lecture will demonstrate the steps that students need to take in order for setting up the fabric development environment on Mac OS.

By end of this lecture it is expected that students will be comfortable in setting up the development environment on their own Mac OS Machine

Mac OS: Setup of Fabric Development Environment
03:00

Walk through of the steps needed for installing Fabric Development environment on a Windows machine.

Using the instructions student should be able to:

  1. Install the Fabric tools
  2. Address known/common problems
Windows : Fabric development environment setup
04:21

In the last section(s) you student's installed a number of tools on their development machines. In this lecture students will get an overview of how the those tools will be used in the rest of this course.

How to use the Dev Tools
03:54
+ Dev Environment Setup overview & Tools usage
3 lectures 10:39

In the last section I have given instructions for setting up the Fabric development environment. It is expected that students have used the instructions to setup their own machines. This lecture gives an overview of the Development environment topology that will be used in the rest of this course.

Preview 05:28

In this lecture students will learn about the scripts that they will use for:

  • Launching the dev environment
  • Stopping the dev environment
  • Suspending & Restarting the dev environment
Development Environment Scripts
04:39

This exercise will familiarize the students with various dev tool scripts.

Exercise: Practice Start, Stop, Suspend, Restart
00:32
+ Fabric Under the Hood (Concepts & Terminology)
8 lectures 42:00

In this lecture students will learn how HL Fabric manages the persistence of transactions and state data for the assets.

Ledger Implementation
09:34

This lecture  provides the walk through of the Peer and CouchDB setup

Dev Environment Walkthrough: Peer & CouchDB setup
04:01

Checks student's understanding of the Ledger implementation

Ledger Implementation
8 questions

In this lecture students will learn 2 new concepts:

  • Anchor Peers
  • Endorsing Peers or Endorsers

Consensus is achieved in Hyperledger fabric DLT by way of the endorsements, so it is important for students to understand how it works.

Preview 05:43

Tests the student's understanding of the concept of Endorsers and Anchor peers

Anchor Peers & Endorsing Peers
5 questions

Clients may be thought of as the front end applications with which participants interact. Client nodes initiate the transactions. The transaction initiated by the client goes through an endorsement process before it becomes part of the Blockchain data.

In this lecture students will get an overview of how the endorsement process work.

Clients Node: Endorsement Policies
05:29
Client Peer & Endorsing Policies
6 questions

Orderer provides the communication backbone to the Hyperledger Fabric Blckchain. On this lecture students will learn about the role of the orderer and its implementation.

Orderer Nodes
03:13

A set of questions that students can use for checking their understanding of the Orderer nodes

Orderer Nodes
6 questions

Hyperledger Fabric is a Permissioned DLT. Membership Service Provider is an abstract component that is responsible for providing the authentication and authorization service. In this lecture students will learn about the:

  • Certiciation authorities
  • Membership service providers
Membership Service Provider & Certification Authority
06:49
Membership Service Provider & Certification Authority
2 questions

Walk through of the setup of the containers for the 

  • Orderer
  • CA Server
Dev Environment Walkthrough: Orderer and CA Server
02:18

Provide a high level view of the chaincode:

  • Structure
  • Workflow
  • Execution Runtime
Chaincode Development
04:53

Checks student's understanding of the chaincode development

Chaincode Development
5 questions
+ Using Composer Tools for Application Development & Administration
11 lectures 01:09:49

This article contains answers to some Frequently Asked Questions

FAQ: Composer Tools
00:43

In this lecture students will get a walkthrough of the online Composer Playground.

Fabric Composer Playground
09:52

Checks student's understanding of the Playground

Composer Playground
4 questions

To assist the developers with coding of Business Network Applications, Composer offers a generator that can generate the scaffolding for 

  • Angular application
  • Business Network Application
  • Model
Yeoman Hyperledger Generators
04:24
Yo Generators
3 questions

Composer tools and front end applications need access to the Business Network Application installed in the Fabric runtime. The configuration and credentials (certificate & keys) are managed by way of cards. In this lecture students will learn about participant roles and network cards.

Participant Roles and Business Network Cards
09:17

Checks students understanding of the roles and network cards

Participant Roles and Business Network Cards
10 questions

Students will be using the Composer Command Line Interface tools for carrying out various development and network application development activities. In this lecture students will learn some of the common commands

Composer CLI Tool - Deploying a Network Application
09:12

This lecture demonstrates the use of the composer CLI command line tool for managing a business network application. Students will see the commands for administration in action as part of the walkthrough.

Preview 05:25
Composer CLI Tool
6 questions

This is a practice exercise to ensure that student is able to use the composer tool commands to carry out development and administration activities.

Exercise: Create & Deploy Network Application
00:25

In this lecture students will learn about the composer rest server tool. REST server front ends the Fabric Runtime to expose the various transactions. Front end or UI application connects to the REST server for invoking the transactions.

Preview 09:36

Checks students understanding of the REST server tool

REST Server Overview
5 questions

In the last students learned about the Composer REST server tool. In this lecture students will learn about certain aspects of REST server that may not be well suited for the application being developed.

REST Server Security
07:11

It is important for the students to understand the security implications of the REST server. This lecture will check students understanding of the security implications of the REST server

REST Server Security
5 questions

Developers of fabric composer toolset suggest an architecture that uses the REST server for connecting to the Business Network Application. This lecture describes the architecture and then walks through the process of generating an Angular skeleton application

Skeleton Angular Application using Yo
09:01

Checks if student understands the:

* Suggested architecture

* How to use the Angular based skeleton app

Skeleton Angular Application using Yo
4 questions

In this lecture students will learn about the various modules available in the composer SDK. They will also learn about the type of interfaces that are available. Intent is not to deep dive but give an idea.

Composer SDKOverview
04:43

Tests students understanding of the SDK modules

Composer SDK Overview
5 questions
+ Business Network Application Modelling
17 lectures 01:54:24

This lecture talks about a fictitious airlines that will be used as a case study throughout this section to model a Business Network Application

Case Study: ACME Airlines
04:00

In this lecture students will learn about the modeling language. Lecture will provide a walk through of how model application is created using the yo hyperledger composer generator. Lecture will cover the concept of Namespaces

Modeling Language Files | Namespace
05:42

Checks student's understanding of "what is composer modeling language" and the structure of the model files

Modeling Language Files | Namespace
5 questions

Lecture covers the following modelling language keywords:

  • asset
  • Identified By
  • enum
  • default
  • optional
Defining the Resources
07:38

Checks students understanding of the concept of Resources

Defining the Resources
8 questions

Lecture describes the support for object orientation & covers the following modelling language keywords:

  • abstract
  • extends
  • concept
Support for Object Orientation
07:19

Tests student's understanding of why modelling language is considered objet oriented.

Support for Object Orientation
7 questions

Modeling language supports arrays. In this lecture, students will learn how to model arrays.

Modeling Arrays
06:39

At the end of this lectures students will be able to explain:

  1. How the asset data is persisted in registries
  2. Concept of Relationship
Preview 11:36

Checks on student's understanding of the arrays, registries and relationship

Arrays, Registries & Relationships
9 questions

Modeling language allows simple validations to be associated with the String & Number fields. Lecture teaches how to setup such field level validations

Adding the field Validations
10:23

Tests student's understanding of the field level validations

Field validations
5 questions

The Acme airline model built till now have an issue...this lecture explains the issue and the solution to the issue. At the end of this lecture, students need to implement the suggested solution.

Resource Registries & Identities +Exercise
04:27

All transactions need to be modeled in composer framework. This lecture explains how how to model, coding of the transaction functions is explained in the section on SDK/API

Modeling the Transactions
10:36

Checks students understanding of modelling of the transactions

Modeling the transactions
10 questions

Exercise to be done by students

Exercise: Fix the code for generating the FlightId
00:36

There are two types of queries that are supported by Composer

  1. Named queries
  2. Dynamic queries

This lecture covers the named queries.

Queries
07:54

This is an exercise that student are expected to do on their own.

Exercise: Add a set of aircraft queries
00:17

In an earlier lecture students learned how the participant types (roles) are defined as part of the business model. In this lecture students will learn how instances of Participant types are associated with the identities created on Fabric.

Managing identities for Network Applications
10:57

Access control can be implemented in Composer framework in 2 ways:

  1. Declarative
  2. Coding

This lecture explains how the declarative control works for simple rules.

Access Control Language (Part 1 of 2) Simple Rules
14:18

An exercise for creating a simple rule.

Exercise: Simple Rule for ACMENetworkAdmin
00:40

In the last lecture students learned about the Access Control Language and how it is used for creating simple rules. In this lecture students will learn about Complex rules.

Access Control Language (Part 2 of 2) Conditional Rules
10:36

Exercise requires students to define a complex rule.

Exercise: Conditional Rule for ACMEPersonnel
00:45
+ Composer SDK / API : Coding the Client Apps
9 lectures 01:06:03

Describes the issues and resolution for some of the common issues

API : Frequently Asked Questions | Common Issues
00:36

In one of the previous lectures students learned about the Cards. In this lecture students will learn the API that can be used for managing the cards.

Business Network Card Management
09:08
Card Storage API
6 questions

Admin connection API is used for establishing a administration connection to the Fabric. Functions available on Admin Connection object are used for managing the Business Network Application. In this lecture student will learn all of the functions available on Admin connection object.

Admin Connection Class
12:09

Client applications connect to the Fabric/BNA by creating the Business Network Connection object. Functions exposed by the business connection is used for multiple types of interactions. In this lecture students will learn how to create an instance of the business network connection and use it for connecting to the BNA. The functions exposed by this business network connection are available in multiple lectures covered in this section.

Business Network Connection Class
06:14
Admin & Business Network Connection Class
9 questions

Students will learn all the Classes needed for submitting a transaction to the Business Network Application.

Preview 08:13

Registries have been covered in details in earlier lectures. In this lectures students will learn about the Registry related classes/API.

Registries
07:42

This lecture covers the Resource Class & how instances of Resource class are created using factory class.

Resources
06:32

In this lecture students will learn how to execute Named queries and Dynamic queries from a client side Blockchain  application.

Querying the Registries
05:33

Checks student's understanding of the client side query API

Querying the Registries
4 questions

Lecture describes the mechanisms for subscribing to the events emitted by business network applications. Students will see the event subscription code in action:

  • Client API
  • Composer REST Server
Subscribing to Events
09:56

Checks students understanding of the events subscription mechanism

Subscribing to Events
4 questions
Coding Exercise that will require student to use the various API(s) discussed in the lectures.
Write a utility to create | delete test data​ for ACME Airline Model
2 questions