确保安全的Fabric交易流程分析

目标

  1. Hyperledger Fabric 网络中的节点分类
  2. 熟知 Hyperledger Fabric 交易流程

任务实现

现在我们深入 Hyperledger Fabric 内部,详细了解 Hyperledger Fabric 的交易实现流程,理解相应的核心内容。

区块链技术最重要特征之一就是能够保证实现安全的交易。Hyperledger Fabric 与公有链的交易实现又有很大的区别。如:权限、认证、数据隔离等等。

Hyperledger Fabric 典型的交易流程如下图所示:

Fabric交易流程

完整的交易流程解释如下:

  1. 应用程序使用相应的 SDK(Node,Java,Python)提供的 API 构建交易提案并提交给相应的背书节点,交易提案中包含:

    • channelID:通道信息
    • chaincodeID:要调用的链码信息
    • timestamp:时间戳
    • sign:客户端的签名
    • txPayload:提交的事务本身包含的内容,包含两项:
      • operation:要调用的链码的函数及相应的参数
      • metadata:调用的相关属性

    step1

    交易提案(Proposal)消息结构如下:

    交易提案消息结构
  2. 背书节点对接收到的交易提案请求进行验证:

    • 交易提案格式是否正确
    • 交易在之前并未提交过(重复性攻击保护)
    • 提交交易提案的客户端签名是否有效(使用MSP)
    • 提交交易提案的请求者是否在该通道中有相应的执行权限

    验证通过后调用链码进行模拟执行, 产生包括响应值、读集和写集的事务结果。对结果进行背书并响应给客户端。

    注意,此时的调用链码是模拟执行,不会对账本中的数据进行真正意义上的更改。

    提示:关于MSP的相关内容,请参见第六章

    step2

    交易提案响应(ProposalResponse)消息结构如下:

    交易提案响应消息结构

  3. 应用程序收集到足够的消息和背书签名之后,构建合法的交易请求并将交易请求广播给 Ordering服务节点。

    如果应用程序的请求仅仅是查询分类帐,则应用程序将检查查询响应信息,并且不会将事务提交给 Ordering 服务。

    如果客户端应用程序的请求是更新分类账本数据,则会将事务提交给 Ordering 服务以继续下一步的操作,并且应用程序在提交事务之前检查确定请求是否已满足指定的认可策略(即指定的背书节点都认可)。

    step3
  4. 交易请求被提交到 Ordering 服务节点,该事务将包含读/写集,背书签名和通道ID;Orderer 节点接收到事务请求之后,并不需要检查交易中的具体数据,它只是从网络中的所有通道接收交易,按时间顺序对它们进行排序,并创建交易区块。之后广播给同一通道内所有组织的 Leader 节点。

    step4
  5. Leader节点:Leader 节点对接收到的区块进行验证(交易消息结构是否正确、是否重复、是否有足够的背书、读写集版本),通过验证后将结果写入到本地的分类账本中。

    step5
  6. 同步广播:Leader 节点同步广播给组织内的其它节点(保证在同一通道内的)。

    提示:在 Fabric 中,广播给其它节点默认为临近的3个节点。此广播数量可以通过配置进行修改。

    注:跨组织广播则由组织内的 Anchor 节点负责。

分类账本更新:

每个Peer节点将区块附加到区块链中,写集被提交到当前的状态数据库中。并且对于每个有效的事务,发出一个事件,通知客户端应用程序事务(调用)已被不可变地附加到链中,以及通知该事务是否已经过验证或为无效事务。

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

推荐阅读更多精彩内容