18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

超級賬本Fabric的架構與設計

C語言專家集中營 ? 來源:未知 ? 作者:鄧佳佳 ? 2018-03-21 15:02 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

超級賬本Fabric項目自誕生之日起就吸引了全球眾多企業(yè)的密切關注,已經(jīng)先后發(fā)布了兩個大的版本,0.6實驗版本(2016年9月)和1.0正式版本(2017年7月)。

目前,超級賬本Fabric架構上核心特性主要包括:

  • 解耦了原子排序環(huán)節(jié)與其他復雜處理環(huán)節(jié),消除了網(wǎng)絡處理瓶頸,提高可擴展性;

  • 解耦交易處理節(jié)點的邏輯角色為背書節(jié)點(Endorser)、確認節(jié)點(Committer),可以根據(jù)負載進行靈活部署;

  • 加強了身份證書管理服務,作為單獨的Fabric CA項目,提供更多功能;

  • 支持多通道特性,不同通道之間的數(shù)據(jù)彼此隔離,提高隔離安全性;

  • 支持可拔插的架構,包括共識、權限管理、加解密、賬本機制都模塊,支持多種類型;

  • 引入系統(tǒng)鏈碼來實現(xiàn)區(qū)塊鏈系統(tǒng)的處理,支持可編程和第三方實現(xiàn)。

超級賬本Fabric的整體架構如下圖所示。

Fabric整體架構

Fabric為應用提供了gRPC API,以及封裝API的SDK供應用調用。應用可以通過SDK訪問Fabric網(wǎng)絡中的多種資源,包括賬本、交易、鏈碼、事件、權限管理等。應用開發(fā)者只需要跟這些資源打交道即可,無需關心如何實現(xiàn)。其中,賬本是最核心的結構,記錄應用信息,應用則通過發(fā)起交易來向賬本中記錄數(shù)據(jù)。交易執(zhí)行的邏輯通過鏈碼來承載。整個網(wǎng)絡運行中發(fā)生的事件可以被應用訪問,以觸發(fā)外部流程甚至其他系統(tǒng)。權限管理則負責整個過程中的訪問控制。賬本和交易進一步地依賴核心的區(qū)塊鏈結構、數(shù)據(jù)庫、共識機制等技術;鏈碼則依賴容器、狀態(tài)機等技術;權限管理利用了已有的PKI體系、數(shù)字證書、加解密算法等諸多安全技術。底層由多個節(jié)點組成P2P網(wǎng)絡,通過gRPC通道進行交互,利用Gossip協(xié)議進行同步。

層次化結構提高了架構的可擴展和可插拔性,方便開發(fā)者以模塊為單位進行開發(fā)。

超級賬本Fabric根據(jù)交易過程中不同環(huán)節(jié)的功能,在邏輯上將節(jié)點角色解耦為Endorser和Committer,讓不同類型節(jié)點可以關注處理不同類型的工作負載。典型的交易處理過程如下圖所示。

示例交易處理過程

