安装文档位置:

https://github.com/hyperledger/fabric   fabric代码托管地址

https://hyperledger-fabric.readthedocs.io/en/latest/  在线文档地址

https://github.com/hyperledger/fabric/archive/v1.0.0.tar.gz fabric1.0.0源代码包地址

安装环境:

Vmware + CentOS7 64位 1611版本

安装前准备:

  • 安装配置好虚拟机,需要保证curl命令可用
  • 关闭centos自动升级,免得安装时提示yum被锁定

即将/etc/yum/pluginconf.d/langpacks.conf 中的 enable=1改为enable=0

sed -i 's/enabled=1/enabled=0/g' /etc/yum/pluginconf.d/langpacks.conf
yum update
  • 使用yum install 安装tree(方便查看目录结构),git(用于下载代码)
  • 安装docker和docker-compose

https://download.daocloud.io/  找到docker和docker-compose的安装指导。我们选择在线安装根据指导执行命令即可。版本更新后指导也会更新,安装时最好去网站上获取最新的命令

安装docker

sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
https://download.daocloud.io/docker/linux/centos/docker-ce.repo
sudo yum install -y -q --setopt=obsoletes=0 docker-ce-17.03.1.ce*
sudo systemctl enable docker
sudo systemctl start docker
sudo service docker status

docker --version

输出:Docker version 17.03.1-ce, build c6d412e

安装docker-compose

curl -L https://get.daocloud.io/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

docker-compose --version

输出:docker-compose version 1.12.0, build b31ff33

使用阿里云进行镜像加速(如果能翻墙就不用加速了)

https://dev.aliyun.com  注册一个帐号。然后查看Docker Hub 镜像站点。指导文档写的很清楚。拷贝其中的内容执行即可。内容如下:

https后面的应该是你自己的镜像地址

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://du8c1in9.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
  • 安装nodejs和NPM(需要V6 LTS版本。不支持V7或者V8)

https://nodejs.org   nodejs网站,可以下载安装包进行安装,这里下载了node-v6.11.0-linux-x64.tar.xz解压包

将这个包放到/opt/nodejs目录下,当作安装目录

进行解压:

cd /opt
mkdir nodejs
cd nodejs
curl -o node-v6.11.0-linux-x64.tar.xz https://nodejs.org/dist/v6.11.0/node-v6.11.0-linux-x64.tar.xz
xz -d node-v6.11.0-linux-x64.tar.xz
tar -xvf node-v6.11.0-linux-x64.tar

建立软连接,后续替换版本方便

ln -s /opt/nodejs/node-v6.11.0-linux-x64/bin/node /usr/local/bin/node
ln -s /opt/nodejs/node-v6.11.0-linux-x64/bin/npm /usr/local/bin/npm

也可以通过设置nodejs环境变量的方式,在/etc/profile文件的
             export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL 一行的上面添加如下内容:

#set for nodejs
export NODE_HOME=/opt/nodejs/node-v6.11.0-linux-x64
export PATH=$NODE_HOME/bin:$PATH

升级NPM工具,刷新会很慢。但好像不执行也没有什么问题

npm install npm@latest -g
  • 安装go语句环境

https://golang.org/dl/   go的主页下载地址,可以到这里寻找最新版本

cd /opt
mkdir golang
cd golang
curl -O https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz
tar -zxvf go1.8.3.linux-amd64.tar.gz
cd /opt
mkdir gopath

在/etc/profile中配置go的环境变量

export GOROOT=/opt/golang/go
export PATH=$GOROOT/bin:$PATH
export GOPATH=/opt/gopath

修改完source /etc/profile 刷新一下,使用 go version查看版本,也可以使用go env查看环境变量信息

下载fabric1.0.0源代码:

将源代码下载gopath下,go get命令会将源代码下载到/opt/gopath/src/github.com/hyperledger/fabric目录下

go get github.com/hyperledger/fabric

目录结构如下:

下载fabric-sample镜像并启动:

首先找一个目录做为临时安装目录,这里用的是/opt/fabricinstall.

从刚才的源代码目录拷贝安装脚本过来,并执行,运行脚本时,会下载一个bin目录,里边有后续部署时会用的工具

