链码测试语句--封装接口、链码安装等、查看节点链码节点通道信息

共5个组织 org1,org2,org3,org4,org5
需要创建通道 channelmain、channelproduce、channelprocess、channellogistics
节点加入通道:
peer0.org1.example channelmain、channelproduce
peer1.org1.example channelproduce
peer0.org2.example channelmain、channelprocess
peer1.org2.example channelprocess
peer0.org3.example channelmain、channellogistics
peer1.org3.example channellogistics
peer0.org4.example channelmain
peer1.org4.example channelmain
peer0.org5.example channelmain
peer1.org5.example channelmain

需要安装的链码
producepub.producepri、processpub、processpri、logisticspub、logisticspri、main
节点安装链码:
peer0.org1.example producepub、producepri、main
peer1.org1.example producepub、producepri
peer0.org2.example processpub、processpri、main
peer1.org2.example processpub、processpri
peer0.org3.example logisticspub、logisticspri、main
peer1.org3.example logisticspub、logisticspri
peer0.org4.example main
peer1.org4.example main
peer0.org5.example main
peer1.org5.example main
所有操作命令中采用相对路径 ,均在balance-transfer目录下进行操作

1 对org1进行操作
注册新的用户 Jim ,获取对组织一节点进行操作的Token 值

curl -s -X POST http://localhost:4000/users -H "content-type: application/x-www-form-urlencoded" -d 'username=Jim&orgName=Org1'

获取Token值

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA0NjUsInVzZXJuYW1lIjoiSmlhIiwib3JnTmFtZSI6Ik9yZzEiLCJpYXQiOjE2MDU1Nzg0NjV9.9fO69FzCD468i2DVlPVDlDd5z7x6bfVBqojZlWLOhPw

创建通道 channelmain

curl -s -X POST \
  http://localhost:4000/channels \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA0NjUsInVzZXJuYW1lIjoiSmlhIiwib3JnTmFtZSI6Ik9yZzEiLCJpYXQiOjE2MDU1Nzg0NjV9.9fO69FzCD468i2DVlPVDlDd5z7x6bfVBqojZlWLOhPw"\
  -H "content-type: application/json" \
  -d '{
	"channelName":"channelmain",
	"channelConfigPath":"../artifacts/channel/channelmain.tx"
}'

创建通道channelproduce

curl -s -X POST \
  http://localhost:4000/channels \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA0NjUsInVzZXJuYW1lIjoiSmlhIiwib3JnTmFtZSI6Ik9yZzEiLCJpYXQiOjE2MDU1Nzg0NjV9.9fO69FzCD468i2DVlPVDlDd5z7x6bfVBqojZlWLOhPw"\
  -H "content-type: application/json" \
  -d '{
	"channelName":"channelproduce",
	"channelConfigPath":"../artifacts/channel/channelproduce.tx"
}'

加入通道channelmain

curl -s -X POST \
  http://localhost:4000/channels/channelmain/peers \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA0NjUsInVzZXJuYW1lIjoiSmlhIiwib3JnTmFtZSI6Ik9yZzEiLCJpYXQiOjE2MDU1Nzg0NjV9.9fO69FzCD468i2DVlPVDlDd5z7x6bfVBqojZlWLOhPw" \
  -H "content-type: application/json" \
  -d '{
	"peers": ["peer0.org1.example.com"]
}'

加入通道channelproduce

curl -s -X POST \
  http://localhost:4000/channels/channelproduce/peers \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA0NjUsInVzZXJuYW1lIjoiSmlhIiwib3JnTmFtZSI6Ik9yZzEiLCJpYXQiOjE2MDU1Nzg0NjV9.9fO69FzCD468i2DVlPVDlDd5z7x6bfVBqojZlWLOhPw" \
  -H "content-type: application/json" \
  -d '{
	"peers": ["peer0.org1.example.com","peer1.org1.example.com"]
}'

更新锚节点
为通道channelmain 中组织一更新锚节点

