We are going to install and instantiate smart contract in a peer we deployed in the last chapter. After this guide, you will get a network like this:
S5: a smart contract
I'm going to use a simple chaincode in
fabric-samples
. And, forA1
in the picture, I'm not going to touch in this guide.
Get a sample chaincode:
curl https://raw.githubusercontent.com/hyperledger/fabric-samples/release-1.4/chaincode/chaincode_example02/go/chaincode_example02.go -o chaincodes/chaincode.go
docker exec -it \
-e CORE_PEER_ADDRESS=peer0.member.org1.com:7051 \
-e CORE_PEER_LOCALMSPID=Org1X1 \
-e CORE_PEER_MSPCONFIGPATH=/org1/X1/users/Admin@member.org1.com/msp \
cli \
peer chaincode install -n s5 -v 1.0 -p github.com/chaincodes/
I'm going to use
"OR ('Org1X1.peer','Org2.peer')"
as an endorsement policy because we only have ONE peer on the network :)
docker exec -it \
-e CORE_PEER_ADDRESS=peer0.member.org1.com:7051 \
-e CORE_PEER_LOCALMSPID=Org1X1 \
-e CORE_PEER_MSPCONFIGPATH=/org1/X1/users/Admin@member.org1.com/msp \
cli \
peer chaincode instantiate -o orderer.org4.com:7050 -C c1 -n s5 -v 1.0 -c '{"Args":["init","a","100","b","200"]}' -P "OR ('Org1X1.peer','Org2.peer')"
Transfer 10
from A
to B
:
docker exec -it \
-e CORE_PEER_ADDRESS=peer0.member.org1.com:7051 \
-e CORE_PEER_LOCALMSPID=Org1X1 \
-e CORE_PEER_MSPCONFIGPATH=/org1/X1/users/Admin@member.org1.com/msp \
cli \
peer chaincode invoke -o orderer.org4.com:7050 -C c1 -n s5 --peerAddresses peer0.member.org1.com:7051 -c '{"Args":["invoke","a","b","10"]}'
Query A
:
docker exec -it \
-e CORE_PEER_ADDRESS=peer0.member.org1.com:7051 \
-e CORE_PEER_LOCALMSPID=Org1X1 \
-e CORE_PEER_MSPCONFIGPATH=/org1/X1/users/Admin@member.org1.com/msp \
cli \
peer chaincode query -C c1 -n s5 -c '{"Args":["query","a"]}'
Query B
:
docker exec -it \
-e CORE_PEER_ADDRESS=peer0.member.org1.com:7051 \
-e CORE_PEER_LOCALMSPID=Org1X1 \
-e CORE_PEER_MSPCONFIGPATH=/org1/X1/users/Admin@member.org1.com/msp \
cli \
peer chaincode query -C c1 -n s5 -c '{"Args":["query","b"]}'