1、准备环境
在本文中本人用到的虚拟机环境是Centos7.5 64位,Hyperledger Fabric 版本v1.0。
2、设置网络环境
本教程将使用 Docker运行本地区块链网络,另外一种方式是从头构建 fabric,这种方式更容易理解fabric的核心组成部分以及运行流程,使用 Docker 构建的 Hyperledger Fabric 镜像以及运行更容易一些。
安装 Docker
Docker安装与卸载
卸载命令
yum remove docker
yum remove docker-selinux
安装命令
vi /etc/yum.repos.d/docker.repo
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
命令
yum install docker-engine
service docker start
docker version
Docker-Compose安装
curl -L https://github.com/docker/compose/releases/download/1.15.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-compose
cp /usr/local/bin/docker-compose /usr/bin
安装成功如下所示:
docker-compose --version
Go语言安装
curl -O https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.8.3.linux-amd64.tar.gz
修改/etc/profile文件:
export PATH=$PATH:/usr/local/go/bin
export GOPATH=/opt/gopath
source profile
go verion
下
载fabric:
mkdir -p $GOPATH/src/github.com/hyperledger
cd $GOPATH/src/github.com/hyperledger
git clone https://github.com/hyperledger/fabric.git
cd fabric/
git checkout release-1.0
下载fabric-samples
cd $GOPATH/src/github.com/hyperledger
git clone https://github.com/hyperledger/fabric-samples.git
目录结构如下:
cd fabric-samples/first-network
生成创世块和数字证书
./byfn.sh generate
整体成功如下所示:
测试部分:
手动测试一下Fabric网络
./network_setup.sh up
进入CLI(client)
docker exec -it cli bash
运行以下命令可以查询a账户的余额:
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
把a账户的余额再转20元给b账户,运行命令
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 -c '{"Args":["invoke","a","b","20"]}'
再查询一下a账户的余额,没问题的话,应该是只剩下70了。
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
参考资料:
http://hyperledger-fabric.readthedocs.io/en/latest/build_network.html
目前博客更新可能有点慢,欢迎大家邮件进行技术交流。