1、证书配置、channel配置、docker配置见tools文件夹
cryptogen generate --config crypto-config.yaml --output=crypto-config
mkdir channel-artifacts
export CHANNEL_NAME=onechannel
export FABRIC_CFG_PATH=$PWD (设置一个环境变量来告诉configtxgen哪里去寻找configtx.yaml)
configtxgen -outputBlock ./channel-artifacts/orderer.block -profile TwoOrgsOrdererGenesis
configtxgen -outputCreateChannelTx ./channel-artifacts/onechannel.tx -profile TwoOrgsChannel -channelID onechannel
2、进入tools容器,执行chaincode的测试
export CHANNEL_NAME=onechannel
peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./onechannel.tx
peer channel join -b onechannel.block
peer chaincode install -n chaincode_example01 -v 1.0 -p github.com/hyperledger/fabric/peer/chaincode/go/chaincode_example01
peer chaincode instantiate -o orderer.example.com:7050 -C onechannel -n chaincode_example01 -v 1.0 -c '{"Args":["init","a","100","b","200"]}'
peer chaincode invoke -C onechannel -n chaincode_example01 -v 1.0 -c '{"Args":["invoke","20"]}'
peer chaincode install -n chaincode_example01 -v 2.0 -p github.com/hyperledger/fabric/peer/chaincode/go/chaincode_example01
peer chaincode upgrade -C onechannel -n chaincode_example01 -v 2.0 -c '{"Args":["init","a","1000","b","2000"]}'
peer chaincode install -n chaincode_example02 -v 1.0 -p github.com/hyperledger/fabric/peer/chaincode/go/chaincode_example02
peer chaincode instantiate -o orderer.example.com:7050 -C onechannel -n chaincode_example02 -v 1.0 -c '{"Args":["init","a","100","b","200"]}'
peer chaincode invoke -C onechannel -n chaincode_example02 -v 1.0 -c '{"Args":["invoke","a","b","20"]}'
peer chaincode query -C onechannel -n chaincode_example02 -v 1.0 -c '{"Args":["query","a"]}'
peer chaincode invoke -C onechannel -n chaincode_example02 -v 1.0 -c '{"Args":["delete","a"]}'
peer chaincode install -n chaincode_example03 -v 1.0 -p github.com/hyperledger/fabric/peer/chaincode/go/chaincode_example03
peer chaincode instantiate -o orderer.example.com:7050 -C onechannel -n chaincode_example03 -v 1.0 -c '{"Args":["init","a","100"]}'
peer chaincode invoke -C onechannel -n chaincode_example03 -v 1.0 -c '{"Args":["query","a","20"]}'
peer chaincode install -n chaincode_example04 -v 1.0 -p github.com/hyperledger/fabric/peer/chaincode/go/chaincode_example04
peer chaincode instantiate -o orderer.example.com:7050 -C onechannel -n chaincode_example04 -v 1.0 -c '{"Args":["init","a","100"]}'
peer chaincode invoke -C onechannel -n chaincode_example04 -v 1.0 -c '{"Args":["invoke","chaincode_example02","a","1","onechannel"]}'
peer chaincode query -C onechannel -n chaincode_example04 -v 1.0 -c '{"Args":["query","a"]}'
peer chaincode query -C onechannel -n chaincode_example04 -v 1.0 -c '{"Args":["query","a","chaincode_example02","a","onechannel"]}'
peer chaincode install -n chaincode_example05 -v 1.0 -p github.com/hyperledger/fabric/peer/chaincode/go/chaincode_example05
peer chaincode instantiate -o orderer.example.com:7050 -C onechannel -n chaincode_example05 -v 1.0 -c '{"Args":["init","a","100"]}'
peer chaincode invoke -C onechannel -n chaincode_example05 -v 1.0 -c '{"Args":["invoke","chaincode_example02","sum","onechannel"]}'
peer chaincode query -C onechannel -n chaincode_example05 -v 1.0 -c '{"Args":["query","chaincode_example02","sum",""]}'
export FABRIC_CFG_PATH=$PWD
configtxgen -outputCreateChannelTx ./anotherchannel.tx -profile TwoOrgsChannel -channelID anotherchannel
peer channel create -o orderer.example.com:7050 -c anotherchannel -f ./anotherchannel.tx peer channel join -b anotherchannel.block
peer chaincode install -n chaincode_example02 -v 1.0 -p github.com/hyperledger/fabric/peer/chaincode/go/chaincode_example02
peer chaincode instantiate -o orderer.example.com:7050 -C anotherchannel -n chaincode_example02 -v 1.0 -c '{"Args":["init","a","100","b","200"]}'
peer chaincode invoke -C onechannel -n chaincode_example05 -v 1.0 -c '{"Args":["invoke","chaincode_example02","sum","anotherchannel"]}'
go get -u github.com/kardianos/govendor
govendor init
govendor add +external
peer chaincode install -n enccc_example -v 1.0 -p github.com/hyperledger/fabric/peer/chaincode/go/enccc_example
peer chaincode instantiate -o orderer.example.com:7050 -C onechannel -n enccc_example -v 1.0 -c '{"Args":["init"]}'
ENCKEY=openssl rand 32 -base64
&& DECKEY=$ENCKEY
peer chaincode invoke -n enccc_example -C onechannel -c '{"Args":["ENCRYPT","key1","value1"]}' --transient "{"ENCKEY":"$ENCKEY"}"
peer chaincode query -n enccc_example -C onechannel -c '{"Args":["DECRYPT","key1"]}' --transient "{"DECKEY":"$DECKEY"}"
SIGKEY=openssl ecparam -name prime256v1 -genkey | tail -n5 | base64 -w0
&& VERKEY=$SIGKEY
peer chaincode invoke -n enccc_example -C onechannel -c '{"Args":["ENCRYPTSIGN","key3","value3"]}' --transient "{"ENCKEY":"$ENCKEY","SIGKEY":"$SIGKEY"}"
peer chaincode query -n enccc_example -C onechannel -c '{"Args":["DECRYPTVERIFY","key3"]}' --transient "{"DECKEY":"$DECKEY","VERKEY":"$VERKEY"}"
peer chaincode install -n map -v 1.0 -p github.com/hyperledger/fabric/peer/chaincode/go/map
peer chaincode instantiate -o orderer.example.com:7050 -C onechannel -n map -v 1.0 -c '{"Args":["init"]}'
peer chaincode invoke -C onechannel -n map -v 1.0 -c '{"Args":["put","a","200"]}'
peer chaincode invoke -C onechannel -n map -v 1.0 -c '{"Args":["put","b","600"]}'
peer chaincode invoke -C onechannel -n map -v 1.0 -c '{"Args":["remove","a"]}'
peer chaincode invoke -C onechannel -n map -v 1.0 -c '{"Args":["get","a"]}'
peer chaincode invoke -C onechannel -n map -v 1.0 -c '{"Args":["keys","",""]}'
peer chaincode invoke -C onechannel -n map -v 1.0 -c '{"Args":["query"]}'
peer chaincode invoke -C onechannel -n map -v 1.0 -c '{"Args":["history","b"]}'
peer chaincode install -n marbles02 -v 1.0 -p github.com/hyperledger/fabric/peer/chaincode/go/marbles02
peer chaincode instantiate -o orderer.example.com:7050 -C onechannel -n marbles02 -v 1.0 -c '{"Args":["init"]}'
peer chaincode invoke -C onechannel -n marbles02 -c '{"Args":["initMarble","marble1","blue","35","tom"]}'
peer chaincode invoke -C onechannel -n marbles02 -c '{"Args":["initMarble","marble2","red","50","tom"]}'
peer chaincode invoke -C onechannel -n marbles02 -c '{"Args":["initMarble","marble3","blue","70","tom"]}'
peer chaincode invoke -C onechannel -n marbles02 -c '{"Args":["transferMarble","marble2","jerry"]}'
peer chaincode invoke -C onechannel -n marbles02 -c '{"Args":["transferMarblesBasedOnColor","blue","jerry"]}'
peer chaincode invoke -C onechannel -n marbles02 -c '{"Args":["delete","marble1"]}'
peer chaincode query -C onechannel -n marbles02 -c '{"Args":["readMarble","marble1"]}'
peer chaincode query -C onechannel -n marbles02 -c '{"Args":["getMarblesByRange","marble1","marble3"]}'
peer chaincode query -C onechannel -n marbles02 -c '{"Args":["getHistoryForMarble","marble1"]}'
peer chaincode query -C onechannel -n marbles02 -c '{"Args":["queryMarblesByOwner","tom"]}'
peer chaincode query -C onechannel -n marbles02 -c '{"Args":["queryMarbles","{"selector":{"owner":"tom"}}"]}'
curl -i -X POST -H "Content-Type: application/json" -d "{"index":{"fields":["docType","owner"]},"name":"indexOwner","ddoc":"indexOwnerDoc","type":"json"}" http://192.168.1.143:5984/onechannel_marbles02/_index
curl -i -X POST -H "Content-Type: application/json" -d "{"index":{"fields":[{"size":"desc"},{"docType":"desc"},{"owner":"desc"}]},"ddoc":"indexSizeSortDoc", "name":"indexSizeSortDesc","type":"json"}" http://192.168.1.143:5984/onechannel_marbles02/_index
peer chaincode query -C onechannel -n marbles02 -c '{"Args":["queryMarbles","{"selector":{"docType":"marble","owner":"tom"}, "use_index":["_design/indexOwnerDoc", "indexOwner"]}"]}'
peer chaincode query -C onechannel -n marbles02 -c '{"Args":["queryMarbles","{"selector":{"docType":{"$eq":"marble"},"owner":{"$eq":"tom"},"size":{"$gt":0}},"fields":["docType","owner","size"],"sort":[{"size":"desc"}],"use_index":"_design/indexSizeSortDoc"}"]}'
peer chaincode install -n sleeper -v 1.0 -p github.com/hyperledger/fabric/peer/chaincode/go/sleeper
peer chaincode instantiate -o orderer.example.com:7050 -C onechannel -n sleeper -v 1.0 -c '{"Args":["2000"]}'
peer chaincode invoke -C onechannel -n sleeper -v 1.0 -c '{"Args":["put","a","avalue","2000"]}'
peer chaincode invoke -C onechannel -n sleeper -v 1.0 -c '{"Args":["get","a","2000"]}'