Hyperledger Fabric架構(gòu)詳解

Hyperledger Fabric 整理體系:

?區(qū)塊鏈是一種按照時間順序?qū)?shù)據(jù)區(qū)塊以順序相連的方式組合成的一種鏈式數(shù)據(jù)結(jié)構(gòu)。
?賬本在FileSystem中保存,世界狀態(tài)保存在LevelDB中。

區(qū)塊鏈票據(jù)賬本數(shù)據(jù)結(jié)構(gòu)

Fabric核心概念
  • chaincode:鏈碼/智能合約,對外提供調(diào)用指令。分為系統(tǒng)鏈碼、用戶鏈碼
    1. 系統(tǒng)鏈碼
      負責fabric節(jié)點自身的處理邏輯,包括系統(tǒng)配置、背書、校驗等工作。系統(tǒng)鏈碼僅支持go語言,在Peer節(jié)點啟動時會自動完成注冊和部署。
      系統(tǒng)鏈碼共有五種類型:
      • 配置系統(tǒng)鏈碼(CSCC):Configuration System Chaincode,負責處理Peer端的channel配置
      • 生命周期系統(tǒng)鏈碼(LSCC):Lifecycle System Chaincode,負責對用戶鏈碼生命周期進行管理
      • 查詢系統(tǒng)鏈碼(QSCC):Query System Chaincode,提供賬本查詢API。如獲取區(qū)塊和交易等信息。
      • 背書管理系統(tǒng)鏈碼(ESCC):Endorsement System Chaincode,負責背書(簽名)過程,并可以支持對背書策略進行管理。
        對提交的交易提案的模擬運行結(jié)果進行簽名,之后創(chuàng)建響應(yīng)消息返回給客戶端
      • 驗證系統(tǒng)鏈碼(VSCC):Validation System Chaincode,處理交易的驗證,包括檢查背書策略已經(jīng)多版本并發(fā)控制。
    2. 用戶鏈碼
      根據(jù)不同場景需求及成員指定的相關(guān)規(guī)則,操作區(qū)塊鏈分布式賬本的狀態(tài)的業(yè)務(wù)處理邏輯代碼,運行在鏈碼容器中,通過fabric提供的接口與賬本狀態(tài)進行交互。在整個程序中處于重要位置,下可對賬本數(shù)據(jù)進行操作,上可以對企業(yè)級應(yīng)用程序提供調(diào)用接口。
  • transaction:tx 交易,每條指令都是一次交易
  • world state:世界狀態(tài),
  • endorse:背書,在共識機制的投票環(huán)節(jié),背書意味著參與投票
  • endorsement policy:背書策略,
  • peer:組織中的節(jié)點;peer節(jié)點以區(qū)塊的形式從orderer排序服務(wù)節(jié)點接收有序狀態(tài)更新,維護狀態(tài)和賬本。fabric中Peer節(jié)點可劃分如下:
    1. Endorsing Peer:根據(jù)指定的策略調(diào)用智能合約,對結(jié)果進行背書,返回提案相應(yīng)到客戶端
    2. Committing Peer:驗證數(shù)據(jù)并保存到賬本中
    3. Anchor Peer:跨組織通訊
    4. Leading Peer:做為組織內(nèi)所有節(jié)點的代表連接到Orderer排序服務(wù)節(jié)點,將從排序服務(wù)節(jié)點接收到的批量區(qū)塊廣播給組織內(nèi)的其他節(jié)點
  • channel:通道提供了一種通訊機制,將peers和orderer連接在一起,形成一個具有保密性的通訊鏈路;將一個大網(wǎng)絡(luò)分割成不同私有子網(wǎng),進行數(shù)據(jù)隔離
  • KPI:public key infrastructure,一種遵循標準的利用公鑰加密技術(shù)為電子上午的開展提供一套安全基礎(chǔ)平臺的技術(shù)和規(guī)范
  • MSP:Membership Service Provider,聯(lián)盟鏈證書管理,保存可信任RCA、ICA
  • org:orginazation,管理合作企業(yè)的組織
Fabric分層

