Mastering Hyperledger Chaincode Development using GoLang

Design and develop Fabric 2.1 applications from end-to-end using GoLang & Fabric Node SDK
Mastering Hyperledger Chaincode Development using GoLang
File Size :
1.97 GB
Total length :
10h 5m



Rajeev Sakhuja


Last update




Mastering Hyperledger Chaincode Development using GoLang

What you’ll learn

Chaincode development using GoLang
Application Development using Fabric Node SDK
Use of Private Data
Use of Instantiation & Endorsement policies
Building support for Rich Queries & Asset History
Building Programmatic access control with “Client Identity Library”
Testing tools for Chaincode such as Golang Testing framework & MockStub

Mastering Hyperledger Chaincode Development using GoLang


Basic understanding of Hyperledger Fabric | Distributed Ledger Technology
Basic knowledge of GoLang (no need to be an expert)
Have some idea of Docker (but open to refer to documentation)
OK with using the Linux terminal | shell scripts
Comfortable with installation of softwares on machines
Node JS is good to have as course also covers the Fabric SDK for Node
A PC or Mac with decent Internet connection


NOTE: April 2020 – Course updated to Fabric 2.1Developers face many challenges when it comes to  developing Hyperledger Fabric Chaincode.Lack of documentation from developer’s perspectiveNeed to setup the Fabric development environmentNon-availability of development tools | standard practicesNo comprehensive guide on how to productively develop chaincodeThis course is my attempt to address all of these challenges. E.g., Student do not need to spend time on setting up dev environment from scratch – course provides “One Click Launch”E.g., Course provides development utilities that will help developers to focus on learning to codeE.g., Shows step by step how to leverage various Fabric concepts to build working chaincodeE.g., Working chaincode for ALL concepts covered in the courseE.g., Commands to be used for development purposes (wrapped in utility scripts as part of the course)Utility ScriptsUtility scripts are provided to achieve developer productivity;  long commands on command line are difficult to follow & typeStudents may need to go through some of the utility scripts on their ownPLEASE DO NOT JOIN THE COURSE if you do not like to use productivity/development scripts and rather type long command on the terminal prompt :-)PS: This is a Hands on course. Please do NOT join if you do not have experience in codingTake a preview of the lectures. Please do NOT join if you do not understand my accent or lecture pace :-)Course Highlights:Ready to use development environment setup with multiple configurations (project repository available for download)Hyperledger Explorer setup that may be launched by students to get a graphical view of the networkProvides easy to use tools/scripts so that developers can focus on learning Chaincode developmentSections start by going over the concepts. Walk through lectures show the concepts in action with REAL codeEvery section requires the student to do coding (exercises)ALL sections | ALMOST all lectures requires the student to do Hands On activitiesCourse Layout:Setup the development environmentBasics of Fabric platform from development perspectiveStructure of the GoLang ChaincodeUnit | Integration testing of chaincodeDesigning for Private Data | TransactionsSetting up the Endorsement Policies Querying with Rich Query Functions (using CouchDB)Accessing the Asset HistoryImplementing Access | Authorization control using “Client Identity Library”Building Applications using Fabric Node SDKWhat is NOT covered in this course?Basics of Hyperledger FabricFabric Binaries details such as peer, orderer, configtxgen, cryptogen …Fabric certification authority (course mostly uses cryptogen generated crypto)Design & Setup of Multi Org SetupALL of the above have been covered in my other courses. Please check them out.


Section 1: Introduction

Lecture 1 Introduction

Lecture 2 Project Repository Download link + Secret

Section 2: Hyperledger Fabric 2.x Update

Lecture 3 Fabric 2.x Section | Lecture updates

Lecture 4 Hyperledger Fabric 2.x Chaincode Updates (What’s new?)

Section 3: Development Environment Setup

Lecture 5 Dev Machine Requirements & IDE Setup

Lecture 6 Crash course on Virtualization (Vagrant & VirtualBox)

Lecture 7 Download Project Repo & Setup the Dev VM

Lecture 8 Dev Environment Overview & Setup options

Lecture 9 Virtual Box Express Install

Lecture 10 Standard VM Install (1 of 2)

Lecture 11 Standard VM Install (2 of 2)

Section 4: Lets get our hands dirty

Lecture 12 Distributed Ledgers, Transactions, Chaincode & Shim

Lecture 13 Using the Dev Environment utilities

Lecture 14 Hands On: Utility scripts for managing development environment

Lecture 15 Exercise: Using the “dev-” scripts

Lecture 16 Hands On: Setting the environment & executing peer commands

Lecture 17 Hands On: Working with Hyperledger Explorer Tool

Lecture 18 Hands On: Chaincode execution utility

Section 5: Fabric 2.x Chaincode Lifecycle

Lecture 19 Lifecycle- Chaincode Packaging & Installation

Lecture 20 Exercise- Chaincode Packaging & Installation

Lecture 21 Lifecycle – Chaincode Approval & Commitment

Lecture 22 Exercise – Chaincode Approval & Commitment

Lecture 23 Lifecycle – Chaincode Invoke & Query

Lecture 24 Exercise – Chaincode Invoke & Query

Lecture 25 Lifecycle – Chaincode Upgrade

Lecture 26 Exercise – Chaincode Upgrade

Lecture 27 Chaincode Net versus Dev Mode

Section 6: Go Chaincode Interface

Lecture 28 Chaincode Interface implementation & working

Lecture 29 Logging from Chaincode

Lecture 30 Hands On: Chaincode Install | Commit | Logging Walkthrough

Lecture 31 Hands On: Chaincode Interface

Lecture 32 Sending the Success & Error Response

Section 7: Go Chaincode Stub

