We may earn an affiliate commission when you visit our partners.
Course image
Rajeev Sakhuja

NOTE: 

  • April 2020 - Course updated to Fabric 2.1

Developers face many challenges when it comes to  developing Hyperledger Fabric Chaincode.

Read more

NOTE: 

  • April 2020 - Course updated to Fabric 2.1

Developers face many challenges when it comes to  developing Hyperledger Fabric Chaincode.

  • Lack of documentation from developer's perspective

  • Need to setup the Fabric development environment

  • Non-availability of development tools | standard practices

  • No comprehensive guide on how to productively develop chaincode

This 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 code

E.g., Shows step by step how to leverage various Fabric concepts to build working chaincode

E.g., Working chaincode for ALL concepts covered in the course

E.g., Commands to be used for development purposes (wrapped in utility scripts as part of the course)

Utility Scripts

  • Utility scripts are provided to achieve developer productivity;  long commands on command line are difficult to follow & type

  • Students may need to go through some of the utility scripts on their own

PLEASE 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 coding

  • Take 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 network

  • Provides easy to use tools/scripts so that developers can focus on learning Chaincode development

  • Sections start by going over the concepts. Walk through lectures show the concepts in action with REAL code

  • Every section requires the student to do coding (exercises)

  • ALL sections | ALMOST all lectures requires the student to do Hands On activities

Course Layout:

  1. Setup the development environment

  2. Basics of Fabric platform from development perspective

  3. Structure of the GoLang Chaincode

  4. Unit | Integration testing of chaincode

  5. Designing for Private Data | Transactions

  6. Setting up the Endorsement Policies

  7. Querying with Rich Query Functions (using CouchDB)

  8. Accessing the Asset History

  9. Implementing Access | Authorization control using "Client Identity Library"

  10. Building Applications using Fabric Node SDK

What is NOT covered in this course?

  1. Basics of Hyperledger Fabric

  2. Fabric Binaries details such as peer, orderer, configtxgen, cryptogen ...

  3. Fabric certification authority (course mostly uses cryptogen generated crypto)

  4. Design & Setup of Multi Org Setup

ALL of the above have been covered in my other courses. Please check them out.

Enroll now

What's inside

Learning objectives

  • 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

Syllabus

Introduction
  • Tips to get the most value out of this course

  • Course Layout

Link to the project repository

Read more
Lectures in this section will provide an overview of the Fabric 2.x updates

+ Fabric 2.x Updates


Overview of the course updates.

+ Returning students - Fast track to updating knowledge to Fabric 2.0

Students will have a VM setup on which Fabric Dev tools will be installed in next section
  • Minimum requirements for the Dev machine

  • Visual Studio Code Setup

  • Overview of Virtualization

  • Introduction to VirtualBox & Vagrant

  • Setup of the repo (git clone)

  • Walk through of the samples repository

+ Provides an overview of the development workflow

+ Discussion on the options for installation

Students who use the "VirtualBox" hypervisor may use this option to carry out this installation which is very fast and does not require manual installation of the tools.

  • Development environment overview

  • Development workflow

  • Installation of the Fabric Runtime

Installation of the dev tools in VM

  • Go Tools

  • Hyperledger Explorer

  • Node JS + Dev Utilities

Setup the development environment and try it out

Discussion on relationship between:

  • Distributed Ledger Technology

  • Transactions

  • Chaincode

Fabric Chaincode Concepts
  • How the scripts are used?

  • Environment scripts

  • Chain dev scripts

  • Chaincode utility

  • Explorer

Project repository has multiple utility scripts for managing the dev environment. Students will learn to use the dev management scripts

Students to try out the scripts and utilities.

Learn how to use the peer chaincode commands against the dev environment

  • Launching the explorer

  • Using the explorer interface

Students will learn how to use a utility script for executing peer commands

Students will learn the Fabric 2.x Chaincode Lifecycle

+ Chaincode Lifecycle  Overview

+ Lifecycle stage 1 : Package and Install

