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