8. Hyperledger Fabric 專題 - Hyperledger Fabric Model

Hyperledger Fabric 專題 - Hyperledger Fabric Model

本專題文檔概述了 Hyperledger Fabric 的關(guān)鍵設(shè)計(jì)特征剥扣,這些特征可以實(shí)現(xiàn) Fabric 對全面但可自定義的企業(yè)區(qū)塊鏈解決方案的承諾:

  • 資產(chǎn) (Asset) - 資產(chǎn)定義允許通過網(wǎng)絡(luò)交換幾乎所有具有貨幣價值的東西峻贮,從完整食品到古董車再到貨幣期貨。
  • 鏈碼 (Chaincode) - 鏈碼執(zhí)行從交易排序中劃分出來掺栅,限制了節(jié)點(diǎn)類型之間的信任和驗(yàn)證級別,并優(yōu)化了網(wǎng)絡(luò)可伸縮性和性能呜叫。
  • 帳本特征 - 不變的共享帳本對每個通道的整個交易歷史進(jìn)行編碼宅楞,并包括類似 SQL 的查詢功能脖卖,以進(jìn)行有效的審計(jì)和爭議解決。
  • 隱私 (Privacy) - 通道和私人數(shù)據(jù)集可實(shí)現(xiàn)私有和機(jī)密的多方交易蘑拯,這通常是競爭企業(yè)和受管制的行業(yè)在同一網(wǎng)絡(luò)上交換資產(chǎn)時需要的钝满。
  • 安全和 MSP (Security & Membership Services) - 會員許可制提供了一個受信任的區(qū)塊鏈網(wǎng)絡(luò),參與者知道所有交易都可以由授權(quán)的監(jiān)管機(jī)構(gòu)和審計(jì)員檢測和追蹤申窘。
  • 共識 (Consensus) - 達(dá)成共識的獨(dú)特方法可實(shí)現(xiàn)企業(yè)所需的靈活性和可擴(kuò)展性弯蚜。

1. 資產(chǎn)

資產(chǎn)的范圍從有形的 (房地產(chǎn)和硬件) 到無形的 (合同和知識產(chǎn)權(quán))。 Hyperledger Fabric 提供了使用鏈碼交易修改資產(chǎn)的功能剃法。

資產(chǎn)在 Hyperledger Fabric 中表示為鍵值對的集合碎捺,狀態(tài)更改記錄為通道賬本中的交易。資產(chǎn)可以二進(jìn)制和/或 JSON 形式表示贷洲。

2. 鏈碼

鏈碼是定義一項(xiàng)或多項(xiàng)資產(chǎn)的軟件收厨,以及用于修改資產(chǎn)的交易指令。換句話說优构,這就是業(yè)務(wù)邏輯帽氓。鏈碼定義了用于讀取或更改鍵值對或其他狀態(tài)數(shù)據(jù)庫信息的規(guī)則。鏈碼函數(shù)針對帳本的當(dāng)前狀態(tài)數(shù)據(jù)庫執(zhí)行俩块,并通過交易提案啟動黎休。鏈碼執(zhí)行會產(chǎn)生一組鍵值寫操作 (寫集),這些鍵值寫操作可以提交給網(wǎng)絡(luò)玉凯,并應(yīng)用于所有對端節(jié)點(diǎn)的帳本中势腮。

3. 賬本功能

賬本是 Fabric 中所有狀態(tài)轉(zhuǎn)換的有序和防篡改的記錄。狀態(tài)轉(zhuǎn)換是參與方提交的鏈碼調(diào)用 (“交易”) 的結(jié)果漫仆。每筆交易都會產(chǎn)生一組資產(chǎn)鍵值對捎拯,這些鍵值對在創(chuàng)建,更新或刪除時將被提交到賬本盲厌。

帳本由一個區(qū)塊鏈 (“鏈”) 和一個狀態(tài)數(shù)據(jù)庫組成署照,該區(qū)塊鏈將不可變的順序記錄存儲在區(qū)塊中祸泪,并維護(hù)一個狀態(tài)數(shù)據(jù)庫。每個通道有一個帳本建芙。每個對端節(jié)點(diǎn)都為其所屬的每個通道維護(hù)一個帳本的副本没隘。

Fabric 帳本的一些功能:

  • 使用基于鍵的查詢,范圍查詢和組合鍵查詢來查詢和更新帳本禁荸。
  • 使用富查詢語言的只讀查詢 (如果使用 CouchDB 作為狀態(tài)數(shù)據(jù)庫)右蒲。
  • 只讀歷史記錄查詢 — 查詢鍵的帳本歷史記錄,從而啟用數(shù)據(jù)起源場景赶熟。
  • 交易版本包括鏈碼讀取的鍵/值 (讀集) 和鏈碼寫入的鍵/值 (寫集)瑰妄。
  • 交易包含每個背書對端節(jié)點(diǎn)的簽名,并提交給交易排序服務(wù)映砖。
  • 交易被分為幾大塊间坐,并從交易排序服務(wù)分發(fā)到通道上的對端節(jié)點(diǎn)。
  • 對端節(jié)點(diǎn)根據(jù)背書策略驗(yàn)證交易并執(zhí)行邑退。
  • 在添加區(qū)塊之前眶诈,執(zhí)行版本檢查,以確保自鏈碼執(zhí)行以來瓜饥,已讀取資產(chǎn)的狀態(tài)未更改。
  • 一旦交易被驗(yàn)證并被提交浴骂,就不可改變乓土。
  • 通道的帳本包含一個配置塊,用于定義策略溯警,訪問控制列表和其他相關(guān)信息趣苏。
  • 通道包含成員資格服務(wù)提供者實(shí)例,允許從不同的證書頒發(fā)機(jī)構(gòu)派生加密材料梯轻。

有關(guān)數(shù)據(jù)庫食磕,存儲結(jié)構(gòu)和“查詢能力”的更深入了解,請參閱 帳本 專題文檔喳挑。

4. 隱私

Hyperledger Fabric 在每個通道的基礎(chǔ)上使用不變的帳本彬伦,以及可以操縱和修改資產(chǎn)當(dāng)前狀態(tài) (即更新鍵值對) 的鏈碼。賬本存在于通道范圍內(nèi) - 可以在整個網(wǎng)絡(luò)中共享 (假設(shè)每個參與者都在一個公共通道上工作) - 或可以將其私有化以僅包括一組特定的參與者伊诵。

在后一種情況下单绑,這些參與者將創(chuàng)建一個單獨(dú)的通道,從而隔離他們的交易和帳本曹宴。為了解決想要彌合總體透明度和隱私之間的差距的方案搂橙,只能在需要訪問資產(chǎn)狀態(tài)以執(zhí)行讀寫的對端節(jié)點(diǎn)上安裝鏈碼 (換句話說,如果未在對端節(jié)點(diǎn)上安裝鏈碼, 它將無法與帳本正確連接)笛坦。

當(dāng)該通道上的組織子集需要對其交易數(shù)據(jù)保密時区转,可以使用私有數(shù)據(jù)集合將這些數(shù)據(jù)隔離在邏輯上與通道帳本分離的私有數(shù)據(jù)庫中苔巨,該數(shù)據(jù)庫只能由組織的授權(quán)子集訪問。

因此废离,通道使交易對于更廣泛的網(wǎng)絡(luò)而言是不公開的侄泽,而集合則對通道上的組織子集之間的數(shù)據(jù)保持不公開。

為了進(jìn)一步模糊數(shù)據(jù)厅缺,可以在將交易發(fā)送到交易排序服務(wù)并將區(qū)塊添加到賬本之前蔬顾,使用 AES 等通用加密算法對鏈碼中的值進(jìn)行加密 (部分或全部)。一旦加密數(shù)據(jù)已寫入帳本湘捎,則只有擁有用于生成密文的相應(yīng)密鑰的用戶才能對其解密诀豁。有關(guān)鏈碼加密的更多詳細(xì)信息,請參閱 鏈碼開發(fā)人員 主題窥妇。

有關(guān)如何在區(qū)塊鏈網(wǎng)絡(luò)上實(shí)現(xiàn)隱私的更多詳細(xì)信息舷胜,請參見 私有數(shù)據(jù) 主題。

5. 安全和 MSP

Hyperledger Fabric 支持所有參與者都具有已知身份的交易網(wǎng)絡(luò)活翩。公鑰基礎(chǔ)結(jié)構(gòu) (Public Key Infrastructure, PKI) 用于生成與組織烹骨,網(wǎng)絡(luò)組件以及最終用戶或客戶端應(yīng)用程序綁定的加密證書。結(jié)果材泄,可以在更廣泛的網(wǎng)絡(luò)和通道級別上操縱和控制數(shù)據(jù)訪問控制沮焕。Hyperledger Fabrc 的這種“許可制”的概念,再加上通道的存在和能力拉宗,幫助解決那些需要隱私和保密性要求非常高的情況峦树。

查看 會員服務(wù)提供商 ( Membership Service Providers , MSP) 主題,以更好地了解加密實(shí)現(xiàn)旦事,并簽名魁巩,驗(yàn)證,在 Hyperledger Fabric 用于身份驗(yàn)證的方法姐浮。

6. 共識

在分布式帳本技術(shù)中谷遂,共識最近已成為單一功能內(nèi)特定算法的同義詞。但是卖鲤,共識不僅包括簡單地同意交易順序肾扰,而且這種差異在 Hyperledger Fabric 中得到了體現(xiàn),它在整個交易流程 (從提案和背書到交易排序蛋逾,驗(yàn)證和承諾) 中的基本作用得到了強(qiáng)調(diào)白对。簡而言之,共識被定義為對包含一個區(qū)塊的一組交易的正確性的全面驗(yàn)證换怖。

