Fabric2.0测试网络部署链码

1. 启动测试网络

1.1 进入test-network目录

cd test-network

1.2 启动测试网络

./network.sh up

1.3 创建通道并加入peer

./network.sh createChannel

1.4 部署链码 deployCC 二进制文件中有默认的链码

./network.sh deployCC

1.5 测试链码

首先确保自己位于test-network目录下,执行如下的方式来临时配置。

export PATH=${PWD}/../bin:$PATH

此外还需要配置一下config所在的目录。

export FABRIC_CFG_PATH=$PWD/../config/

这样准备工作就做好了。

设置如下的环境变量,可以使得你作为Org1来操作peer命令。

复制代码
# Environment variables for Org1

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

CORE_PEER_TLS_ROOTCERT_FILECORE_PEER_MSPCONFIGPATH两行指明了Org1的加密所用的信息。

可以使用如下的命令来查看channel的账本中的汽车列表,这个列表是刚才使用deployCC参数时添加的。

peer chaincode query -C mychannel -n fabcar -c '{"Args":["queryAllCars"]}'

当然chaincode也可以在网络中的某个成员想要转移或者更新资产的时候调用,利用如下的命令可以调用fabcar chaincode来修改账本中的某一辆车的拥有者。

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 fabcar --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":"changeCarOwner","Args":["CAR9","Dave"]}'

如果出现"Chaincode invoke successful. result: status:200 "的字样,说明更新成功。

为了查看调用是否成功,可以使用另一个chaincode的查询,这里我们可以利用Org2来执行peer命令进行查询,首先需要设置如下环境变量。

复制代码
# Environment variables for Org2

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
复制代码

然后可以使用如下命令来查看CAR9在账本中的情况。

peer chaincode query -C mychannel -n fabcar -c '{"Args":["queryCar","CAR9"]}'

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1nBzWspq-1593192296224)(./blog-pic/3.png)]

可以看到车辆已经被转移给了Dave,即刚才的更新成功了,说明:测试网络搭建完成

2. 部署新的链码

2.1 . 打包链码

本文章使用test-network提供的一个链码

进入test-network的上一级目录有chaincode的文件夹

cd ../chaincode

链码打包:创建一个打包文件(tar格式),其中包含Fabric链码以及一些元数据。

cd test-network

peer lifecycle chaincode package sacc.tar.gz --path ../chaincode/sacc/ --lang golang --label sacc_1

2.2 安装链码包

安装:将打包的Fabric链码文件安装在指定的peer节点上。和之前的版本一样, 只有需要接受链码调用的节点才需要安装链码。在这个节点,Fabric链码还不可用, 因为还没有提交到通道中。

peer lifecycle chaincode install ./sacc.tar.gz

注:测试网络有两个peer,每个peer都要执行一次安装链码包,切换peer用户可参考1.5中的测试链码

2.3查看链码安装情况

peer lifecycle chaincode queryinstalled

 2.4 审批链码

peer lifecycle chaincode approveformyorg -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls true --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem --channelID mychannel --name sacc --version 1 --init-required --package-id sacc_1:f18557d5390324c3f949bf0face6abfd40ac94d27ffb95bb9800a6631a41c858 --sequence 1

其中:sacc_1的值换成2.3 执行获取的值

2.5查看链码的审批状态

peer lifecycle chaincode checkcommitreadiness --channelID mychannel --name sacc --version 1 --sequence 1 --output json --init-required

 注:测试网络有两个peer,每个有peer都要审核链码,切换peer用户可参考1.5中的测试链码。查看链码的审批状态 都要显示true

 2.6提交链码

peer lifecycle chaincode commit -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls true --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem --channelID mychannel --name sacc --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 --version 1 --sequence 1 --init-required

 2.7查看链码的提交状态

peer lifecycle chaincode querycommitted --channelID mychannel --name sacc

2.8初始化链码

peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls true --cafile /root/fabric-samples/test-network/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n sacc --peerAddresses localhost:7051 --tlsRootCertFiles /root/fabric-samples/test-network/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses localhost:9051 --tlsRootCertFiles /root/fabric-samples/test-network/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt --isInit -c '{"function":"set","Args":["213"]}'

2.9调用链码的方法

set 方法

peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls true --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n sacc --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":"set","Args":["username1","test"]}'

 get 方法

peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls true --cafile /root/fabric-samples/test-network/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n sacc --peerAddresses localhost:7051 --tlsRootCertFiles /root/fabric-samples/test-network/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses localhost:9051 --tlsRootCertFiles /root/fabric-samples/test-network/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt -c '{"function":"get","Args":["username1"]}'

 

posted @ 2022-01-05 12:28  辉哥哥~  阅读(445)  评论(0编辑  收藏  举报