区块链技术面试常被问到的Hyberledger Fabric关键概念

先给英文官方原文地址:https://hyperledger-fabric.readthedocs.io/en/latest/overview.html

总览Overview

介绍 Hyberledger Fabric 做为一个全面、可定制、企业级区块链解决方案关键设计需求:

  • Assets (资产) - 资产定义了可以交换的几乎所有东西,其能通过网络用钱计价,从食物、到古董车、到未来的货币。
  • Chaincode(链码/智能合约) - Chaincode分区执行,根据交易顺序、所需信任级别的限制、验证跨节点类型、优化网络规模和性能
  • Ledger Features (账本) -
    不可更改、共享帐本记录了每个channle的完整的交易历史,包括类SQL的查询能力以保证高效的审计和纠纷解决
  • Privacy through Channels - (跨channles隐私)
    通道能满足竞争企业和受监管行业在普通网络在进行多边交易能满足高隐私和保密需求。
  • Security & Membership Services (安全和成员服务) -
    带权限的成员管理提供了可信的区块链网络,参与者值得所有的交易可以被有授权的监管和审计人员探测和跟踪。
  • Consensus (共识) - Fabric 独特的共识机制能满足企业对灵活性和可扩展性的需求。

Fabric 功能

Hyperledger Fabric 是分布式帐本(DLT)的一个独特实现,采用模块化区块链架构,其提供了企业所需的网络安全、可扩展性、保密性和性能。其主要的区块链网络功能包括:

  • Identity management 身份管理

Hyperledger Fabric 提供用户识别服务来管理用户的ID和参与者在网络内的授权。访问控制列表可以作为额外的许可层提供特定网络操作授权。比如,一个特定的用户ID可以执行chaincode应用,但是无法部署新的chaincode。
用户之间相互知道身份,但是并不知道相互之间做了什么。

  • Privacy and confidentiality 隐私与保密

Hyperledger Fabric 使竞争商业组织、任何需要私有、保密交易的组织共存在同一个许可网络中。私有channel限制消息路径来给特定子网成员完成隐私和保密交易。没有该channel权限的用户无法见到和访问channel的任何数据,包括交易、成员和通道数据。

  • Efficient processing 高效的处理

Hyperledger Fabric 根据节点类型分配网络角色。为给网络提供并发和并行,交易执行从交易共识和承诺中分开。执行交易先于共识是每个peer节点能同时处理多个交易。并发执行提高了每个peer节点的执行效率,加速了分发交易到 ordering 服务。
除了能够进行并行处理之外,还使交易处理和帐本维护的节点得到了拆分,peer节点没有了共识的工作负载。这样分工同样降低了授权和认证的处理需求;所有peer节点不需要信任全部 ordering 节点,反之亦然,因此处理能被独立与对方认可外运行

  • Chaincode functionality 链码/智能合约功能

Chaincode应用编码了在channel上执行特定类型交易的逻辑。Chaincode定义资产所有权变更的参数,例如,确保转让所有权的所有交易都遵守相同的规则和要求。System chaincode 是定义了整个channel操作参数的chaincode。生命周期和配置system chaincode定义channle的规则;背书和验证system chaincode定义了背书和验证交易的需求。

  • Modular design 模块化设计

Hyperledger Fabric实现了模块化设计,网络设计者能根据需求选择功能。比如特定的识别、共识、加密算法可以插入任何 fabric网络。因此,其是一个任何行业和公共领域都可以使用的通用区块链架构,保证其网络可以跨市场、监管和地理边境进行互操作。相比之下,其他竞争对手大多是受限于特定领域和行业的。

Fabric 模型

  • Assets 资产

资产可以是有形(实体和硬件)或无形(合同和知识产权)的。可以很方便在客户端javascript定义资产,在你的Fabric应用中使用,通过Fabric Composer工具。
Fabric支持资产的交换,通过未使用交易输出作为后续交易的输入。资产(和资产注册)在Fabric中作为键值对的集合存在,在channel帐本中带状态变更记录作为交易。Fabric允许任何资产采用二进制或JSON格式表示。

  • Chaincode

Chaincode 是定义资产和修改资产的交易指令的软件。也就是说,它就是业务逻辑。chaincode执行读取和修改键值对和其它状态数据库信息的规则。chaincode 函数基于帐本当前状态数据库执行,通过交易提案初始化。chaincode 执行结果是一系列键值对写入,其被提交到网络并被所有peer节点的帐本记录。

  • Ledger Features 帐本特性