Hands on with package and install commands

Lifecycle stage for approval & commit of the Chaincode

+ Approveformyorg

+ Commit

Hands on with the commands:

+ approveformyorg

+ install

Execution of the Init, Query & Invoke on a chaincode

Hands on with querying and invocation of the chaincode

Overview of how chaincode is upgraded:

+ Locally

+ Across the network

Hands on exercise for upgrading the chaincode

Overview of peer net versus dev mode

Go Chaincode Interface
  • Chaincode instance registration

  • Functions in the interface


  • Chaincode logging functions

  • Controlling the log levels

Wlakthrough of the cc-logs.sh script

Students will learn about the required functions in the chaincode. After that students will test the chaincode using the dev environment and the utility scripts.

Sending the Success & Error response from Chaincode funtions

Checks students understanding

Go Chaincode Stub
  • Provides an overview of ChaincodeStubInterface

  • Types of functions available on the interface

Goes over the functions available for getting transaction proposal information

  • GetSignedProposal

  • GetTxID

  • GetTxTimestamp

  • GetChannelId

  • GetTransient

Hands On Exercise:

Part 1 :   Use the utility functions for getting info from proposal

Part 2 :   Explore the SignedProposal

Solution walk through

  • How client send arguments to chaincode functions

  • Implementation of the invoke/init functions

Functions for accessing the arguments

  • getArgs

  • getStringArgs

  • getFunctionAndParameters


Checks students knowledge of transaction proposal and arguments

How data is managed in the Fabric Runtime

Learn about the state management functions:

  • GetState()

  • PutState()

  • DelState()

In this exercise students need to use the state management function to delete an asset

Checks students knowledge of State Data Management

Rules for invoking another chain code

Learn the use of InvokeChaincode function

InvokeChaincode

Students will learn about events:

  • Types

  • Flow of events

  • Chaincode event subscription

Demonstrates the use of the SetEvent function on the Stub.

Tests knowledge of the events

Writing Unit Test Cases for Network Applications

General discussion on testing practices

  • Unit tests

  • Integration tests

Unit testing framework for GoLang

Shows how to use the GoLang Testing Framework

Fabric GoLang Unit Testing using the MockStub interface

Demonstrates the use of the MockStub Interface for unit testing the chaincode

Using Bash scripts and Utility scripts for automating testing

Demonstrates how to write testing scripts

Shows the use of various functions that the student has learned in the past section

Introduction to tokens & ERC20 standard

Discusses the project requirements in details

Walk through of the solution design | code

Testing the transfer events

Learn the flow of transactions & use of Endorsement policies

There are 3 phases in the flow:

  • Transaction proposal

  • Broadcast

  • Commit

Transaction flow in Fabric

What are trust authorities? Their role in the Fabric network?

  • Understand the Endorsing Policies

  • Defining the EP Expression

Endorsement Policies

Students will learn how the Dev environment is setup for the Lifecycle Endorsement Policy

Experience the Endorsement Policies

Make changes to the sample to gain better understanding of the Endorsement Policies

Teaches the use of functions for managing Private Data
  • Data confidentiality

  • Options for achieving it on Fabric

Private Data Collections

Private Data Collection

How endorsement process works when there is Private data in the proposal

Transaction flow for PDC

Defining the Collection in JSON

PDC Definition change in Fabric 2.0

Putting together the PDC JSON file

Experience the setup of PDC with chaincode

Practice exercise + walkthrough

  • GetPrivateData()

  • PuPrivateData()

  • DelPrivateData()

Walk through of the code - using the Stub API for private data

Extend the sample code to better understand the private data collections

Chaincode can query state data in multiple ways. This section shows how Range query API are used.
  • Indexing on key

  • Key range specifications

  • GetStateByRange()

  • GetPrivateDataByRange()

Learn the use of GetStateByRange() functions