在整個交易過程中,各個組件的功能主要為:

  • 客戶端(App):客戶端應用使用SDK來跟Fabric網(wǎng)絡打交道。首先,客戶端從CA獲取合法的身份證書來加入到網(wǎng)絡內的應用通道。發(fā)起正式交易前,需要先構造交易提案(Proposal)提交給Endorser進行背書(通過EndorserClient提供的ProcessProposal(ctx context.Context, signedProp *pb.SignedProposal)(*pb.ProposalResponse,error)接口);客戶端收集到足夠(背書策略決定)的背書支持后可以利用背書構造一個合法的交易請求,發(fā)給Orderer進行排序(通過BroadcastClient提供的Send(env *cb.Envelope)error接口)處理。客戶端還可以通過事件機制來監(jiān)聽網(wǎng)絡中消息,來獲知交易是否被成功接收。命令行客戶端的主要實現(xiàn)代碼在peer/chaincode目錄下。

  • Endorser節(jié)點:主要提供ProcessProposal(ctx context.Context,signedProp *pb.SignedProposal)(*pb.ProposalResponse,error)方法(代碼在core/endorser/endorser.go文件)供客戶端調用,完成對交易提案的背書(目前主要是簽名)處理。收到來自客戶端的交易提案后,首先進行合法性和ACL權限檢查,檢查通過則模擬運行交易,對交易導致的狀態(tài)變化(以讀寫集形式記錄,包括所讀狀態(tài)的鍵和版本,所寫狀態(tài)的鍵值)進行背書并返回結果給客戶端。注意網(wǎng)絡中可以只有部分節(jié)點擔任Endorser角色。主要代碼在core/endorser目錄下;

  • Committer節(jié)點:負責維護區(qū)塊鏈和賬本結構(包括狀態(tài)DB、歷史DB、索引DB等)。該節(jié)點會定期地從Orderer獲取排序后的批量交易區(qū)塊結構,對這些交易進行落盤前的最終檢查(包括交易消息結構、簽名完整性、是否重復、讀寫集合版本是否匹配等)。檢查通過后執(zhí)行合法的交易,將結果寫入賬本,同時構造新的區(qū)塊,更新區(qū)塊中BlockMetadata[2](TRANSACTIONS_FILTER)記錄交易是否合法等信息。同一個物理節(jié)點可以僅作為Committer角色運行,也可以同時擔任Endorser和Committer這兩種角色。主要實現(xiàn)代碼在core/committer目錄下;

  • Orderer:僅負責排序。為網(wǎng)絡中所有合法交易進行全局排序,并將一批排序后的交易組合生成區(qū)塊結構。Orderer一般不需要跟賬本和交易內容直接打交道。主要實現(xiàn)代碼在orderer目錄下。對外主要提供Broadcast(srv ab.AtomicBroadcast_BroadcastServer)error和Deliver(srv ab.AtomicBroadcast_DeliverServer)error兩個RPC方法(代碼在orderer/server.go文件);

  • CA:負責網(wǎng)絡中所有證書的管理(分發(fā)、撤銷等),實現(xiàn)標準的PKI架構。主要代碼在單獨的fabric-ca項目中。CA在簽發(fā)證書后,自身不參與到網(wǎng)絡中的交易過程。

核心概念與組件

超級賬本Fabric采用了模塊化功能設計,整體的功能模塊結構如下圖所示。

Fabric核心組件

超級賬本Fabric面向不同的開發(fā)人員提供了不同層面的功能,自下而上可以分為三層:

  • 網(wǎng)絡層:面向系統(tǒng)管理人員。實現(xiàn)P2P網(wǎng)絡,提供底層構建區(qū)塊鏈網(wǎng)絡的基本能力,包括代表不同角色的節(jié)點和服務;

  • 共識機制和權限管理:面向聯(lián)盟和組織的管理人員?;诰W(wǎng)絡層的連通,實現(xiàn)共識機制和權限管理,提供分布式賬本的基礎;

  • 業(yè)務層:面向業(yè)務應用開發(fā)人員?;诜植际劫~本,支持鏈碼、交易等跟業(yè)務相關的功能模塊,提供更高一層的應用開發(fā)支持。

下面介紹網(wǎng)絡層相關組件的功能和作用。

網(wǎng)絡層相關組件

網(wǎng)絡層通過軟、硬件設備,實現(xiàn)了對分布式賬本結構的連通支持,包括節(jié)點、排序者、客戶端等參與角色,還包括成員身份管理、Gossip協(xié)議等支持組件。

節(jié)點(Peer)的概念最早來自P2P分布式網(wǎng)絡,意味著在網(wǎng)絡中擔任一定職能的服務或軟件。節(jié)點功能可能是對等一致的,也可能是分工合作的。在超級賬本Fabric網(wǎng)絡中,Peer意味著在網(wǎng)絡中負責接受交易請求、維護一致賬本的各個fabric-peer實例。這些實例可能運行在裸機、虛擬機甚至容器中。節(jié)點之間彼此通過gRPC消息進行通信。按照功能角色劃分,Peer可以包括三種類型:

  • Endorser(背書節(jié)點):負責對來自客戶端的交易提案進行檢查和背書;

  • Committer(確認節(jié)點):負責檢查交易請求,執(zhí)行交易并維護區(qū)塊鏈和賬本結構;

  • Submitter(提交節(jié)點):負責接收交易,轉發(fā)給排序者,目前未單獨出現(xiàn)。

這些角色是功能上的劃分,彼此并不相互排斥。一般情況下,網(wǎng)絡中所有節(jié)點都具備Committer功能;部分節(jié)點具有Endorser功能;Submitter功能則往往集成在客戶端(SDK)進行實現(xiàn)。

