fabric环境搭建

前期准备
修改下载源(这里用阿里源,其它国内源自行查找)

#备份配置文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
#编辑配置文件(没有vim可以用gedit)
sudo vim /etc/apt/sources.list
#在配置文件开头添加以下内容
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
#更新一下
sudo apt-get update
sudo apt-get upgrade

安装vim

sudo apt-get install vim

安装git

sudo apt-get install git

安装curl

sudo apt-get install curl

安装wget

sudo apt-get install wget

环境准备
1.go语言环境
安装go1.11以及以上版本

cd ~ 
  • 下载

    wget https://golang.google.cn/dl/go1.15.6.linux-amd64.tar.gz
    

解压

tar -xzf go1.15.6.linux-amd64.tar.gz 

移动

sudo mv go /usr/local

 创建gopath目录

在home目录下创建go文件夹,用于存放go项目源码。

#配置GO的环境变量  

sudo vim ~/.bashrc
或者
sudo gedit ~/.bashrc

​#在文末添加以下内容
export PATH=$PATH:/usr/local/go/bin
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
#环境变量生效
source ~/.bashrc

更换Go代理
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.io,direct

#查看GO版本(若无GO的版本信息,尝试在~/.profile中添加GO路径,操作类似)
cd ~
go version

2.Docker-ce安装

依次执行以下命令进行安装

#卸载旧版本Docker
sudo apt-get remove docker  docker-engine docker.io
#安装必要的系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
#安装GPG证书
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
sudo apt-get update
sudo apt-get install -y docker-ce

启动docker:

sudo service docker start

使docker开机自启动:

sudo systemctl enable docker

检查

docker

将需要使用docker的用户加入docker用户组

sudo groupadd docker
sudo usermod -aG docker $USER
sudo mkdir -p /etc/docker
#编辑/etc/docker/daemon.json
sudo gedit /etc/docker/daemon.json
#在文件中添加以下内容(这里用的阿里云的镜像地址,其它自行百度)
{
  "registry-mirrors": [
    "https://6kx4zyno.mirror.aliyuncs.com"
  ]
}
#重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker
#查看docker版本
docker version
#授权
sudo chmod -R 777 /var/run/docker.sock

安装Docker-Compose

安装python-pip命令

sudo apt-get install python-pip

错误:

解决:

sudo apt-get install aptitude
sudo aptitude install python-pip  (先n后y)
python -m pip install --upgrade pip

然后使用如下命令安装docker-compose:

sudo pip install docker-compose

查看版本:

docker-compose –version

(如果安装docker-compose报错了)

sudo curl -L https://github.com/docker/compose/releases/download/1.27.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose
docker-compose --version

Fabric环境搭建

  1. 在GOPATH目录下创建Hyperledger目录:
sudo mkdir -p $GOPATH/src/github.com/hyperledger 

进入相对应的目录,输入命令:

cd $GOPATH/src/github.com/hyperledger


然后从网上下载fabric源码,执行命令:

首先先给GPATH路径解锁:

sudo chmod -R 777 $GOPATH 

下载

git clone https://github.com/hyperledger/fabric.git

如果慢,可以用gitee

git clone https://gitee.com/hyperledger/fabric.git

切换到指定版本版本

cd fabric

git checkout v2.2.1

进入cd scripts目录执行  ./bootstrap.sh

cd scripts
 ./bootstrap.sh

这时scripts目录里应出现bin,config,fabric-sample三个文件夹

但是我没有出现fabric-sample,于是去Tags · hyperledger/fabric-samples · GitHub官网直接下载对应版本添加到目录里,并且把scripts目录里的bin,config,复制到fabric-sample文件里。

测试网络

cd fabric-samples/test-network
启动测试网络
./network.sh up
使用完测试网络后,可执行以下命令关闭网络:
./network.sh down

链码案例——basic

1、部署链码basic

进入 test-network 目录

cd $GOPATH/src/github.com/hyperledger/fabric/scripts/fabric-samples/test-network
执行以下命令:
启动网络
./network.sh up

创建通道(创建成功后默认名称为 mychannel)
./network.sh createChannel


在test-network目录下启动链码:

./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-go -ccl go
-ccn:为指定链码名称
-ccl:为指定链码语言

网络交互

执行以下命令将 cli 客户端添加到环境变量中:

还需要将 fabric-samples 代码库中的 FABRIC_CFG_PATH 设置为指向其中的 core.yaml 文件:

export PATH=${PWD}/../bin:$PATH
export FABRIC_CFG_PATH=$PWD/../config/


设置允许 org1 操作 peer cli 的环境变量:


export CORE_PEER_TLS_ENABLED=true
export CORE_PEER_LOCALMSPID="Org1MSP"
export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
export CORE_PEER_ADDRESS=localhost:7051


CORE_PEER_TLS_ROOTCERT_FILE 和 CORE_PEER_MSPCONFIGPATH 环境变量指向 Org1 的 organizations 文件夹中的的加密材料。

执行以下命令用一些资产来初始化账本:

peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem" -C mychannel -n basic --peerAddresses localhost:7051 --tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt" --peerAddresses localhost:9051 --tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt" -c '{"function":"InitLedger","Args":[""]}'

执行成功会返回 Chaincode invoke successful. result: status:200

执行以下指令来查询通道账本中的资产列表:

peer chaincode query -C mychannel -n basic -c '{"Args":["GetAllAssets"]}'

调用链码进行资产转移:

peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem" -C mychannel -n basic --peerAddresses localhost:7051 --tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt" --peerAddresses localhost:9051 --tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt" -c '{"function":"TransferAsset","Args":["asset6","Christopher"]}'

学习Fabric(一):fabric2.2环境搭建和测试网络-CSDN博客

查询:

peer chaincode query -C mychannel -n basic -c '{"Args":["ReadAsset","asset6"]}'
  • 1

至此测试网络结束,执行关闭网络:

sudo ./network.sh down

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

以前的

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

下载执行脚本,此脚本用来自动化下载 fabric 镜像、程序和测试网运行脚本等工具:

wget https://gitee.com/real__cool/fabric_install/raw/main/bootstrap.sh

给脚本添加执行权限:

$ chmod +x bootstrap.sh

执行脚本,指定下载 v1.4.0 版本的相关工具:

./bootstrap.sh 1.4.4 1.4.4

将这些程序复制到 GOPATH/bin 路径下以供之后的开发使用:

$ cp fabric-samples/bin/* $GOPATH/bin

3. 运行一个简单的 byfn 测试网

fabric-samples 目录下包含多个测试用例,最简单的测试用例即为 first-network 下的 byfn.sh 脚本的测试网络:

cd fabric-samples/first-network
./byfn.sh up
./byfn.sh down

./byfn.sh up报错!!!!!!!!!!!!!!! Channel creation failed !!!!!!!!!!!!!!!!

解决:

用vi打开~./bashrc

vi ~/.bashrc

增加下面的环境变量,保存退出

export PATH=$PATH:$GOPATH/src/github.com/hyperledger/fabric-samples/bin

使环境变量立即生效

source ~/.bashrc

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值