fabric 1.4.7 byfn.sh的手动部署过程

总体大纲:
1为每个节点生成证书文件
2生成系统通道的创世区块
3生成通道配置信息
4生成锚节点配置信息
5启动节点
6根据通道配置文件创建通道生成应用通道创世区块
7每个节点加入通道
8为组织更新锚节点
9指定节点安装链码
10指定节点实例化链码

具体实现:
1 生成数字证书和密钥

cd /opt/gopath/src/github.com/hyperledger/fabric/scripts/fabric-samples/first-network
../bin/cryptogen generate --config=./crypto-config.yaml

crypto-config.yaml 文件定义orderer组织 和Peer节点配置 生成的oederer组织个数 组织内的节点个数
在这里插入图片描述
2生成创世区块

 ../bin/configtxgen -profile TwoOrgsOrdererGenesis -channelID byfn-sys-channel -outputBlock ./channel-artifacts/genesis.block

configtx.yaml 文件定义通道配置信息、组织 peer节点的锚节点 多个可选的共识机制
在这里插入图片描述
3生成通道配置文件

../bin/configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID mychannel

在这里插入图片描述
4 更新锚节点配置信息

../bin/configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID mychannel -asOrg Org1MSP

在这里插入图片描述

../bin/configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org2MSPanchors.tx -channelID mychannel -asOrg Org2MSP

在这里插入图片描述
5启动docker-compose-cli.yaml文件

docker-compose -f docker-compose-cli.yaml up -d

在这里插入图片描述
执行docker ps,命令查看当前创建的镜像,如果orderer节点未启动 执行以下命令
在这里插入图片描述

docker-compose -f docker-compose-cli.yaml down --volumes --remove-orphans
docker rm -f $(docker ps -a | grep "hyperledger/*" | awk "{print \$1}")
docker volume prune

6进入cli后台操作

docker exec -it cli bash

7创建通道
根据通道配置信息创建通道 通道信息写在创世区块中
通道区块在链上表现形式为创世区块

 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/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem

在这里插入图片描述
8 通道配置信息拷贝一份到 channel-artifacts文件下

 cp mychannel.block ./channel-artifacts

此时网络中共有两个组织,每个组织下有两个节点
peer0.org1
peer1.org1
peer0.org2
peer1.org2
查看当前节点信息

env | grep CORE

peer0.org1加入通道

 peer channel join -b channel-artifacts/mychannel.block

切换到peer1.org1

source scripts/utils.sh
setGlobals 1 1

加入通道

 peer channel join -b channel-artifacts/mychannel.block

切换到peer0.org2

setGlobals 0 2

加入通道

 peer channel join -b channel-artifacts/mychannel.block

切换到peer1.org2

setGlobals 1 2

加入通道

 peer channel join -b channel-artifacts/mychannel.block

此时4个节点均加入通道
在这里插入图片描述
9更新锚节点
切换到peer0.org1

setGlobals 0 1

更新组织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

在这里插入图片描述
切换到peer0.org2

setGlobals 0 2

更新组织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

在这里插入图片描述
10 安装链码
切换到peer0.org1

setGlobals 0 1

安装链码

peer chaincode install -n mycc -v 1.0 -l golang -p github.com/chaincode/chaincode_example02/go/

切换到peer0.org2

setGlobals 0 2

安装链码

peer chaincode install -n mycc -v 1.0 -l golang -p github.com/chaincode/chaincode_example02/go/

在这里插入图片描述
执行docker images查看镜像
在这里插入图片描述
11 初始化链码
在org2.peer0上初始化链码并指定背书策略 需要两个组织同时背书才能完成交易

peer chaincode instantiate -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 mycc -l golang -v 1.0 -c '{"Args":["init","a","100","b","200"]}' -P 'AND ('\''Org1MSP.peer'\'','\''Org2MSP.peer'\'')'

在这里插入图片描述
在org1.peer0上查询验证
执行setGlobals 0 1 切换到peer0.org1验证

peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'

在这里插入图片描述
12 交易验证
根据背书策略需要两个组织共同背书才能完成交易

 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 mycc --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":["invoke","a","b","10"]}'

在这里插入图片描述
报错 peer0.org2.example.com无法连接的错误时 ,由于节点端口都是通过外部映射值7051端口 可修改上述交易语句中peer0.org2.example.com 的端口9051为7051
验证

peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'

在这里插入图片描述
13 加入新的节点。在新节点上安装链码
在peer1.org2上安装链码
切换到peer1.org2

setGlobals 1 2

安装链码

peer chaincode install -n mycc -v 1.0 -l golang -p github.com/chaincode/chaincode_example02/go/

在新结点上查询账本数据
在这里插入图片描述

介绍Hyperledger fabric的PPT(52页)
密码学笔记
区块链知识体系简介
部署 ipfs 网络 对接联盟链网络
Hyperledger fabric网络(多共识 多版本 多数据库 ca ) 封装接口sdk
Hyperledger Caliper 测试(多组织 多节点 多共识)
区块链浏览器
联系We-chat V : 18852897525

### 回答1: m3u8 1.4.7 0903.zip是一个文件压缩包,其中包含m3u8视频文件的播放器版本号为1.4.7,发布日期为0903。m3u8文件是一种基于HTTP Live Streaming(HLS)协议的视频文件格式,常见于在线视频播放网站上。m3u8文件本质是一个文本文件,其中包含了视频流数据的URL地址和播放时长等信息。通过使用m3u8视频播放器,用户可以使用一个网络浏览器或者其他应用程序来播放这些文件。该播放器版本号为1.4.7,代表着该版本已经经过多次升级更新,修复了一些可能存在的bug和问题。同时,0903表示该版本是在2009年3月发布的。在使用m3u8 1.4.7 0903.zip播放器时,用户需要先将文件解压缩,然后双击打开其对应的播放程序,即可开始播放m3u8视频文件。总之,m3u8 1.4.7 0903.zip是一个专门用于播放m3u8视频文件的软件包,可以帮助用户更加便捷地观看在线视频。 ### 回答2: m3u8 1.4.7 0903.zip是一个文件压缩包,其中包含了一个m3u8文件版本为1.4.7。m3u8文件是苹果公司提出的一种在线视频播放格式,适用于iOS和OS X系统。这种格式能够进行多码率自适应,让用户能够在不同网络环境下实现稳定的视频播放。在这个版本中,有可能加入了新的功能或者修复了之前版本中存在的bug。 这个压缩包可以通过解压缩软件进行解压,然后使用文本编辑器打开.m3u8文件进行编辑。在编辑文件时,需注意格式正确,否则会导致文件无法正常播放。除了m3u8文件,也有可能还有其他文件和文件夹,这些文件可能是辅助文件,也可以对视频播放起到重要的作用。 总的来说,m3u8 1.4.7 0903.zip是一个重要的视频播放格式文件,可以用于iOS和OS X系统上的视频播放。 解压缩后,用户可以编辑修改该格式文件以实现更好的视频播放效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值