帐本是fabric中所有状态转换的记录,其记录为顺序、防篡改。状态转换是参与方提交的chaincode的执行结果。每个交易结果是一系列键值对提交给帐本来创建、更新或删除。
帐本由一个区块链来保持不可变更、顺序记录在区块中,同时一个状态数据库来维护fabric当前状态。每个channel一个账本。每个peer维护所属每个channel的一个账本拷贝。

  • 检索和更新账本使用基于key查找、范围检索和组合key检索

  • 只读检索使用富检索语言(如果使用 CouchDB 作为状态数据库)

  • 只读历史检索 - 检索一个key的账本历史,可以查看数据来源(enabling data provenance scenarios)

  • 交易由各版本的键值对组成,chaincode (读集合)读取的和chaincode写入的(写集合)

  • 交易包括每个背书peer的签名,提交到ordering服务

  • 交易被ordered(排序?共识)进区块,从ordering服务发布到channel的peer节点中

  • peer节点根据背书策略验证交易并执行策略

  • 在添加新块之前,将执行版本检查来保证资产的状态从chaincode执行时刻开始没有被改变

  • 一旦交易被验证和提交就不可以被改变

  • 一个channel的帐本包括了配置区块,其定义了策略、访问控制列表和其它相关信息

  • channel 包括成员服务提供者实例允许从不同证书机构加密材料。阅读帐本主题,深入了解数据库、存储结构和"检索能力".

  • Privacy through Channels 跨通道隐私

Fabric 实现了基于每个channel的不可变帐本,同时chaincode可以操作和修改资产的当前状态(比如,更新键值对)。一个账本存在于一个channel范围 - 它可以被整个网络共享(假设每个参与者都在一个共同的channel内操作) - 或者可以私有给有一组特定的参与者。
在后续,这些参与者将能创建一个分离的channel,因此隔离/分离他们的交易和账本。Fabric甚至能解决这样的场景:希望弥合全局透明度和隐私之间的差距。Chaincode仅安装在需要获取资产状态来执行读写操作的peers(换句话说,如果一个chaincode没有安装一个peer,它将不能与账本交互)。为了更进一步的隔离数据,chaincode内的值可以在附到账本前使用通用的加密算法,如SHA-256,来加密(部分或全部)。

  • Security & Membership Services 安全和成员服务

Hyperledger Fabric 加强了交易网络,所有参与者都有已知的身份。公钥基础设施用来生成与组织,网络组件以及最终用户或客户端应用程序相关联的加密证书。因此,数据访问控制可以在网络和channel层面进行操作和管理。Fabric的“许可”概念,加上channel的存在和功能,有助于解决隐私和机密性至关重要的场景。
参看 Fabric CA章节来更好的理解加密的实现,以及在Fabric中的签名、证明、验证实现。

  • Consensus 共识

在分布式帐本技术中,共识最近变成一个实现独立功能的特定算法的同义词。然后,共识不仅是简单的同意交易的顺序,它是贯穿了整个交易流程中的基本角色,从提案、背书、到确认顺序、验证和承诺,Hyperledger Fabric中强调这样差异。简单来说,共识是对一个块内一组交易正确性的全生命周期验证。
当一个块内交易的顺序和结果符合明确的政策标准检查时,共识最终达成。这些检查和平衡发生在一个交易的生命周期内,包括的背书策略使用,指定特定成员必须对特定交易等级背书;同时系统chaincode保证这些策略被执行和坚持。在承诺前,peers将执行系统chaincode来保证足够的背书存在,而且它们是从恰当的实体发布而来。更进一步,当帐本的当前状态被同意时将进行版本检查,在任何包括交易的区块被附加的帐本前。这个最终的检查时为了保证避免双重支付和其它可能可能导致危机数据完整性的其它威胁,并允许对非静态变量执行函数。
除了大量背书、有效性和版本检查之外,同时还有在交易流程中所有方向上持续存在的身份识别。访问控制列表在网络层上分级实现(从ordering服务下到channels),并且随着交易穿过不同架构组件,payloads(负载在不同层次上是不同的)被重复签名,验证和认证。 总而言之,共识不仅仅局限于一批交易的顺序达成一致,而是作为在交易从提案到承诺的过程中进行持续验证的副产品而实现的总体。


圆方圆学院汇集大批区块链名师,打造精品的区块链技术课程。 在各大平台都长期有优质免费公开课,欢迎报名收看。
公开课地址:https://ke.qq.com/course/345101

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容