BSN区块链服务网络开发入门

部署链码到测试网络

小韦云科技-区块链+小程序+公众号+商城+分销+直播+企业官网+外贸电商-为您提供优质的开发服务-电话/微信联系:18123611282

与Fabric2.0相比,1.4.3版的Fabric没有链码的生命周期管理命令(peer lifecycle chaincode),因此我们不需要打包链码,可以直接进入peer进行链码安装

在上一节把测试网络启动好后,我们接下来需要进入cli容器终端

winpty docker exec -it cli bash

注意前面winpty,官方手册是不需要它的,因为官方默认是在liunx环境下操作,但我这边在windown10系统下操作,因此需要加上了winpty

要不精减测试网络的配置情况下,它会自动启动两个组织(Org1MSP和Org2MSP)和四个peer节点(peer0.org1,peer1.org1,peer0.org2,peer0.org2),我们需要同时在这四个peer节点上都安装链码(在2.0版本已经精减为两个节点,省事了不少)

先切换peer0.org1节点上安装链码

CORE_PEER_LOCALMSPID=Org1MSP
CORE_PEER_ADDRESS=peer0.org1.example.com:7051
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
#安装链码
peer chaincode install -n clockin -v 1.0 -p bsnBaseCC/

链码名称为clockin
版本号设为1.0
链码的路径为bsnBaseCC/,因为bsn提供的链码中包是这样引入的:"bsnBaseCC/bsnchaincode",因此我们的链码需要放置到$GOPATH/src/目录下,与github.com同排

安装成功后会提示:

接着我们继续在peer1.org1上安装链码

CORE_PEER_LOCALMSPID=Org1MSP
CORE_PEER_ADDRESS=peer1.org1.example.com:8051
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt

peer chaincode install -n clockin -v 1.0 -p bsnBaseCC/

在peer0.org2上安装链码

CORE_PEER_LOCALMSPID=Org2MSP
CORE_PEER_ADDRESS=peer0.org2.example.com:9051
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp
CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt

peer chaincode install -n clockin -v 1.0 -p bsnBaseCC/

在peer1.org2上安装链码

CORE_PEER_LOCALMSPID=Org2MSP
CORE_PEER_ADDRESS=peer1.org2.example.com:10051
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp
CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt

peer chaincode install -n clockin -v 1.0 -p bsnBaseCC/

在此过程中我们可以通过执行echo $CORE_PEER_ADDRESS来查看当前在哪个peer上操作,如最后执行完后我们可以看到当前的peer节点确实是peer1.org2

我们来定义一个常量,后面会用到,省得写一堆参数时看花眼

#排序节点的URL地址
export ORDERER_URL=orderer.example.com:7050
#排序节点的CA证书
export ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
#peer1节点的地址
export PEER0_ORG1_URL=peer0.org1.example.com:7051
#peer1节点证书
export PEER0_ORG1_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
#peer2节点的地址
export PEER0_ORG2_URL=peer0.org2.example.com:9051
#peer2节点的证书
export PEER0_ORG2_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt
#通道名称
export CHANNEL_NAME=mychannel
#链码名称
export CODE_NAME=clockin

在四个节点安装完链码后,我们就可以在通道上实例化链码(不用切换peer,在哪个节点上操作都是一样的,而且只需操作一次)

peer chaincode instantiate -o $ORDERER_URL --tls --cafile $ORDERER_CA -C $CHANNEL_NAME -n $CODE_NAME -v 1.0 -c '{"Args":["init"]}' -P "AND ('Org1MSP.peer','Org2MSP.peer')"

成功后

因为我们链码中有初始化一个叫user_1用户,因此我们来验证下是否实例化成功

peer chaincode query -C $CHANNEL_NAME -n clockin -c '{"Args":["GetValue","user_1"]}'

验证成功

本文由小韦云原创,转载请注明出处:https://bctos.cn/doc/10/1854,否则追究其法律责任

关键词:安装链码

广告位招商