Range Queries
  • Why pagination is needed

  • How pagination is supported

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Develops GoLang chaincode and other crucial skills for Fabric development
Covers most of the Fabric 2.0 Lifecycle stages and technicalities
Provides a hands-on approach with practical exercises and examples
Taught by a subject-matter expert with hands-on industry experience
Requires students to have foundational knowledge in coding and Fabric
May require learners to have access to specific software and tools

Save this course

Save Mastering Hyperledger Chaincode Development using GoLang to your list so you can find it easily later:
Save

Reviews summary

Mastering hyperledger chaincode development golang

Students learning how to develop chaincode for Hyperledger Fabric are likely to be highly satisfied with this course. The course provides a comprehensive overview of the necessary concepts, with hands-on activities and a pre-configured development environment that simplifies the learning process.
Pre-configured development environment
"Ready to use development environment setup with multiple configurations..."
Clear, easy to understand
Comprehensive, easy to follow
"The course provides a comprehensive guide on how to productively develop chaincode..."
Hands-on activities
"Every section requires the student to do coding (exercises)..."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Mastering Hyperledger Chaincode Development using GoLang with these activities:
Organize course materials and notes
Keep course materials organized to facilitate effective review and retention.
Browse courses on Note-Taking
Show steps
  • Create a system for organizing notes, assignments, and quizzes
  • Review and summarize materials regularly
  • Highlight key concepts and ideas
Review Node.js Basics
Ensure foundational understanding of Node.js concepts for effective Fabric development.
Browse courses on Node.js
Show steps
  • Revisit key concepts of Node.js, such as modules, event-driven architecture, and asynchronous programming.
  • Practice writing basic Node.js scripts to reinforce your understanding.
Solve coding challenges on LeetCode or similar platforms
Sharpen problem-solving and coding skills through practice.
Browse courses on Programming
Show steps
  • Select coding challenges relevant to Hyperledger Fabric development
  • Solve the challenges using GoLang
  • Review solutions and learn from mistakes
16 other activities
Expand to see all activities and additional details
Show all 19 activities
Review blockchain concepts
This activity will help you refresh your knowledge of blockchain concepts and prepare you for the course.
Browse courses on Blockchain Fundamentals
Show steps
  • Read the Hyperledger Fabric documentation on the following topics:
  • Watch videos on YouTube or Coursera about blockchain
Join a study group or online forum
This activity will help you connect with other students and learn from their experiences.
Browse courses on Hyperledger Fabric
Show steps
  • Find a study group or online forum
  • Introduce yourself and ask questions
  • Participate in discussions
Review basics of Golang programming
Ensure foundational understanding of the GoLang programming language syntax and principles.
Browse courses on Golang
Show steps
  • Review online tutorials on GoLang basics
  • Practice writing simple GoLang programs
  • Install Go toolset and set up a development environment
Follow tutorials on Hyperledger Fabric
This activity will help you learn more about Hyperledger Fabric and chaincode development.
Browse courses on Hyperledger Fabric
Show steps
  • Find tutorials on Hyperledger Fabric
  • Follow the tutorials to learn about the different features of Hyperledger Fabric
Watch Hyperledger Fabric Tutorials
Provide a solid foundation in Hyperledger Fabric concepts and tools.
Show steps
  • Identify reputable sources for Hyperledger Fabric tutorials.
  • Create a dedicated notebook for taking notes and recording key concepts.
  • Actively follow the tutorials, taking notes and experimenting with code examples.
Follow Hyperledger Fabric tutorials
Gain hands-on experience with Hyperledger Fabric through guided tutorials.
Browse courses on Hyperledger Fabric
Show steps
  • Set up a Hyperledger Fabric development environment
  • Follow tutorials on creating and deploying a basic blockchain network
  • Experiment with different Hyperledger Fabric features
Join a Fabric Development Community
Facilitate knowledge sharing and provide opportunities for collaboration.
Show steps
  • Identify online forums or communities focused on Fabric development.
  • Actively engage in discussions, asking questions and sharing insights.
  • Contribute to the community by answering questions and assisting other members.
