2.03 hyperledger fabric系統架構
阿新 • • 發佈:2018-12-07
1.系統架構
- API:提供了GRPC呼叫,GRPC是跨語言的RPC框架
- SDK:在API基礎上,提供了SDK,封裝了各種語言,例如Go、node.js、python和Java等,官方推薦node.js
- 事件:區塊鏈是分散式系統,各個節點達成一致需要消耗很長時間,fabric使用非同步通訊模式開發,觸發回撥函式執行
- 身份:任何一個請求都要通過簽名驗證,依託於底層的成員服務,是聯盟鏈的認證功能,例如CA
- 賬本:是對區塊鏈的查詢,例如按照區塊高度查詢,根據區塊雜湊查詢,可以根據交易ID查詢區塊,交易ID也是不重複的,還可以根據通道名稱,獲取整個賬本的資訊,在fabric中,賬本是根據通道進行隔離的,不僅僅體現在邏輯上,在物理層面也是分割的
- 交易:是對區塊鏈資料的修改,例如上層程式通過交易管理模組,將交易提交到交易背書節點,獲得交易背書後,將交易提供給雜湊節點,進行排序,排序後打造成區塊,進行分發,然後將交易分發到整個網路
- 智慧合約:做智慧合約的安裝、初始化和升級等操作,智慧合約可以理解為函式宣告,交易可以理解為函式呼叫
2.網路拓撲
- 註冊登記:向CA機構表明自己的身份,獲取證書,此圖CA在區塊鏈以外,是第三方的CA,也可以使用官方提供的CA
- 交易提案:向兩個組織的背書節點發送交易提案請求,組織1和組織2分別對應了一組peer節點,可以認為是現實生活中的兩個商業主體,組織1中有4個peer節點,組織2中有3個peer節點,主節點用於從orderer節點接收區塊,通過gossip協議進行區塊擴散,兩個組織是獨立的,共同的資料來源是排序節點
- 提交交易:排序節點從客戶端節點接收交易,在排序節點內部排序後打包成區塊,廣播給其他組織的主節點
- 像一個樹形拓撲,最上面是kafka,然後是每個組織的主節點,最後是記賬節點
3.交易流程