curl -s -X POST \
  http://localhost:4000/channels/channelmain/anchorpeers \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA0NjUsInVzZXJuYW1lIjoiSmlhIiwib3JnTmFtZSI6Ik9yZzEiLCJpYXQiOjE2MDU1Nzg0NjV9.9fO69FzCD468i2DVlPVDlDd5z7x6bfVBqojZlWLOhPw"\
  -H "content-type: application/json" \
  -d '{	
	"configUpdatePath":"../artifacts/channel/mainchannelanchors/Org1MSPanchors.tx"
}'

为通道channelproduce中组织一更新锚节点

curl -s -X POST \
  http://localhost:4000/channels/channelproduce/anchorpeers \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA0NjUsInVzZXJuYW1lIjoiSmlhIiwib3JnTmFtZSI6Ik9yZzEiLCJpYXQiOjE2MDU1Nzg0NjV9.9fO69FzCD468i2DVlPVDlDd5z7x6bfVBqojZlWLOhPw"\
  -H "content-type: application/json" \
  -d '{	
	"configUpdatePath":"../artifacts/channel/producechannelanchors/Org1MSPanchors.tx"
}'

2 对org2进行操作
注册新的用户 Tim ,获取对组织二节点进行操作的Token 值

curl -s -X POST http://localhost:4000/users -H "content-type: application/x-www-form-urlencoded" -d 'username=Tim&orgName=Org2'

获取Token值

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA1NTEsInVzZXJuYW1lIjoiSmliIiwib3JnTmFtZSI6Ik9yZzIiLCJpYXQiOjE2MDU1Nzg1NTF9.pr8xobpX1uYsaSfkb2y97Ip9ioNECiaHzFjykhJmENA

创建通道channelprocess

curl -s -X POST \
  http://localhost:4000/channels \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA1NTEsInVzZXJuYW1lIjoiSmliIiwib3JnTmFtZSI6Ik9yZzIiLCJpYXQiOjE2MDU1Nzg1NTF9.pr8xobpX1uYsaSfkb2y97Ip9ioNECiaHzFjykhJmENA"\
  -H "content-type: application/json" \
  -d '{
	"channelName":"channelprocess",
	"channelConfigPath":"../artifacts/channel/channelprocess.tx"
}'

加入通道channelmain

curl -s -X POST \
  http://localhost:4000/channels/channelmain/peers \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA1NTEsInVzZXJuYW1lIjoiSmliIiwib3JnTmFtZSI6Ik9yZzIiLCJpYXQiOjE2MDU1Nzg1NTF9.pr8xobpX1uYsaSfkb2y97Ip9ioNECiaHzFjykhJmENA" \
  -H "content-type: application/json" \
  -d '{
	"peers": ["peer0.org2.example.com"]
}'

加入通道channelprocess

curl -s -X POST \
  http://localhost:4000/channels/channelprocess/peers \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA1NTEsInVzZXJuYW1lIjoiSmliIiwib3JnTmFtZSI6Ik9yZzIiLCJpYXQiOjE2MDU1Nzg1NTF9.pr8xobpX1uYsaSfkb2y97Ip9ioNECiaHzFjykhJmENA" \
  -H "content-type: application/json" \
  -d '{
	"peers": ["peer0.org2.example.com","peer1.org2.example.com"]
}'

更新锚节点
为通道channelmain 中组织二更新锚节点

curl -s -X POST \
  http://localhost:4000/channels/channelmain/anchorpeers \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA1NTEsInVzZXJuYW1lIjoiSmliIiwib3JnTmFtZSI6Ik9yZzIiLCJpYXQiOjE2MDU1Nzg1NTF9.pr8xobpX1uYsaSfkb2y97Ip9ioNECiaHzFjykhJmENA"\
  -H "content-type: application/json" \
  -d '{	
	"configUpdatePath":"../artifacts/channel/mainchannelanchors/Org2MSPanchors.tx"
}'

为通道channelprocess中组织二更新锚节点

curl -s -X POST \
  http://localhost:4000/channels/channelprocess/anchorpeers \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA1NTEsInVzZXJuYW1lIjoiSmliIiwib3JnTmFtZSI6Ik9yZzIiLCJpYXQiOjE2MDU1Nzg1NTF9.pr8xobpX1uYsaSfkb2y97Ip9ioNECiaHzFjykhJmENA"\
  -H "content-type: application/json" \
  -d '{	
	"configUpdatePath":"../artifacts/channel/processchannelanchors/Org2MSPanchors.tx"
}'