Practice writing chaincode
This activity will help you practice writing chaincode and become more comfortable with the development process.
Show steps
  • Set up a development environment
  • Follow the tutorials in the course to write a simple chaincode
  • Experiment with different chaincode functions
Solve Fabric Code Challenges
Enhance understanding of Fabric chaincode development and identify areas for improvement.
Show steps
  • Set up a development environment for Fabric.
  • Access online platforms or repositories for Fabric code challenges.
  • Select code challenges aligned with your skill level.
  • Solve the challenges, implementing the necessary logic and addressing functional requirements.
  • Review solutions and identify potential optimizations to your approach.
Attend Hyperledger Fabric workshops
Gain insights from experts and network with peers at Hyperledger Fabric workshops.
Browse courses on Hyperledger Fabric
Show steps
  • Research and identify relevant workshops
  • Register for and attend workshops
  • Actively participate in discussions and demonstrations
Build a simple Hyperledger Fabric application
Apply knowledge of Hyperledger Fabric and GoLang to develop a functional blockchain application.
Browse courses on Hyperledger Fabric
Show steps
  • Design the application architecture and data model
  • Write the chaincode using GoLang
  • Deploy and test the application on a Hyperledger Fabric network
  • Document the application and its functionality
Build a Fabric Proof of Concept
Demonstrate practical application of Fabric concepts and gain valuable hands-on experience.
Show steps
  • Define the scope and objectives of the proof of concept.
  • Design the Fabric network architecture and define chaincode logic.
  • Develop the necessary chaincode and deploy it to the network.
  • Test and validate the proof of concept, ensuring functional and non-functional requirements are met.
  • Document the process and findings in a comprehensive report.
Contribute to Fabric Open Source Projects
Provide practical experience in Fabric development and contribute to the community.
Show steps
  • Identify Fabric open source projects that align with your interests.
  • Review the project documentation and familiarize yourself with the codebase.
  • Propose changes or enhancements, following the project's contribution guidelines.
  • Work with project maintainers to refine your contributions and ensure they meet quality standards.
Build a simple blockchain application
This activity will help you apply your knowledge of chaincode development to build a real-world application.
Browse courses on Application Development
Show steps
  • Design the application
  • Write the chaincode
  • Deploy the application
  • Test the application
Start a blockchain project
This activity will help you apply your knowledge of Hyperledger Fabric to a real-world project.
Browse courses on Blockchain Development
Show steps
  • Come up with a project idea
  • Write a project proposal
  • Find a team to work with
  • Build the project
  • Deploy the project
Mentor junior developers in Hyperledger Fabric
Share knowledge and experience by mentoring junior developers in Hyperledger Fabric.
Browse courses on Hyperledger Fabric
Show steps
  • Identify opportunities to mentor junior developers
  • Provide guidance and support on Hyperledger Fabric concepts
  • Review and provide feedback on their work
  • Encourage their growth and development

Career center

