博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hyperledger Composer和Hyperledger Fabric的关系、区别及概念
阅读量:2037 次
发布时间:2019-04-28

本文共 2137 字,大约阅读时间需要 7 分钟。

一、关系

Hyperledger Fabric是区块链框架;

Hyperledger Composer是Hyperledger Fabric的上层框架,简化区块链网络和应用的创建过程。

 

二、Hyperledger Fabric

每个 Hyperledger Fabric 网络都具有以下组件:

  • 资产。资产具有状态和所有权,以键/值对集合的形式来表示。
  • 共享账本。账本负责记录资产的状态和所有权。账本包含以下两个组件:
    • 世界状态描述了在给定时间点的账本状态。它是账本数据库。
    • 区块链是记录所有交易的交易日志历史记录。
  • 智能合约。Hyperledger Fabric 智能合约称为链码,包含系统的业务逻辑。当应用需要与账本进行交互时,即调用链码。
  • 节点。节点负责托管账本和智能合约,是网络的基本要素。节点可执行链码,访问账本数据、进行交易背书以及与应用进行交互。某些节点可作为背书节点或背书者。每个链码均可指定一项背书策略,用于为有效的交易背书定义必要且充分的条件。
  • 通道。通道是由节点集合组成的一种逻辑结构。该功能支持一组节点创建独立的交易账本。
  • 组织。一个网络(通道)中可以包含多个组织,每个组织可以包含多个节点。节点具有的身份(数字证书),是由其所属组织的成员服务提供者所分配的。
  • 成员服务提供者 (MSP)。MSP 是作为认证中心实施的,负责管理用于对成员身份和角色进行认证的证书。在 Hyperledger Fabric 网络中,身份未知就无法参与交易。它负责管理用户 ID,并对网络上的所有参与方进行认证,使 Hyperledger Fabric 能够作为私有许可网络来运行。
  • 排序服务。排序服务将交易打包到区块中,以便交付至通道上的节点。它负责保证网络中交易的正常交付。它可与节点和背书节点进行通信。支持的排序服务配置机制包括 Solo 和 Kafka。

 

 

参考

 

 

 

三、Hyperledger Composer

1. Composer是一种建模语言,分为三个对象

  • Assets(资产)

  • Participants(参与者)

  • Transactions(交易过程): 参与者和资产的交互过程

 

2. Composer的基本概念

Blockchain State Storage:交易历史和资产都会直接保存在区块链上,用区块链做存储。

Connection Profiles:是一组JSON配置文件,定义了各种网络连接参数,Composer通过这组被称为Connection Profiles配置文件,定义了应该连接到哪个系统上。Connection Profile通常需要由系统创建者提供,定义了各种网络连接参数。

Assets:可以指代任何有型的和无形的资产,必须有唯一标识符,还可以添加一些额外的信息,用于关联其他资产或者参与者等等。

Participants:是商业网络的成员,可以拥有资产或发起交易,必须有唯一的标识符,此外也可以包含其他可选属性。一个参与者可以有一个或多个身份。

Identities:对应Fabric的PKI认证的概念,通过密钥确认用户身份的。

Business Network cards:是一个Identitie,一个connection profile,以及元数据的组合,元数据包含一个可选的连接到商业网络名称。

Transactions:交易,资产转移的过程。

Queries:查询返回的是区块链当中的数据。只需要定义好商业网络,以及相关的变量,就可以轻松的利用Composer API从区块链网络中提取所需数据。

Events:事件是在商业网络中定义的,就跟定义资产或参与者同样的方式。定义事件之后,就可以通过交易处理函数触发。应用程序可以通过composer-client API订阅这些事件。

Access Control:访问控制规则,允许细粒度控制什么角色在什么条件下有什么样的权限控制什么资产。

Historian registry:是专门用于成功交易记录的,包含了发起交易的参与者和身份信息。historian将交易保存为HistorianRecord资产,定义在 Composer系统的namespace中。

(参考https://www.jianshu.com/p/f4b4dc986298)

 

Composer的组件

 

 

3. BNA

Composer创建出Model File(.cto文件), Script File(.js文件), ACL(.acl文件), Query File(.qry文件)等等,进行打包成一个商业网络文件(.bna文件),发布到Fabric网络中

  • 网络模型文件 (.cto):包含资产、参与方和交易的定义。
  • JavaScript 文件 (.js):定义交易函数。
  • ACL 文件 (.acl):包含访问控制规则,用于定义业务网络中不同参与方的权利。
  • 查询文件 (.qry):定义可在网络中运行的查询。

BNA 文件包含可执行的交易处理器函数,可将其视为使用 JavaScript 编写的智能合约。可以使用 Hyperledger Composer API 来编写客户端应用以访问 BNA 函数。

 

 

参考

转载地址:http://sjkof.baihongyu.com/

你可能感兴趣的文章
Bug: Return value of putIfAbsent is ignored, but list is reused
查看>>
理解WEB API网关
查看>>
maven-jar-plugin 排除不想打包的目录文件内容
查看>>
feign.FeignException: status 404 reading xxService#xxmethod(Integer)
查看>>
唯品会后端架构部分内容分享(一) ( 20180613 by flyer)
查看>>
Spring Cloud Zuul实现动态路由
查看>>
zuul动态路由支持的路径格式及扩展性测试
查看>>
linux服务器校对时间方法
查看>>
rocketMQ 消息查询(id,key) 运维命令以及java API的用法
查看>>
RocketMQ学习(五):Pull和Push (important)
查看>>
Linux下查看系统启动时间和运行时间
查看>>
数据处理过慢的问题分析(涉及插入查询)
查看>>
JVM线程状态,park, wait, sleep, interrupt, yeild 对比
查看>>
Dubbo 和 Spring Cloud 微服务架构到底孰优孰劣?
查看>>
swagger默认访问地址
查看>>
redis-desktop-manager 的简单使用
查看>>
python+Eclipse+pydev环境搭建
查看>>
python2.7安装paramiko 出现import winrandom importerror
查看>>
redis cluster 集群的一些操作命令
查看>>
redis cluster 全部宕机后重启会自动恢复集群状态
查看>>