3对org3进行操作
注册新的用户 Lim ,获取对组织三节点进行操作的Token 值

curl -s -X POST http://localhost:4000/users -H "content-type: application/x-www-form-urlencoded" -d 'username=Lim&orgName=Org3'

获取Token值

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA3MzEsInVzZXJuYW1lIjoiSmljIiwib3JnTmFtZSI6Ik9yZzMiLCJpYXQiOjE2MDU1Nzg3MzF9.xlI4VC09EKQ6XtN6_K-xcZDfskyCn7HE_XVfK0WUqGE

创建通道channellogistics

curl -s -X POST \
  http://localhost:4000/channels \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA3MzEsInVzZXJuYW1lIjoiSmljIiwib3JnTmFtZSI6Ik9yZzMiLCJpYXQiOjE2MDU1Nzg3MzF9.xlI4VC09EKQ6XtN6_K-xcZDfskyCn7HE_XVfK0WUqGE"\
  -H "content-type: application/json" \
  -d '{
	"channelName":"channellogistics",
	"channelConfigPath":"../artifacts/channel/channellogistics.tx"
}'

加入通道channelmain

curl -s -X POST \
  http://localhost:4000/channels/channelmain/peers \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA3MzEsInVzZXJuYW1lIjoiSmljIiwib3JnTmFtZSI6Ik9yZzMiLCJpYXQiOjE2MDU1Nzg3MzF9.xlI4VC09EKQ6XtN6_K-xcZDfskyCn7HE_XVfK0WUqGE" \
  -H "content-type: application/json" \
  -d '{
	"peers": ["peer0.org3.example.com"]
}'

加入通道channellogistics

curl -s -X POST \
  http://localhost:4000/channels/channellogistics/peers \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA3MzEsInVzZXJuYW1lIjoiSmljIiwib3JnTmFtZSI6Ik9yZzMiLCJpYXQiOjE2MDU1Nzg3MzF9.xlI4VC09EKQ6XtN6_K-xcZDfskyCn7HE_XVfK0WUqGE" \
  -H "content-type: application/json" \
  -d '{
	"peers": ["peer0.org3.example.com","peer1.org3.example.com"]
}'

更新锚节点
为通道channelmain 中组织三更新锚节点

curl -s -X POST \
  http://localhost:4000/channels/channelmain/anchorpeers \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA3MzEsInVzZXJuYW1lIjoiSmljIiwib3JnTmFtZSI6Ik9yZzMiLCJpYXQiOjE2MDU1Nzg3MzF9.xlI4VC09EKQ6XtN6_K-xcZDfskyCn7HE_XVfK0WUqGE"\
  -H "content-type: application/json" \
  -d '{	
	"configUpdatePath":"../artifacts/channel/mainchannelanchors/Org3MSPanchors.tx"
}'

为通道channellogistics中组织三更新锚节点

curl -s -X POST \
  http://localhost:4000/channels/channellogistics/anchorpeers \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA3MzEsInVzZXJuYW1lIjoiSmljIiwib3JnTmFtZSI6Ik9yZzMiLCJpYXQiOjE2MDU1Nzg3MzF9.xlI4VC09EKQ6XtN6_K-xcZDfskyCn7HE_XVfK0WUqGE"\
  -H "content-type: application/json" \
  -d '{	
	"configUpdatePath":"../artifacts/channel/logisticschannelanchors/Org3MSPanchors.tx"
}'

4对org4进行操作
注册新的用户 Kim ,获取对组织四节点进行操作的Token 值

curl -s -X POST http://localhost:4000/users -H "content-type: application/x-www-form-urlencoded" -d 'username=Kim&orgName=Org4'

获取Token值

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA4NTYsInVzZXJuYW1lIjoiSmlkIiwib3JnTmFtZSI6Ik9yZzQiLCJpYXQiOjE2MDU1Nzg4NTZ9.N6LtVzaovcceA6TVnn-ZTDE3Yy_ZmU3x0O7yTZijElA

