分拆Peer的功能,將Blockchain的數據維護和共識服務進行分離,共識服務從Peer節點中徹底分離出來,獨立爲Orderer節點提供共識服務; 基於新的架構,實現多通道(channel)的結構,實現了更爲靈活的業務適應性(業務隔離、安全性等方面) 支持更強的配置功能和策略管理功能,進一步加強系統的靈活性和適應性;數據庫
一、chaincode信任的靈活性:支持多個ordering服務節點,加強共識的容錯能力和對抗orderer做惡的能力
二、 擴展性: 將endorsement和ordering進行分離,實現多通道(實際是分區)結構,加強系統的擴展性;同時也將chaincode執行、ledger、state維護等很是消耗系統性能的任務與共識任務分離,保證了關鍵任務(ordering)的可靠執行
三、保密性:新架構對於chaincode在數據更新、狀態維護等方面提供了新的保密性要求,提升系統的業務、安全方面的能力
四、共識服務的模塊化:支持可插拔的共識結構,支持多種共識服務的接入和服務實現安全
多鏈chain網絡
所謂的chain(鏈)其實是包含Peer節點、帳本、ordering通道的邏輯結構,它將參與者與數據(包含chaincode在)進行隔離,知足了不一樣業務場景下的」不一樣的人訪問不一樣數據「的基本要求。同時,一個peer節點也能夠參與到多個chain中(經過接入多個channel);以下圖所示架構
多通道模塊化
通道是有共識服務(ordering)提供的一種通信機制,相似於消息系統中的發佈-訂閱(PUB/SUB)中的topic;基於這種發佈-訂閱關係,將peer和orderer鏈接在一塊兒,造成一個個具備保密性的通信鏈路(虛擬),實現了業務隔離的要求;通道也與帳本(ledger)-狀態(worldstate)緊密相關;以下圖所示:性能
peer 1,2和N訂閱紅色通道,並共同維護紅色帳本; peer 1和N訂閱藍色通道並維護藍色帳本; 相似地,peer 2和peer N在黑色通道上並維護黑色帳本。區塊鏈
在這個例子中,peer N在訂閱了全部通道,咱們看到每一個通道都有一個相關的帳本。 通常來講,咱們稱不涉及全部peer的帳本爲子帳本,另外一種是系統帳本,即全帳本。ui
通道和帳本的組合是一個虛擬鏈,所以一個區塊鏈網絡能夠具備1個共識服務的多個鏈。 系統通道和全帳本構成系統鏈。 每一個區塊鏈網絡只有1個系統鏈。若是交易是公開的,區塊鏈網絡可能永遠不須要多個鏈; 全部的交易對全部Peers成員均可見。 然而,在成員間進行私密交易(例如雙邊合同),單獨的鏈是隔離數據、提供保密的方式。設計
事物3d
事物處理流程【交易流程】,以下:
事務流(peer節點內)
上述過程對應的執行序列圖以下:
整體流程以下圖所示:在新的架構中,Peer節點負責維護區塊鏈的帳本(ledger)和狀態(State),本地的帳本稱爲PeerLedger,其結構以下:
整個區塊結構分爲文件系統存儲的Block結構和數據庫維護的State狀態,其中state的存儲結構是能夠替換的,可選的實現包括各類KV數據庫(LEVELDB,CouchDB等);
很明顯Febric V0.6與V1.0的架構及流程差別極大,在V0.6下開發的應用很難在V1.0環境下運行,因此咱們仍是不要費勁折騰V0.6,仍是從V1.0開始吧!(官方公佈的計劃)
參看地址:http://newthink.blog.51cto.com/872263/1897379?utm_source=tuicool&utm_medium=referral