区块链 Hyperledger Fabric v1.0.0 环境搭建
前言:最近项目涉及到超级账本,在有些理论知识的基础上,需要整一套环境来。
这是一个特别要注意的事情,笔者之前按照网络上推荐,大部分都是推荐ubuntu系统的,于是下载Ubuntu系统(16.04.5和18.04都试试),遇到各种问题,一直不能成功,大概花了好多天,一直不成功,后来都要放弃了,但是心有不甘,又下载centos7,只花了一天,就成功了,所以在这里使用centos7系统。在这个还是要感谢各位大神的博客,感激之情溢于言表。
上个截图来表达喜悦的心情

这是一张成功的截图。
套话不多说,直接操作步骤。
1.下载VirtualBox
版本:5.2.20-125813(下载时最高版本)。
下载地址:https://www.virtualbox.org/

(这么快就更新了一版本嘛,无比尴尬)
具体安装步骤,百度一下。
2.下载镜像文件 centos.iso
版本号:CentOS-7-x86_64-DVD-1804.iso 和 CentOS-7-x86_64-Everything-1804.iso(笔者都有下载,使用的是CentOS-7-x86_64-Everything-1804)
下载地址:http://isoredirect.centos.org/centos/7/isos/x86_64/(当前连接显示所有版本及各种镜像连接)。
http://mirrors.aliyun.com/centos/7.5.1804/isos/x86_64/(笔者选择的是阿里的镜像,如果还有迅雷的话,下载十分迅速)。
安装:https://www.cnblogs.com/hihtml5/p/8217062.html(笔者根据大神提供的经验,尤其后面网络设置的,帮了大忙)。
网络:笔者使用的是有限网络。
要保证主机可以ping通虚拟机,同时虚拟机可以ping通‘www.baidu.com’(笔者一直实现不了虚拟机平通主机,但是不影响后续步骤)。
3.使用secureCRT连接虚拟机。
说明:笔者不太喜欢'右ctrl'键来切换鼠标在虚拟机和主机的位置,就用secureCRT连接虚拟机。其他人可以根据自己的喜欢,自行选择及忽略,是不是很人性化。
根据第二步骤的操作,主机可以ping通虚拟机,即可连接成功,如果还不行,可修改/etc/sysconfig/network-scripts/ifcfg-enp0s3。
登录虚拟机,笔者所有需要操作都在root用户,/root/目录下。之前使用Ubuntu时,就遇到这种情况,也是差些就成功了(惋惜万分)。
4.安装GO
4.1 下载go
下载指令:
[root@localhost ~] # wget https://storage.googleapis.com/golang/go1.9.linux-amd64.tar.gz
如果没有安装wget,需要先安装wget。命令:
[root@localhost ~] # yum install wget
等待下载完成..
4.2 解压
[root@localhost ~] # sudo tar -C /usr/local -xzf go1.9.linux-amd64.tar.gz
4.3配置环境变量
[root@localhost ~] # vi /etc/profile
在文件最底部,添加如下内容:
export PATH=$PATH:/usr/local/go/bin
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$HOME/go/bin
退出文件,保存生效。
[root@localhost ~] # source /etc/profile
4.4验证
笔者建议使用如下指令,更详细。
[root@localhost ~] # go env
效果如下图,则安装成功。

5.安装docker
由于操作过多,请按照步骤来。
5.1查看内河版本,要高于3.10。笔者下载的系统,刚好满足。查看指令如下:
[root@localhost ~] # uname -r
5.2 更新yum包,保证最新的。指令如下:
[root@localhost ~] # sudo yum update
5.3移除docker旧版本。(如果是新系统,可以忽略此步骤)。指令如下:
[root@localhost ~] # sudo yum remove docker docker-common docker-selinux docker-engine
5.4 安装需要的软件包。操作指令如下:
[root@localhost ~] # sudo yum install -y yum-utils device-mapper-persistent-data lvm2
5.5 设置镜像资源。指令如下:
[root@localhost ~] # sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
5.6 查看仓库所有docker版本,并选择特定版本安装。指令如下(如果没查询到可用版本,多试试5.6步骤):
[root@localhost ~] # yum list docker-ce --showduplicates | sort -r
输出如下图:

笔者在运行fabric网络时,就遇到一个问题(具体问题,忘记记录),百度了一下说是docker和docker-compose版本问题,所以笔者在这里推荐docker版本是:17.12.0-ce。
5.7 安装docker。指令如下:
[root@localhost ~] # sudo yum install 版本号 ## sudo yum install docker-ce-17.12.0.ce
5.8 验证是否安装成功(client和service都有显示)。指令如下:
[root@localhost ~] # docker version
如下显示:

5.9 启动 并且 加入开机启动。指令如下:
[root@localhost ~] # sudo systemctl start docker
[root@localhost ~] # sudo systemctl enable docker
5.10 添加阿里的镜像。指令如下:
[root@localhost ~] # yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
6.安装docker-compose
6.1 笔者使用pip安装。指令如下:
[root@localhost ~] # yum -y install epel-release
这个版本应该是8.*的,安装docker-compose需要升级到18.*
6.2安装组件python-pip。指令如下:
[root@localhost ~] # sudo yum -y install python-pip
pip
6.3 升级pip版本
[root@localhost ~] # pip install --upgrade pip
如下图显示:

6.4 安装docker-compose。笔者安装的是1.12.0版本。指令如下:
[root@localhost ~] # sudo pip install docker-compose==版本号 ##sudo pip install docker-compose==1.12.0
6.5验证。指令如下:
[root@localhost ~] # docker-compose version

7.docker run hello-world
到此docker和docker-compose已经安装完成,那么来试试一个hello-world吧。指令如下:
[root@localhost ~] # docker run hello-world
截图如下:


如果是第一次运行,会有下载hello-world 的过程,请耐心等待。(笔者已经运行过好多次,截图如上)。
docker 常用指令:
docker stats # 容器,状态
docker rm -f $(docker ps -aq) #清除容器内所有示例
... 等等(到目前就用到这两个指令,捂脸..)
8. Fabric资源及镜像下载
8.1 创建文件。如下图

8.2 git 下载Fabric。指令如下:
[root@localhost hyperledger] # git clone https://github.com/hyperledger/fabric.git
如果git不可用,下载git。指令如下:
[root@localhost hyperledger] # sudo yum install git
8.3设置资源版本号:v1.0.0
[root@localhost ~] # cd ~/go/src/github.com/hyperledger/fabric
[root@localhost fabric] # git checkout v1.0.0
8.4 Fabric Docker 镜像下载
[root@localhost ~] # cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli/
[root@localhost e2e_cli] # source download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0
8.5下载完成,查看镜像文件列表。指令如下:
[root@localhost e2e_cli] # docker images
如下图显示:

8.6 启动 Fabric 网络环境。指令如下:
[root@localhost e2e_cli] # ./network_setup.sh up
该脚本启动的服务解释如下(摘自网络):
编译生成Fabric公私钥、证书的程序,程序在目录:fabric/release/linux-amd64/bin 基于configtx.yaml生成创世区块和通道相关信息,并保存在channel-artifacts文件夹。 基于crypto-config.yaml生成公私钥和证书信息,并保存在crypto-config文件夹中。 基于docker-compose-cli.yaml启动1Orderer+4Peer+1CLI的Fabric容器。
稍等一会,出现文章开头的截图。再次截取,如果如下图显示,那就恭喜,你的网络也通了。

8.7另开session窗口。指令如下:
[root@localhost ~] # docker stats
容器显示截图如下:

8.8 网络关闭
新开session窗口。指令如下(如下指令可以先不执行,后续步骤会用到):
[root@localhost ~] # cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli/
[root@localhost e2e_cli] # ./network_setup.sh down
9.测试Fabric网络
9.1 新起session窗口,打开客户端。指令如下:
[root@localhost ~] # docker exec -it cli bash
进入目录下,如下图所示:

9.2查询a账户余额.。指令如下:
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
截图如下显示:

9.3转账。a 账户给 b 转 50:
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","50"]}'
查询余额,截图如下:
a账号余额:

到此,所有的步骤都结束了,可以执行 “8.7关闭网络”。
区块链 Hyperledger Fabric v1.0.0 环境搭建的更多相关文章
- Hyperledger Fabric(v1.2.0)代码分析1——channel创建
Hyperledger Fabric(v1.2.0)代码分析1--channel创建 0. e2e_cli Hyperledger Fabric提供了一个e2e的例子,该例中创建了一个基础的区块链网络 ...
- Hyperledger Fabric(v1.1.0)编译时遇到的问题
Hyperledger Fabric(v1.1.0)编译时遇到的问题 0. 编译过程的坑 编译时,按照如下顺序编译 make release,编译源码生成二进制文件 make docker,生成一系列 ...
- 使用docker加载已有镜像安装Hyperledger Fabric v1.1.0
背景 每次在新的服务器上安装Hyperledger Fabric网络时,通过fabric官方提供的脚本安装时,需要从网络上down下近10G的fabric相关镜像,这个过程是漫长及痛苦的,有时因网络问 ...
- Hyperledger Fabric 1.4 快速环境搭建
自己的硕士研究方向和区块链有关,工程上一直以IBM的Hyperledger Fabric为基础进行开发,对该项目关注也有两年了.目前迎来了Hyperledger Fabric v1.4,这也是Fabr ...
- 区块链Hyperledger Fabric 学习记录(一)开发环境搭建(ubuntu16.04/ubuntu18.04)
目录 Fabric开发环境搭建 更新说明 教程环境及软件版本 Docker 安装Docker 配置用户组 配置Aliyun Docker加速器 安装docker-compose Go 下载源码 安装源 ...
- Hyperledger Fabric v1.1.0安装记录(国内源版)
1. 安装虚拟机 虚拟机软件采用:VirtualBox 操作系统选择:Ubuntu 14.04 内存:4G CPU:2核 硬盘:20G 2.(可选)更改 ...
- HyperLedger Fabric 1.4 基础环境搭建(7)
学习了前面几章理论知识后,本章开始介绍实践操作,先介绍Fabric基础环境搭建,采用的操作系统为Centos 7 64位,依次介绍Docker安装.Docker-Compose安装.GO语言环境安装. ...
- [区块链] 带你进入Bitcoin开发 - 环境搭建
学习完区块链枯燥乏味的.高深的.必备的基础知识后,终于可以走上开发之路了!真是迫不及待啦!之后博客更新主要放在区块链的开发上,相信这才是大多数同学更加感兴趣的地方!学习过程从最经典的区块链鼻祖-比特币 ...
- 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
摘要: 全球开源区块链领域影响最为广泛的Hyperledger Fabric日前宣布了1.1版本的正式发布,带来了一系列丰富的新功能以及在安全性.性能与扩展性等方面的显著提升.阿里云容器服务区块链解决 ...
随机推荐
- java常用容器简要性能分析(List。Map。Set)
嗯,实习的时候看到这个,感觉蛮好,这里摘录学习,生活加油: 我曾经害怕别人嘲笑的目光,后来,发现他们的目光不会在我身上停留太久,人们更愿意把目光放在自己身上. 知乎上看到,讲给自己. List Lis ...
- [set]Codeforces 830B-Cards Sorting
Cards Sorting time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- sql-lib闯关1-10关
闯关之前我们需要搭建所需环境SQLi-Labs SQLi-Labs是一个专业的SQL注入练习平台,该平台包含了以下在测试场景中常见的注入类型: 1.报错注入(联合查询) 1)字符型 ...
- linux pdftk
部分内容来源网络,如有版权问题,请联系删除: http://xuqin.blog.51cto.com/5183168/1117780, http://blog.sina.com.cn/s/blog ...
- python之面向对象函数与方法,反射,双下方法
一.函数和方法 1.函数和方法的区别 函数: 全都是显性传参,手动传参,与对象无关 方法: 存在隐性传参,与对象有关 1.1通过函数名可以判断 len()就是函数 str.count()就是方法 de ...
- 热点 | 四月最佳Github项目库与最有趣Reddit热点讨论
来源:Analytics Vidhya 编译:磐石 [磐创AI导读]:Github是全球最大的开源代码社区,Reddit是最受大家欢迎的热点讨论交流平台.接下来磐创AI将为大家带来四月份Github最 ...
- 阿里开源首个移动AI项目,淘宝同款推理引擎
淘宝上用的移动AI技术,你也可以用在自己的产品中了. 刚刚,阿里巴巴宣布,开源自家轻量级的深度神经网络推理引擎MNN(Mobile Neural Network),用于在智能手机.IoT设备等端侧加载 ...
- Jmeter4.0接口测试之案例实战(七)
在前面的知识体系中介绍了Jmeter的基本应用,下来通过具体的案例来看Jmeter在接口测试中的具体案例实战部分. HTTP是基于应用层的协议,底层的网络传输层它不需要去关心,同时它是一个无状态的协议 ...
- mybatis简单项目
1,mybatis MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可 ...
- ubuntu查看并杀死自己之前运行的进程解决办法RuntimeError: CUDA error: out of memory
问题描述:在跑深度学习算法的时候,发现服务器上只有自己在使用GPU,但使用GPU总是会报RuntimeError: CUDA error: out of memory,这是因为自己之前运行的进程还存在 ...