-
Notifications
You must be signed in to change notification settings - Fork 4
Java chaincode cheatsheet
James Taylor edited this page Oct 16, 2019
·
6 revisions
Attempting to figure out how to do stuff with Java chaincode on Fabric. Don't try this at home!
The following is based on Java chaincode generated using generator-fabric running in a fabric-devenv Vagrant environment.
v1.4???
export CORE_PEER_ADDRESS=0.0.0.0:7051
export CORE_PEER_LOCALMSPID=Org1MSP
export CORE_PEER_MSPCONFIGPATH=/home/vagrant/test-network/crypto-config/peerOrganizations/org1.example.com/users/[email protected]/msp
peer chaincode install -l java -n mycc -v v1 -p <path_to_chaincode>
peer chaincode instantiate -o 0.0.0.0:7050 -C mychannel -c '{"Args":[]}' -P 'OR ("Org1MSP.member")' -n mycc -v v1
With private data config: --collections-config <path_to_config>
peer chaincode invoke -C mychannel -o 127.0.0.1:7050 -n mycc -c '{"Args":["CreateAsset", "1"]}'
v2???
docker exec -it cli bash
peer lifecycle chaincode package pc0.tar.gz --path /opt/gopath/src/github.com/contracts/java-contract/ --lang java --label pc_0
peer lifecycle chaincode install pc0.tar.gz
export CC_PACKAGE_ID=$(peer lifecycle chaincode queryinstalled 2>&1 | awk -F "[, ]+" '/Label: /{print $3}') && echo $CC_PACKAGE_ID
peer lifecycle chaincode approveformyorg --channelID mychannel --name pc_0 --version 0.0.3 --package-id $CC_PACKAGE_ID --sequence 1 --waitForEvent
peer lifecycle chaincode commit -o orderer.example.com:7050 --channelID mychannel --name pc_0 --version 0.0.3 --sequence 1 --waitForEvent
peer chaincode invoke -o orderer.example.com:7050 --channelID mychannel --name pc_0 -c '{"Args":["arg1","arg2"]}'
docker kill $(docker ps -q) && docker rm $(docker ps -aq)
docker rmi $(docker images dev-* -q) --force
docker volume prune -f && docker network prune -f
./byfn.sh generate
./byfn.sh restart
# org1 ->
docker exec -it cli bash
# org2 ->
docker exec -it Org2cli bash
# In Org1 and Org2
export ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
export TARGETTED_PEERS="--peerAddresses peer0.org1.example.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses peer0.org2.example.com:9051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt"
export CC_PATH=/opt/gopath/src/github.com/hyperledger/fabric-samples/chaincode/fabcar/javascript
# In Org1
peer lifecycle chaincode package fabcar_i0.tar.gz --path ${CC_PATH} --lang node --label fabcar_i0
# In both Org1 and Org2
peer lifecycle chaincode install fabcar_i0.tar.gz --connTimeout 60s
export CC_PACKAGE_ID=$(peer lifecycle chaincode queryinstalled 2>&1 | awk -F "[, ]+" '/Label: fabcar_i0/{print $3}') && echo $CC_PACKAGE_ID
peer lifecycle chaincode approveformyorg --channelID mychannel --name pc_0 --version 0.0.3 --package-id $CC_PACKAGE_ID --sequence 1 --waitForEvent --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA
# In Org1
peer lifecycle chaincode commit -o orderer.example.com:7050 --channelID mychannel --name pc_0 --version 0.0.3 --sequence 1 --waitForEvent --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA ${TARGETTED_PEERS}
# In either org ->
peer chaincode query -o orderer.example.com:7050 --channelID mychannel --name pc_0 -c '{"Args":["org.hyperledger.fabric:GetMetadata"]}' --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA | jq
# In either org ->
peer chaincode invoke -o orderer.example.com:7050 --channelID mychannel --name pc_0 -c '{"Args":["initLedger"]}' --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA --waitForEvent ${TARGETTED_PEERS}
# In either org ->
peer chaincode query -o orderer.example.com:7050 --channelID mychannel --name pc_0 -c '{"Args":["queryAllCars"]}' --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA | jq 'fromjson'
See also: