【Hyperledger Fabric v2.2】官方示例程序fabcar之java智能合约安装
关于java的教程有点少,记录一下自己的安装过程,大多数都是官方文档上的网址如下:https://hyperledger-fabric.readthedocs.io/zh_CN/release-2.2/deploy_chaincode.html前提:需要根据官网教程安装好环境,下载fabric-samples系列文件网络为官方实例的test-network网络1、开启网络:cd fabric-sa
关于java的教程有点少,记录一下自己的安装过程,大多数都是官方文档上的
- 网址如下:
https://hyperledger-fabric.readthedocs.io/zh_CN/release-2.2/deploy_chaincode.html
前提:
- 需要根据官网教程安装好环境,下载fabric-samples系列文件
- 网络为官方实例的test-network网络
1、开启网络:
cd fabric-samples/test-network
2、关闭网络 (这条命令最后使用,只是写在前面)
docker stop logspout
docker rm logspout
./network.sh down
3、启动网络:creates a channel named mychannel
./network.sh up createChannel
最后输出如下 网络就成功了
========= Channel successfully joined===========
监听: 这个是用来查看安装智能合约中的一些日记记录的(应该是)
1、cd fabric-samples/test-network
2、启动监听:
cp ../commercial-paper/organization/digibank/configuration/cli/monitordocker.sh .
./monitordocker.sh net_test
开始部署链码
1、定位到java链码所在的文件夹
cd fabric-samples/chaincode/fabcar/java
2、安装 smart contract dependencies
./gradlew installDist
3、使用peer CLI创建一个chaincode包
cd ../../../test-network
export PATH=${PWD}/../bin:$PATH
(导入peer binaries,将这些二进制文件添加到CLI路径中)
export FABRIC_CFG_PATH=$PWD/../config/
4、创建chaincode包
peer lifecycle chaincode package fabcar.tar.gz --path ../chaincode/fabcar/java/build/install/fabcar --lang java --label fabcar_1
5、安装链码
1)peer0.org1.example.com
1、导入环境变量
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
2、安装链码install
peer lifecycle chaincode install fabcar.tar.gz
3、查询已安装的链码
peer lifecycle chaincode queryinstalled
4、导入链码id环境变量
export CC_PACKAGE_ID=fabcar1:69de748301770f6ef64b42aa6bb6cb291df20aa39542c3ef94008615704007f3
5、批准链码
peer lifecycle chaincode approveformyorg -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --channelID mychannel --name fabcar --version 1.0 --package-id $CC_PACKAGE_ID --sequence 1 --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
2)peer0.org2.example.com
1、环境变量
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_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
2、安装链码install
peer lifecycle chaincode install fabcar.tar.gz
3、查询已安装
peer lifecycle chaincode queryinstalled
4、导入环境变量
export CC_PACKAGE_ID=fabcar1:69de748301770f6ef64b42aa6bb6cb291df20aa39542c3ef94008615704007f3
5、批准链码
peer lifecycle chaincode approveformyorg -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --channelID mychannel --name fabcar --version 1.0 --package-id $CC_PACKAGE_ID --sequence 1 --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
3)提交链码
1、检查两个组织是否都approved
peer lifecycle chaincode checkcommitreadiness --channelID mychannel --name fabcar --version 1.0 --sequence 1 --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem --output json
2、提交链码:需要是组织管理员提交admin org1
peer lifecycle chaincode commit -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --channelID mychannel --name fabcar --version 1.0 --sequence 1 --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem --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
3、查询已提交链码
peer lifecycle chaincode querycommitted --channelID mychannel --name fabcar --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
4、看有没有启动链码容器
docker ps
6、调用链码
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":"initLedger","Args":[]}'
7、查询链码
peer chaincode query -C mychannel -n fabcar -c '{"Args":["queryAllCars"]}'
不报错就成功了~
更多推荐
所有评论(0)