Add New Org In Consortium Hyperledger Fabric Network

Chandramohan Jagtap
3 min readMay 20, 2023

--

Hyperledger Fabric

Introduction

In this article, I will demonstrate, how to add an new organization into the existing running fabric network consortium, so that that organization can connect to share the ordering system, Also the organization will be able to create new channel and to joins the existing channels, you separately need to add this organization into that channel configuration block.

Note: Here, I am adding org into consortium, for that we have to add organization into system-channel. (Not a application channel)

Audience

Hyperledger fabric operators, admins. This is a practical hands-on article to add organization into fabric consortium . for the beginner, I would like to advise please go through some basic concepts of Hyperledger fabric. Please visit my previous article, to set up an HLF network.

Note: The article not recommended for a HLF beginners.

Prerequisites

  1. Basic understanding of Hyperledger Fabric Blockchain.
  2. Basic understanding of HLF CA, and CouchDB.
  3. Basic shell commands, Shell Scripting, etc.

System Requirement

  1. Docker — version 17.06.2
  2. Docker Compose — version 1.28.5 or greater
  3. Golang — version 1.14
  4. Nodejs — version 8
  5. Python 2.7

Network Setup

  • HLF network with org1,org2 each with 2 peers.
  • Orderer cluster (3 ordering service nodes) RAFT as consensus algorithm(Orderer, Orderer2, Orderer3)
  • CA for org1,org2, and orderers
  • CouchDB is a world-state database.
  • Fabric latest version 2.3

Folder Structure

  • Let’s clone the repo.
git clone https://github.com/cmjagtap/Hyperledger-Fabric

The following figure shows the directory structure of the cloned repository.

Fabric Blockchain setup

If the fabric network is already running then you can skip this step.

  • Let’s create a fabric network, and execute the following commands.
export PATH=${PWD}/bin:$PATH
sudo service docker start
cd org1
./1_enrollOrg1AdminAndUsers.sh
./2_generateMSPOrg1.sh

cd ../org2
./1_enrollOrg2AdminAndUsers.sh
./2_generateMSPOrg2.sh

cd ../orderer
./1_enrollAdminAndMSP.sh
./2_artifact.sh
  • Hyperledger fabric 2.3 blockchain is ready you should see all containers in running mode.
docker containers
  • Let’s create a fabric network, and execute the following commands.

Fabric Channel creation (mychannel)

To create channel execute below shell scripts, mychannel will be created and peers will join the channel.


cd ../org1
./3_createChannel.sh

cd ../org2
./3_joinChannel.sh

Prepare org3 crypto certificates

Now, here we are creating a new organization docker-compose files, as well as scripts to enroll and register identities.

  • Let’s navigate to org3 directory and execute below two scripts.
cd ../org3
./1_enrollOrg3AdminAndUsers.sh
./2_generateMSPOrg3.sh

Now we have org3 up with CA

  • ca.org3.example.com
  • peer0.org3.example.com
  • peer1.org3.example.com
  • couchdb4
  • couchdb5

Let’s add this organization to consortium.

Navigate to the addOrgConsortium directory and execute the script

Added org to consortium

Basically, this shell script fetches the system-channel block from the blockchain network(ordering service) modifies the block with the new organisation and, adds it to configuration then submits the modified block to the system channel.

We have successfully added the organization to consortium. Now you should be able to create new channels.

Note: Make sure that while creating a new channel configuration or .tx file add the org3 into channel profile.

Note: If you want to join the existing channel then you also need to add this organization to that application channel.

Clean up

  • Execute the following script to clean all docker containers and crypto certificates.
./clean.sh

Summary

  • We have seen how to add a new organization in to running fabric network consortium without disturbing the existing operations.

--

--