Lecture 33 Introduction to ChaincodeStub

Lecture 34 Extracting Proposal Information

Lecture 35 Hands On: Using functions for accessing Proposal elements

Lecture 36 Passing Arguments & Invoke Function Implementation

Lecture 37 Hands On: Using Arguments function

Lecture 38 Chaincode State Management

Lecture 39 Hands On: Chaincode State Functions GetState, PutState & DelState

Lecture 40 Exercise: Add the “delete” function to V5 Token implementation

Lecture 41 Invoking Chaincode from another Chaincode

Lecture 42 Hands On: InvokeChaincode function

Lecture 43 Fabric Events & Subscriptions

Lecture 44 Hands On: Event function usage

Section 8: Writing Unit Test Cases for Network Applications

Lecture 45 Fabric Chaincode Testing

Lecture 46 GoLang Testing Framework

Lecture 47 Hands On: Testing the Chaincode using GoLang Test Framework

Lecture 48 Chaincode unit testing with MockStub

Lecture 49 Hands On: Use the MockStub for Testing

Lecture 50 Writing Unit Tests Scripts (Utility)

Lecture 51 Hands On: Unit Testing Scripts

Section 9: Mini Project: Develop the ERC20 Token on Fabric

Lecture 52 ICO & Tokens

Lecture 53 Exercise: Requirement for this project

Lecture 54 Hands-on: Solution walkthrough

Lecture 55 Exercise: Test out the “transfer” events

Section 10: Transaction Flow & Chaincode Endorsement Policies

Lecture 56 Transaction Flow in Fabric

Lecture 57 Consortiums and Trust Authorities

Lecture 58 Endorsement Policies & Expressions

Lecture 59 Chaincode Lifecycle EP in Dev Setup

Lecture 60 Hands On: Chaincode Endorsement Policies

Lecture 61 Exercise: Chaincode Endorsement Policy Expressions

Section 11: Transaction and Data confidentiality

Lecture 62 Transaction & Data Confidentiality

Lecture 63 Private Data Collections

Lecture 64 Flow of Transactions involving Private Data

Lecture 65 Private Data Collection Definition (1 of 2)

Lecture 66 Private Data Collection Definition (2 of 2)

Lecture 67 Hands-On: Setting up the PDC Definition in JSON file

Lecture 68 Hands-On: Private Data Collection in action

Lecture 69 Exercise: Update the PDC Definition

Lecture 70 Chaincode Stub API for Private Data Collections

Lecture 71 Hands-On: Using the PDC Stub API

Lecture 72 Exercise: Extend the PDC Sample Code

Section 12: Executing Range Queries against the State Data

Lecture 73 Querying State Data by Range

Lecture 74 Stub functions for Range Queries

Lecture 75 Hands-on: Get State By Range

Lecture 76 Working with Pagination

Lecture 77 Stub function for Range Query with pagination

Lecture 78 Exercise: Extend for pagination

Lecture 79 Overview of Composite Keys & usage

Lecture 80 Stub functions related to Composite Keys

Lecture 81 Hands-on: Using the Composite Key functions

Section 13: Rich Queries in Fabric

Lecture 82 Understanding the Rich Queries

Lecture 83 Hands-on: Setting the stage for Rich Queries

Lecture 84 Mango Query Language Selectors

Lecture 85 Query Result Fields Skip & Limit

Lecture 86 Stub functions for Rich queries

Lecture 87 Hands-on: Using the Rich query functions

Lecture 88 Exercise: Create Aggregation Function

Lecture 89 Using the CouchDB Indexes

Lecture 90 Hands-on: Working with indexes

Lecture 91 Sorting and indexes

Lecture 92 Exercise: Add a Report Function to sample

Section 14: Getting the history of assets in chaincode

Lecture 93 Managing asset history

Lecture 94 Stub functions & interface for History

Lecture 95 Hands-on: Using the History API

Section 15: Programmatic Access Control: Client Identity Library

Lecture 96 Chaincode Access & Authorization

Lecture 97 Client Identity Library Function Overview

Lecture 98 Hands-On: Test Chaincode Setup with Client Identity

Lecture 99 Hands On: With Client Identity Functions

Lecture 100 Exercise – Trade Approval Chaincode

Section 16: Fabric Node SDK – Application Development

Lecture 101 Fabric Front End Application Patterns

Lecture 102 Fabric Node SDK + Sample code setup

Lecture 103 Approach: Usage Based Learning

Lecture 104 Fabric Network Module (fabric-network)

Lecture 105 Hands-On: Develop a Wallet Utility

Lecture 106 Setting up the Gateway class instance

Lecture 107 Using the Network, Contract & Transaction classes

Lecture 108 Hands On: Use the fabric-network classes for Invoking & Querying ERC20 chaincode

Lecture 109 Exercise : Extend the sample code to submit transaction

Lecture 110 fabric-client : Client class overview

Lecture 111 Hands-On: Client class & Credential Store setup utility

Lecture 112 Using the Peer classe

Lecture 113 Hands-On: Executing Peer Queries

Lecture 114 Overview & Usage of Channel class

Lecture 115 Hands On: Executing channel aware functions to get chain info

Lecture 116 Designing Application for events using ChannelEventHub class

Lecture 117 Hands On: Coding the Block & Chaincode event Handler

Lecture 118 Exercise: Challenge Problem

Hyperledger Fabric Architects | Developers |Operators,Tinkerers and Experimenters interested in gaining Hands-On knowledge of Enterprise grade DLT platform,Blockchain Enthusiast

Course Information:

Udemy | English | 10h 5m | 1.97 GB
Created by: Rajeev Sakhuja

You Can See More Courses in the Developer >> Greetings from

New Courses

Scroll to Top