加入通道channelmain

curl -s -X POST \
  http://localhost:4000/channels/channelmain/peers \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA4NTYsInVzZXJuYW1lIjoiSmlkIiwib3JnTmFtZSI6Ik9yZzQiLCJpYXQiOjE2MDU1Nzg4NTZ9.N6LtVzaovcceA6TVnn-ZTDE3Yy_ZmU3x0O7yTZijElA" \
  -H "content-type: application/json" \
  -d '{
	"peers": ["peer0.org4.example.com","peer1.org4.example.com"]
}'

更新锚节点
为通道channelmain 中组织四更新锚节点

curl -s -X POST \
  http://localhost:4000/channels/channelmain/anchorpeers \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA4NTYsInVzZXJuYW1lIjoiSmlkIiwib3JnTmFtZSI6Ik9yZzQiLCJpYXQiOjE2MDU1Nzg4NTZ9.N6LtVzaovcceA6TVnn-ZTDE3Yy_ZmU3x0O7yTZijElA"\
  -H "content-type: application/json" \
  -d '{	
	"configUpdatePath":"../artifacts/channel/mainchannelanchors/Org4MSPanchors.tx"
}'

5对org5进行操作
注册新的用户 Lim ,获取对组织五节点进行操作的Token 值

curl -s -X POST http://localhost:4000/users -H "content-type: application/x-www-form-urlencoded" -d 'username=Lim&orgName=Org5'

获取Token值

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzEwNDIsInVzZXJuYW1lIjoiSmllIiwib3JnTmFtZSI6Ik9yZzUiLCJpYXQiOjE2MDU1NzkwNDJ9.mpLxaKx4J3keyt8juGs5scp6pT-vIYu_GqBpOp8Qn10

加入通道channelmain

curl -s -X POST \
  http://localhost:4000/channels/channelmain/peers \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzEwNDIsInVzZXJuYW1lIjoiSmllIiwib3JnTmFtZSI6Ik9yZzUiLCJpYXQiOjE2MDU1NzkwNDJ9.mpLxaKx4J3keyt8juGs5scp6pT-vIYu_GqBpOp8Qn10" \
  -H "content-type: application/json" \
  -d '{
	"peers": ["peer0.org5.example.com","peer1.org5.example.com"]
}'

更新锚节点
为通道channelmain 中组织五更新锚节点

curl -s -X POST \
  http://localhost:4000/channels/channelmain/anchorpeers \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzEwNDIsInVzZXJuYW1lIjoiSmllIiwib3JnTmFtZSI6Ik9yZzUiLCJpYXQiOjE2MDU1NzkwNDJ9.mpLxaKx4J3keyt8juGs5scp6pT-vIYu_GqBpOp8Qn10"\
  -H "content-type: application/json" \
  -d '{	
	"configUpdatePath":"../artifacts/channel/mainchannelanchors/Org5MSPanchors.tx"
}'

安装链码
在这里插入图片描述
producepub 安装在 peer0.org1.example.com、peer1.org1.example.com

curl -s -X POST \
  http://localhost:4000/chaincodes \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA0NjUsInVzZXJuYW1lIjoiSmlhIiwib3JnTmFtZSI6Ik9yZzEiLCJpYXQiOjE2MDU1Nzg0NjV9.9fO69FzCD468i2DVlPVDlDd5z7x6bfVBqojZlWLOhPw" \
  -H "content-type: application/json" \
  -d '{
	"peers": ["peer0.org1.example.com","peer1.org1.example.com"],
	"chaincodeName":"producepub",
	"chaincodePath":"github.com/produce/producepub",
	"chaincodeType": "golang",
	"chaincodeVersion":"v0"
}'

实例化链码

curl -s -X POST \
  http://localhost:4000/channels/channelproduce/chaincodes \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA0NjUsInVzZXJuYW1lIjoiSmlhIiwib3JnTmFtZSI6Ik9yZzEiLCJpYXQiOjE2MDU1Nzg0NjV9.9fO69FzCD468i2DVlPVDlDd5z7x6bfVBqojZlWLOhPw" \
  -H "content-type: application/json" \
  -d '{
    "peers": ["peer0.org1.example.com"],
	"chaincodeName":"producepub",
	"chaincodeVersion":"v0",
	"chaincodeType": "golang",
	"args":["init"]
}'

