解耦交易處理節點的邏輯角色為背書節點(endorser)、確認節點(committer),可以根據負載進行靈活部署;
加強了身份證書管理服務,作為單獨的fabric ca專案,提供更多功能;
支援多通道特性,不同通道之間的資料彼此隔離,提高隔離安全性;
支援可拔插的架構,包括共識、許可權管理、加解密、賬本機制都模組,支援多種型別;
引入系統鏈碼來實現區塊鏈系統的處理,支援可程式設計和第三方實現。
endorser節點:主要提供processproposal(ctx context.context,signedprop *pb.signedproposal)(*pb.proposalresponse,error)方法(**在core/endorser/endorser.go檔案)供客戶端呼叫,完成對交易提案的背書(目前主要是簽名)處理。收到來自客戶端的交易提案後,首先進行合法性和acl許可權檢查,檢查通過則模擬執行交易,對交易導致的狀態變化(以讀寫集形式記錄,包括所讀狀態的鍵和版本,所寫狀態的鍵值)進行背書並返回結果給客戶端。注意網路中可以只有部分節點擔任endorser角色。主要**在core/endorser目錄下;
committer節點:負責維護區塊鏈和賬本結構(包括狀態db、歷史db、索引db等)。該節點會定期地從orderer獲取排序後的批量交易區塊結構,對這些交易進行落盤前的最終檢查(包括交易訊息結構、簽名完整性、是否重複、讀寫集合版本是否匹配等)。檢查通過後執行合法的交易,將結果寫入賬本,同時構造新的區塊,更新區塊中blockmetadata[2](transactions_filter)記錄交易是否合法等資訊。同乙個物理節點可以僅作為committer角色執行,也可以同時擔任endorser和committer這兩種角色。主要實現**在core/committer目錄下;
orderer:僅負責排序。為網路中所有合法交易進行全域性排序,並將一批排序後的交易組合生成區塊結構。orderer一般不需要跟賬本和交易內容直接打交道。主要實現**在orderer目錄下。對外主要提供broadcast(srv ab.atomicbroadcast_broadcastserver)error和deliver(srv ab.atomicbroadcast_deliverserver)error兩個rpc方法(**在orderer/server.go檔案);
ca:負責網路中所有證書的管理(分發、撤銷等),實現標準的pki架構。主要**在單獨的fabric-ca專案中。ca在簽發證書後,自身不參與到網路中的交易過程。
共識機制和許可權管理:面向聯盟和組織的管理人員。基於網路層的連通,實現共識機制和許可權管理,提供分布式賬本的基礎;
committer(確認節點):負責檢查交易請求,執行交易並維護區塊鏈和賬本結構;
submitter(提交節點):負責接收交易,**給排序者,目前未單獨出現。
操作執行在網路中的鏈碼:包括安裝、例項化、發起交易呼叫鏈碼等。
節點之間同步資料:多個節點之間彼此同步資料,保持一致性。另外,leader節點從orderer拉取區塊資料後,也可以通過gossip傳播給通道內其他、節點。
Fabric架構及功能介面
hyperledger fabric實現了完備的許可權管理,支援kafka和pbft等模組化共識演算法,是基於數字事件 交易呼叫 不同參與者共享的分布式總賬技術。fabric區塊鏈是一種由多個相互通訊的節點組成的分布式系統,上面執行鏈 chaincode 或者稱為智慧型合約 smart contra...
淺讀XML技術
在我們的日常的web開發工作中,除了 以外想必接觸最多的就是xml文擋了,隨著大量框架的不斷的湧現,我們 工作的重點已由原來的對 的開發逐步轉向了對xml文件的配置和解讀。那麼究竟是什麼是xml呢?它有那些語法的規則 呢?我們在日常工作使用中應該又該注意什麼呢?本文將從一些日常的鮮為人知的方面介紹並...
Fabric基礎架構原理 鏈碼
鏈客,有問必答!fabric基礎架構原理 鏈碼 智慧型合約能夠部署和執行在區塊鏈環境中,由一段 來描述相關的業務邏輯。部署後的智慧型合約在區塊鏈中無法修改,智慧型合約的執行完全由 決定,不受人為因素的干擾。一般來說,參與方通過智慧型合約規定各自權利和義務 觸發合約的條件以及結果,一旦該智慧型合約在區...