1、Fabric的賬本(Ledger)包括哪些內容?
Fabric賬本Ledger主要包含兩塊:Blockchain和State,Blockchain就是一系列連在一起的Block,用來記錄歷史交易,State對應賬本的當前最新狀態,它是一個Key-Value資料庫,Fabric默認采用LevelDB, 可以替換成其他的Key-Value資料庫,如CouchDB,在智能合約中對賬本進行讀寫操作,

2、Fabric的Transactions是什么?
Fabric上的Transactions事務分兩種,部署事務(Deploy Transactions)和呼叫事務(Invoke Transactions),
(1) 部署事務把鏈碼(Chaincode)部署到Peer節點上并準備好被呼叫,當一個部署交易成功執行時,Chaincode就被部署到各個Peer節點上,類似于把一個Web應用部署到應用服務器上的不同實體上,
(2) 呼叫事務在先前部署的鏈碼的背景關系中執行操作,客戶端應用程式通過Fabric提供的API呼叫先前已部署好的某個Chaincode的某個函式執行事務,包括讀取和寫入狀態資料庫,回傳結果等,
3、Fabric的智能合約Smart Contract是什么?
Fabric的智能合約Smart Contract稱為鏈碼Chaincode,是一段代碼,它處理網路成員所同意的業務邏輯,和以太坊相比,Fabric鏈碼和底層賬本是分開的,升級鏈碼時并不需要遷移賬本資料到新鏈碼當中,真正實作了邏輯與資料的分離,
4、Fabric的賬本(Ledger)資料是如何共享的?
Fabric的賬本共享方式和位元幣等有所不同,諸如位元幣和以太坊,交易資料大家都可以查看,雖然不知道是誰的資料,但是資料本身是對所有人都可見共享的,但在 Fabric中,賬本不是共享給所有人的,而是通過 Channel 隔離資料,雖然大家都在同一個區塊鏈網路里,但是不在同一個Channel,也沒辦法共享賬本,所以,通過建立不同的Channel可以達到按需共享的目的,
5、 Fabric的業務網路由什么組成?
業務網路,也叫共識網路或區塊鏈網路,Fabric業務網路由不同的節點構成,節點是區塊鏈的通信物體,節點是一個邏輯概念,不同型別的節點可以運行在同一臺物理服務器上,這些節點可能部署在云上面或者本地,可能來自不同的公司或者組織,在區塊鏈網路中有兩種型別的節點:Peer節點和Orderer節點,

6、 Fabric里的Peer節點有哪些?
Peer節點目前有兩種: 背書節點Endorser和提交節點Committer,
(1) Endorser 完成對交易提案的背書處理,主要作業是驗證簽名,進行權限和合法性檢查,檢查通過則模擬運行交易,對交易導致的狀態變化(讀寫集)進行背書并回傳結果給客戶端,
(2) Committer 負責維護區塊鏈和賬本結構,對從Orderer發送來的批量交易區塊資料結構,進行最終檢查(包括交易訊息結構、簽名完整性、是否重復、讀寫集合版本是否匹配等),檢查通過后執行合法的交易,將結果寫入賬本,
7、Fabric里的Orderer節點的作用是什么?
Orderer節點主要用于對事務進行排序(共識),批量打包,生成區塊,發給Peer節點,一個區塊鏈網路中會有多個Orderer節點,它們共同提供排序服務,排序服務可以實作為多種不同的方式,從一個中心化的服務(被用于開發和測驗,如Solo),到分布式協議(如Kafka),再到PBFT的共識方式等,
8、Fabric的事務(Transaction)執行流程是怎樣的?
事務執行主流程分四步,如下圖:

(1) 首先由客戶端通過SDK提交交易初始化給Peer節點,請求背書(Endorse),
(2) Peer節點收到訊息后,進行背書Endorse,并將背書結果通知應用程式,
(3) 應用程式收到背書結果將之提交Ordering服務節點進行排序(也就是執行共識)并生成Block,
(4) 然后Ordering服務通知Committing Peer, Committing Peer對該交易進行驗證,驗證通過,則寫入賬本,最后通知客戶端交易成功,
9、Fabric的開發流程是什么?
如下圖所示,開發者創建客戶端應用和智能合約(Chaincode),Chaincode被部署到區塊鏈網路的Peer節點上面,通過Chaincode來操作賬本,當你呼叫一個交易Transaction時,你實際上是在呼叫Chaincode中的一個函式方法,它實作業務邏輯,并對賬本進行Get、Put、Delete操作,客戶端應用提供用戶互動界面,并提交交易到區塊鏈網路上,

10、 如何基于Fabric開發區塊鏈智能合約?
Fabric的智能合約Smart Contract稱為鏈碼Chaincode,是一段代碼,它處理網路成員所同意的業務邏輯,目前支持用Go、Java、Node.js語言進行開發,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/94147.html
標籤:其他
上一篇:微信小程式專案_秋泊優選49
