dev,blockchain | 2018-02-19T11:28:14+05:30

Lifecycle of Hyperledger Fabric Chaincode Development and Deployment

Hellonext, Inc.

Varun Raj

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.

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.

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.

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/[email protected]/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/[email protected]/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.

Last updated: September 7th, 2023 at 7:42:06 AM GMT+0

Hellonext Blogpost Author Profile

Varun Raj

Varun is one of the founders of Hellonext. He has helped companies like Google build large-scale developer communities to build strong developer relationships. He has build over 50 SaaS products in his career.