?fabric大致分為底層網(wǎng)絡(luò)層、權(quán)限管理模塊、區(qū)塊鏈應(yīng)用模塊。通過SDK和CLI對應(yīng)該開發(fā)者提供服務(wù)。


fabric 模塊分層

?與此相對應(yīng)的人員分為三類:

  • 底層:系統(tǒng)運維,負責系統(tǒng)的部署和服務(wù)
  • 組織骨干力人員:負責證書,MSP權(quán)限管理,共識機制等
  • 業(yè)務(wù)開發(fā)人員:編寫chaincode,創(chuàng)建/維護channel,執(zhí)行transaction等


    fabric技術(shù)人員分層

    ?開發(fā)流程主要包括編寫智能合約、通過SDK調(diào)用智能合約、及訂閱各類事件。


    開發(fā)環(huán)節(jié)
MSP

?每個管理協(xié)作企業(yè)的ORG組織都可以擁有自己的MSP,如圖所示:


ORG - MSG

?MSP出現(xiàn)在兩個地方

  • 全局MSP:存在channel上,邏輯上認為是配置在系統(tǒng)上的,實際每一個參與者上拷貝一份
  • 局部MSP:每個peer,orderer,client等角色都維護,只保存全局MSP的子集,內(nèi)容保存在本地文件系統(tǒng)上


    MSP分類

    ?MSP結(jié)構(gòu)包含RCA根證書、ICA中間證書、OU組織單位、管理員證書、RCL吊銷證書列表、節(jié)點上的具體證書、存儲私鑰的keystore、TLS的根證書與中間證書


    MSP結(jié)構(gòu)
fabric交易流程

1. peer結(jié)點的部署
?peer結(jié)點上保存有賬本ledger和chaincode

peer結(jié)構(gòu)

?channel是一個邏輯概念,可以管理多個peer
channel - peer

?當有多方參與者時
channel - org - peer

?加入MSP時,可以通過MSP隔離全網(wǎng)不同組織的參與者
channel - MSP - org - peer

2. 交易執(zhí)行流程
?去中心化的設(shè)計,必須需要通過投票(多數(shù)大于少數(shù))來維持數(shù)據(jù)一致性,fabric具體操作如下:

  • 由client端的CLI或者SDK進行proposal議案提出。client會依據(jù)chaincode中的endorsement policy決定把proposal發(fā)往哪些endorse peer;背書節(jié)點進行投票,client匯總背書節(jié)點結(jié)果
  • client將獲得多數(shù)同意的proposal,連同各節(jié)點的背書及結(jié)果提交到orderring service;orderer匯總各client遞交過來的請求后,不需要檢查交易中的具體數(shù)據(jù),只是把接收的所有通道交易,按時間順序進行排序,并創(chuàng)建交易區(qū)塊。
  • orderer將交易打包成區(qū)塊block,然后廣播給同一通道內(nèi)所有組織的Leader節(jié)點;各節(jié)點各自驗證結(jié)果,最后將block記錄到自己的ledger中。


    交易流程 - 原理

    交易流程 - 編程

    ?從編程的角度來看,流程更清晰,A是應(yīng)用程序

  • A首先連接到peer
  • A調(diào)用chaincode發(fā)起proposal;與此同時,P1收到后先模擬執(zhí)行,產(chǎn)生結(jié)果放回給A
  • A收到各peer返回的結(jié)果
  • A向O1發(fā)起交易;與此同時,O1產(chǎn)生block后會通知peer,而peer會更新其賬本
  • 最后通過調(diào)閱事件A收到了結(jié)果。


    交易流程 - 節(jié)點

2.1 proposal議案階段
?A1發(fā)出<T1, P>,收到了<T1, R1, E1> <T1, R2, E2>兩個結(jié)果

proposal

2.2 package打包階段
?O1會在channal上收到很多transaction,將tx排序,在達到block的最大大?。ㄒ话銘?yīng)配1M一下,否則性能下降嚴重)或者達到超時事件后,達成block P2

package

2.3 驗證階段
?O1將含有多條tx打包成區(qū)塊的B2發(fā)往各peer,而P1和P2將B2加到自己的賬本中。

驗證階段

資料整理

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容