fabric v1.1 交易流程

miss201發表於2018-07-31

file

1. 客戶端節點構造好交易提案,提交到背書節點。提交提案的順序沒有要求

2. 背書節點接收到提案,模擬交易並簽名

首先會做一些驗證,比如:交易提案的格式是否正確,交易是否被重複提交,提案簽名是否正確,是否有許可權提交提案。
驗證通過,會提交到 chaincode隔離模擬執行,將結果返回到客戶端。

3.返回執行結果

客戶端會對訊息進行驗證,如果驗證通過,才會進行後續操作。
如果是查詢交易,就沒有對賬本產生狀態的影響,客戶端拿到返回值,作為下一步業務邏輯的判斷依據。
如果是寫的交易,客戶端就要收集到足夠的背書結果,然後將交易提案,背書結果,再加上自己的簽名合起來,組成一個交易,將其傳送給 orderer節點。

4.提交交易(模擬執行結果+簽名)

如果客戶端提交了背書結果不一致的交易,排序節點也不會發現,因為排序節點並不讀取交易的內容,只是負責接收網路中的交易,然後對其進行排序。

5.交易排序並結塊

按照指定的排序規則進行排序,並生成區塊

6.廣播區塊

將區塊廣播給其他組織的主節點

7.儲存區塊更新交易

主節點接收到區塊以後,會在記賬的過程中去驗證該筆交易是否有效,如果無效的話,會被標記處無效交易。該無效交易並不會被丟棄,只是不會更新到世界狀態,所以無效交易只會浪費磁碟空間。

8.同步交易

在組織內部區塊同步,通過gossip協議

9.儲存區塊更新交易

在記賬節點儲存區塊,更新交易

file

本作品採用《CC 協議》,轉載必須註明作者和本文連結

不卑不亢,不慌不忙,這才是生活的模樣。

相關文章