【超级账本】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基金会旗下的项目,FabricHyperledger项目里最早也是目前应用最广泛的区块链项目,最初由IBM开发,后来捐助给基金会。

  • 是一个开源的企业级需要许可的分布式账本技术平台
  • 是一个高度模块化和可配置架构(a,b,c)
  • 支持不同组件的可插拔实现
  • 智能合约支持多语言:go,java,node.js等

1.1 fabric和以太坊的区别

区别 以太坊 fabric
链的状况 “链”是信任的锚点,所有的信任都来自于同一条链 每个智能合约可以创建新的链,也可以和其他智能合约共用一个链
合约环境 有自己的沙盒执行环境(EVM) 使用了 Docker 机制实现智能合约
合约语言 solidity go,java,nodejs
总体性能 自身耦合度较高 灵活性更高,更像一个区块链云服务平台,能够让用户在这平台上,使用各个模块创建一个个链,进而实现一个个的应用。

1.2 身份管理介绍

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

1.3 账本:每个节点中都有

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

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

世界状态:

  • 存储数据的最新状态
  • 存储的是键值对,存储在当前节点的数据库中,默认数据库:level DBcouchdb 也可以,需配置)
  • 链码模拟查询(chaincode simulation queries
  • 数据库中包含的数据有: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 vim
sudo apt-get update

2.2.3 安装python2.7 以及 python-pip2

安装python2.7
【超级账本】Fabric介绍及其环境搭建(一)_第1张图片查看版本
请添加图片描述安装python-pip
【超级账本】Fabric介绍及其环境搭建(一)_第2张图片
查看版本

请添加图片描述

2.2.5 安装go

到go官网
【超级账本】Fabric介绍及其环境搭建(一)_第3张图片下载完之后会是这样
请添加图片描述
解压到/usr/local

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

然后设置环境变量
【超级账本】Fabric介绍及其环境搭建(一)_第4张图片
【超级账本】Fabric介绍及其环境搭建(一)_第5张图片

使环境生效

source ~/.bashrc

查看go版本

go version

【超级账本】Fabric介绍及其环境搭建(一)_第6张图片
go就安装成功了!

2.2.6 安装docker

 sudo apt install docker
 sudo apt install docker.io

【超级账本】Fabric介绍及其环境搭建(一)_第7张图片查看docker版本

docker version

【超级账本】Fabric介绍及其环境搭建(一)_第8张图片但是会有下面的这个permission denied的问题,我们可以这样,添加权限组,不过注意要和你的用户名是一样的!

请添加图片描述
然后再看一次就好了。docker version就行了
【超级账本】Fabric介绍及其环境搭建(一)_第9张图片查看docker运行状态,可以看到使 绿色的active (running)是正在运行中的。
【超级账本】Fabric介绍及其环境搭建(一)_第10张图片

2.2.7 安装docker-compose

然后创建一个docker目录
请添加图片描述
安装一个curl
【超级账本】Fabric介绍及其环境搭建(一)_第11张图片 然后执行下面这一条语句

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镜像下载

【超级账本】Fabric介绍及其环境搭建(一)_第12张图片查看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
这样就行了
【超级账本】Fabric介绍及其环境搭建(一)_第13张图片

2.2.9 拉取fabric代码

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

在github上搜索fabric
【超级账本】Fabric介绍及其环境搭建(一)_第14张图片
然后用xftp6
记得是上传到这个目录下面。记得改名字
【超级账本】Fabric介绍及其环境搭建(一)_第15张图片
然后进入这个 e2e_cli 的目录下。(这个workspace目录是多余的,我后来删掉了,不要有workspace这个目录,不然无法下载的。就像上面那张图的红色箭头的目录就行了)
【超级账本】Fabric介绍及其环境搭建(一)_第16张图片不过记得先要 chmod u+x network_setup.sh 给特权

然后执行 ./network_setup.sh up
【超级账本】Fabric介绍及其环境搭建(一)_第17张图片 然后在这个目录下就可以看到了这些可执行文件了。不过要把这些文件cp 到go的bin目录下。

【超级账本】Fabric介绍及其环境搭建(一)_第18张图片【超级账本】Fabric介绍及其环境搭建(一)_第19张图片
这里就大功告成了!

最后

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

你可能感兴趣的:(区块链,区块链,fabric,docker,go,linux)