Peer節(jié)點相關的主要數(shù)據(jù)結構包括PeerEndpoint和endorserClient。前者代表一個Peer節(jié)點在網(wǎng)絡中的接入端點;后者實現(xiàn)EndorserClient接口,代表連接到Peer節(jié)點的客戶端句柄,提供對Endorser角色實現(xiàn)的ProcessProposal(ctx context.Context,signedProp *pb.SignedProposal)(*pb.ProposalResponse, error)方法的訪問。如下圖所示。

Peer節(jié)點相關數(shù)據(jù)結構

排序者(Orderer),或稱為排序節(jié)點,負責對所收到的交易在網(wǎng)絡中進行全局排序。Orderer主要提供了Broadcast(srv ab.AtomicBroadcast_BroadcastServer) error和Deliver(srv ab.AtomicBroadcast_DeliverServer) error兩個接口。前者代表客戶端將數(shù)據(jù)(交易)發(fā)給Orderer,后者代表從Orderer獲取到排序后構造的區(qū)塊結構??蛻舳丝梢允褂胊tomicBroadcastClient結構訪問這兩個接口。atomicBroadcastClient結構如下圖所示,維持了一個gRPC的雙向通道。

atomicBroadcastClient結構

Orderer可以支持多通道。不同通道之間彼此隔離,通道內交易相關信息將僅發(fā)往加入到通道內的Peer(同樣基于gRPC消息),從而提高隱私性和安全性。在目前的設計中,所有的交易信息都會從Orderer經(jīng)過,因此,Orderer節(jié)點在網(wǎng)絡中必須處于可靠、可信的地位。

從功能上看,Orderer的目的是對網(wǎng)絡中的交易分配全局唯一的序號,實際上并不需要交易相關的具體數(shù)據(jù)內容。因此為了進一步提高隱私性,發(fā)往Orderer的可以不是完整的交易數(shù)據(jù),而是部分信息,比如交易加密處理后的結果,或者僅僅是交易的Hash值、Id信息等。這些改進設計會降低對Orderer節(jié)點可靠性和安全性的需求。社區(qū)目前也已經(jīng)有了一些類似的設計討論(參考FAB-1151:Side DB-Private Channel Data)。

客戶端是用戶和應用跟區(qū)塊鏈網(wǎng)絡打交道的橋梁。客戶端主要包括兩大職能:

  • 操作Fabric網(wǎng)絡:包括更新網(wǎng)絡配置、啟停節(jié)點等;

  • 操作運行在網(wǎng)絡中的鏈碼:包括安裝、實例化、發(fā)起交易調用鏈碼等。

這些操作需要跟Peer節(jié)點和Orderer節(jié)點打交道。特別是鏈碼實例化、交易等涉及到共識的操作,需要跟Orderer交互,因此,客戶端往往也需要具備Submitter的能力。網(wǎng)絡中的Peer和Orderer等節(jié)點則對應提供了gRPC遠程服務訪問接口,供客戶端進行調用。目前,除了基于命令行的客戶端之外,超級賬本Fabric已經(jīng)擁有了多種語言的SDK。這些SDK封裝了對底層gRPC接口的調用,可以提供更完善的客戶端和開發(fā)支持,包括Node.Js、Python、Java、Go等多種實現(xiàn)。

CA節(jié)點(Fabric-CA)負責對Fabric網(wǎng)絡中的成員身份進行管理。Fabric網(wǎng)絡目前采用數(shù)字證書機制來實現(xiàn)對身份的鑒別和權限控制,CA節(jié)點則實現(xiàn)了PKI服務,主要負責對身份證書進行管理,包括生成、撤銷等。需要注意的是,CA節(jié)點可以提前簽發(fā)身份證書,發(fā)送給對應的成員實體,這些實體在部署證書后即可訪問網(wǎng)絡中的各項資源。后續(xù)訪問過程中,實體無須再次向CA節(jié)點進行請求。因此,CA節(jié)點的處理過程跟網(wǎng)絡中交易的處理過程是完全解耦開的,不會造成性能瓶頸。

