由Linux基金会自主创建的开源区块链分布式账本Hyperledger Fabric目前已经发布1.2.0版本,下面我们将带着大家在Ubuntu 18.04系统下搭建自己的HyperLedger Fabric开发环境。Hyperledger Fabric项目着重于性能和可靠性,以及推动区块链和分布式账本技术的跨行业协作。Hyperledger Fabric 可用于全球供应链管理、金融交易、资产账和去中心化的社交网络等场景,但无意以此来构建一种加密货币。
1.安装curl 后面的步骤我们需要用到curl命令来下载安装脚本和其他文件,所以需要先安装curl,如果已经安装可略过。 没安装的运行以下命令安装: $ sudo apt install curl
2.安装docker-ce docker分两个怎么,分为docker-ce(社区版)和docker-ee(企业版)。作为穷人阶级代表的我,只能无奈选择使用社区版。在ubuntu操作系统上安装docker-ce,实际上docker官方提供了三种方式。 1].通过docker仓库安装 2].下载.deb包安装 3].通过安装脚本安装 在这里我们选择第3种方式进行安装。 第1步、使用curl下载安装脚本 $ curl -fsSL get.docker.com -o get-docker.sh $ ls get* get-docker.sh 第2步、执行脚本进行安装,这一步需要等待一阵时间。 $ sudo sh get-docker.sh 第3步、设置成非root用户也能执行docker,需要将普通用户加入docker组,我们当前的用户叫blockchain。 $ sudo usermod -aG docker blockchain 第4步、执行hello-world镜像,验证docker是否安装成功。如果看到 Hello from Docker! This message shows that your installation appears to be working 这句话表明安装成功了。 $ sudo docker run hello-world ...... 一堆提示信息 Hello from Docker! This message shows that your installation appears to be working correctly. .....一堆提示信息
3.安装docker-compose Compose 是 Docker 容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器。HyperLedger Fabric需要用到docker-compose,所以我们提前安装。 第1步、下载某个版本的docker-compose,下载到/usr/local/bin/docker-compose目录。更多版本请访问这里。 $ sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose 这里解释一下: uname -s 得到Linux,uname -m 得到x86_64。可在复制到命令行执行查看。 第2步、允许其他用户执行compose相关命令 $ sudo chmod +x /usr/local/bin/docker-compose 第3步、验证安装是否成功 $ docker-compose --version docker-compose version 1.21.2, build a133471
4.安装go 第1步、下载golang的tar包 $ wget https://storage.googleapis.com/golang/go1.10.3.linux-amd64.tar.gz 由于众所周知的原因,google相应的站点访问不了,我们得想其他办法。推荐从第三方镜像源下载golang的tar包,推荐镜像源地址,用浏览器打开网址,下载linux的tar包。同时还支持macOS、Windows平台。
第2步、解压tar包到/usr/local $ cd 下载 $ sudo tar -C /usr/local -xzf go1.10.3.linux-amd64.tar.gz 第3步、创建go目录 $ mkdir $HOME/go 第4步、用vi打开~./bashrc,配置环境变量 $ vi ~/.bashrc 增加下面的环境变量,保存退出 export GOROOT=/usr/local/go export GOBIN=$GOROOT/bin export PATH=$PATH:$GOBIN export GOPATH=$HOME/go 使环境变量立即生效 $ source ~/.bashrc 第5步、检测go是否安装好 $ go version go version go1.10.3 linux/amd64
5.安装并检测git $ sudo apt install git $ git version
6.下载fabric的引导脚本 先创建放置的目录,然后进入该目录,用curl下载脚本 $ cd ~ $ mkdir hyperledger-fabric $ cd hyperledger-fabric $ curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/release-1.2/scripts/bootstrap.sh -o bootstrap.sh $ ls bootstrap.sh
7.执行引导脚本 这一步通过运行脚本去安装fabric,并且会下载fabric-sample,而且还会摘取docker镜像。下载过程需要耗费比较长的时间。 $ cd ~/hyperledger-fabric/ sudo bash ./bootstrap.sh 1.2.0 1.2.0 0.4.10 下载完,可以执行docker images查看已经下载的docker相关镜像
8.添加环境变量 用vi打开~./bashrc $ vi ~/.bashrc 增加下面的环境变量,保存退出 export PATH=/home/blockchain/hyperledger-fabric/fabric-samples/bin:$PATH 使环境变量立即生效 $ source ~/.bashrc 检验环境变量是否成功 $ fabric-ca-client version fabric-ca-client: Version: 1.2.0 Go version: go1.10 OS/Arch: linux/amd64
9.创建和管理网络 第1步、执行 ./byfn.sh generate 命令生成相应的文件 $ cd ~/hyperledger-fabric/fabric-samples/first-network/ $ ./byfn.sh generate Generating certs and genesis block for channel 'mychannel' with CLI timeout of '10' seconds and CLI delay of '3' seconds Continue? [Y/n] Y proceeding ... ....... 其中byfn.sh为启动这个网络的启动脚本,启动脚本中除建立一个包含4个节点和1个Order service的网络外,还会启动一个容器用来执行脚本在channel中加入节点,部署和初始化chaincode,以及在部署的chaincode上执行交易。默认channel名称为mychannel,脚本程序会给网络实例生成数字证书和密钥;生成genesis block用来启动ordering service;一些用来配置channel的配置交易 第2步、执行 ./byfn.sh up 启动网络 $ ./byfn.sh up Starting for channel 'mychannel' with CLI timeout of '10' seconds and CLI delay of '3' seconds Continue? [Y/n] Y proceeding ... LOCAL_VERSION=1.2.0 DOCKER_IMAGE_VERSION=1.2.0 Creating network "net_byfn" with the default driver Creating volume "net_orderer.example.com" with default driver Creating volume "net_peer0.org1.example.com" with default driver Creating volume "net_peer1.org1.example.com" with default driver Creating volume "net_peer0.org2.example.com" with default driver Creating volume "net_peer1.org2.example.com" with default driver Creating peer0.org2.example.com ... done Creating orderer.example.com ... done Creating peer0.org1.example.com ... done Creating peer1.org1.example.com ... done Creating peer1.org2.example.com ... done Creating cli ... done START Build your first network (BYFN) end-to-end test Channel name : mychannel Creating channel... ....... 当我们看到START的时候,表示启动成功。 执行结束,显示END ========= All GOOD, BYFN execution completed =========== END 通过docker ps命令可以查看到节点的启动情况。
第3步、如果我们要停止网络,可以执行./byfn.sh down 命令来停止 $ ./byfn.sh down Stopping for channel 'mychannel' with CLI timeout of '10' seconds and CLI delay of '3' seconds Continue? [Y/n] Y proceeding ... Stopping cli ... done Stopping peer0.org1.example.com ... done Stopping peer1.org2.example.com ... done Stopping orderer.example.com ... done Stopping peer1.org1.example.com ... done Stopping peer0.org2.example.com ... done Removing cli ... done Removing peer0.org1.example.com ... done Removing peer1.org2.example.com ... done Removing orderer.example.com ... done Removing peer1.org1.example.com ... done Removing peer0.org2.example.com ... done Removing network net_byfn Removing volume net_orderer.example.com Removing volume net_peer0.org1.example.com Removing volume net_peer1.org1.example.com Removing volume net_peer0.org2.example.com Removing volume net_peer1.org2.example.com Removing volume net_peer0.org3.example.com WARNING: Volume net_peer0.org3.example.com not found. Removing volume net_peer1.org3.example.com WARNING: Volume net_peer1.org3.example.com not found.
10.总结 通过官方提供的引导脚本,我们可以快速的搭建好HyperLedger Fabric 1.2.0环境,前提是我们需要安装好docker-ce和docker-compose。另外官方给的引导脚本路径访问不了,因此我们可以直接去到HyperLedger Fabric的github上找到相应的脚本下载下来,然后再运行。
相关主题 |