Learners who complete Mastering Hyperledger Chaincode Development using GoLang will develop knowledge and skills that may be useful to these careers:
Blockchain Developer
In the role of Blockchain Developer, you will gain the skills necessary to not only build and deploy smart contracts, but also to create and maintain blockchain networks. This course may be useful to you as you learn the Hyperledger Chaincode Development language of GoLang. Such skills are in high demand. The curriculum covers security features such as private data and endorsement policies, increasing the value of your skill set in the eyes of potential employers. If you want to learn Hyperledger Chaincode Development, this course may help you reach your goal.
Software Engineer
Software Engineers are in high demand because of their expertise in designing, developing, testing, and maintaining software systems. If you want to become a Software Engineer, this course provides an excellent foundation. Specifically, the section on designing for private data and transactions will prepare you to work on blockchain-based systems.
Full-Stack Developer
Full Stack Developers are responsible for the entire software development process, from design and development to deployment and maintenance, and are highly valued for their well-rounded skill set. This course can help you become a Full Stack Developer by teaching you about Hyperledger Chaincode Development in GoLang. Mastering Hyperledger Chaincode Development with GoLang is a valuable skill that will help you attain employment in this competitive field.
Systems Analyst
As a Systems Analyst, you would be responsible for studying existing systems to determine their strengths and weaknesses and then designing, developing, and testing new or enhanced systems. This course can help you to understand how to build and deploy blockchain-based systems. Mastery of the Hyperledger Chaincode Development language of GoLang is important for a Systems Analyst, as it allows you to interact with and modify blockchain systems.
Database Administrator
Database Administrators are responsible for the installation, configuration, maintenance, and performance of database systems, including blockchain databases. This course provides a strong foundation in Hyperledger Chaincode Development in GoLang, a valuable skill for a Database Administrator. You will learn how to design and implement blockchain-based database systems to suit specific business needs.
IT Architect
IT Architects design, plan, and implement IT solutions for organizations. This course provides a strong foundation in Hyperledger Chaincode Development in GoLang, a valuable skill for an IT Architect. By mastering this material, you will be able to help organizations design and implement blockchain-based solutions.
Blockchain Engineer
As a Blockchain Engineer, you will be responsible for developing and maintaining blockchain-based systems. This course provides the skills necessary to build and deploy blockchain-based systems using the Hyperledger Chaincode Development language of GoLang. You will learn how to design, develop, and test blockchain-based applications, making you a valuable asset for any organization.
Security Engineer
Security Engineers are responsible for designing, implementing, and maintaining security measures to protect an organization's information systems. This course may be useful for you as you will learn how to develop secure blockchain-based applications using GoLang. This skill is in high demand as organizations seek to protect their blockchain-based systems from attack.
Cloud Engineer
Cloud Engineers design, build, and maintain cloud-based systems and are responsible for ensuring the reliability, scalability, and security of these systems. This course may be useful as you learn how to develop and deploy blockchain-based systems on the cloud using GoLang. This skill is in demand as organizations increasingly move their blockchain systems to the cloud.
Data Analyst
Data Analysts collect, clean, and analyze data to help organizations make informed decisions. This course may be helpful in this field as you will learn how to use GoLang to develop applications that can collect, clean, and analyze data from blockchain-based systems.
Data Scientist
Data Scientists use their knowledge of statistics, programming, and machine learning to solve business problems. This course may be useful to you as you will learn how to use GoLang to develop applications that can use machine learning to analyze data from blockchain-based systems.
Machine Learning Engineer
Machine Learning Engineers design, develop, and maintain machine learning models. This course may be useful to you as you will learn how to use GoLang to develop applications that can use machine learning to analyze data from blockchain-based systems.
Research Scientist
Research Scientists conduct research in various scientific fields, including computer science. This course may be useful as you will learn how to use GoLang to develop applications that can analyze data from blockchain-based systems, a growing area of research.
Software Architect
Software Architects design and develop software systems. This course may be useful as you will learn how to use GoLang to develop blockchain-based systems, a rapidly growing area of software development.
Web Developer
Web Developers design and develop websites and web applications. This course may be useful as you will learn how to use GoLang to develop blockchain-based applications that can be accessed through the web.

Reading list

We've selected six books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Mastering Hyperledger Chaincode Development using GoLang.
Provides a comprehensive overview of blockchain technology, including its history, architecture, and applications. It good resource for students and professionals who want to learn more about blockchain.
Provides a comprehensive overview of blockchain technology that can benefit both beginners and advanced readers.
Simplifies the complex concepts of blockchain, making them easy to understand for non-technical people.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Mastering Hyperledger Chaincode Development using GoLang.
Building Blockchains with Hyperledger
Most relevant
The Complete Blockchain Professional Course
Unreal Engine 5: Blueprint Scripting 101
Microsoft Fabric: First Look
Introduction to Hyperledger Blockchain Technologies
Hyperledger Besu Essentials: Creating a Private...
Setup XAMPP run a local server web development
Business Implementation and Security
Oracle Database Data Guard Administration (12c and 19c)
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser