超級賬本 Fabric 基本架構

導語:本文主要介紹超級賬本?Fabric 的特點较木、基本架構設計试和、運行過程挟阻,以及在學習過程中遇到的一些疑問進行總結梳理。

一嗦枢、超級賬本Fabric的基本特點

(1)開放性

? ? ????超級賬本是linux基金會2015年底成立的攀芯。自成立后吸引了大批企業(yè),包括IBM文虏、accenture侣诺、intel殖演、cisco、HITACHI等大企業(yè)的加入∧暝В現(xiàn)在的Fabric源代碼主要由IBM和Digital Asset這兩家公司提供趴久。是IBM開源的blockchain項目。

(2)開源

? ? ????開源是特色搔确。Fabric的源代碼的開源的彼棍,托管在github上,鏈接見https://github.com/hyperledger/fabric.git膳算。所有開發(fā)者或企業(yè)機構都可以自由地下載座硕,進行研究,在此基礎上結合業(yè)務場景涕蜂,在不同的商業(yè)場景上應用落地坎吻。

(3)SDK支持多語言,減低門檻

? ? ????目前Fabric SDK支持go宇葱、java、js刊头,python四種主流語言黍瞧,大多數(shù)開發(fā)者可以快速的上手,降低了開發(fā)的門檻和成本原杂。此外印颤,還有一個Hyper ledger Composer工具,可以快速地搭建環(huán)境穿肄。

(4)可插拔年局,可擴展

? ? ? ? Fabric中的CA、數(shù)據(jù)庫咸产、共識算法都是可插拔的矢否。而且,F(xiàn)abric中的鏈碼是通過docker實現(xiàn)脑溢。

(5)基于聯(lián)盟鏈的前提僵朗,兼顧數(shù)據(jù)共享和隱私保護

? ? ? ? Fabric最多的特點是引入了鏈碼和通道的概念。在Fabric中屑彻,通過channel验庙,也即通道隔離數(shù)據(jù),只有在這個通道的節(jié)點才能共享賬本社牲,二訪問不了其他賬本粪薛。通過建立不同的通道,可實現(xiàn)按需共享的目的搏恤。更符合現(xiàn)實生活的商業(yè)場景违寿。

二湃交、Fabric的基本架構

? ? Fabric包括了三大基本組件:Peer節(jié)點,Orderer節(jié)點陨界,fabric-ca.

(1)Peer節(jié)點

? ? Peer節(jié)點一般運行在docker中巡揍,主要負責接收交易請求,是在網絡中具有一定功能的服務或軟件菌瘪。而節(jié)點之間的通信是通過GRPC實現(xiàn)腮敌。Peer節(jié)點主要分為三種類型:Endorser、Committer俏扩、Submitter糜工。每一個Peer節(jié)點中都維護一份賬本,賬本數(shù)據(jù)本身是文件系統(tǒng)录淡。

????????1捌木、 背書節(jié)點Endorser : 負責對交易天進行檢查背書,根據(jù)定義好的規(guī)則讀寫數(shù)據(jù)嫉戚、讀寫集刨裆。這個讀寫的數(shù)據(jù)稱之為狀態(tài)db(state db或者world state db),可以是CouchDB或者LevelDB彬檀。背書就是簽署授權的意思帆啃。即根據(jù)約定往事務里讀寫數(shù)據(jù),可以理解為執(zhí)行合同中的某一個條款窍帝。但是這個數(shù)據(jù)是沒有寫到賬本中的努潘,因為賬本是共享的。

????????2坤学、確認節(jié)點Committer:負責檢查交易請求疯坤,驗證endorsements和transaction的結果,并且執(zhí)行交易深浮,并維護區(qū)塊鏈和賬本結構压怠。Committer會寫共享賬本數(shù)據(jù)。

? ? ? ? 3略号、Submitter:具體職能暫時沒用刑峡。

(2)Order節(jié)點

? ? ? ? Order節(jié)點主要負責對收到的交易在網絡中進行全局愛須。接收transaction玄柠,產生block突梦。并且負責共識機制的policy管理,RWSet羽利。

(3)CA節(jié)點

????????CA節(jié)點主要負責網絡中成員身份管理宫患。目前采用數(shù)字證書機制,實現(xiàn)PKI服務这弧。包括以下三個組件:

????????1娃闲、CA:負責證書的頒發(fā)和作廢虚汛,接收來自RA的請求。是PKI服務中最核心的組件皇帮,主要完成對公鑰的管理卷哩。

? ? ? ? 2、RA:對用戶身份進行驗證属拾,校驗數(shù)據(jù)合法性将谊,負責登記和審核,審核通過了就會發(fā)給CA

? ? ? ? 3渐白、證書數(shù)據(jù)庫:存放證書尊浓。

三、Fabric運作過程

? ? 事務就是合約纯衍、合同栋齿。完成這個合同的不同的參與者需要完成不同的任務。如下圖所示:右上角的紫色的框內是簽署規(guī)則襟诸;E0瓦堵、E1、E2是Endoser節(jié)點歌亲;P3谷丸、P4是Commit節(jié)點;上述節(jié)點運行在一個通道channel上应结;黃色A表示連碼;

? ? 注:圖片摘自《IBM技術專家:Hyperleger Fabric架構域部署實例解析》

(1)客戶端根據(jù)規(guī)則向這個網絡中廣播一條消息

(2)Endoser節(jié)點收到消息后泉唁,進行背書鹅龄。即根據(jù)約定往事務里讀寫數(shù)據(jù),可以理解為執(zhí)行合同中的某一個條款亭畜。但是這個數(shù)據(jù)(RW sets)是沒有寫到賬本中的扮休,因為賬本是共享的。

(3)Endoser節(jié)點完成簽署后拴鸵,通知客戶端玷坠。其中,讀寫數(shù)據(jù)會被每個Endoser簽名劲藐。

(4)客戶端段收到返回后八堡,就像Orderer service發(fā)送請求。Orderer 對這個交易進行排序聘芜,與網絡中的其他交易是并行的兄渺。

(5)之后寫到block中,并發(fā)送給Committer 節(jié)點P3和P4汰现。共識算法有:SOLO挂谍、Kafka叔壤、SBFT等。

(6)Committer節(jié)點驗證交易和當前RW sets狀態(tài)是否合法口叙,驗證通過就寫入到賬本中炼绘。

(7)Comitter節(jié)點通過客戶端,交易完成妄田。

四俺亮、常見疑難雜癥匯總

Q:區(qū)塊上的數(shù)據(jù)隱私是如果實現(xiàn)的?

A:Fabric引入通道的概念形庭,對數(shù)據(jù)進行隔離铅辞,從而實現(xiàn)不同的賬本的隱私保護。即只有在這個通道上的用戶才能訪問這個通道上的賬本萨醒。

Q:Fabric 是典型的聯(lián)盟鏈斟珊,安全性如何?

A:聯(lián)盟鏈中的企業(yè)都是互相了解的富纸,每一個參與者都有企業(yè)背景的背書囤踩,基于可信的前提下建立聯(lián)盟鏈,安全性是有保障的晓褪。

Q:Fabric中的賬本實際是包括key-value的數(shù)據(jù)庫和區(qū)塊鏈堵漱,其中數(shù)據(jù)庫是可修改的,不能修改的知識區(qū)塊鏈中的賬本涣仿。

A:數(shù)據(jù)是以賬本上的數(shù)據(jù)為準勤庐,peer啟動時會根據(jù)賬本recover state db,也可以根據(jù)需要隨時recover state db好港。其中愉镰,state db存儲的是交易的最新狀態(tài),可以簡單理解為:state db記錄的是賬戶的余額钧汹,而賬本記錄的是UTXO模型的數(shù)據(jù)丈探。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市拔莱,隨后出現(xiàn)的幾起案子碗降,更是在濱河造成了極大的恐慌,老刑警劉巖塘秦,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件讼渊,死亡現(xiàn)場離奇詭異,居然都是意外死亡尊剔,警方通過查閱死者的電腦和手機精偿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人笔咽,你說我怎么就攤上這事搔预。” “怎么了叶组?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵拯田,是天一觀的道長。 經常有香客問我甩十,道長船庇,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任侣监,我火速辦了婚禮鸭轮,結果婚禮上,老公的妹妹穿的比我還像新娘橄霉。我一直安慰自己窃爷,他們只是感情好,可當我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布姓蜂。 她就那樣靜靜地躺著按厘,像睡著了一般。 火紅的嫁衣襯著肌膚如雪钱慢。 梳的紋絲不亂的頭發(fā)上逮京,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天,我揣著相機與錄音束莫,去河邊找鬼懒棉。 笑死,一個胖子當著我的面吹牛览绿,可吹牛的內容都是我干的漓藕。 我是一名探鬼主播,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼挟裂,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了揍诽?” 一聲冷哼從身側響起诀蓉,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎暑脆,沒想到半個月后渠啤,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡添吗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年沥曹,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡妓美,死狀恐怖僵腺,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情壶栋,我是刑警寧澤辰如,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站贵试,受9級特大地震影響琉兜,放射性物質發(fā)生泄漏。R本人自食惡果不足惜毙玻,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一豌蟋、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧桑滩,春花似錦梧疲、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至戳吝,卻和暖如春浩销,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背听哭。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工慢洋, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人陆盘。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓普筹,卻偏偏與公主長得像,于是被迫代替她去往敵國和親隘马。 傳聞我的和親對象是個殘疾皇子太防,可洞房花燭夜當晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內容