practical implementation video link
This repository contains scripts to spawn the dynamic hyperledger fabric network in multi host environment on local as well as cloud (AWS. AZURE etc.). Explain with the help of an usecase BANKCONSORTIUMBCNET.
In This Blockchain Network UseCase :-
-
Initially there were 3 orgs (banks) sbi,hdfc,icici having 1, 2, and 4 peers respectively. There were 3 channels first chsbihdfc (in which initially sbi and hdfc are present), second chhdfcicici (in which initially hdfc and icici are present) and third chicicisbi (in which initially icici and sbi are present) using firstnetwork.sh and configtx-file-gen.sh scripts.
-
Then I had UP the initial blockchain network which consists of 3 ORGs, 5 PEERS, 3 CAs, 3 CHANNELS using firstnetworkup.sh script.
-
After this I used the scripts to join peers using joinchannel.sh script.
-
Added new peer to exsisting org using addnewpeer.sh script.
-
Created the new org pnb (bank) to exsisting blockchain network with 2 peers using newOrgAddtion.sh script.
-
Created new channel createChannel.sh script.
-
Adding org to channel in which it is not present using addOrgToChannel.sh script.
Note:- I also wrote scripts which spawn dynamic hyperledger fabric network in multi host environment on local as well as cloud (AWS, AZURE etc). (with install and instantiate chaincode also) **(productionized, kubernetes cluster, flaut tolerance, kafka, zookeeper, multi orderer)**
. To get help regarding this please contact me on mail: [email protected]
- Hyperledger Fabric(v1.4) (Kafka, Zookeeper)
- Golang and Nodejs (Chaincode)
- Kubernetes
- Docker & Container
- Shell Scripting
- Python
- NFS (sharing common files between kube slaves)
- Ubuntu, Docker, Golang, Python.
- Download hypeledger fabric binaries like cryptogen, configtxgen etc. basic bin folder of fabric-samples outside the this repo (after clonning).
- Download Chaincode folder just outside this repo (after clonning).
- NFS (/tmp/nfsshare/) (common sharing folder between the kube slaves node for keys, chaincodes, etc. )
- artifact-Files:- contains artifact files like ( crypto-config.yaml, configtx.yaml etc.)
- chaincode:- contains chaincodes.
- configMaps-Files:- contains configMaps files.
- deployment-Files:- contains deployments files
- subfolders of orgs
- job-Files:- contains jobs files
- addorgtochannel
- channelcreation
- instantiatecc
- joinchannel
- namespace-Files
- networkStructureJson-Files
- persistentvolume-Files
- port-Files
- service-Files
- status-files
These files are not present in this repository
######### file for creating all files required for firstTime Blockchain network #########
function:- This file creates the first time network of blockchain and simultaneously generate various important files and folders required for blockchain network creation and also define constants. And few of them defined below:-
i) NAMESPACE and Persistent Volumes Files:- network-Namespace.yaml create-claim-Volume.yaml
ii) CONFIGMAP Files:- ftnw-zookeeperconfigmap.yaml ftnw-kafkaconfigmap.yaml ftnw-ordererconfigmap.yaml ftnw-peerbaseconfigmap.yaml
iii) DEPLOYMENT Files:- ftnw-zookeeper-Deployment.yaml ftnw-kafka-Deployment.yaml ftnw-orderer-Deployment.yaml ftnw-peers-Deployment.yaml ftnw-cas-Deployment.yaml
iv) SERVICE Files:- ftnw-zookeeper-Service.yaml ftnw-kafka-Service.yaml ftnw-orderer-Service.yaml ftnw-peers-Service.yaml ftnw-cas-Service.yaml
v) JOBS Files:- ftnw-generateArtifacts-Job.yaml ftnw-copyArtifacts-Job.yaml
vi) ARTIFACTS Files:- crypto-config.yaml configtx.yaml
vii) SCRIPTS Files:- joinchannel.sh addnewpeer.sh newOrgAddtion.sh
viii) PORT Files:- nodeportca.txt nodeportcouchdb.txt nodeportkafka.txt nodeportzookeeper.txt nodeportorderer.txt nodeportpeer.txt portca.txt portcouchdb.txt portorderer.txt portpeer.txt portkafka.txt portzookeeper.txt
ix) JSON Files:- orgstructure.json orgsports.json channelinfo.json
x) CONSTANT :- NOOFZOOKEEPERS NOOFKAFKAS NOOFORDERERS NOOFZOOKEEPERREPLICAS NOOFKAFKAREPLICAS NOOFORDERERREPLICAS NOOFCAREPLICAS NOOFPEERREPLICAS
**command:- ./firstnetwork.sh arg1 arg2 arg3 arg4 arg5 arg6 ......**
arg1:- blockchain network name,
arg2:- number of organisation in BC network initially,
arg3:- first org name
arg4:- number of peers in first org
arg5:- second org name
arg6:- number of peers in second org
and so on.
example:- ./firstnetwork.sh bcnet 2 org1 1 org2 2
./firstnetwork.sh network1 3 org1 1 org2 2 org3 3
######### file for channel creation in firstTime network #########
function:- This file creates configtx.yaml and other channel confriguration files required for creating the channels in first time blockchain network.
**command:- ./configtx-file-gen.sh arg1 arg2 arg3 .... % arg4 arg5 ......**
arg1:- channel name,
arg2:- first organisation name,
arg3:- second orginsation name
so on ....
% separator used for ending one channel confriguration
arg4:- another channel name
arg5:- first organisation name
arg6:- second orginsation name
and so on.
example:- ./configtx-file-gen.sh ch1 org1 % ch2 org2
./configtx-file-gen.sh ch1 org1 % ch2 org2 % ch12 org1 org2
######### files for channel confriguration #########
function:- This file helps peers to join channel by creating a JOB
**command:- ./firstnetwork.sh arg1 arg2 arg3 arg4**
arg1:- peer number (0,1,2 ....)
arg2:- org name
arg3:- channel_name
arg4:- orderer number (0,1,2 ....) (according to this NOOFORDERERS CONSTANT if is equal 3 then orderer number will either 0, 1, 2 )
example:- ./joinchannel.sh 0 org1 ch1 0
./joinchannel.sh 1 org2 ch12 1
function:- This file helps to create new channel by creating 2 JOBs
**command:- ./createChannel.sh arg1 arg2**
arg1:- channel name
arg2:- orderer number (0,1,2 ....) (according to this NOOFORDERERS CONSTANT if is equal 3 then orderer number will either 0, 1, 2 )
example:- ./createChannel.sh newchannel 1
./createChannel.sh channel 0
function:- This file helps to add org (which is not in channel) to existing channel by creating 3 JOBs
**command:- ./addOrgToChannel.sh arg1 arg2 arg3**
arg1:- existing channel name
arg2:- org name to be added
arg3:- orderer number (0,1,2 ....) (according to this NOOFORDERERS CONSTANT if is equal 3 then orderer number will either 0, 1, 2 )
example:- ./addOrgToChannel.sh newchannel org5 0
./addOrgToChannel.sh channel12 org3 1
######### files for adding new peer and orgs in existing BC network #########
###File6:- addnewpeer.sh
function:- This file helps to add new peer to existing org by creating 2 JOBs, 1 DEPLOYMENT, 1 SERVICE.
**command:- ./addnewpeer.sh arg1 arg2**
arg1:- existing org name in which new peer to be added
arg2:- orderer number (0,1,2 ....) (according to this NOOFORDERERS CONSTANT if is equal 3 then orderer number will either 0, 1, 2 )
example:- ./addnewpeer.sh org1 1
./addnewpeer.sh org3 0
function:- This file helps to add new organisation to existing BC network by creating 2 JOBs, 1 + (number of peers) DEPLOYMENTS, 1 + (number of peers) SERVICES.
**command:- ./newOrgAddtion.sh arg1 arg2**
arg1:- new org name which to be added
arg2:- number of peers in this org
example:- ./newOrgAddtion.sh orgnew 5
./newOrgAddtion.sh org10 10
######### files for handling chaincodes #########
function:- This file helps to install chaincode (smart contracts) on peer of an org by creating 1 JOBs.
**command:- ./installChaincode.sh arg1 arg2 arg3 arg4 arg5 arg6 arg7**
arg1:- peerno (0,1,2 ...) on which peer you want to install chaincode.
arg2:- organization name.
arg3:- channel name
arg4:- chaincode folder name (like folder structure chaincode/chaincode_example02/go)
arg5:- chaincode name
arg6:- chaincode version
arg7:- chaincode language (golang, node)
example:- ./installChaincode.sh 0 org1 ch1 "chaincode_example02/go" "mycc1" "1.0" golang
./installChaincode.sh 0 org2 ch12 "chaincode_example02/node" "mycc2" "1.0" node
function:- This file helps to install chaincode (smart contracts) on peer of an org by creating 1 JOBs.
**command:- ./instantiateChaincode.sh arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9**
arg1:- peerno (0,1,2 ...) on which peer you want to install chaincode.
arg2:- organization name.
arg3:- channel name
arg4:- chaincode name
arg5:- chaincode version
arg6:- chaincode language (golang, node)
arg7:- chaincode arguments ( required for chaincode)
arg8:- chaincode endorsement policy
arg9:- orderer number (0,1,2 ....) (according to this NOOFORDERERS CONSTANT if is equal 3 then orderer number will either 0, 1, 2 )
example:- ./instantiateChaincode.sh 0 org1 ch1 "mycc1" "1.0" golang "{\\\"Args\\\":[\\\"init\\\",\\\"a\\\",\\\"100\\\",\\\"b\\\",\\\"200\\\"]}" "OR ('org1MSP.peer')"
./instantiateChaincode.sh 0 org2 ch12 "chaincode_example02/node" "mycc2" "1.0" node "{\\\"Args\\\":[\\\"init\\\",\\\"a\\\",\\\"100\\\",\\\"b\\\",\\\"200\\\"]}" "OR ('org1MSP.peer','org2MSP.peer')"
function:- This file helps to build first time blockchain network. This file is used after running File1 and File2.
**command:- /bcnetup.sh**
example:- ./bcnetup.sh
######### JSON files storing the blockchain network confriguration #########
orgstructure.json :- this file stores nameofnetwork, no. of org., org with there no. of peers.
orgsports.json :- this file stores ports of peers of all orgs and their CAs
channelinfo.json :- this file stores the channel info like number of channels, orgs in channels ,peers which joined the channel etc.
######### file contains various funtion which help to get and store network confriguration details in JSON files #########
operations.py
######### files (network-configuration) are used for ports for peers, cas, couchdb, kafka, zookeeper, orderer #########
nodeportca.txt :- nodeport for cas
nodeportcouchdb.txt :- nodeport for couchdb
nodeportkafka.txt :- nodeport for kafka
nodeportzookeeper.txt :- nodeport for zookeeper
nodeportorderer.txt :- nodeport for orderer
nodeportpeer.txt :- nodeport for peer
portca.txt :- port for ca
portcouchdb.txt :- port for couchdb
portorderer.txt :- port for orderer
portpeer.txt :- port for peer
portkafka.txt :- port for kafka
portzookeeper.txt :- port for zookeeper
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@ UseCase Example implementation @@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Kubernetes Cluster
administrator@kube-master:~/Documents/DBOK/dynamic-hyperledger-fabric-kafka-kubernetes$ sudo su
administrator@kube-master:~/Documents/DBOK/dynamic-hyperledger-fabric-kafka-kubernetes# kubeadm init --apiserver-advertise-address=172.16.10.161 --pod-network-cidr=10.0.0.0/24
administrator@kube-master:~/Documents/DBOK/dynamic-hyperledger-fabric-kafka-kubernetes# exit
administrator@kube-master:~/Documents/DBOK/dynamic-hyperledger-fabric-kafka-kubernetes$ mkdir -p $HOME/.kube
administrator@kube-master:~/Documents/DBOK/dynamic-hyperledger-fabric-kafka-kubernetes$ sudo cp -ivf /etc/kubernetes/admin.conf $HOME/.kube/config
administrator@kube-master:~/Documents/DBOK/dynamic-hyperledger-fabric-kafka-kubernetes$ sudo chown
administrator@kube-master:~/Documents/DBOK/dynamic-hyperledger-fabric-kafka-kubernetes$ export kubever=$(kubectl version | base64 | tr -d '\n')
administrator@kube-master:~/Documents/DBOK/dynamic-hyperledger-fabric-kafka-kubernetes$ kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$kubever"
administrator@kube-master:~/Documents/DBOK/dynamic-hyperledger-fabric-kafka-kubernetes$ kubectl get pods -o wide --all-namespaces
administrator@kube-slave1:~$ sudo su
root@kube-slave1:/home/administrator# kubeadm join 172.16.10.161:6443 --token p483ys.j4pik520e1e6g07z --discovery-token-ca-cert-hash sha256:ad01deba0311f6ff9d1545a3a638bf579dcb192b9cca1386917c98f773533551
administrator@kube-slave2:~$ sudo su
root@kube-slave2:/home/administrator# kubeadm join 172.16.10.161:6443 --token p483ys.j4pik520e1e6g07z --discovery-token-ca-cert-hash sha256:ad01deba0311f6ff9d1545a3a638bf579dcb192b9cca1386917c98f773533551
Intial Folder Structure
administrator@kube-master:~/Documents/DBOK/dynamic-hyperledger-fabric-kafka-kubernetes$ ls addOrgToChannel.sh chaincode createChannel.sh installChaincode.sh operations.py resetFolder.sh
bcnetup.sh configtx-file-gen.sh firstnetwork.sh instantiateChaincode.sh README.md
Command to create initial and blockchain network file
administrator@kube-master:~/Documents/DBOK/dynamic-hyperledger-fabric-kafka-kubernetes$ ./firstnetwork.sh bankconsortiumbcnet 3 sbi 1 hdfc 2 icici 2
administrator@kube-master:~/Documents/DBOK/dynamic-hyperledger-fabric-kafka-kubernetes$ ls
addnewpeer.sh chaincode deployment-Files job-Files newOrgAddition.sh README.md
addOrgToChannel.sh configMaps-Files firstnetwork.sh joinchannel.sh operations.py resetFolder.sh
artifact-Files configtx-file-gen.sh installChaincode.sh namespace-Files persistentvolume-Files service-Files
bcnetup.sh createChannel.sh instantiateChaincode.sh networkStructureJson-Files port-Files status-files
Command to create the channel configuration files
administrator@kube-master:~/Documents/DBOK/dynamic-hyperledger-fabric-kafka-kubernetes$ ./configtx-file-gen.sh chsbihdfc sbi hdfc % chhdfcicici hdfc icici % chicicisbi icici sbi
piyushkumar@ubuntu:~/Documents/dynamic-hyperledger-fabric-singlehost-files$ ls
addnewpeer.sh chaincode deployment-Files job-Files newOrgAddition.sh README.md
addOrgToChannel.sh configMaps-Files firstnetwork.sh joinchannel.sh operations.py resetFolder.sh
artifact-Files configtx-file-gen.sh installChaincode.sh namespace-Files persistentvolume-Files service-Files
bcnetup.sh createChannel.sh instantiateChaincode.sh networkStructureJson-Files port-Files status-files
Command to build the firstnetwork blockchain network
administrator@kube-master:~/Documents/DBOK/dynamic-hyperledger-fabric-kafka-kubernetes$ ./bcnetup.sh
Command to see the pods of blockchain network
administrator@kube-master:~/Documents/DBOK/dynamic-hyperledger-fabric-kafka-kubernetes$ kubectl get pods -o wide --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE
bankconsortiumbcnet ca-hdfc-bankconsortiumbcnet-com-578b6597bb-zdj5g 1/1 Running 0 50m 10.40.0.5 kube-slave2
bankconsortiumbcnet ca-icici-bankconsortiumbcnet-com-fc8c4bb8-xjlbk 1/1 Running 0 50m 10.36.0.5 kube-slave1
bankconsortiumbcnet ca-pnb-bankconsortiumbcnet-com-6cb7c66fd8-tbb6r 1/1 Running 0 34m 10.40.0.10 kube-slave2
bankconsortiumbcnet ca-sbi-bankconsortiumbcnet-com-649948f48d-vbl9j 1/1 Running 0 50m 10.40.0.4 kube-slave2
bankconsortiumbcnet ftnw-artifacts-generate-sstp5 0/2 Completed 0 50m 10.40.0.0 kube-slave2
bankconsortiumbcnet ftnw-copyartifacts-wswl2 0/1 Completed 0 51m 10.36.0.0 kube-slave1
bankconsortiumbcnet kafka0-bankconsortiumbcnet-com-5869c5bd7f-ndx4q 1/1 Running 0 50m 10.40.0.1 kube-slave2
bankconsortiumbcnet kafka1-bankconsortiumbcnet-com-6fbd7f88-9p628 1/1 Running 0 50m 10.36.0.2 kube-slave1
bankconsortiumbcnet kafka2-bankconsortiumbcnet-com-67bcd7749-gs7dp 1/1 Running 0 50m 10.40.0.2 kube-slave2
bankconsortiumbcnet kafka3-bankconsortiumbcnet-com-568f855bfd-s7hkm 1/1 Running 0 50m 10.36.0.3 kube-slave1
bankconsortiumbcnet orderer0-bankconsortiumbcnet-com-757f7b45dc-h78dl 1/1 Running 0 50m 10.40.0.3 kube-slave2
bankconsortiumbcnet orderer1-bankconsortiumbcnet-com-6fdf675c5d-pr6t4 1/1 Running 0 50m 10.36.0.4 kube-slave1
bankconsortiumbcnet peer0-hdfc-bankconsortiumbcnet-com-654f7bc676-mn65w 2/2 Running 0 50m 10.36.0.7 kube-slave1
bankconsortiumbcnet peer0-icici-bankconsortiumbcnet-com-5d87d8696b-gm8dt 2/2 Running 0 50m 10.40.0.7 kube-slave2
bankconsortiumbcnet peer0-sbi-bankconsortiumbcnet-com-cb96bbfc5-vddlv 2/2 Running 0 50m 10.36.0.6 kube-slave1
bankconsortiumbcnet peer1-hdfc-bankconsortiumbcnet-com-7444947d97-ktchn 2/2 Running 0 50m 10.40.0.6 kube-slave2
bankconsortiumbcnet peer1-icici-bankconsortiumbcnet-com-6795cdfc49-cdz7b 2/2 Running 0 50m 10.36.0.8 kube-slave1
bankconsortiumbcnet zookeeper0-bankconsortiumbcnet-com-6f95986b98-7hjsh 1/1 Running 0 50m 10.36.0.0 kube-slave1
bankconsortiumbcnet zookeeper1-bankconsortiumbcnet-com-59fbc47bf6-njnv6 1/1 Running 0 50m 10.36.0.1 kube-slave1
bankconsortiumbcnet zookeeper2-bankconsortiumbcnet-com-7b789bcf46-g8d4s 1/1 Running 0 50m 10.40.0.0 kube-slave2
kube-system coredns-576cbf47c7-2h8bp 1/1 Running 0 54m 10.32.0.7 kube-master
kube-system coredns-576cbf47c7-clnsk 1/1 Running 0 54m 10.32.0.8 kube-master
kube-system etcd-kube-master 1/1 Running 0 53m 172.16.10.161 kube-master
kube-system kube-apiserver-kube-master 1/1 Running 0 53m 172.16.10.161 kube-master
kube-system kube-controller-manager-kube-master 1/1 Running 0 53m 172.16.10.161 kube-master
kube-system kube-proxy-4gk6j 1/1 Running 0 54m 172.16.10.161 kube-master
kube-system kube-proxy-54vb4 1/1 Running 0 53m 172.16.10.148 kube-slave1
kube-system kube-proxy-7n5rr 1/1 Running 0 53m 172.16.10.132 kube-slave2
kube-system kube-scheduler-kube-master 1/1 Running 0 53m 172.16.10.161 kube-master
kube-system weave-net-7bp2d 2/2 Running 0 53m 172.16.10.148 kube-slave1
kube-system weave-net-tw7pn 2/2 Running 0 53m 172.16.10.132 kube-slave2
kube-system weave-net-v756w 2/2 Running 0 54m 172.16.10.161 kube-master
Command to join the channel by peer of an org
administrator@kube-master:~/Documents/DBOK/dynamic-hyperledger-fabric-kafka-kubernetes$ ./joinchannel.sh 0 sbi chsbihdfc 0
administrator@kube-master:~/Documents/DBOK/dynamic-hyperledger-fabric-kafka-kubernetes$ ./joinchannel.sh 0 hdfc chsbihdfc 1
administrator@kube-master:~/Documents/DBOK/dynamic-hyperledger-fabric-kafka-kubernetes$ ./joinchannel.sh 0 sbi chicicisbi 0
Command to add new peer to an org in exsisting blockchain network
administrator@kube-master:~/Documents/DBOK/dynamic-hyperledger-fabric-kafka-kubernetes$ ./addnewpeer.sh sbi 1
Command to add new org in exsisting blockchain network
administrator@kube-master:~/Documents/DBOK/dynamic-hyperledger-fabric-kafka-kubernetes$ ./newOrgAddition.sh pnb 2
Command to create new channel
administrator@kube-master:~/Documents/DBOK/dynamic-hyperledger-fabric-kafka-kubernetes$ ./createChannel.sh chall 0
Command to add exsisting org to channel in which it not present.
administrator@kube-master:~/Documents/DBOK/dynamic-hyperledger-fabric-kafka-kubernetes$ ./addOrgToChannel.sh chall pnb 0
Command to join channel by peer of an org
administrator@kube-master:~/Documents/DBOK/dynamic-hyperledger-fabric-kafka-kubernetes$ ./joinchannel.sh 0 pnb chall 0
Command to add exsisting org to channel in which it not present.
administrator@kube-master:~/Documents/DBOK/dynamic-hyperledger-fabric-kafka-kubernetes$ ./addOrgToChannel.sh chall sbi 0
Command to join channel by peer of an org
administrator@kube-master:~/Documents/DBOK/dynamic-hyperledger-fabric-kafka-kubernetes$ ./joinchannel.sh 0 sbi chall 1
Command to install chaincode on peer of an org
administrator@kube-master:~/Documents/DBOK/dynamic-hyperledger-fabric-kafka-kubernetes$ ./installChaincode.sh 0 sbi chsbihdfc "chaincode_example02" "chsbihdfccc" "1.0" golang 0
Command to instantiate chaincode on peer of an org
administrator@kube-master:~/Documents/DBOK/dynamic-hyperledger-fabric-kafka-kubernetes$ ./instantiateChaincode.sh 0 sbi chsbihdfc "chsbihdfccc" "1.0" golang "{\"Args\":[\"init\",\"a\",\"100\",\"b\",\"200\"]}" "OR ('sbiMSP.peer', 'hdfcMSP.peer')" 0
Command to see the pods of blockchain network
administrator@kube-master:~/Documents/DBOK/dynamic-hyperledger-fabric-kafka-kubernetes$ kubectl get pods -o wide --all-namespaces
Command to add exsisting org to channel in which it not present.
administrator@kube-master:~/Documents/DBOK/dynamic-hyperledger-fabric-kafka-kubernetes$ ./addOrgToChannel.sh chsbihdfc pnb 0
Command to see the pods of blockchain network
administrator@kube-master:~/Documents/DBOK/dynamic-hyperledger-fabric-kafka-kubernetes$ kubectl get pods -o wide --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE
bankconsortiumbcnet ca-hdfc-bankconsortiumbcnet-com-578b6597bb-zdj5g 1/1 Running 0 50m 10.40.0.5 kube-slave2
bankconsortiumbcnet ca-icici-bankconsortiumbcnet-com-fc8c4bb8-xjlbk 1/1 Running 0 50m 10.36.0.5 kube-slave1
bankconsortiumbcnet ca-pnb-bankconsortiumbcnet-com-6cb7c66fd8-tbb6r 1/1 Running 0 34m 10.40.0.10 kube-slave2
bankconsortiumbcnet ca-sbi-bankconsortiumbcnet-com-649948f48d-vbl9j 1/1 Running 0 50m 10.40.0.4 kube-slave2
bankconsortiumbcnet createchannel-chhdfcicici-8lrth 0/2 Completed 0 41m 10.36.0.9 kube-slave1
bankconsortiumbcnet createchannel-chicicisbi-fsz8w 0/2 Completed 0 41m 10.36.0.10 kube-slave1
bankconsortiumbcnet createchannel-chsbihdfc-kfhgv 0/2 Completed 0 41m 10.40.0.8 kube-slave2
bankconsortiumbcnet ftnw-artifacts-generate-sstp5 0/2 Completed 0 50m 10.40.0.0 kube-slave2
bankconsortiumbcnet ftnw-copyartifacts-wswl2 0/1 Completed 0 51m 10.36.0.0 kube-slave1
bankconsortiumbcnet gc-pnb-9q2rf 0/1 Completed 0 34m 10.36.0.10 kube-slave1
bankconsortiumbcnet gc-sbi-peer1-6lflx 0/1 Completed 0 38m 10.40.0.10 kube-slave2
bankconsortiumbcnet jaotc-pnb-chall-part1-5fhf5 0/1 Completed 0 32m 10.36.0.11 kube-slave1
bankconsortiumbcnet jaotc-pnb-chall-part2-tblnm 0/1 Completed 0 32m 10.40.0.12 kube-slave2
bankconsortiumbcnet jaotc-sbi-chall-part1-k2pfp 0/1 Completed 0 30m 10.40.0.12 kube-slave2
bankconsortiumbcnet jaotc-sbi-chall-part2-xq8zg 0/1 Completed 0 30m 10.36.0.11 kube-slave1
bankconsortiumbcnet jc-hdfc-peer0-chsbihdfc-ch4fh 0/1 Completed 0 39m 10.40.0.8 kube-slave2
bankconsortiumbcnet jc-pnb-peer0-chall-4gmg2 0/1 Completed 0 31m 10.36.0.11 kube-slave1
bankconsortiumbcnet jc-sbi-peer0-chall-tpsgj 0/1 Completed 0 29m 10.40.0.12 kube-slave2
bankconsortiumbcnet jc-sbi-peer0-chicicisbi-npjdb 0/1 Completed 0 38m 10.40.0.8 kube-slave2
bankconsortiumbcnet jc-sbi-peer0-chsbihdfc-nd264 0/1 Completed 0 40m 10.40.0.8 kube-slave2
bankconsortiumbcnet jc-sbi-peer1-chsbihdfc-rkz5p 0/1 Completed 0 37m 10.36.0.10 kube-slave1
bankconsortiumbcnet jcc-chall-hpflr 0/2 Completed 0 33m 10.40.0.12 kube-slave2
bankconsortiumbcnet jcit-chsbihdfccc-golang-chsbihdfc-peer0-sbi-9dthw 0/1 Completed 0 28m 10.36.0.11 kube-slave1
bankconsortiumbcnet jcitt-chsbihdfccc-golang-chsbihdfc-peer0-sbi-cbw24 0/1 Completed 0 27m 10.40.0.13 kube-slave2
bankconsortiumbcnet juccf-pnb-k2sxf 0/1 Completed 0 34m 10.40.0.10 kube-slave2
bankconsortiumbcnet juccf-sbi-peer1-pdnbv 0/1 Completed 0 38m 10.40.0.9 kube-slave2
bankconsortiumbcnet jucf-chall-k8ftx 0/1 Completed 0 33m 10.36.0.11 kube-slave1
bankconsortiumbcnet kafka0-bankconsortiumbcnet-com-5869c5bd7f-ndx4q 1/1 Running 0 50m 10.40.0.1 kube-slave2
bankconsortiumbcnet kafka1-bankconsortiumbcnet-com-6fbd7f88-9p628 1/1 Running 0 50m 10.36.0.2 kube-slave1
bankconsortiumbcnet kafka2-bankconsortiumbcnet-com-67bcd7749-gs7dp 1/1 Running 0 50m 10.40.0.2 kube-slave2
bankconsortiumbcnet kafka3-bankconsortiumbcnet-com-568f855bfd-s7hkm 1/1 Running 0 50m 10.36.0.3 kube-slave1
bankconsortiumbcnet orderer0-bankconsortiumbcnet-com-757f7b45dc-h78dl 1/1 Running 0 50m 10.40.0.3 kube-slave2
bankconsortiumbcnet orderer1-bankconsortiumbcnet-com-6fdf675c5d-pr6t4 1/1 Running 0 50m 10.36.0.4 kube-slave1
bankconsortiumbcnet peer0-hdfc-bankconsortiumbcnet-com-654f7bc676-mn65w 2/2 Running 0 50m 10.36.0.7 kube-slave1
bankconsortiumbcnet peer0-icici-bankconsortiumbcnet-com-5d87d8696b-gm8dt 2/2 Running 0 50m 10.40.0.7 kube-slave2
bankconsortiumbcnet peer0-pnb-bankconsortiumbcnet-com-6f7bb66c99-fmjkt 2/2 Running 0 34m 10.36.0.10 kube-slave1
bankconsortiumbcnet peer0-sbi-bankconsortiumbcnet-com-cb96bbfc5-vddlv 2/2 Running 0 50m 10.36.0.6 kube-slave1
bankconsortiumbcnet peer1-hdfc-bankconsortiumbcnet-com-7444947d97-ktchn 2/2 Running 0 50m 10.40.0.6 kube-slave2
bankconsortiumbcnet peer1-icici-bankconsortiumbcnet-com-6795cdfc49-cdz7b 2/2 Running 0 50m 10.36.0.8 kube-slave1
bankconsortiumbcnet peer1-pnb-bankconsortiumbcnet-com-67766f5f84-wf446 2/2 Running 0 34m 10.40.0.11 kube-slave2
bankconsortiumbcnet peer1-sbi-bankconsortiumbcnet-com-8547c86bbb-shb9v 2/2 Running 0 38m 10.40.0.9 kube-slave2
bankconsortiumbcnet zookeeper0-bankconsortiumbcnet-com-6f95986b98-7hjsh 1/1 Running 0 50m 10.36.0.0 kube-slave1
bankconsortiumbcnet zookeeper1-bankconsortiumbcnet-com-59fbc47bf6-njnv6 1/1 Running 0 50m 10.36.0.1 kube-slave1
bankconsortiumbcnet zookeeper2-bankconsortiumbcnet-com-7b789bcf46-g8d4s 1/1 Running 0 50m 10.40.0.0 kube-slave2
kube-system coredns-576cbf47c7-2h8bp 1/1 Running 0 54m 10.32.0.7 kube-master
kube-system coredns-576cbf47c7-clnsk 1/1 Running 0 54m 10.32.0.8 kube-master
kube-system etcd-kube-master 1/1 Running 0 53m 172.16.10.161 kube-master
kube-system kube-apiserver-kube-master 1/1 Running 0 53m 172.16.10.161 kube-master
kube-system kube-controller-manager-kube-master 1/1 Running 0 53m 172.16.10.161 kube-master
kube-system kube-proxy-4gk6j 1/1 Running 0 54m 172.16.10.161 kube-master
kube-system kube-proxy-54vb4 1/1 Running 0 53m 172.16.10.148 kube-slave1
kube-system kube-proxy-7n5rr 1/1 Running 0 53m 172.16.10.132 kube-slave2
kube-system kube-scheduler-kube-master 1/1 Running 0 53m 172.16.10.161 kube-master
kube-system weave-net-7bp2d 2/2 Running 0 53m 172.16.10.148 kube-slave1
kube-system weave-net-tw7pn 2/2 Running 0 53m 172.16.10.132 kube-slave2
kube-system weave-net-v756w 2/2 Running 0 54m 172.16.10.161 kube-master
END