飞短流长网

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

【超级账本】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
链的状况“链”是信任的锚点,所有的介绍及信任都来自于同一条链每个智能合约可以创建新的链,也可以和其他智能合约共用一个链
合约环境有自己的环境沙盒执行环境(EVM)使用了 Docker 机制实现智能合约
合约语言soliditygo,java,搭建nodejs
总体性能自身耦合度较高灵活性更高,更像一个区块链云服务平台,能够让用户在这平台上,使用各个模块创建一个个链,进而实现一个个的应用。

1.2 身份管理介绍

  1. 成员管理
  2. 注册服务:注册成功得到的是证书,不是用户名和密码
  3. 证书:签名认证
  4. 交易审计

1.3 账本:每个节点中都有

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

  • 存储所有交易记录(tx array),也就是交易的链数据,tx里面存储读和写的数组
  • 可以用来历史数据查询
  • 每个区块中包含的数据有:blockHash, blockNum, txid

世界状态:

  • 存储数据的最新状态
  • 存储的是键值对,存储在当前节点的数据库中,默认数据库:level DBcouchdb也可以,需配置)
  • 链码模拟查询(chaincodesimulationqueries
  • 数据库中包含的数据有:txiddataowner

1.4 交易管理介绍

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

  • 调用交易:invoke

1.5 节点介绍

client

进行交易管理

  • cli:shell命令
  • node.js:api实现
  • go sdk:api实现
  • java sdk:api实现

peer

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

order

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

1.6 通道介绍–channel

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

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

2. fabric 环境搭建

2.1 安装虚拟机

可以随便在网上找到VM虚拟机来安装。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Uopq21rb-1622253791581)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210529090233011.png)]

在这里插入图片描述

选择下载的iso文件

在这里插入图片描述

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

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

在这里插入图片描述

然后一直按下一步就行了

在这里插入图片描述
然后等待安装完就行了。

进去之后

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
继续就可了 在这里插入图片描述
选择城市

在这里插入图片描述

在这里插入图片描述

密码就随便搞搞吧

在这里插入图片描述
然后就可以了
在这里插入图片描述
安装VMware Tools工具
点击虚拟机进行安装即可。然后重启一下就行了。

在这里插入图片描述

2.2 安装必要配置

2.2.1换源

我们先要换源
找到这个Software & Update在这里插入图片描述
找到自己想要换的源头 在这里插入图片描述
即可

2.2.2 安装vim

sudo apt-get install vimsudo apt-get update

2.2.3 安装python2.7 以及 python-pip2

安装python2.7
请添加图片描述查看版本
请添加图片描述安装python-pip
请添加图片描述
查看版本

请添加图片描述

2.2.5 安装go

到go官网
请添加图片描述下载完之后会是这样
请添加图片描述
解压到/usr/local

sudo tar -C /usr/local -zxvf  go1.11.5.linux-amd64.tar.gz

然后设置环境变量
请添加图片描述
请添加图片描述

使环境生效

source ~/.bashrc

查看go版本

go version

请添加图片描述
go就安装成功了!

2.2.6 安装docker

sudo apt install docker sudo apt install docker.io

请添加图片描述查看docker版本

docker version

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

请添加图片描述
然后再看一次就好了。docker version就行了
请添加图片描述查看docker运行状态,可以看到使 绿色的active (running)是正在运行中的。
请添加图片描述

2.2.7 安装docker-compose

然后创建一个docker目录
请添加图片描述
安装一个curl
请添加图片描述然后执行下面这一条语句

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

请添加图片描述出现这个就行了~

然后在/usr/local/bin目录下设置权限!
请添加图片描述

2.2.8 Fabric的Docker镜像下载

请添加图片描述查看docker镜像,然后发现docker里面是什么都没有的
请添加图片描述
我们先换源,建议是使用这个 daocloud的
请添加图片描述重启一起docker就行了。
请添加图片描述
然后依次运行下面的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
这样就行了
请添加图片描述

2.2.9 拉取fabric代码

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

在github上搜索fabric
请添加图片描述
然后用xftp6
记得是上传到这个目录下面。记得改名字
在这里插入图片描述
然后进入这个 e2e_cli的目录下。(这个workspace目录是多余的,我后来删掉了,不要有workspace这个目录,不然无法下载的。就像上面那张图的红色箭头的目录就行了)
请添加图片描述不过记得先要 chmod u+x network_setup.sh给特权

然后执行 ./network_setup.sh up
在这里插入图片描述然后在这个目录下就可以看到了这些可执行文件了。不过要把这些文件cp到go的bin目录下。

在这里插入图片描述在这里插入图片描述
这里就大功告成了!

最后

小生凡一,期待你的关注。

未经允许不得转载:飞短流长网 » 【超级账本】Fabric介绍及其环境搭建(一)