【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠
  uiWGcf47KQV3 2023年11月02日 97 0

 

目录

 

前言

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

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

1. fabric 介绍

​Hyperledger(超级账本)​​​是Linux基金会旗下的项目,​​Fabric​​​是​​Hyperledger​​​项目里最早也是目前应用最广泛的​​区块链​​项目,最初由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 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介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_linux

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_fabric_02

选择下载的iso文件

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_区块链_03

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

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_go_04

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

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_fabric_05

然后一直按下一步就行了

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_linux_06


然后等待安装完就行了。

进去之后

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_docker_07


【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_fabric_08


【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_linux_09


继续就可了

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_linux_10


选择城市

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_docker_11

密码就随便搞搞吧

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_fabric_12


然后就可以了

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_go_13


安装VMware Tools工具

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

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_go_14

2.2 安装必要配置

2.2.1换源

我们先要换源

找到这个Software & Update

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_docker_15


找到自己想要换的源头

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_go_16


即可

2.2.2 安装vim

sudo apt-get install vim
sudo apt-get update

2.2.3 安装python2.7 以及 python-pip2

安装python2.7

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_fabric_17

查看版本

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_fabric_18

安装python-pip

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_区块链_19


查看版本

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_linux_20

2.2.5 安装go

到go官网

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_go_21

下载完之后会是这样

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_linux_22


解压到/usr/local

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

然后设置环境变量

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_区块链_23


【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_linux_24

使环境生效

source ~/.bashrc

查看go版本

go version

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_fabric_25


go就安装成功了!

2.2.6 安装docker

sudo apt install docker
sudo apt install docker.io

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_fabric_26

查看docker版本

docker version

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_docker_27

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

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_docker_28


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

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_fabric_29

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

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_fabric_30

2.2.7 安装docker-compose

然后创建一个docker目录

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_fabric_31


安装一个curl

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_区块链_32

然后执行下面这一条语句

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

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_区块链_33

出现这个就行了~然后在​​/usr/local/bin​​目录下设置权限!

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_区块链_34

2.2.8 Fabric的Docker镜像下载

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_区块链_35

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

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_go_36


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

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_go_37

重启一起docker就行了。

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_go_38


然后​​依次​​运行下面的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介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_linux_39

2.2.9 拉取fabric代码

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

在github上搜索​​fabric​

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_区块链_40


然后用xftp6

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

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_go_41


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

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_fabric_42

不过记得先要 ​​chmod u+x network_setup.sh​​ 给特权然后执行 ​​./network_setup.sh up​

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_区块链_43

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

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_go_44

【手把手教你学区块链】Fabric介绍及其环境搭建 | ⚠多图警告⚠ 全网最细⚠_go_45


这里就大功告成了!

最后

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

 

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
uiWGcf47KQV3