执行addTraceinfo

curl -s -X POST \
  http://localhost:4000/channels/channelproduce/chaincodes/producepub \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA0NjUsInVzZXJuYW1lIjoiSmlhIiwib3JnTmFtZSI6Ik9yZzEiLCJpYXQiOjE2MDU1Nzg0NjV9.9fO69FzCD468i2DVlPVDlDd5z7x6bfVBqojZlWLOhPw" \
  -H "content-type: application/json" \
  -d '{
	"peers": ["peer0.org1.example.com"],
	"fcn":"addTraceinfo",
	"args":["1","111","corn,yhj,2020/11/9,plant"]
}'

执行readTraceinfo(curl的查询操作)

curl -s -X GET \
  "http://localhost:4000/channels/channelproduce/chaincodes/producepub?peer=peer0.org1.example.com&fcn=readTraceinfo&args=%5B%221%22%5D" \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA0NjUsInVzZXJuYW1lIjoiSmlhIiwib3JnTmFtZSI6Ik9yZzEiLCJpYXQiOjE2MDU1Nzg0NjV9.9fO69FzCD468i2DVlPVDlDd5z7x6bfVBqojZlWLOhPw" \
  -H "content-type: application/json"

执行queryTraceinfoByBatchNum

curl -s -X GET \
  "http://localhost:4000/channels/channelproduce/chaincodes/producepub?peer=peer0.org1.example.com&fcn=queryTraceinfoByBatchNum&args=%5B%22111%22%5D" \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA0NjUsInVzZXJuYW1lIjoiSmlhIiwib3JnTmFtZSI6Ik9yZzEiLCJpYXQiOjE2MDU1Nzg0NjV9.9fO69FzCD468i2DVlPVDlDd5z7x6bfVBqojZlWLOhPw" \
  -H "content-type: application/json"

producepri 安装在 peer0.org1.example.com 、peer1.org1.example.com

curl -s -X POST \
  http://localhost:4000/chaincodes \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA0NjUsInVzZXJuYW1lIjoiSmlhIiwib3JnTmFtZSI6Ik9yZzEiLCJpYXQiOjE2MDU1Nzg0NjV9.9fO69FzCD468i2DVlPVDlDd5z7x6bfVBqojZlWLOhPw" \
  -H "content-type: application/json" \
  -d '{
	"peers": ["peer0.org1.example.com","peer1.org1.example.com"],
	"chaincodeName":"producepri",
	"chaincodePath":"github.com/produce/producepri",
	"chaincodeType": "golang",
	"chaincodeVersion":"v0"
}'

实例化

curl -s -X POST \
  http://localhost:4000/channels/channelproduce/chaincodes \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA0NjUsInVzZXJuYW1lIjoiSmlhIiwib3JnTmFtZSI6Ik9yZzEiLCJpYXQiOjE2MDU1Nzg0NjV9.9fO69FzCD468i2DVlPVDlDd5z7x6bfVBqojZlWLOhPw" \
  -H "content-type: application/json" \
  -d '{
    "peers": ["peer0.org1.example.com"],
	"chaincodeName":"producepri",
	"chaincodeVersion":"v0",
	"chaincodeType": "golang",
	"args":["init"]
}'

main安装在peer0.org1.example.com

curl -s -X POST \
  http://localhost:4000/chaincodes \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA0NjUsInVzZXJuYW1lIjoiSmlhIiwib3JnTmFtZSI6Ik9yZzEiLCJpYXQiOjE2MDU1Nzg0NjV9.9fO69FzCD468i2DVlPVDlDd5z7x6bfVBqojZlWLOhPw" \
  -H "content-type: application/json" \
  -d '{
	"peers": ["peer0.org1.example.com"],
	"chaincodeName":"main",
	"chaincodePath":"github.com/main/main",
	"chaincodeType": "golang",
	"chaincodeVersion":"v0"
}'

实例化