Fabric網(wǎng)絡中的節(jié)點之間通過Gossip協(xié)議來進行狀態(tài)同步和數(shù)據(jù)分發(fā)。Gossip協(xié)議是P2P領域的常見協(xié)議,用于進行網(wǎng)絡內多個節(jié)點之間的數(shù)據(jù)分發(fā)或信息交換。由于其設計簡單,容易實現(xiàn),同時容錯性比較高,而被廣泛應用到了許多分布式系統(tǒng),例如Cassandra采用它來實現(xiàn)集群失敗檢測和負載均衡。Gossip協(xié)議的基本思想十分簡單,數(shù)據(jù)發(fā)送方從網(wǎng)絡中隨機選取若干節(jié)點,將數(shù)據(jù)發(fā)送過去;接收方重復這一過程(往往只選擇發(fā)送方之外節(jié)點進行傳播)。這一過程持續(xù)下去,網(wǎng)絡中所有節(jié)點最終(時間復雜度為節(jié)點總個數(shù)的對數(shù))都會達到一致。數(shù)據(jù)傳輸?shù)姆较蚩梢允前l(fā)送方發(fā)送或獲取方拉取。

在Fabric網(wǎng)絡中,節(jié)點會定期地利用Gossip協(xié)議發(fā)送它看到的賬本的最新的數(shù)據(jù),并對發(fā)送消息進行簽名認證。通過使用該協(xié)議,主要實現(xiàn)如下功能:

  • 通道內成員的探測:新加入通道的節(jié)點可以獲知其他節(jié)點的信息,并發(fā)送Alive信息宣布在線;離線節(jié)點經(jīng)過一段時間后可以被其他節(jié)點感知。

  • 節(jié)點之間同步數(shù)據(jù):多個節(jié)點之間彼此同步數(shù)據(jù),保持一致性。另外,Leader節(jié)點從Orderer拉取區(qū)塊數(shù)據(jù)后,也可以通過Gossip傳播給通道內其他、節(jié)點。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 網(wǎng)絡
    +關注

    關注

    14

    文章

    8044

    瀏覽量

    92445
  • 設計
    +關注

    關注

    4

    文章

    824

    瀏覽量

    71056
  • Fabric
    +關注

    關注

    0

    文章

    44

    瀏覽量

    7646
  • 架構
    +關注

    關注

    1

    文章

    532

    瀏覽量

    26459

原文標題:超級賬本Fabric的架構與設計

