Fabric-sample运行first-network

环境搭建

  • 系统为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

image.png

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

image.png
image.png

查看节点启动情况
docker ps -a

执行./byfn.sh down 命令来停止网络
./byfn.sh down

总结

first-network通过脚本byfn.sh启动fabric,启动脚本后会建立4个节点peer,其中peer可以分为两种endorsing peeranchor 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,询问获得认可,把交易信息同步到节点中。
结束!

你可能感兴趣的:(Fabric-sample运行first-network)