curl -s -X POST \
  http://localhost:4000/channels/channelmain/chaincodes \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA0NjUsInVzZXJuYW1lIjoiSmlhIiwib3JnTmFtZSI6Ik9yZzEiLCJpYXQiOjE2MDU1Nzg0NjV9.9fO69FzCD468i2DVlPVDlDd5z7x6bfVBqojZlWLOhPw" \
  -H "content-type: application/json" \
  -d '{
    "peers": ["peer0.org1.example.com"],
	"chaincodeName":"main",
	"chaincodeVersion":"v0",
	"chaincodeType": "golang",
	"args":["init"]
}'

processpub 安装在 peer0.org2.example.com 、peer1.org2.example.com

curl -s -X POST \
  http://localhost:4000/chaincodes \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA1NTEsInVzZXJuYW1lIjoiSmliIiwib3JnTmFtZSI6Ik9yZzIiLCJpYXQiOjE2MDU1Nzg1NTF9.pr8xobpX1uYsaSfkb2y97Ip9ioNECiaHzFjykhJmENA" \
  -H "content-type: application/json" \
  -d '{
	"peers": ["peer0.org2.example.com","peer1.org2.example.com"],
	"chaincodeName":"processpub",
	"chaincodePath":"github.com/process/processpub",
	"chaincodeType": "golang",
	"chaincodeVersion":"v0"
}'

实例化链码

curl -s -X POST \
  http://localhost:4000/channels/channelprocess/chaincodes \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA1NTEsInVzZXJuYW1lIjoiSmliIiwib3JnTmFtZSI6Ik9yZzIiLCJpYXQiOjE2MDU1Nzg1NTF9.pr8xobpX1uYsaSfkb2y97Ip9ioNECiaHzFjykhJmENA" \
  -H "content-type: application/json" \
  -d '{
    "peers": ["peer0.org2.example.com"],
	"chaincodeName":"processpub",
	"chaincodeVersion":"v0",
	"chaincodeType": "golang",
	"args":["init"]
}'

processpri 安装在 peer0.org2.example.com、peer1.org2.example.com

curl -s -X POST \
  http://localhost:4000/chaincodes \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA1NTEsInVzZXJuYW1lIjoiSmliIiwib3JnTmFtZSI6Ik9yZzIiLCJpYXQiOjE2MDU1Nzg1NTF9.pr8xobpX1uYsaSfkb2y97Ip9ioNECiaHzFjykhJmENA" \
  -H "content-type: application/json" \
  -d '{
	"peers": ["peer0.org2.example.com","peer1.org2.example.com"],
	"chaincodeName":"processpri",
	"chaincodePath":"github.com/process/processpri",
	"chaincodeType": "golang",
	"chaincodeVersion":"v0"
}'

实例化:

curl -s -X POST \
  http://localhost:4000/channels/channelprocess/chaincodes \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA1NTEsInVzZXJuYW1lIjoiSmliIiwib3JnTmFtZSI6Ik9yZzIiLCJpYXQiOjE2MDU1Nzg1NTF9.pr8xobpX1uYsaSfkb2y97Ip9ioNECiaHzFjykhJmENA" \
  -H "content-type: application/json" \
  -d '{
    "peers": ["peer0.org2.example.com"],
	"chaincodeName":"processpri",
	"chaincodeVersion":"v0",
	"chaincodeType": "golang",
	"args":["init"]
}'

main安装在peer0.org2.example.com

curl -s -X POST \
  http://localhost:4000/chaincodes \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA1NTEsInVzZXJuYW1lIjoiSmliIiwib3JnTmFtZSI6Ik9yZzIiLCJpYXQiOjE2MDU1Nzg1NTF9.pr8xobpX1uYsaSfkb2y97Ip9ioNECiaHzFjykhJmENA" \
  -H "content-type: application/json" \
  -d '{
	"peers": ["peer0.org2.example.com"],
	"chaincodeName":"main",
	"chaincodePath":"github.com/main/main",
	"chaincodeType": "golang",
	"chaincodeVersion":"v0"
}'

执行addTraceinfo

