HyperLedger Fabric 1.4.3 单机 环境搭建

此文章所用 fabric为1.4.3   ubuntu1~16.04.10  go 1.11.5

 

一: 创建multipeer目录

cd $GOPATH/src/github.com/hyperledger/fabric

mkdir multipeer
cd multipeer

HyperLedger Fabric 1.4.3 单机 环境搭建_第1张图片

二:获取生成工具

下载fabric平台特定二进制文件

 

wget https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric/hyperledger-fabric/linux-amd64-1.4.3/hyperledger-fabric-linux-amd64-1.4.3tar.gz

 

解压:tar -zxvf hyperledger-fabric-linux-amd64-1.4.3.tar.gz

解压会发现一个bin和config文件 我们需要用到bin文件 , 将bin 文件放入multipeer 目录下

为bin 文件修改权限  :chmod -R 777 ./bin

HyperLedger Fabric 1.4.3 单机 环境搭建_第2张图片

三:准备生成证书和区块配置文件

准备 crypto-config.yaml和configtx.yaml 两个配置文件

HyperLedger Fabric 1.4.3 单机 环境搭建_第3张图片

四:生成公私钥和证书

./bin/cryptogen generate --config=./crypto-config.yaml
目录下会出现crypto-config文件夹
crypto-config会出现ordererOrganizations和peerOrganizations两文件夹




五:生成创世区块

mkdir channel-artifacts
./bin/configtxgen -profile TwoOrgsOrdererGenesis -outputBlock ./channel-artifacts/genesis.block

HyperLedger Fabric 1.4.3 单机 环境搭建_第4张图片

HyperLedger Fabric 1.4.3 单机 环境搭建_第5张图片

此命令中  ‘TwoOrgsOrdererGenesis’ 是configtx.yaml 文件中 Profiles参数下的 需要根据 个人 configtx.yaml里的配置来定义

在 channel-artifacts 文件夹中生产genesis.block 文件

 

 

六:生成应用通道交易配置文件:

指定使用 configtx.yaml 配置文件中的 TwoOrgsChannel 模板, 来生成新建通道的配置交易文件, TwoOrgsChannel 模板指定了 Org1 和 Org2 都属于后面新建的应用通道

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

HyperLedger Fabric 1.4.3 单机 环境搭建_第6张图片

此命令中与上一步一样,‘TwoOrgsChannel’ 是configtx.yaml 文件中 Profiles参数下的 需要根据 个人 configtx.yaml里的配置来定义

七:准备docker配置文件

准备 docker-compose-orderer.yaml 和 docker-compose-peer.yaml 两个 文件 

HyperLedger Fabric 1.4.3 单机 环境搭建_第7张图片

八:启动Fabric网络

并默认驱动程序创建网络

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

HyperLedger Fabric 1.4.3 单机 环境搭建_第8张图片

HyperLedger Fabric 1.4.3 单机 环境搭建_第9张图片

使用 docker ps -a  可以看到正在运行的 docker 有个 hyperledger/fabric-orderer 就说明 orderer 服务启动成功

 

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

HyperLedger Fabric 1.4.3 单机 环境搭建_第10张图片

HyperLedger Fabric 1.4.3 单机 环境搭建_第11张图片

启动peer服务的时候可以看到 docker 中其中了 hyperledger/fabric-peer和hyperledger/fabric-tools 两个镜像

网络启动顺序:首先启动 Orderer 服务节点,然后启动 Peer 节点

参数说明:

  • -f: 指定启动容器时用所使用的 docker-compose 配置文件。
  • -d: 指定是否显示网络启动过程中的实时日志信息,如果需要查看详细网络启动日志,则可以不提供此参数

 

九:启动cli容器

docker exec -it cli bash

 

十:创建channel

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

HyperLedger Fabric 1.4.3 单机 环境搭建_第12张图片

HyperLedger Fabric 1.4.3 单机 环境搭建_第13张图片

返回 Received block :0 说明创建成功。

 

<1. Peer加入Channel

peer channel join -b mychannel.block

可以通过 :   peer  channel list   查看是否添加成功

HyperLedger Fabric 1.4.3 单机 环境搭建_第14张图片   

<2 .  保存mychannel.block     

      先推出容器: exit
      docker cp xxxxxxxx:/opt/gopath/src/github.com/hyperledger/fabric/peer/mychannel.block /home/zzw-fabric/gopath/src/github.com/hyperledger/fabric/multipeer

      注:此处的xxxx 为本机的docker  dockr cp 的命令意思是,把自己在docker 容器里生产的 mychannel.block文件 保存早 服务器你刚建立的项目的位置,第一个路径是docker 容器里的路径,第二个路径是你本机的项目路径。

HyperLedger Fabric 1.4.3 单机 环境搭建_第15张图片

 

十一:安装部署只能合约

    <1   事先将合约放入 你的 chaincode/go目录下

HyperLedger Fabric 1.4.3 单机 环境搭建_第16张图片

  <2   安装智能合约  

     peer chaincode install -n mycc -p github.com/hyperledger/fabric/multipeer/chaincode/go -v 1.11.5

HyperLedger Fabric 1.4.3 单机 环境搭建_第17张图片

          注解: -p 是你docker环境里 链码的位置,路径从 github.com/ 开头 ,回车后,系统会自动加上 opt/gopath/src的路径  -v 链码的版本,  -n :自己定义的链码名称

  <3   查看是否安装成功:

    peer chaincode -C mychannel list --installed 看自己的链码是否安装成功,如下表示成功安装

HyperLedger Fabric 1.4.3 单机 环境搭建_第18张图片

     <3   实例化智能合约 

peer chaincode instantiate -o orderer.example.com:7050 --tls --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 -v 1.11.5 -c '{"Args":["init","a","100","b","200"]}' -P "OR ('Org1MSP.peer','Org2MSP.peer')"

 

<4    触发合约

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 basicInfo --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 -c '{"Args":["save","110115","{\"name\":\"zhangsan\",\"identity\":\"110114\",\"mobile\":\"18910012222\"}"]}'

HyperLedger Fabric 1.4.3 单机 环境搭建_第19张图片

你可能感兴趣的:(Hyperledger,Fabric)