文章出處:【微信號:C_Expert,微信公眾號:C語言專家集中營】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    阿里云容器服務區(qū)塊鏈解決方案全新升級 支持Hyperledger Fabric v1.1

    解決方案第一時間同步升級,在v1.1新功能的基礎上,提供了彈性裸金屬服務器(神龍)、內置容器化Explorer、集成阿里云日志服務等方面的增強。作為全球開源區(qū)塊鏈領域影響最為廣泛的項目之一,超級賬本近日
    發(fā)表于 04-03 15:07

    Imagination 宣布與 NetSpeed 合作開發(fā)新的 Fabric 架構技術

    Imagination Technologies 宣布,將與片上網(wǎng)絡 (on-chip network) 技術和工具 供應商NetSpeed Systems合作,為最先進的SoC (系統(tǒng)單芯片) 設計提供下一代的 Fabric 架構解決方案。
    發(fā)表于 01-11 14:25 ?2996次閱讀

    超級賬本架構分析

    Fabric整體架構 Fabric為應用提供了gRPC API,以及封裝API的SDK供應用調用。應用可以通過SDK訪問Fabric網(wǎng)絡中的多種資源,包括
    發(fā)表于 09-28 14:20 ?0次下載
    <b class='flag-5'>超級</b><b class='flag-5'>賬本架構</b>分析

    Julian Gordon:2018年是超級賬本和區(qū)塊鏈進入全盛時期的一年

    Hyperledger超級賬本為Linux基金會協(xié)作的開源項目,旨在推進跨行業(yè)區(qū)塊鏈技術。
    發(fā)表于 07-03 16:40 ?1626次閱讀

    什么是超級賬本,其發(fā)展進展又如何

    超級賬本(Hyperledger)項目,將嘗試在商業(yè)世界中標準化和民主化區(qū)塊鏈。超級賬本不是讓公司們自己解決問題,而是結合跨行業(yè)的知識,允許企業(yè)構建可滿足特定需求的定制區(qū)塊鏈。
    發(fā)表于 10-23 11:13 ?2599次閱讀

    阿里云成為Hyperledger超級賬本全球會員,發(fā)力區(qū)塊鏈生態(tài)建設

    2018年12月12日在瑞士巴塞爾的2018Hyperledger全球峰會上,阿里云正式加入Hyperledger超級賬本項目并成為標準會員。阿里云將會與Hyperledger社區(qū)共同推進全球區(qū)塊鏈
    發(fā)表于 12-24 16:59 ?528次閱讀

    超級賬本Hyperledger對區(qū)塊鏈的應用

    Hyperledger對傳統(tǒng)區(qū)塊鏈模型進行了革新,其中包括管理參與者的訪問許可權。換句話說,Hyperledger 是有權限的共享賬本。Hyperledger為身份識別、審核及隱私提供了一個安全、健康的模型,從而縮短運算周期,實現(xiàn)有效擴展,應對業(yè)內各種運用要求。
    發(fā)表于 01-02 10:30 ?1579次閱讀
    <b class='flag-5'>超級</b><b class='flag-5'>賬本</b>Hyperledger對區(qū)塊鏈的應用

    基于區(qū)塊鏈技術的智能商務平臺ElamaChain介紹

    超級賬本是在Linux基金主導下,為了推進產(chǎn)業(yè)間區(qū)塊鏈技術的發(fā)展組織的全球性開源項目。金融、銀行、物聯(lián)網(wǎng)、供應鏈、制造和技術領域的130多名成員正參與超級賬本
    發(fā)表于 05-10 11:51 ?1442次閱讀
    基于區(qū)塊鏈技術的智能商務平臺ElamaChain介紹

    如何利用超級賬本的功能來構建一個應用程序

    如果您一直在研究超級賬本,那么您可能已經(jīng)接觸過利用了線上超級賬本網(wǎng)絡的教程,比如carauction-network(可以在超級
    發(fā)表于 06-19 10:58 ?1308次閱讀

    Linux基金會主導的超級賬本項目發(fā)布了首個區(qū)塊鏈代碼

    Linux基金會(Linux Foundation)主導的超級賬本項目(Hyperledger Project)發(fā)布了大型企業(yè)可以用來搭建軟件的首個區(qū)塊鏈代碼。 包括IBM、思科(Cisco
    發(fā)表于 07-03 14:52 ?1607次閱讀

    什么是超級賬本

    Hyperledger(超級賬本)是 Linux 基金會 2015 年發(fā)起的推進區(qū)塊鏈數(shù)字技術和交易驗證的開源項目,其創(chuàng)建的目的是為了支持多種商業(yè)環(huán)境的應用。
    發(fā)表于 12-05 10:49 ?5784次閱讀

    基于區(qū)塊鏈技術的開源公鏈項目Hyperledger基金會介紹

    IBM是企業(yè)區(qū)塊鏈領域的重要參與者,其區(qū)塊鏈平臺以 Hyperledger Fabric 超級賬本為基礎,為很多大企業(yè)比如沃爾瑪和安泰保險都開發(fā)過區(qū)塊鏈試點產(chǎn)品。
    發(fā)表于 02-03 12:40 ?1703次閱讀

    IBM 區(qū)塊鏈是真正的區(qū)塊鏈嗎

    IBM 是企業(yè)區(qū)塊鏈領域的重要參與者,其區(qū)塊鏈平臺以 Hyperledger Fabric 超級賬本為基礎,為很多大企業(yè)比如沃爾瑪和安泰保險都開發(fā)過區(qū)塊鏈試點產(chǎn)品。
    發(fā)表于 02-05 11:03 ?2390次閱讀

    基于超級賬本的DNS協(xié)同防御體系

    鏈整合多方資源共同對抗網(wǎng)絡攻擊,并利用超級賬本的通道架構和背書策略實現(xiàn)隱私保護,促進網(wǎng)絡信息共享。分析結果表明,該協(xié)同防御體系在數(shù)據(jù)層面和業(yè)務層面均具有較強的安全性,為解決域名行業(yè)安全問題提供了借鑒作用。
    發(fā)表于 05-28 11:15 ?12次下載

    Hyperledger Fabric開源區(qū)塊鏈分布式賬本

    fabric.zip
    發(fā)表于 04-22 09:17 ?1次下載
    Hyperledger <b class='flag-5'>Fabric</b>開源區(qū)塊鏈分布式<b class='flag-5'>賬本</b>