环境搭建
- 系统为ubuntu 16.04
GO
在 GO中文网下载linux的相应安装包
解压到 /usr/local 目录,并在 /usr/local/go 中创建Go目录树
(注意解压时要去安装包的目录)
tar -C /usr/local -xzf go1.11.linux-amd64.tar.gz
添加环境变量
vi ~/.bashrc
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
source ~/.bashrc
docker,docker compose
升级apt库
sudo apt-get update
允许https
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
添加GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
指定docker安装稳定版本
sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
安装 DOCKER CE
sudo apt-get update
sudo apt-get install docker-ce
安装docker-compose
curl -L https://github.com/docker/compose/releases/download/1.23.0-rc1/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
设置为可执行并添加到bin路径下
chmod +x /usr/local/bin/docker-compose
!!!!注意:若为非root用户,可添加docker权限给当前用户,使docker命令免sudo,避免后面运行网络时出现问题
添加docker group:
sudo groupadd docker
将当前用户添加到docker组:
sudo gpasswd -a ${USER} docker
重启docker服务:
sudo service docker restart
docker images & source code
通过此路径下载bootstrap.sh脚本
(如果不是root用户,请自己将此脚本中的docker命令前加上sudo,否则下载会出错)
安装docker加速器(不下的话会很慢)
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://.m.daocloud.io
chmod +x bootstrap.sh
运行脚本文件开始下载
./bootstrap.sh
这个bootstrap脚本所下载的东西
1.从github上克隆 hyperledger/fabric-samples并进入该目录,然后检出适当的版本
2.在fabric-samples目录下安装特定平台的 Hyperledger Fabric 二进制可执行文件 和配置文件
3.下载 指定版本的Hyperledger Fabric 的docker镜像
测试first-network网络
cd fabric-samples/first-network
执行 ./byfn.sh generate 命令生成相应的文件:
./byfn.sh generate

1.byfn.sh为启动这个网络的启动脚本
2.启动脚本中除建立一个包含4个节点和1个Order service的网络外,还会启动一个容器用来执行脚本在channel中加入节点,部署和初始化chaincode,以及在部署的chaincode上执行交易
3.默认channel名称为mychannel,脚本程序会给网络实例生成数字证书和密钥
4.生成genesis block用来启动ordering service
执行 ./byfn.sh up 启动网络
./byfn.sh up


查看节点启动情况
docker ps -a
执行./byfn.sh down 命令来停止网络
./byfn.sh down
总结
first-network通过脚本byfn.sh启动fabric,启动脚本后会建立4个节点peer,其中peer可以分为两种endorsing peer和anchor peer,其中leader peer可从orderer获取信息,并且组内广播给其他peer,其他peer可以不直接跟orderer打交道。
在这个网络中,一个endorsing peer和一个anchor peer组成一个org,共两个org组成了channel。每个channel拥有一个账本(存储在Orderer上),并共享给channel内的所有peer,每个channel中的peer都存储了一份拷贝。
网络运行过程:
把节点都加入channel中,org1和org2的anchor peer分别更新信息,两个org的anchor peer都安装链码。
实例化org2的链码,询问org1的anchor peer获得认可,向org1的anchor peer提出交易申请,交易成功。
把链码安装到org2的另一个peer,询问获得认可,把交易信息同步到节点中。
结束!
网友评论