curl -s -X POST \
  http://localhost:4000/channels/channelprocess/chaincodes/processpub \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA1NTEsInVzZXJuYW1lIjoiSmliIiwib3JnTmFtZSI6Ik9yZzIiLCJpYXQiOjE2MDU1Nzg1NTF9.pr8xobpX1uYsaSfkb2y97Ip9ioNECiaHzFjykhJmENA" \
  -H "content-type: application/json" \
  -d '{
	"peers": ["peer0.org2.example.com"],
	"fcn":"addTraceinfo",
	"args":["00","000","corn,yhj,2020/11/9,plant"]
}'

执行queryTraceinfoByBatchNum

curl -s -X GET \
  "http://localhost:4000/channels/channelprocess/chaincodes/processpub?peer=peer0.org2.example.com&fcn=queryTraceinfoByBatchNum&args=%5B%22111%22%5D" \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA1NTEsInVzZXJuYW1lIjoiSmliIiwib3JnTmFtZSI6Ik9yZzIiLCJpYXQiOjE2MDU1Nzg1NTF9.pr8xobpX1uYsaSfkb2y97Ip9ioNECiaHzFjykhJmENA" \
  -H "content-type: application/json"

logisticspub 安装在 peer0.org3.example.com、peer1.org3.example.com

curl -s -X POST \
  http://localhost:4000/chaincodes \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA3MzEsInVzZXJuYW1lIjoiSmljIiwib3JnTmFtZSI6Ik9yZzMiLCJpYXQiOjE2MDU1Nzg3MzF9.xlI4VC09EKQ6XtN6_K-xcZDfskyCn7HE_XVfK0WUqGE" \
  -H "content-type: application/json" \
  -d '{
	"peers": ["peer0.org3.example.com","peer1.org3.example.com"],
	"chaincodeName":"logisticspub",
	"chaincodePath":"github.com/logistics/logisticspub",
	"chaincodeType": "golang",
	"chaincodeVersion":"v0"
}'

实例化:

curl -s -X POST \
  http://localhost:4000/channels/channellogistics/chaincodes \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA3MzEsInVzZXJuYW1lIjoiSmljIiwib3JnTmFtZSI6Ik9yZzMiLCJpYXQiOjE2MDU1Nzg3MzF9.xlI4VC09EKQ6XtN6_K-xcZDfskyCn7HE_XVfK0WUqGE" \
  -H "content-type: application/json" \
  -d '{
    "peers": ["peer0.org3.example.com"],
	"chaincodeName":"logisticspub",
	"chaincodeVersion":"v0",
	"chaincodeType": "golang",
	"args":["init"]
}'

logisticspri 安装在 peer0.org3.example.com、peer1.org3.example.com

curl -s -X POST \
  http://localhost:4000/chaincodes \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA3MzEsInVzZXJuYW1lIjoiSmljIiwib3JnTmFtZSI6Ik9yZzMiLCJpYXQiOjE2MDU1Nzg3MzF9.xlI4VC09EKQ6XtN6_K-xcZDfskyCn7HE_XVfK0WUqGE" \
  -H "content-type: application/json" \
  -d '{
	"peers": ["peer0.org3.example.com","peer1.org3.example.com"],
	"chaincodeName":"logisticspri",
	"chaincodePath":"github.com/logistics/logisticspub",
	"chaincodeType": "golang",
	"chaincodeVersion":"v0"
}'

实例化:

curl -s -X POST \
  http://localhost:4000/channels/channellogistics/chaincodes \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA3MzEsInVzZXJuYW1lIjoiSmljIiwib3JnTmFtZSI6Ik9yZzMiLCJpYXQiOjE2MDU1Nzg3MzF9.xlI4VC09EKQ6XtN6_K-xcZDfskyCn7HE_XVfK0WUqGE" \
  -H "content-type: application/json" \
  -d '{
    "peers": ["peer0.org3.example.com"],
	"chaincodeName":"logisticspri",
	"chaincodeVersion":"v0",
	"chaincodeType": "golang",
	"args":["init"]
}'

main安装在peer0.org3.example.com

