fabric网络搭建

通用命令

进入终端1
docker exec -it cli1 bash
进入终端2
docker exec -it cli2 bash
退出终端
exit

关闭网络并清除配置
docker-compose down -v


命令执行顺序

通道操作

创建通道
peer channel create -o orderer.example.com:7050 -c mychannel -f ./channel-artifacts/channel.tx --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/msp/tlscacerts/tlsca.example.com-cert.pem

cli1加入通道
peer channel join -b mychannel.block

将区块文件复制到cli2
exit

docker cp cli1:/opt/gopath/src/github.com/hyperledger/fabric/peer/mychannel.block ./

docker cp ./mychannel.block cli2:/opt/gopath/src/github.com/hyperledger/fabric/peer

cli2加入通道
peer channel join -b mychannel.block

设置锚节点
组织1
peer channel update -o orderer.example.com:7050 -c mychannel -f ./channel-artifacts/Org1MSPanchors.tx --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
组织2
peer channel update -o orderer.example.com:7050 -c mychannel -f ./channel-artifacts/Org2MSPanchors.tx --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem

链码操作

首先从fabric-samples中复制一个链码到chaincode/go目录下以便测试
exit
cd /home/haonan/hyperledger/fabric-samples/chaincode/sacc
cp sacc.go /home/haonan/twonodes/chaincode/go/

回到工作目录,进入终端
cd /home/haonan/twonodes/chaincode/go/
docker exec -it cli1 bash

移动到链码路径
cd /opt/gopath/src/github.com/hyperledger/fabric-cluster/chaincode/go

配置go语言环境
go env -w GOPROXY=https://goproxy.cn,direct
go mod init
go mod vendor

返回工作目录
cd /opt/gopath/src/github.com/hyperledger/fabric/peer/

打包链码
peer lifecycle chaincode package sacc.tar.gz --path /opt/gopath/src/github.com/hyperledger/fabric-cluster/chaincode/go/ --label sacc_1

将打包链码复制到cli2
exit

docker cp cli1:/opt/gopath/src/github.com/hyperledger/fabric/peer/sacc.tar.gz ./

docker cp sacc.tar.gz cli2:/opt/gopath/src/github.com/hyperledger/fabric/peer

安装链码(两组织都需要)
peer lifecycle chaincode install sacc.tar.gz

组织批准链码(两组织都需要)
注意这里的package-id是安装链码时最后出现的id,每个人都不同需要更改为自己的id
peer lifecycle chaincode approveformyorg --channelID mychannel --name sacc --version 1.0 --init-required --package-id sacc_1:614c42c332c76568f8d4e839bd77a3b319796003f4e526c10aa907628fe5c541 --sequence 1 --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem

查看组织是否批准
peer lifecycle chaincode checkcommitreadiness --channelID mychannel --name sacc --version 1.0 --init-required --sequence 1 --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem --output json

提交commit(单个组织提交即可)
peer lifecycle chaincode commit -o orderer.example.com:7050 --channelID mychannel --name sacc --version 1.0 --sequence 1 --init-required --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem --peerAddresses peer0.org1.example.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses peer0.org2.example.com:9051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt

cli1链码调用
peer chaincode invoke -o orderer.example.com:7050 --isInit --ordererTLSHostnameOverride orderer.example.com --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n sacc --peerAddresses peer0.org1.example.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses peer0.org2.example.com:9051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt -c '{"Args":["a","bb"]}'

cli2链码查询
peer chaincode query -C mychannel -n sacc -c '{"Args":["query","a"]}'

cli2再次调用
peer chaincode invoke -o orderer.example.com:7050 --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n sacc --peerAddresses peer0.org1.example.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses peer0.org2.example.com:9051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt -c '{"Args":["set","a","cc"]}'

cli1链码查询
peer chaincode query -C mychannel -n sacc -c '{"Args":["query","a"]}'

区块链浏览器

首先启动上面搭建的区块链网络

随后启动区块链浏览器,移动到testbe目录下
docker-compose up -d

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Fabric是一个用于构建和管理区块链网络的开源平台。下面是搭建Fabric环境的步骤: 1. 安装DockerDocker Compose:Fabric使用Docker容器来运行网络组件,因此需要先安装DockerDocker Compose。 2. 下载Fabric二进制文件:从Fabric官方网站下载适用于您的操作系统的Fabric二进制文件。解压缩下载的文件。 3. 创建网络配置文件:在Fabric中,网络由多个组织和节点组成。您需要创建一个网络配置文件,定义组织、节点和通道等信息。可以使用Fabric提供的示例配置文件作为参考。 4. 生成证书和密钥:每个组织和节点都需要具有自己的证书和密钥。使用Fabric提供的工具生成证书和密钥,并将其放置在相应的目录中。 5. 编写Docker Compose文件:创建一个Docker Compose文件,定义要运行的容器和它们之间的连接。在文件中指定组织、节点、通道和链码等信息。 6. 启动网络:使用Docker Compose启动Fabric网络。执行命令`docker-compose up`,将会启动所有定义的容器。 7. 创建通道:使用Fabric提供的命令行工具创建一个通道,并将其加入到网络中的各个节点。 8. 安装链码:将链码安装到网络中的节点上。使用Fabric提供的命令行工具执行链码安装命令。 9. 实例化链码:使用Fabric提供的命令行工具实例化链码。实例化链码会在网络中的节点上启动链码容器,并将链码初始化为初始状态。 10. 运行应用程序:使用Fabric提供的SDK或API开发应用程序,并与Fabric网络进行交互。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值