创建fabric网络

目标

组织一个fabric网络,网络结构如下:
排序节点1个
组织个数2个,分别为go和cpp,每个组织分别有两个peer节点,用户个数为3
机构名称:Go学科、CPP
组织标识符:org_go、org_cpp
组织ID:OrgGoMSP、OrgCppMSP

1.生成fabric证书:fabric中的角色必须有证书

1.1 命令介绍
cryptogen --help
在这里插入图片描述

cryptogen showtemplate > crypto-config.yaml

1.2证书文件的生成-yaml
修改配置文件模板
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
使用命令生成证书文件
cryptogen generate --config=crypto-config.yaml
在这里插入图片描述

2.创世块文件和通道文件生成

2.1命令介绍
需要一个配置文件configtx.yaml 配置文件的名字是固定的,将first-network中的configtx.yaml进行复制修改
configtxgen --help
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
执行命令生成文件
-profile后的参数从configtx.yaml中的profiles
生成创世块文件
configtxgen -profile ItcastOrgsOrdererGenesis -outputBlock ./genesis.blockls
在当前目录下得到一个文件:genesis.block
在这里插入图片描述
生成通道文件
configtxgen -profile ItcastOrgsChannel -outputCreateChannelTx channel.tx -channelID itcastchannel
在这里插入图片描述
生成锚节点生成文件(操作是可选的)
configtxgen -profile ItcastOrgsChannel -outputAnchorPeersUpdate GoMAPanchors.tx -channelID itcastchannel -asOrg OrgGoMSP
在这里插入图片描述
configtxgen -profile ItcastOrgsChannel -outputAnchorPeersUpdate CppMAPanchors.tx -channelID itcastchannel -asOrg OrgCppMSP

在这里插入图片描述

3.docker-compose文件的编写

○docker-compose-cli.yaml ○docker-compose-base.yaml ○peer-base.yaml
3.1客户端角色需要使用的环境变量docker-compose-cli.yaml
在这里插入图片描述
3.2 orderer节点需要使用的环境变量peer-base.yaml
在这里插入图片描述
3.3 peer节点需要使用的环境变量peer-base.yaml
在这里插入图片描述
docker-compose -f docker-compose-cli.yaml down
docker-compose -f docker-compose-cli.yaml up -d
docker-compose -f docker-compose-cli.yaml ps
在这里插入图片描述
docker exec -it cli bash

4.通过客户端操作各节点

客户端对peer节点的操作流程:
a. 创建通道,通过客户端节点来完成
b. 将每个组织的每个节点都加入到通道中,由客户端来完成
一个客户端只能连接一个peer节点
c. 给每一个peer节点安装智能合约,链码
d. 对智能合约进行初始化,对应智能合约的init
只需要在任意节点初始化一次,数据会自动同步到各个组织各个节点
e. 对数据进行查询,读 对数据进行查询,写

4.1创建通道
在宿主机中 docker-compose ps
进入到客户端对应的容器中 docker exec -it cli /bin/bash
创建通道 peer channel create -o orderer.itcast.com:7050 -c itcastchannel -f ./channel-artifacts/channel.tx --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/itcast.com/msp/tlscacerts/tlsca.itcast.com-cert.pem
在这里插入图片描述
在这里插入图片描述
在当前工作目录生成文件:通道名.block
在这里插入图片描述
4.2节点加入通道
peer channel join -b itcastchannel.block
在这里插入图片描述
更改环境变量使客户端连接不同节点

4.3给每个节点安装智能合约,任意一个进行初始化
peer chaincode install -n testcc -v 1.0 -l golang -p github.com/chaincode

链码初始化
peer chaincode instantiate -o ordererr.itcast.com:7050 –tls ture --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/itcast.com/msp/tlscacerts/tlsca.itcast.com-cert.pem -C itcastchannel -n testcc -l golang -v 1.0 -c ‘{“Args”:[“int”,”a”,”100”,”b”,”200”]}’ -P “AND(‘OrgGoMSP.member’,’OrgCppMSP.member’)”
锚节点发生变换,才需要更新锚节点
查看 echo $CORE_PEER_ADDRESS

环境变量修改
对peer0.OrgGo的操作
保证客户端操作的使peer.OrgGo
echo $CORE_PEER_ADDRESS
将当前节点加入到通道中
peer channel join -b xxx.block
安装链代码
peer chaincode install [flags]
链代码初始化,做一次就足够
peer chaincode instantiate [flags]
查询、调用

对peer1.OrgGo的操作
	保证客户端操作的使peer.OrgGo
		echo $CORE_PEER_ADDRESS
		不是,需要修改环境变量
	将当前节点加入到通道中
		peer channel join -b xxx.block
	安装链代码
		peer chaincode install [flags]
	查询、调用

对peer0.OrgCpp的操作
	保证客户端操作的使peer.OrgGo
		echo $CORE_PEER_ADDRESS
		不是,需要修改环境变量
	将当前节点加入到通道中
		peer channel join -b xxx.block
	安装链代码
		peer chaincode install [flags]
	查询、调用

对peer1.OrgCpp的操作
	保证客户端操作的使peer.OrgGo
		echo $CORE_PEER_ADDRESS
		不是,需要修改环境变量
	将当前节点加入到通道中
		peer channel join -b xxx.block
	安装链代码
		peer chaincode install [flags]
	查询、调用
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值