一、关系

Hyperledger Fabric是区块链框架;

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

二、Hyperledger Fabric

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

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

参考https://www.ibm.com/developerworks/cn/cloud/library/cl-blockchain-hyperledger-fabric-hyperledger-composer-compared/index.html?cm_mmc=dwchina-_-homepage-_-social-_-wechat

三、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 函数。

参考https://www.ibm.com/developerworks/cn/cloud/library/cl-blockchain-hyperledger-fabric-hyperledger-composer-compared/index.html?cm_mmc=dwchina-_-homepage-_-social-_-wechat

Hyperledger Composer和Hyperledger Fabric的关系、区别及概念相关推荐

  1. 区块链 Hyperledger Composer 使用教程(环境搭建、项目开发 一)

    Hyperledger Composer使用教程 基本概念介绍 1. 欢迎来到Hyperledger作曲家 Hyperledger Composer是一个广泛的,开放的开发工具集和框架,可以使开发区块 ...

  2. 选择私人区块链技术:Hyperledger Composer

    选择私人区块链技术:Hyperledger Composer Hyperledger Composer架构 欢迎参加"选择私人区块链技术"系列的第二部分(第1部分在这里).在每篇文 ...

  3. composer创建项目_在Hyperledger Composer上创建区块链解决方案的教程

    composer创建项目 Due to modern business demands, IBM joined hands with other companies to develop an ope ...

  4. Hyperledger Composer评测

    \ 关键要点 \\ 这项技术只适用于非常少量的场景.\\t 对于去中心化的分类账应用程序来说,Hyperledger Fabric在验证写入批次时使用MVCC(多版本并发控制)已经足够安全,但对于B2 ...

  5. hyperledger fabric 网络操作基本操作和概念

    hyperledger fabric 网络操作基本操作和概念 hyperledger fabric 网络操作基本操作和概念 1. cryptogen 操作 1.1 cryptogen 生成证书文件 1 ...

  6. 关系、关系模式、关系数据库的区别和概念以及关系的完整性约束条件

    以下内容是本人利用网络资料以及课堂学习总结的学习笔记,如有错误欢迎评论区更正. 前言 这是一组关系实例 域(Domain):一组具有相同数据类型的值的集合(如:整数.实数.具有某一范围的一个整数... ...

  7. 关系的基本概念及其性质

    一.关系的基本概念及其性质 1.关系的概念 二元关系: 定义:设A和B是两个集合,A×B的任一子集R称为从A到B的一个二元关系. 如果(a,b)∈R,则a与b符合关系R,记为aRb:  如果(a,b) ...

  8. CSS定位布局display/float/position属性之间的关系/区别和如何使用取值行为机制

    float: left|right; 可以自动排列自动折行, 但需要clear来配合清除浮动; display: inline-block; 有些时候可以替代float实现相同的效果. positio ...

  9. GraphView与TreeView等本质关系区别;左侧tree树形列表点击,右侧区域动态加载图纸分割布局动态可拖动中间分隔线

    数据可视化前端开发应用体验 GraphView跟TreeView是平级的组件!不是基类.派生关系!一个是拓扑图元组件.一个是树形组件,所有View类型的组件都是视图,用来设置数据模型DataModel ...

  10. 关系数据库及关系代数的基本概念

    关系数据库 此篇回答的是<数据库原理概论>中第二章的习题 1.定义并理解下列术语,说明他们之间的联系和区别: (1) 域,笛卡儿积,关系,元组,属性: 域(domain):域是一组具有相同 ...

最新文章

  1. 使用 NLTK 对文本进行清洗,索引工具
  2. 报Access数据库不存在或者打不开的错误
  3. python global和nonlocal用法解析
  4. ubuntu c 判断程序是否启动_刚刚接触编程的我,怎么判断自己是否适合做一个程序员?...
  5. Struts 2的OGNL表达式
  6. JavaScript 读取地址栏参数
  7. android 图片预览动画,Android图片上传实现预览效果
  8. css的3d注意事项
  9. 【实践】万字干货:如何优雅地记录操作日志?(附代码)
  10. matlab 读取mp3文件,MATLAB音频文件读取
  11. GPS研究---GPS 数据格式
  12. Linux关于文档编辑的命令
  13. vue实现结算淘宝购物车效果
  14. php xirr,一个傻瓜式的计算方法,教你算出投资的真实收益率
  15. 正则表达式-匹配中英文、字母和数字
  16. 帝豪gs车机系统wince_用销量告诉你答案 选帝豪GS准没错
  17. 实战技法 - 短线操盘 (11)
  18. 龙芯Fedora21平台制作feodra21-loongson-app docker镜像
  19. 【数学】B066_LQ_拯救阿拉德大陆(普通容理 / 进阶(写法疑惑))
  20. 微信公众平台-服务号:网页授权域名 设置

热门文章

  1. JAVAWeb开发之Servlet-19.Filter
  2. Internet Explorer 8的新特性和自定义部署
  3. (转)区别不同浏览器,CSS hack写法
  4. [心情]一落千丈的反差
  5. thinkphp下nginx重写index.php
  6. 用SQL语言操作数据
  7. 9,求整数的二进制中1的个数《剑指offer》
  8. git clone权限被拒绝
  9. 拓端tecdat|R语言贝叶斯MCMC:用rstan建立线性回归模型分析汽车数据和可视化诊断
  10. 拓端tecdat|R语言改进的股票配对交易策略分析SPY-TLT组合和中国股市投资组合