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

目標(biāo)

  1. Hyperledger Fabric 網(wǎng)絡(luò)中的節(jié)點(diǎn)分類
  2. 熟知 Hyperledger Fabric 交易流程

任務(wù)實(shí)現(xiàn)

現(xiàn)在我們深入 Hyperledger Fabric 內(nèi)部,詳細(xì)了解 Hyperledger Fabric 的交易實(shí)現(xiàn)流程,理解相應(yīng)的核心內(nèi)容蜒蕾。

區(qū)塊鏈技術(shù)最重要特征之一就是能夠保證實(shí)現(xiàn)安全的交易狂窑。Hyperledger Fabric 與公有鏈的交易實(shí)現(xiàn)又有很大的區(qū)別慨默。如:權(quán)限玫芦、認(rèn)證、數(shù)據(jù)隔離等等蚓土。

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

Fabric交易流程

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

  1. 應(yīng)用程序使用相應(yīng)的 SDK(Node宏侍,Java,Python)提供的 API 構(gòu)建交易提案并提交給相應(yīng)的背書節(jié)點(diǎn)蜀漆,交易提案中包含:

    • channelID:通道信息
    • chaincodeID:要調(diào)用的鏈碼信息
    • timestamp:時間戳
    • sign:客戶端的簽名
    • txPayload:提交的事務(wù)本身包含的內(nèi)容谅河,包含兩項(xiàng):
      • operation:要調(diào)用的鏈碼的函數(shù)及相應(yīng)的參數(shù)
      • metadata:調(diào)用的相關(guān)屬性

    ?

    step1

    ?

    交易提案(Proposal)消息結(jié)構(gòu)如下:

    交易提案消息結(jié)構(gòu)
  2. 背書節(jié)點(diǎn)對接收到的交易提案請求進(jìn)行驗(yàn)證:

    • 交易提案格式是否正確
    • 交易在之前并未提交過(重復(fù)性攻擊保護(hù))
    • 提交交易提案的客戶端簽名是否有效(使用MSP)
    • 提交交易提案的請求者是否在該通道中有相應(yīng)的執(zhí)行權(quán)限

    驗(yàn)證通過后調(diào)用鏈碼進(jìn)行模擬執(zhí)行, 產(chǎn)生包括響應(yīng)值、讀集和寫集的事務(wù)結(jié)果绷耍。對結(jié)果進(jìn)行背書并響應(yīng)給客戶端吐限。

    注意,此時的調(diào)用鏈碼是模擬執(zhí)行褂始,不會對賬本中的數(shù)據(jù)進(jìn)行真正意義上的更改诸典。

    提示:關(guān)于MSP的相關(guān)內(nèi)容,請參見第六章

    step2

    交易提案響應(yīng)(ProposalResponse)消息結(jié)構(gòu)如下:

    交易提案響應(yīng)消息結(jié)構(gòu)

    ?

  3. 應(yīng)用程序收集到足夠的消息和背書簽名之后崎苗,構(gòu)建合法的交易請求并將交易請求廣播給 Ordering服務(wù)節(jié)點(diǎn)狐粱。

    如果應(yīng)用程序的請求僅僅是查詢分類帳,則應(yīng)用程序?qū)z查查詢響應(yīng)信息益缠,并且不會將事務(wù)提交給 Ordering 服務(wù)脑奠。

    如果客戶端應(yīng)用程序的請求是更新分類賬本數(shù)據(jù),則會將事務(wù)提交給 Ordering 服務(wù)以繼續(xù)下一步的操作幅慌,并且應(yīng)用程序在提交事務(wù)之前檢查確定請求是否已滿足指定的認(rèn)可策略(即指定的背書節(jié)點(diǎn)都認(rèn)可)宋欺。

    step3
  4. 交易請求被提交到 Ordering 服務(wù)節(jié)點(diǎn),該事務(wù)將包含讀/寫集胰伍,背書簽名和通道ID齿诞;Orderer 節(jié)點(diǎn)接收到事務(wù)請求之后,并不需要檢查交易中的具體數(shù)據(jù)骂租,它只是從網(wǎng)絡(luò)中的所有通道接收交易祷杈,按時間順序?qū)λ鼈冞M(jìn)行排序,并創(chuàng)建交易區(qū)塊渗饮。之后廣播給同一通道內(nèi)所有組織的 Leader 節(jié)點(diǎn)但汞。

    step4
  5. Leader節(jié)點(diǎn):Leader 節(jié)點(diǎn)對接收到的區(qū)塊進(jìn)行驗(yàn)證(交易消息結(jié)構(gòu)是否正確、是否重復(fù)互站、是否有足夠的背書私蕾、讀寫集版本),通過驗(yàn)證后將結(jié)果寫入到本地的分類賬本中胡桃。

    step5
  6. 同步廣播:Leader 節(jié)點(diǎn)同步廣播給組織內(nèi)的其它節(jié)點(diǎn)(保證在同一通道內(nèi)的)踩叭。

    提示:在 Fabric 中,廣播給其它節(jié)點(diǎn)默認(rèn)為臨近的3個節(jié)點(diǎn)翠胰。此廣播數(shù)量可以通過配置進(jìn)行修改容贝。

    注:跨組織廣播則由組織內(nèi)的 Anchor 節(jié)點(diǎn)負(fù)責(zé)。

分類賬本更新:

每個Peer節(jié)點(diǎn)將區(qū)塊附加到區(qū)塊鏈中之景,寫集被提交到當(dāng)前的狀態(tài)數(shù)據(jù)庫中斤富。并且對于每個有效的事務(wù),發(fā)出一個事件闺兢,通知客戶端應(yīng)用程序事務(wù)(調(diào)用)已被不可變地附加到鏈中茂缚,以及通知該事務(wù)是否已經(jīng)過驗(yàn)證或?yàn)闊o效事務(wù)戏罢。

step6
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末屋谭,一起剝皮案震驚了整個濱河市脚囊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌桐磁,老刑警劉巖悔耘,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異我擂,居然都是意外死亡衬以,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人扔役,你說我怎么就攤上這事旭旭。” “怎么了盔粹?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我冯勉,道長,這世上最難降的妖魔是什么摹芙? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任灼狰,我火速辦了婚禮,結(jié)果婚禮上浮禾,老公的妹妹穿的比我還像新娘交胚。我一直安慰自己,他們只是感情好盈电,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布蝴簇。 她就那樣靜靜地躺著,像睡著了一般挣轨。 火紅的嫁衣襯著肌膚如雪军熏。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天卷扮,我揣著相機(jī)與錄音荡澎,去河邊找鬼。 笑死晤锹,一個胖子當(dāng)著我的面吹牛摩幔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播鞭铆,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼或衡,長吁一口氣:“原來是場噩夢啊……” “哼焦影!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起封断,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤斯辰,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后坡疼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體彬呻,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年柄瑰,在試婚紗的時候發(fā)現(xiàn)自己被綠了闸氮。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡教沾,死狀恐怖蒲跨,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情授翻,我是刑警寧澤或悲,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站藏姐,受9級特大地震影響隆箩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜羔杨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一捌臊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧兜材,春花似錦理澎、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至举庶,卻和暖如春执隧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背户侥。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工镀琉, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蕊唐。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓屋摔,卻偏偏與公主長得像,于是被迫代替她去往敵國和親替梨。 傳聞我的和親對象是個殘疾皇子钓试,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容