區(qū)塊交易的順序和結(jié)果滿足明確的政策標(biāo)準(zhǔn)檢查后甩恼,才能最終達(dá)成共識。這些檢查發(fā)生在交易的生命周期中,包括使用背書策略來指示哪些特定成員必須背書某個交易類条摸,以及系統(tǒng)鏈碼以確保這些策略得到執(zhí)行和維護(hù)悦污。在作出承諾之前,對端節(jié)點(diǎn)將使用這些系統(tǒng)鏈碼來確保存在足夠的背書钉蒲,并且它們是從適當(dāng)?shù)膶?shí)體派生的切端。此外,在將包含交易的任何區(qū)塊追加到賬本之前顷啼,將進(jìn)行版本控制檢查踏枣,在此期間將對賬本的當(dāng)前狀態(tài)達(dá)成一致。最終檢查可以防止重復(fù)使用操作和其他可能危害數(shù)據(jù)完整性的威脅钙蒙,并可以針對非靜態(tài)變量執(zhí)行功能茵瀑。

除了進(jìn)行大量的背書,有效性和版本檢查外躬厌,還在交易流程的所有方向上進(jìn)行持續(xù)的身份驗(yàn)證马昨。訪問控制列表是在網(wǎng)絡(luò)的分層層上實(shí)現(xiàn)的 (將交易排序服務(wù)分布到各個通道),有效載荷在交易提案通過不同的體系結(jié)構(gòu)組件時被重復(fù)簽名扛施,驗(yàn)證和認(rèn)證鸿捧。總而言之疙渣,共識不僅限于一批交易的商定順序匙奴。相反,它是一項(xiàng)總體特征妄荔,它是交易從提案到承諾過程中不斷進(jìn)行的驗(yàn)證的副產(chǎn)品泼菌。

查看 交易流程圖 以直觀表示共識。

Reference

項(xiàng)目源代碼

項(xiàng)目源代碼會逐步上傳到 Github懦冰,地址為 https://github.com/windstamp

Contributor

  1. Windstamp, https://github.com/windstamp
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末谣沸,一起剝皮案震驚了整個濱河市刷钢,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌乳附,老刑警劉巖内地,帶你破解...
    沈念sama閱讀 211,561評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異赋除,居然都是意外死亡阱缓,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評論 3 385
  • 文/潘曉璐 我一進(jìn)店門举农,熙熙樓的掌柜王于貴愁眉苦臉地迎上來荆针,“玉大人,你說我怎么就攤上這事『奖常” “怎么了喉悴?”我有些...
    開封第一講書人閱讀 157,162評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長玖媚。 經(jīng)常有香客問我箕肃,道長,這世上最難降的妖魔是什么今魔? 我笑而不...
    開封第一講書人閱讀 56,470評論 1 283
  • 正文 為了忘掉前任勺像,我火速辦了婚禮,結(jié)果婚禮上错森,老公的妹妹穿的比我還像新娘吟宦。我一直安慰自己,他們只是感情好问词,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評論 6 385
  • 文/花漫 我一把揭開白布督函。 她就那樣靜靜地躺著,像睡著了一般激挪。 火紅的嫁衣襯著肌膚如雪辰狡。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,806評論 1 290
  • 那天垄分,我揣著相機(jī)與錄音宛篇,去河邊找鬼。 笑死薄湿,一個胖子當(dāng)著我的面吹牛叫倍,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播豺瘤,決...
    沈念sama閱讀 38,951評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼吆倦,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了坐求?” 一聲冷哼從身側(cè)響起蚕泽,我...
    開封第一講書人閱讀 37,712評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎桥嗤,沒想到半個月后须妻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,166評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡泛领,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評論 2 327
  • 正文 我和宋清朗相戀三年荒吏,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片渊鞋。...
    茶點(diǎn)故事閱讀 38,643評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡绰更,死狀恐怖瞧挤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情动知,我是刑警寧澤皿伺,帶...
    沈念sama閱讀 34,306評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站盒粮,受9級特大地震影響鸵鸥,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜丹皱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評論 3 313
  • 文/蒙蒙 一妒穴、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧摊崭,春花似錦讼油、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至根时,卻和暖如春瘦赫,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蛤迎。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評論 1 266
  • 我被黑心中介騙來泰國打工确虱, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人替裆。 一個月前我還...
    沈念sama閱讀 46,351評論 2 360
  • 正文 我出身青樓校辩,卻偏偏與公主長得像,于是被迫代替她去往敵國和親辆童。 傳聞我的和親對象是個殘疾皇子宜咒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評論 2 348

推薦閱讀更多精彩內(nèi)容