區塊鏈最主要的特性之一是去中心化,沒有了中心機構的集中處理,為了達成數據的一致性,就需要網絡中全民參與管理,並以某種方法達成共識,所以區塊鏈的交易流程也就是共識的過程。
視頻教程:https://study.163.com/course/introduction/1210196297.htm
在Fabric中,本由一個節點處理的過程,在邏輯上被分解為不同的角色,每個角色承擔不同的功能;節點(Peer)分解為背書節點(Endorser peer)和提交節點(Committer peer),為了達到處理的順序性,提煉出排序(Orderer)角色。
Fabric是應用於聯盟鏈的場景,在處理每一筆交易時,每個環節上需要對交易信息進行權限校驗。
Fabric交易流程圖如下所示:
圖:Fabric交易流程
交易過程詳細流程:
1) 應用程序客戶端通過SDK調用證書服務(CA)服務,進行注冊和登記,並獲取身份證書;
2) 應用程序客戶端通過SDK向區塊鏈網絡發起一個交易提案(Proposal),交易提案把帶有本次交易要調用的合約標識、合約方法和參數信息以及客戶端簽名等信息發送給背書(Endorser)節點。
3) 背書(Endorser)節點收到交易提案(Proposal)后,驗證簽名並確定提交者是否有權執行操作,同時根據背書策略模擬執行智能合約,並將結果及其各自的CA證書簽名發還給應用程序客戶端。
4) 應用程序客戶端收到背書(Endorser)節點返回的信息后,判斷提案結果是否一致,以及是否參照指定的背書策略執行,如果沒有足夠的背書,則中止處理;否則,應用程序客戶端把數據打包到一起組成一個交易並簽名,發送給Orderers。
5) Orderers對接收到的交易進行共識排序,然后按照區塊生成策略,將一批交易打包到一起,生成新的區塊,發送給提交(Committer)節點;
6) 提交(Committer)節點收到區塊后,會對區塊中的每筆交易進行校驗,檢查交易依賴的輸入輸出是否符合當前區塊鏈的狀態,完成后將區塊追加到本地的區塊鏈,並修改世界狀態。