Skcript's Logo
Skcript's Logo

Lifecycle of Hyperledger Fabric Chaincode Development and Deployment

This article is focused on understanding how Hyperledger Fabric Chaincode development is done and how to easily deploy it whenever you update the chaincode.

Subscribe to our awesome Newsletter.

Lifecycle of Hyperledger Fabric Chaincode Development and Deployment

Currently reading:

Lifecycle of Hyperledger Fabric Chaincode Development and Deployment


Subscribe to our Newsletter:


Share article on:

In this example, we’ll be using the Fabcar Chaincode example provided by Fabric sample. [https://github.com/hyperledger/fabric-samples/tree/master/chaincode/fabcar/go] which uses the basic network [https://github.com/hyperledger/fabric-samples/tree/master/basic-network] as the Hyperledger Fabric network.

Here I assume that you’ve a good understanding about how Fabric works and how the docker instances for the Fabric network is managed.

Clone the Fabric sample

As the first step, clone the Fabric to your local machine by cloneing it.

1
2
git clone https://github.com/hyperledger/fabric-samples
cd fabric-samples

Starting the fabric network

In order to start the fabcar chaincode, go into the fabcar folder and run the startFabric.sh script.

1
2
cd fabcard
./startFabric.sh

After this if you want to modify the chaincode and re-deploy you can use the cli container that is running along with the other services.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
set -e
# don't rewrite paths for Windows Git Bash users

export MSYS_NO_PATHCONV=1
starttime=$(date +%s)
LANGUAGE=${1:-"golang"}
CC_SRC_PATH=github.com/fabcar/go
if [ "$LANGUAGE" = "node" -o "$LANGUAGE" = "NODE" ]; then
    CC_SRC_PATH=/opt/gopath/src/github.com/fabcar/node
fi

CC_VERSION=1.1
docker exec -e "CORE_PEER_LOCALMSPID=Org1MSP" -e "CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp" cli peer chaincode install -n fabcar -v $CC_VERSION -p "$CC_SRC_PATH" -l "$LANGUAGE"

docker exec -e "CORE_PEER_LOCALMSPID=Org1MSP" -e "CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp" cli peer chaincode upgrade -o orderer.example.com:7050 -C mychannel -n fabcar -l "$LANGUAGE" -v $CC_VERSION -c '{"Args":[""]}' -P "OR ('Org1MSP.member','Org2MSP.member')"

The above commands installs a new version of chaincode and upgrades the chaincode by calling the init function. Make sure you change the CC_VERSION everytime you call the script to update chaincode.

Also this will create a new image for each version, so make sure you delete the old images to avoid running out of storage.

Share article on

Comments and Discussions

Skcript


Stay Updated with Our Newsletter
SIGN UP