8. Hyperledger Fabric 专题 - Hyperledger Fabric Model

Hyperledger Fabric 专题 - Hyperledger Fabric Model

本专题文档概述了 Hyperledger Fabric 的关键设计特征,这些特征可以实现 Fabric 对全面但可自定义的企业区块链解决方案的承诺:

  • 资产 (Asset) - 资产定义允许通过网络交换几乎所有具有货币价值的东西,从完整食品到古董车再到货币期货。
  • 链码 (Chaincode) - 链码执行从交易排序中划分出来,限制了节点类型之间的信任和验证级别,并优化了网络可伸缩性和性能。
  • 帐本特征 - 不变的共享帐本对每个通道的整个交易历史进行编码,并包括类似 SQL 的查询功能,以进行有效的审计和争议解决。
  • 隐私 (Privacy) - 通道和私人数据集可实现私有和机密的多方交易,这通常是竞争企业和受管制的行业在同一网络上交换资产时需要的。
  • 安全和 MSP (Security & Membership Services) - 会员许可制提供了一个受信任的区块链网络,参与者知道所有交易都可以由授权的监管机构和审计员检测和追踪。
  • 共识 (Consensus) - 达成共识的独特方法可实现企业所需的灵活性和可扩展性。

1. 资产

资产的范围从有形的 (房地产和硬件) 到无形的 (合同和知识产权)。 Hyperledger Fabric 提供了使用链码交易修改资产的功能。

资产在 Hyperledger Fabric 中表示为键值对的集合,状态更改记录为通道账本中的交易。资产可以二进制和/或 JSON 形式表示。

2. 链码

链码是定义一项或多项资产的软件,以及用于修改资产的交易指令。换句话说,这就是业务逻辑。链码定义了用于读取或更改键值对或其他状态数据库信息的规则。链码函数针对帐本的当前状态数据库执行,并通过交易提案启动。链码执行会产生一组键值写操作 (写集),这些键值写操作可以提交给网络,并应用于所有对端节点的帐本中。

3. 账本功能

账本是 Fabric 中所有状态转换的有序和防篡改的记录。状态转换是参与方提交的链码调用 (“交易”) 的结果。每笔交易都会产生一组资产键值对,这些键值对在创建,更新或删除时将被提交到账本。

帐本由一个区块链 (“链”) 和一个状态数据库组成,该区块链将不可变的顺序记录存储在区块中,并维护一个状态数据库。每个通道有一个帐本。每个对端节点都为其所属的每个通道维护一个帐本的副本。

Fabric 帐本的一些功能:

  • 使用基于键的查询,范围查询和组合键查询来查询和更新帐本。
  • 使用富查询语言的只读查询 (如果使用 CouchDB 作为状态数据库)。
  • 只读历史记录查询 — 查询键的帐本历史记录,从而启用数据起源场景。
  • 交易版本包括链码读取的键/值 (读集) 和链码写入的键/值 (写集)。
  • 交易包含每个背书对端节点的签名,并提交给交易排序服务。
  • 交易被分为几大块,并从交易排序服务分发到通道上的对端节点。
  • 对端节点根据背书策略验证交易并执行。
  • 在添加区块之前,执行版本检查,以确保自链码执行以来,已读取资产的状态未更改。
  • 一旦交易被验证并被提交,就不可改变。
  • 通道的帐本包含一个配置块,用于定义策略,访问控制列表和其他相关信息。
  • 通道包含成员资格服务提供者实例,允许从不同的证书颁发机构派生加密材料。

有关数据库,存储结构和“查询能力”的更深入了解,请参阅 帐本 专题文档。

4. 隐私

Hyperledger Fabric 在每个通道的基础上使用不变的帐本,以及可以操纵和修改资产当前状态 (即更新键值对) 的链码。账本存在于通道范围内 - 可以在整个网络中共享 (假设每个参与者都在一个公共通道上工作) - 或可以将其私有化以仅包括一组特定的参与者。

在后一种情况下,这些参与者将创建一个单独的通道,从而隔离他们的交易和帐本。为了解决想要弥合总体透明度和隐私之间的差距的方案,只能在需要访问资产状态以执行读写的对端节点上安装链码 (换句话说,如果未在对端节点上安装链码, 它将无法与帐本正确连接)。

当该通道上的组织子集需要对其交易数据保密时,可以使用私有数据集合将这些数据隔离在逻辑上与通道帐本分离的私有数据库中,该数据库只能由组织的授权子集访问。

因此,通道使交易对于更广泛的网络而言是不公开的,而集合则对通道上的组织子集之间的数据保持不公开。

为了进一步模糊数据,可以在将交易发送到交易排序服务并将区块添加到账本之前,使用 AES 等通用加密算法对链码中的值进行加密 (部分或全部)。一旦加密数据已写入帐本,则只有拥有用于生成密文的相应密钥的用户才能对其解密。有关链码加密的更多详细信息,请参阅 链码开发人员 主题。

有关如何在区块链网络上实现隐私的更多详细信息,请参见 私有数据 主题。

5. 安全和 MSP

Hyperledger Fabric 支持所有参与者都具有已知身份的交易网络。公钥基础结构 (Public Key Infrastructure, PKI) 用于生成与组织,网络组件以及最终用户或客户端应用程序绑定的加密证书。结果,可以在更广泛的网络和通道级别上操纵和控制数据访问控制。Hyperledger Fabrc 的这种“许可制”的概念,再加上通道的存在和能力,帮助解决那些需要隐私和保密性要求非常高的情况。

查看 会员服务提供商 ( Membership Service Providers , MSP) 主题,以更好地了解加密实现,并签名,验证,在 Hyperledger Fabric 用于身份验证的方法。

6. 共识

在分布式帐本技术中,共识最近已成为单一功能内特定算法的同义词。但是,共识不仅包括简单地同意交易顺序,而且这种差异在 Hyperledger Fabric 中得到了体现,它在整个交易流程 (从提案和背书到交易排序,验证和承诺) 中的基本作用得到了强调。简而言之,共识被定义为对包含一个区块的一组交易的正确性的全面验证。

区块交易的顺序和结果满足明确的政策标准检查后,才能最终达成共识。这些检查发生在交易的生命周期中,包括使用背书策略来指示哪些特定成员必须背书某个交易类,以及系统链码以确保这些策略得到执行和维护。在作出承诺之前,对端节点将使用这些系统链码来确保存在足够的背书,并且它们是从适当的实体派生的。此外,在将包含交易的任何区块追加到账本之前,将进行版本控制检查,在此期间将对账本的当前状态达成一致。最终检查可以防止重复使用操作和其他可能危害数据完整性的威胁,并可以针对非静态变量执行功能。

除了进行大量的背书,有效性和版本检查外,还在交易流程的所有方向上进行持续的身份验证。访问控制列表是在网络的分层层上实现的 (将交易排序服务分布到各个通道),有效载荷在交易提案通过不同的体系结构组件时被重复签名,验证和认证。总而言之,共识不仅限于一批交易的商定顺序。相反,它是一项总体特征,它是交易从提案到承诺过程中不断进行的验证的副产品。

查看 交易流程图 以直观表示共识。

Reference

项目源代码

项目源代码会逐步上传到 Github,地址为 https://github.com/windstamp

Contributor

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

推荐阅读更多精彩内容