curl -s -X POST \
  http://localhost:4000/chaincodes \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA3MzEsInVzZXJuYW1lIjoiSmljIiwib3JnTmFtZSI6Ik9yZzMiLCJpYXQiOjE2MDU1Nzg3MzF9.xlI4VC09EKQ6XtN6_K-xcZDfskyCn7HE_XVfK0WUqGE" \
  -H "content-type: application/json" \
  -d '{
	"peers": ["peer0.org3.example.com"],
	"chaincodeName":"main",
	"chaincodePath":"github.com/main/main",
	"chaincodeType": "golang",
	"chaincodeVersion":"v0"
}'

执行addTraceinfo

curl -s -X POST \
  http://localhost:4000/channels/channellogistics/chaincodes/logisticspub \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA3MzEsInVzZXJuYW1lIjoiSmljIiwib3JnTmFtZSI6Ik9yZzMiLCJpYXQiOjE2MDU1Nzg3MzF9.xlI4VC09EKQ6XtN6_K-xcZDfskyCn7HE_XVfK0WUqGE" \
  -H "content-type: application/json" \
  -d '{
	"peers": ["peer0.org3.example.com"],
	"fcn":"addTraceinfo",
	"args":["00","000","corn,yhj,2020/11/9,plant"]
}'

执行queryTraceinfoByBatchNum

curl -s -X GET \
  "http://localhost:4000/channels/channellogistics/chaincodes/logisticspub?peer=peer0.org3.example.com&fcn=queryTraceinfoByBatchNum&args=%5B%22111%22%5D" \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA3MzEsInVzZXJuYW1lIjoiSmljIiwib3JnTmFtZSI6Ik9yZzMiLCJpYXQiOjE2MDU1Nzg3MzF9.xlI4VC09EKQ6XtN6_K-xcZDfskyCn7HE_XVfK0WUqGE" \
  -H "content-type: application/json"

main安装在peer0.org4.example.com、peer1.org4.example.com

curl -s -X POST \
  http://localhost:4000/chaincodes \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA4NTYsInVzZXJuYW1lIjoiSmlkIiwib3JnTmFtZSI6Ik9yZzQiLCJpYXQiOjE2MDU1Nzg4NTZ9.N6LtVzaovcceA6TVnn-ZTDE3Yy_ZmU3x0O7yTZijElA" \
  -H "content-type: application/json" \
  -d '{
	"peers": ["peer0.org4.example.com","peer1.org4.example.com"],
	"chaincodeName":"main",
	"chaincodePath":"github.com/main/main",
	"chaincodeType": "golang",
	"chaincodeVersion":"v0"
}'

执行queryTraceinfoByBatchNum

curl -s -X GET \
  "http://localhost:4000/channels/channelmain/chaincodes/main?peer=peer0.org4.example.com&fcn=queryTraceinfoByBatchNum&args=%5B%22111%22%5D" \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzA4NTYsInVzZXJuYW1lIjoiSmlkIiwib3JnTmFtZSI6Ik9yZzQiLCJpYXQiOjE2MDU1Nzg4NTZ9.N6LtVzaovcceA6TVnn-ZTDE3Yy_ZmU3x0O7yTZijElA" \
  -H "content-type: application/json"

main安装在peer0.org5.example.com、peer1.org5.example.com

curl -s -X POST \
  http://localhost:4000/chaincodes \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDgxNzEwNDIsInVzZXJuYW1lIjoiSmllIiwib3JnTmFtZSI6Ik9yZzUiLCJpYXQiOjE2MDU1NzkwNDJ9.mpLxaKx4J3keyt8juGs5scp6pT-vIYu_GqBpOp8Qn10" \
  -H "content-type: application/json" \
  -d '{
	"peers": ["peer0.org5.example.com","peer1.org5.example.com"],
	"chaincodeName":"main",
	"chaincodePath":"github.com/main/main",
	"chaincodeType": "golang",
	"chaincodeVersion":"v0"
}'

介绍Hyperledger fabric的PPT(52页)
密码学笔记
区块链知识体系简介
部署 ipfs 网络 对接联盟链网络
Hyperledger fabric网络(多共识 多版本 多数据库 ca ) 封装接口sdk
Hyperledger Caliper 测试(多组织 多节点 多共识)
区块链浏览器
联系We-chat V : 18852897525

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值