【超级账本】Fabric介绍及其环境搭建(一)

目录

前言

1. fabric 介绍

1.1 fabric和以太坊的区别

1.2 身份管理介绍

1.3 账本:每个节点中都有

1.4 交易管理介绍

1.5 节点介绍

1.6 通道介绍--channel

2. fabric 环境搭建

2.1 安装虚拟机

2.2 安装必要配置

2.2.1换源

2.2.2 安装vim

2.2.3 安装python2.7 以及 python-pip2

2.2.5 安装go

2.2.6 安装docker

2.2.7 安装docker-compose

2.2.8 Fabric的Docker镜像下载

2.2.9 拉取fabric代码

最后

前言

我知道学习新事物的时候,环境总是最难的,很多人因为环境搭不好而放弃,这篇博客非常详细的说明了安装fabric的每一个步骤,我希望喜欢区块链的同学可以试一下~

在区块链的世界里面,超级账本的分量还是很重的~


哪一步安装不成功可以直接私聊我~


1. fabric 介绍

Hyperledger(超级账本)是Linux基金会旗下的项目,Fabric是Hyperledger项目里最早也是目前应用最广泛的区块链项目,最初由IBM开发,后来捐助给基金会。


是一个开源的企业级需要许可的分布式账本技术平台

是一个高度模块化和可配置架构(a,b,c)

支持不同组件的可插拔实现

智能合约支持多语言:go,java,node.js等

1.1 fabric和以太坊的区别


【超级账本】Fabric介绍及其环境搭建(一)

1.2 身份管理介绍

成员管理

注册服务:注册成功得到的是证书,不是用户名和密码

证书:签名认证

交易审计

1.3 账本:每个节点中都有

区块链(保存到本地磁盘中):


存储所有交易记录(tx array),也就是交易的链数据,tx里面存储读和写的数组

可以用来历史数据查询

每个区块中包含的数据有:blockHash, blockNum , txid

世界状态:


存储数据的最新状态

存储的是键值对,存储在当前节点的数据库中,默认数据库:level DB(couchdb 也可以,需配置)

链码模拟查询(chaincode simulation queries)

数据库中包含的数据有:txid,data,owner

1.4 交易管理介绍

部署交易:部署的是链码,给节点安装链码(chaincode)


调用交易:invoke


1.5 节点介绍

client:


进行交易管理


cli:shell命令

node.js:api实现

go sdk:api实现

java sdk:api实现

peer:


存储和同步账本数据:数据提交到某一个节点,然后从这个节点同步到其他节点,fabric自带的同步机制可以自动同步数据到其他节点

order:


排序和分发交易,排序为了解决双花问题,交易数据打包写入到区块中。

1.6 通道介绍–channel

一种共识服务提供的通讯机制,将peer和order连接到一起,形成一个具有保密性的通讯链路,也与账本状态紧密相连,不同通道中的数据互相独立,不共享,业务隔离,可以理解为一个分组,在同一个分组中的数据可以同步。


一个peer节点可以同时加入到不同的通道中,相当于一个人可以同时加入多个分组


2. fabric 环境搭建

2.1 安装虚拟机

可以随便在网上找到VM虚拟机来安装。


【超级账本】Fabric介绍及其环境搭建(一)【超级账本】Fabric介绍及其环境搭建(一)

选择下载的iso文件


【超级账本】Fabric介绍及其环境搭建(一)


然后随便搞搞这个,密码最好简单一点,我是用root

【超级账本】Fabric介绍及其环境搭建(一)



虚拟机名字可以整成Hadoop,位置最好不要放C盘,放其他大一点的盘,


【超级账本】Fabric介绍及其环境搭建(一)


然后一直按下一步就行了


【超级账本】Fabric介绍及其环境搭建(一)

然后等待安装完就行了。


进去之后


【超级账本】Fabric介绍及其环境搭建(一)

【超级账本】Fabric介绍及其环境搭建(一)

【超级账本】Fabric介绍及其环境搭建(一)

继续就可了

【超级账本】Fabric介绍及其环境搭建(一)

选择城市


【超级账本】Fabric介绍及其环境搭建(一)


【超级账本】Fabric介绍及其环境搭建(一)


密码就随便搞搞吧

【超级账本】Fabric介绍及其环境搭建(一)


然后就可以了

【超级账本】Fabric介绍及其环境搭建(一)

安装VMware Tools工具

点击虚拟机进行安装即可。然后重启一下就行了。


【超级账本】Fabric介绍及其环境搭建(一)


2.2 安装必要配置

2.2.1换源

我们先要换源

找到这个Software & Update【超级账本】Fabric介绍及其环境搭建(一)

找到自己想要换的源头 【超级账本】Fabric介绍及其环境搭建(一)

即可


2.2.2 安装vim

sudo apt-get install vim
sudo apt-get update

2.2.3 安装python2.7 以及 python-pip2

安装python2.7

【超级账本】Fabric介绍及其环境搭建(一)

查看版本

【超级账本】Fabric介绍及其环境搭建(一)

安装python-pip

【超级账本】Fabric介绍及其环境搭建(一)

查看版本

【超级账本】Fabric介绍及其环境搭建(一)