cp /opt/gopath/src/github.com/hyperledger/fabric/scripts/bootstrap-1.0.0-beta.sh /opt/fabricinstall/
cd /opt/fabricinstall/
sh bootstrap-1.0.0-beta.sh

执行后就要开始等待镜像下载了,下载完成后,可以用以下命令,查看下载的镜像

docker images | grep hyperledger*

用阿里镜像很快装完了,如果使用镜像需要加上版本号,这里自动转成了latest就不用输入版本号了。所以每个镜像都有两行。

准备运行e2e_cli的例子

进入release目录,尝试启动容器。cli会挂载一个代码目录,所以这里将代码拷贝到对应目录中。

cd /opt/fabricinstall/release/linux-amd64
./network_setup.sh up

如果容器已经生成了,可以使用如下命令清理后,在进行network_set.

docker stop $(docker ps -q) & docker rm $(docker ps -aq)

如果之前下载过别的版本的镜像,可以使用如下命令进行清理

docker rmi -f $(docker images -q)

出现以下字样,没有报错。估计是成功了。

可以通过docker ps查询启动的容器,启动前是没有任何容器的。

这个过程中会创建一个例子,并将需要的容器都拉起来

可以看到看到启动了三个mycc(系统给出的例子)  一个cli(工具) 一个orderer(选举)  四个peer(客户端)

当然这个过程也可以手工进行,后续会专门写一个文档讲解。

测试fabric功能

使用./network_setup.sh up 启动以后,再开一个shell窗口,通过cli进行一些相关的部署工作

登录容器

docker exec -it cli bash

登录成功后,会进入cli容器,显示:

root@a1a11dd0bf54:/opt/gopath/src/github.com/hyperledger/fabric/peer#

需要执行install和Instantiate

首先进行install

peer chaincode install -n devincc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02

接下来是Instantiate,也就是初始化实例,设置a账户有100元,b账户有200元。

peer chaincode instantiate -o orderer.example.com: --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem -C mychannel -n devincc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -c '{"Args":["init","a", "100", "b","200"]}' -P "OR ('Org1MSP.member','Org2MSP.member')"

执行成功后,查一下a账户的余额

peer chaincode query -C mychannel -n devincc -c '{"Args":["query","a"]}'

接下来a账户对b账户进行转账

转账成功后,查询一下b账户的余额,应该是210。  (也可以将下面的参数改成a账户,余额应该是90)

peer chaincode query -C mychannel -n devincc -c '{"Args":["query","b"]}'

fabric环境配置结束。

安装过程涉及到了镜像脚本,还有初始化的一些内容,会再开一个文档进行探讨。

最新文章

  1. PHP+MYSQL网站SQL Injection攻防
  2. 【荐】JavaScript编码风格
  3. Qt 文件处理
  4. Sql存储过程
  5. free一个无效指针
  6. hibernate--HQL语法与详细解释
  7. 【转】WMI使用的WIN32_类库名
  8. codeforces 336D Vasily the Bear and Beautiful Strings(组合数学)
  9. Python学习:基本概念
  10. 纯css美化单选、复选框
  11. java中你不知道的字符串知识!!!
  12. java web(二): servlet的简单使用和介绍
  13. centos7 Linux 安装jdk1.8
  14. redis 主从复制 [转]
  15. hdu 1072(BFS) 有炸弹
  16. BZOJ 5424: 烧桥计划
  17. XML-RPC简单使用
  18. Win7中安装EclipsePHP
  19. eclipse 设置文本模板中 insert variable... 函数 详解
  20. 由UI刷新谈到线程安全和Android单线程模型

热门文章

  1. GBT27930-2015电动汽车非车载传导式充电机与电池管理系统之间的通信协议
  2. msp430学习笔记-USART
  3. 关于class produre
  4. 让VCL的皮肤用在手机程序里 让安桌程序不山寨[转]
  5. &lt;亲测&gt;ubuntu 16.04 忘记root密码
  6. 基于单片机的Wifi温度湿度测量仪
  7. vc++post方式登录网站
  8. react表单事件和取值
  9. Web jsp开发学习——点击菜单页面切换
  10. 【ZZ】Linux常用指令