Fabric1.1搭建

  1. 安装docker

yum -y install docker

查看 docker 版本 docker version

问题:Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

解决:因为docker服务没有启动,所以在相应的/var/run/ 路径下找不到docker的进程;执行 service docker start 命令,启动docker服务 就OK了。

启用docker官方中国区加速器:

vim /etc/sysconfig/docker

--registry-mirror=https://registry.docker-cn.com 加入这语句就好

service docker start 启动docker服务

2a79339dc741874cff3035192836d2b094c.jpg

  1. 安装docker-compose

yum -y install epel-release 安装第三方资源库

yum -y install python-pip 安装python第三方软件库

pip install --upgrade pip 更新pip

pip install docker-compose  pip安装docker-compose

问题:Collecting docker-compose(出现异常)? Could not find a version that satisfies the requirement docker-compose (from versions: ) No matching distribution found for docker-compose(6)?

解决:更换 安装docker-compose命令

pip --default-timeout=200 install -U docker-compose Collecting docker-compose

37302330001af177a6177a17e001d12e83b.jpg

  1. 安装go(如果已经安装就不用了)

wget https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz

下载go压缩包

tar -xvf go1.8.3.linux-amd64.tar.gz 解压

mv go /usr/local/ 可以自己选择放到哪里

mkdir /root/golang 创建存放fabric项目的文件夹

vim /etc/profile 配置环境变量

        export GOPATH=/root/golang

        export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin

source /etc/profile 刷新环境变量

  1. 下载fabnric1.1源码

wget https://github.com/hyperledger/fabric/archive/release-1.1.zip

把fabric压缩包放到刚刚创建的文件夹下面 /root/golang/

unzip release-1.1.zip 解压

mv fabric-release-1.1 fabric 修改文件夹名称为fabric

  1. fabric项目搭建

cd fabric

创建项目目录 mkdir fabric_project

cd scripts 进入文件执行 ./bootstrap.sh 下载bin (时间有点长,等待一下)

cp bin -r bin/ ../fabric_project/ 把bin文件夹复制到项目文件夹下面

到fabric目录下 复制私钥及证书文件配置文件到项目文件夹下面

cp examples/e2e_cli/configtx.yaml fabric_project/

cp examples/e2e_cli/crypto-config.yaml fabric_project/

在项目文件夹下面创建channel-artifacts文件夹,用来存放创世快文件、通道文件以及组织文件

在项目文件夹下面:

生成公钥、私钥、证书

./bin/cryptogen generate --config=./crypto-config.yaml

生成创世区块

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

生成Channel配置区块,通道id为mychannel,名字可以随意取,但是后面用到该通道时通道id需要与之一致

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

更新锚节点

./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

创建docker-orderer.yaml以及docker-peer.yaml两个启动文件,用来启动orderer服务以及ca、peer、cli、couchdb服务

 

docker-orderer.yaml 和docker-peer.yaml 是从 fabric/ examples/ e2e_cli/下面的docker-compose-e2e.yaml 分离出来的:如下

//=========================================================================================

512a37dbeaaa94e4a896dc4f557b6d055c3.jpg

cfae78e3d00e818a2ca1ce369c8d60e75b7.jpg

他具体的配置在包含的文件里面

里面是2组织4节点 但是我不知道啥意思

//=========================================================================================

order:如下截图

0e0c6aaa40b96e55caa658b01bff2aab83e.jpg

peer:如下截图

b21f124f6a6323c591db69eb53ee74947c0.jpg

a4d7589704e4ac33389c1d4ce5b8b06c48b.jpg

27fc630cde11ed0809da0e9961cb13f33f7.jpg

启动orderer和pee

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

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

======启动成功如下 docker ps -a 查询镜像服务=====

a4f2bb1d289bd2878c866be6fc50d6e7780.jpg

会有这些端口映射

进入客户端

docker exec -it cli bash

创建一个channel

peer channel create -o orderer.example.com:7050 -c mychannel  -f ./channel-artifacts/mychannel.tx

通过mychannel.block文件来加入该channel

peer channel join -b mychannel.block

安装智能合约

peer chaincode install -n tracegoods -p github.com/hyperledger/fabric/longlin/chaincode/go/trace_goods -v 1.0

初始化

peer chaincode instantiate -o orderer.example.com:7050 -C mychannel -n tracegoods -c '{"Args":["init","admin","admin"]}' -P "OR ('Org1MSP.member')" -v 1.0

查询

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

peer chaincode invoke -C mychannel -n tracegoods -c '{"Args":["addGoods","94cdaa8576314e6bb4277c11bc3f0492","mychannel1的商品1","2000","2018/12/12","admin"]}'

peer chaincode query -C mychannel -n tracegoods -c '{"Args":["queryAllGoods","admin","1","10"]}'

 

docker命令

docker stop $(docker ps -aq)

docker rm $(docker ps -aq)

docker rmi --force $(docker images | grep peer0.org1 | awk '{print $3}')

****************************************************问题:

如果中途有什么报错

docker logs -f ca 查询日志 ca 就是查看ca日志

 

********************严重问题:got unexpected status: SERVICE_UNAVAILABLE -- will not enqueue, consenter for this channel hasn't started yet

解决:删除旧证书,重新生成新证书文件

********错误:channel create configuration tx file not found open ./channel-artifacts/mychannel.tx: no such file or directory

解决:mychannel.tx 文件生成异常 删除channel-artifacts里面的所有文件重新生成

********问题:Error getting chaincode code chaincode: path to chaincode does

not exist: /opt/gopath/src/github.com/hyperledger/fabric/longlin/chaincode/go/chaincode_example02

       解决:修改上面 order/peer截图的地方

转载于:https://my.oschina.net/u/4128799/blog/3045991

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值