2.2.5 安装go

到go官网

【超级账本】Fabric介绍及其环境搭建(一)

下载完之后会是这样

【超级账本】Fabric介绍及其环境搭建(一)

解压到/usr/local

然后设置环境变量

【超级账本】Fabric介绍及其环境搭建(一)


使环境生效

source ~/.bashrc
go version

【超级账本】Fabric介绍及其环境搭建(一)

go就安装成功了!

2.2.6 安装docker

 sudo apt install docker
 sudo apt install docker.io

【超级账本】Fabric介绍及其环境搭建(一)

查看docker版本

docker version

【超级账本】Fabric介绍及其环境搭建(一)

但是会有下面的这个permission denied的问题,我们可以这样,添加权限组,不过注意要和你的用户名是一样的!

【超级账本】Fabric介绍及其环境搭建(一)


然后再看一次就好了。docker version就行了

【超级账本】Fabric介绍及其环境搭建(一)

查看docker运行状态,可以看到使 绿色的active (running)是正在运行中的。

【超级账本】Fabric介绍及其环境搭建(一)


2.2.7 安装docker-compose

然后创建一个docker目录

【超级账本】Fabric介绍及其环境搭建(一)

安装一个curl

【超级账本】Fabric介绍及其环境搭建(一)

然后执行下面这一条语句

curl -L https://get.daocloud.io/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` > ~/docker-compose

【超级账本】Fabric介绍及其环境搭建(一)

出现这个就行了~


然后在/usr/local/bin目录下设置权限!

【超级账本】Fabric介绍及其环境搭建(一)


2.2.8 Fabric的Docker镜像下载

查看docker镜像,然后发现docker里面是什么都没有的

【超级账本】Fabric介绍及其环境搭建(一)

我们先换源,建议是使用这个 daocloud的【超级账本】Fabric介绍及其环境搭建(一)

重启一起docker就行了。

【超级账本】Fabric介绍及其环境搭建(一)

然后依次运行下面的docker pull镜像,一行一行搞!不要全搞进去!

    docker pull hyperledger/fabric-tools:x86_64-1.0.0
    docker pull hyperledger/fabric-orderer:x86_64-1.0.0
    docker pull hyperledger/fabric-peer:x86_64-1.0.0
    docker pull hyperledger/fabric-couchdb:x86_64-1.0.0
    docker pull hyperledger/fabric-kafka:x86_64-1.0.0
    docker pull hyperledger/fabric-ca:x86_64-1.0.0
    docker pull hyperledger/fabric-ccenv:x86_64-1.0.0
    docker pull hyperledger/fabric-baseimage:x86_64-0.4.7
    docker pull hyperledger/fabric-javaenv:x86_64-1.0.0
    docker pull hyperledger/fabric-zookeeper:x86_64-1.0.0

是有点慢的。慢慢等吧~

然后下面这个也是修改标签为latest:

    docker tag hyperledger/fabric-tools:x86_64-1.0.0 hyperledger/fabric-tools 
    docker tag hyperledger/fabric-orderer:x86_64-1.0.0 hyperledger/fabric-orderer 
    docker tag hyperledger/fabric-peer:x86_64-1.0.0 hyperledger/fabric-peer 
    docker tag hyperledger/fabric-couchdb:x86_64-1.0.0 hyperledger/fabric-couchdb 
    docker tag hyperledger/fabric-kafka:x86_64-1.0.0 hyperledger/fabric-kafka 
    docker tag hyperledger/fabric-ca:x86_64-1.0.0 hyperledger/fabric-ca 
    docker tag hyperledger/fabric-ccenv:x86_64-1.0.0 hyperledger/fabric-ccenv 
    docker tag hyperledger/fabric-baseimage:x86_64-0.4.7 hyperledger/fabric-baseimage 
    docker tag hyperledger/fabric-javaenv:x86_64-1.0.0 hyperledger/fabric-javaenv
    docker tag hyperledger/fabric-zookeeper:x86_64-1.0.0 hyperledger/fabric-zookeeper

验证:docker images

这样就行了

【超级账本】Fabric介绍及其环境搭建(一)

2.2.9 拉取fabric代码

鉴于在虚拟机上面有点难git clone,所以我们可以在windows下进行下载,然后通过xftp6进行转移。


在github上搜索fabric

【超级账本】Fabric介绍及其环境搭建(一)

然后用xftp6

记得是上传到这个目录下面。记得改名字

【超级账本】Fabric介绍及其环境搭建(一)

然后进入这个 e2e_cli 的目录下。(这个workspace目录是多余的,我后来删掉了,不要有workspace这个目录,不然无法下载的。就像上面那张图的红色箭头的目录就行了)【超级账本】Fabric介绍及其环境搭建(一)

不过记得先要 chmod u+x network_setup.sh 给特权


然后执行 ./network_setup.sh up【超级账本】Fabric介绍及其环境搭建(一)

然后在这个目录下就可以看到了这些可执行文件了。不过要把这些文件cp 到go的bin目录下。

【超级账本】Fabric介绍及其环境搭建(一)


这里就大功告成了!


上一篇:从NNVM看2016年深度学习框架发展趋势


下一篇:avascript解汉诺塔问题