Skip to content

paolobertellini/fabric-chaincode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fabric chaincode

A Hyperledger Fabric network with a java chaincode

Inspired from Create java chaincode - medium tutorial

Chaincodes

  • fabcar
  • contractnet
  • contractnet with composite key
  • commercial paper

Contractnet

Setup

  1. Start the network ./network.sh up

  2. Create the channel ./network.sh createChannel

  3. Deploy the chaincode ./network.sh deployCC -ccn contractnet -ccp ../chaincode/java/contractnet/ -ccl java -cci initLedger -ccv 1.0 -ccs 1

  4. Stop the network ./network.sh down

  5. Clean the network docker rm -f $(docker ps -aq) docker rmi -f $(docker images -q)

Environment variables for Org1 and Org2

Org 1
export PATH=${PWD}/../bin:$PATH
export FABRIC_CFG_PATH=$PWD/../config/
export CORE_PEER_TLS_ENABLED=true
export CORE_PEER_LOCALMSPID="Org1MSP"
export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
export CORE_PEER_ADDRESS=localhost:7051

Org 2
export PATH=${PWD}/../bin:$PATH
export FABRIC_CFG_PATH=$PWD/../config/
export CORE_PEER_TLS_ENABLED=true
export CORE_PEER_LOCALMSPID="Org2MSP"
export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp
export CORE_PEER_ADDRESS=localhost:9051

Interacting with the network

  • query peer chaincode query -C mychannel -n agreements -c '{"Args":["getAgreement", "ARG001"]}'
  • invoke peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem" -C mychannel -n contractnet --peerAddresses localhost:7051 --tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt" --peerAddresses localhost:9051 --tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt" -c '{"function":"create","Args":["1","paolo","Create random numbers"]}'