项目作者: Daniel-Szego

项目描述 :
Hyperledger Fabric Java Chaincode programs step by step
高级语言: Java
项目地址: git://github.com/Daniel-Szego/FabricJavaChaincodeTutorials.git


Chaincode examples for Java

  1. HelloJavaChaincode: simplest Hello World java chaincode
  • copy the gradle files and the scr files apart from test to the chaincode/01_HelloJavaChaincode directory
  • start a Hyperledger Fabric network (like fabric-samples/basic-network): pay attention if the cli drive mappings are valid
  • run on the cli container
    docker exec -it cli /bin/bash
  • install chaincode
    peer chaincode install -l java -n mycc -v v1 -p /opt/gopath/src/github.com/01_HelloJavaChaincode
  • initiate chaincode
    peer chaincode instantiate -o orderer.example.com:7050 -C mychannel -n mycc -v v1 -c ‘{“Args”:[“init”,”HelloWorld”]}’ -P ‘OR (“Org1MSP.member”)’
  • query hello world message
    peer chaincode query -C mychannel -n mycc -c ‘{“Args”:[“getHelloWorld”]}’
  • change the hello world message
    peer chaincode invoke -o orderer.example.com:7050 —cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n mycc —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 -c ‘{“Args”:[“setHelloWorldMessage”, “HalloWelt”]}’
  • query the changed hello world message
  1. JavaChaincodeAsset: administrating a house on the blockchain
  • copy the gradle files and the scr files apart from test to the chaincode/02_JavaChaincodeAsset directory
  • start a Hyperledger Fabric network (like fabric-samples/basic-network): pay attention if the cli drive mappings are valid
  • run on the cli container
    docker exec -it cli /bin/bash
  • install chaincode
    peer chaincode install -l java -n mycc -v v1 -p /opt/gopath/src/github.com/02_JavaChaincodeAsset
  • initiate chaincode
    peer chaincode instantiate -o orderer.example.com:7050 -C mychannel -n mycc -v v1 -c ‘{“Args”:[]}’ -P ‘OR (“Org1MSP.member”)’
  • create new house
    peer chaincode invoke -o orderer.example.com:7050 —cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n mycc —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 -c ‘{“Args”:[“setHouse”,”houseID123”,”2”,”testCountry”,”testCity”,”testStreet”,”4”]}’
  • read the house
    peer chaincode query -C mychannel -n mycc -c ‘{“Args”:[“getHouse”,”houseID123”]}’
  • update the number of rooms for the house
    peer chaincode invoke -o orderer.example.com:7050 —cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n mycc —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 -c ‘{“Args”:[“buildNewRoom”,”houseID123”,”4”]}’
  • read the modfied house
    peer chaincode query -C mychannel -n mycc -c ‘{“Args”:[“getHouse”,”houseID123”]}’
  1. AssetWithAccess: administrating a house on the blockchain with access rights