手把手教你hyperledger fabric2.4测试网络安装链码

  • Post author:
  • Post category:其他




1.打包



1.1安装依赖

进入文件夹运行命令,生成vendor文件夹

GO111MODULE=on go mod vendor



1.2配置环境

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

如果运行

sudo peer

或是后面export失效可以按照下面的步骤进行调整:

首先是输入

sudo vim /etc/sudoers

,修改为

Defaults !env_reset

,然后再secure_path里添加fabric-samples/bin的位置。



1.3打包

peer lifecycle chaincode package fa.tar.gz --path ../chaincode/fabcar/go/ --lang golang --label fa_1.2

成功后再test-network文件夹下生成下面文件:

在这里插入图片描述



2.安装

使用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

安装链码:

sudo peer lifecycle chaincode install fa.tar.gz

查看安装情况

sudo peer lifecycle chaincode queryinstalled

结果如图:

在这里插入图片描述



3.提交修改

seq是指智能合约安装的次数,我这是第三此安装,所以设置为3。其它的设置容易理解不在这里解释了。

sudo peer lifecycle chaincode approveformyorg -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile /home/junze/Desktop/goproject/src/github.com/hyperledger/fabric/scripts/fabric-samples/test-network/organizations/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem --channelID mychannel --name fa --version 1.2 --package-id fa_1.2:c4605ff9cab07eef6912c45e4f507a91b44906bdd879f531cf939da9ce88cf83 --sequence 3

结果如图所示:

在这里插入图片描述

提交同意:

sudo peer lifecycle chaincode checkcommitreadiness --channelID mychannel --name fa --version 1.2 --sequence 3 --output json

可以看到Org1以及同意

在这里插入图片描述

接下来切换到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

运行:

sudo peer lifecycle chaincode approveformyorg -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile /home/junze/Desktop/goproject/src/github.com/hyperledger/fabric/scripts/fabric-samples/test-network/organizations/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem --channelID mychannel --name fa --version 1.2 --package-id fa_1.2:c4605ff9cab07eef6912c45e4f507a91b44906bdd879f531cf939da9ce88cf83 --sequence 3
sudo peer lifecycle chaincode checkcommitreadiness --channelID mychannel --name fa --version 1.2 --sequence 3 --output json

结果如图所示:

在这里插入图片描述

Ps.

sudo peer lifecycle chaincode checkcommitreadiness --channelID mychannel --name fa --version 1.2 --sequence 3

可以查询哪个组织同意了哪个没有。

然后重新提交合约定义(同意比例达标后,满足提交条件):

sudo peer lifecycle chaincode commit -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls true --cafile /home/junze/Desktop/goproject/src/github.com/hyperledger/fabric/scripts/fabric-samples/test-network/organizations/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem --channelID mychannel --name fa --peerAddresses localhost:7051 --tlsRootCertFiles /home/junze/Desktop/goproject/src/github.com/hyperledger/fabric/scripts/fabric-samples/test-network/organizations/peerOrganizations/org1.example.com/tlsca/tlsca.org1.example.com-cert.pem --peerAddresses localhost:9051 --tlsRootCertFiles /home/junze/Desktop/goproject/src/github.com/hyperledger/fabric/scripts/fabric-samples/test-network/organizations/peerOrganizations/org2.example.com/tlsca/tlsca.org2.example.com-cert.pem --version 1.2 --sequence 3

使用

sudo peer lifecycle chaincode querycommitted --channelID mychannel --name fa

查询结果



版权声明:本文为u012421101原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。