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

简介: 目录前言1. fabric 介绍1.1 fabric和以太坊的区别1.2 身份管理介绍1.3 账本:每个节点中都有1.4 交易管理介绍1.5 节点介绍1.6 通道介绍--channel2. fabric 环境搭建2.1 安装虚拟机2.2 安装必要配置2.2.1换源2.2.2 安装vim2.2.3 安装python2.7 以及 python-pip22.2.5 安装go2.2.6 安装docker2.2.7 安装docker-compose2.2.8 Fabric的Docker镜像下载2.2.9 拉取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和以太坊的区别


image.png

image.png

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虚拟机来安装。


image.pngimage.png

image.pngimage.png

选择下载的iso文件


image.png


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

image.png



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


image.png


然后一直按下一步就行了


image.png

然后等待安装完就行了。


进去之后


image.png

image.png

image.png

继续就可了

image.png

选择城市


image.png


image.png


密码就随便搞搞吧

image.png


然后就可以了

image.png

安装VMware Tools工具

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


image.png


2.2 安装必要配置

2.2.1换源

我们先要换源

找到这个Software & Updateimage.png

找到自己想要换的源头 image.png

即可


2.2.2 安装vim

sudo apt-get install vim
sudo apt-get update

2.2.3 安装python2.7 以及 python-pip2

安装python2.7

image.png

查看版本

image.png

安装python-pip

image.png

查看版本

image.png

2.2.5 安装go

到go官网

image.png

下载完之后会是这样

image.png

解压到/usr/local

然后设置环境变量

image.png


使环境生效

source ~/.bashrc
go version

image.png

go就安装成功了!

2.2.6 安装docker

 sudo apt install docker
 sudo apt install docker.io

image.png

查看docker版本

docker version

image.png

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

image.png


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

image.png

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

image.png


2.2.7 安装docker-compose

然后创建一个docker目录

image.png

安装一个curl

image.png

然后执行下面这一条语句

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

image.png

出现这个就行了~


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

image.png


2.2.8 Fabric的Docker镜像下载

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

image.png

我们先换源,建议是使用这个 daocloud的image.png

重启一起docker就行了。

image.png

然后依次运行下面的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

这样就行了

image.png

2.2.9 拉取fabric代码

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


在github上搜索fabric

image.png

然后用xftp6

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

image.png

然后进入这个 e2e_cli 的目录下。(这个workspace目录是多余的,我后来删掉了,不要有workspace这个目录,不然无法下载的。就像上面那张图的红色箭头的目录就行了)image.png

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


然后执行 ./network_setup.sh upimage.png

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

image.png


这里就大功告成了!


相关文章
|
SQL JavaScript 前端开发
Hyperledger Fabric 2.x 环境搭建
本文分享在 Centos下搭建 Hyperledger Fabric 2.4 环境并进行简单的网络测试。
2368 0
Hyperledger Fabric 2.x 环境搭建
|
存储 区块链
【超级账本】Fabric 层次结构以及核心模块的介绍(二)
目录 1. 结构介绍 2. 核心代码 3. 核心模块 3.1 peer 系统模块 3.2 order 系统模块 3.3 cryptogen 工具模块 3.4 configtxgen 工具模块 3.5 configtxlator 工具模块 最后
291 0
【超级账本】Fabric 层次结构以及核心模块的介绍(二)
|
网络安全 区块链 PHP
区块链之旅(五)超级账本简介及Git、Docker、Fabric的配置
超级账本是推动区块链行业应用的开源项目的总称,组织成员可以发起新的区块链项目,加入超级账本项目,但是还是要遵循Hyperledger的生命周期。
283 0
区块链之旅(五)超级账本简介及Git、Docker、Fabric的配置
|
消息中间件 Kafka 测试技术
超级账本(Hyperledger Fabric)共识
超级账本(Hyperledger Fabric)共识
|
Unix Shell Go
hyperledger fabric 源码调试(peer)环境搭建教程
前面写了一篇[hyperledger fabric 源码调试(orderer)环境搭建教程],按照相同的思路,这次来搭建peer的调试环境。部分相同的步骤和讲解请看上一篇,这里不再重新解释。 peer first-network示例中包含4个peer,我们只把peer0.org1配置成源码调试。
1742 0
hyperledger fabric 源码调试(peer)环境搭建教程
|
IDE Shell Go
hyperledger fabric 源码调试(orderer)环境搭建教程
本系列文尝试依据个人理解来描述构建fabric源码调试环境的步骤,去掉docker这层障碍,并给出思考过程。
2032 0
hyperledger fabric 源码调试(orderer)环境搭建教程
|
JavaScript 前端开发 关系型数据库