Hyperledger Fabric技术知识导图

  1. Fabric是什么?可以做什么?
  2. 工作过程?
  3. 技术需求?技术导图
  1. Fabric是什么?可以做什么?

Hyperledger Fabric 是一个开源区块链实现,开发环境建立在 VirtualBox 虚拟机上,部署环境可以自建网络,也可以直接部署在 BlueMix 上,部署方式可传统可 Docker 化,共识达成算法插件化,支持用 Go 和 JavaScript 开发智能合约,尤以企业级的安全机制和 membership 机制为特色。

作为开发具有模块化架构的应用程序或解决方案的基础,Hyperledger Fabric允许组件(例如共识和成员服务)即插即用。Hyperledger Fabric 利用容器技术来托管称为“链代码”的智能合约,其中包含系统的应用程序逻辑。

术语概念

通道( Channel ):通道是构建在 Hyperledger Fabric 区块链网络上的私有区块链,实现了数据的隔离和保密。通道中的 Chaincode 和交易只有加入该通道的节点( Peer )可见。同一个节点可以加入多个通道,并为每个通道内容维护一个账本。每一个通道即为一条逻辑上的区块链。可以按照业务来划分通道,也可以按照行政职能和隐私策略来划分通道。

节点( Peer ): 维护账本的网络节点,通常区块链网络架构中存在多种角色,如 endorser 和 committer 。

排序服务或共识服务( Order Services ) : 提供排序服务或共识服务的网络节点,完成交易的排序和区块打包等工作,支持可插拔的共识组件,当前生产环境下使用 Kafka 进行交易排序。

分布式账本( Distribute Ledger ) :由网络中若干去中心化节点共同维护的数据账本。

组织( Org ) :联盟链中按照 访问和使用账本的网络节点,一个联盟(或者一个区块链网络)有多个组织(成员),一个组织内可以有多个节点( Peer ),每个节点参与账本和世界状态维护。

智能合约( Smart Contract ) :根据特定条件自动执行的合约程序。智能合约是区块链的重要特征,是用户与区块链进行交互,利用区块链实现业务逻辑的重要途径。

链码( Chaincode ):链码是 Hyperledger Fabric 对智能合约的一种实现方式,是运行于 Hyperledger Fabric 网络之上一段应用程序代码,也是用户与 Hyperledger Fabric 交互的唯一途径。

  1. 工作过程:

 

Fabric为应用提供了gRPC API及封装API的SDK供应用调用。应用可以通过SDK访问Fabric网络中的多种资源,包括账本、交易、链码、事件、权限管理等。

应用开发者只需要跟这些资源打交道即可,无需关心如何实现。

(案例链接:https://my.oschina.net/u/3794778/blog/3027089

1、管理员使用浏览器与Node.js应用交互,我们将该Node.js应用称为Marbles。

2、浏览器中的客户端JS代码将通过websocket与Node.js应用交互,当管理员操作界面时,客户端 JS将向后端发送消息。

3、读写账本的操作在Fabric中被称为提议(Proposal),由Node.js应用负责生成提议并发送给Fabric区块链的对等节点(Peer)。

4、Peer节点与部署在其本地的链码通信,链码将执行/模拟交易,如果模拟的结果没有问题,节点 将对交易进行背书并返回响应给Node.js应用。

5、Node.js应用会将背书过的提议发送给Farbic区块链的排序节点(Orderer),排序节点负责将整个网络上的多个提议打包并生成新的区块,然后广播给所有的对等节点。

6、最后,对等节点将验证收到的区块,然后写入自己维护的账本,交易现在就生效了,任何之后 发生的账本读取操作都可以反应账本的变化。

 

  1. 技术需求
  1. 链码编程语言:GO、python、Java、Node.js 、Solidity(以太网中使用);

(2)数据库:LevelDB数据库和CouchDB数据库,链代码数据格式为JSON;

LevelDB 有一个键值数据库,支持键查询、组合键查询和键范围查询。

如果还需要复杂的富格式查询,CouchDB 支持 LevelDB 的基本功能,并添加了全面的富数据查询。

可以选择支持 CouchDB 等文档数据库,内容需是 JSON 格式,而且完全可查询,其数据模型应与现有的键/值编程模型兼容。因此,在利用 CouchDB 时,如果将链代码数据建模为 JSON,则不需要更改应用程序。

(3)区块间密码算法:哈希算法(MD5、SHA-1、SHA-256、SHA-384及SHA-512);

(4)数据加密:非对称加密算法和PKI(利用公钥加密技术的安全基础平台的技术和规范);

(5)共识算法:Kafka共识算法、solo共识算法、PBFT(实用拜占庭容错算法)(1.1版本时取消);

(6)底层技术:点对点网络(P2P网络+gRPC+Gossip协议)

应用与链码的交互是通过与网络上的Peer节点通过gRPC协议通信完成的

(7)案例运行环境:

环境部署

版本信息

Linux

Linux ubuntu 4.15.0-29-generic

go

go1.10.1 linux/amd64

docker

Docker version 18.06.0-ce-dev

docker-compose

docker-compose version 1.21.1

nodejs

node-v8.11.3

python

Python2.7.6

maven

Apache Maven 3.5.3

jdk

java version "1.8.0_161"

  1. Docker:Hyperledger Fabric 1.0依赖Docker执行智能合约,需要先安装Docker和Docker Compose的运行环境。
  2. Docker Compose:能够在一个主机上创建出相互隔离的网络,通过命令行管理多个Docker容器,快速启动、停止和更新容器。

思维导图:

 

 

开发者需要了解,所选用智能合约平台的智能合约结构、语言特性、状态存储方式等。此外,开发者还需要对智能合约的生命周期管理进行考虑,包括代码的编写、版本管理、提交验证,以及升级版本等。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值