版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
HyperlegerFabric超級賬本一個企業(yè)級區(qū)塊鏈平臺超級賬本(Hyperledger)創(chuàng)立于2016年最初由30個創(chuàng)始公司會員和一套技術(shù)和組織治理機構(gòu)組成。開始時,超級賬本技術(shù)指導(dǎo)委員會接受了兩個商業(yè)區(qū)塊鏈框架代碼庫進行孵化:HyperledgerFabric,由DigitalAsset、Blockstream的libconsensus、IBM的OpenBlockchain共同組合的作品;以及HyperledgerSawtooth,由Intel的孵化小組所開發(fā)。在Linux基金會發(fā)起的超過70個開源組織中,超級賬本是增長最快的項目。來自LinuxFoundation的開源項目,這是一個模塊化區(qū)塊鏈框架,也是企業(yè)區(qū)塊鏈平臺實際采用的標準。作為開發(fā)企業(yè)級應(yīng)用程序和行業(yè)解決方案的基礎(chǔ),開放式模塊化架構(gòu)使用即插即用組件來滿足各種用例的要求。LinuxFoundationLinuxFoundation有哪些成員LFMembers-Silver
(1236)LinuxFoundation支持的項目有哪些其他的軟件基金會自由軟件基金會(1985)Apache軟件基金會(1999)開放原子開源基金會(2020)HYPERLEGERFOUNDATIONHYPERLEGERFOUNDATIONBesu:這是一個基于Java的Ethereum客戶端,支持以太坊的所有功能,包括智能合約和私有網(wǎng)絡(luò)。Besu是為企業(yè)環(huán)境設(shè)計的,支持公有鏈、私有鏈和聯(lián)盟鏈。Burrow:這是一個具有許可功能的智能合約機(EVM),允許在區(qū)塊鏈網(wǎng)絡(luò)中運行智能合約。Burrow通過其模塊化的區(qū)塊鏈客戶端來支持多種交易和智能合約的需求,旨在為企業(yè)應(yīng)用提供高效和安全的解決方案。Fabric:主要面向企業(yè)用途,支持創(chuàng)建許可的區(qū)塊鏈網(wǎng)絡(luò)。它允許組件如共識和成員管理模塊的高度定制,適合構(gòu)建多種行業(yè)解決方案。Indy:專注于數(shù)字身份的創(chuàng)建、存儲和驗證。它提供工具和庫,用于建立可信的數(shù)字身份框架,適合需要嚴格身份驗證的應(yīng)用場景。Iroha:設(shè)計簡單并注重移動應(yīng)用,Iroha特別適用于集成到需要快速交易處理的系統(tǒng)中。Sawtooth:支持許可和無許可環(huán)境。Sawtooth特點是動態(tài)共識,允許網(wǎng)絡(luò)參與者在不同的共識算法之間切換而無需重啟網(wǎng)絡(luò)或重新配置。HYPERLEGERFOUNDATION---LibrariesAries:提供創(chuàng)建、傳輸和存儲非對稱加密可驗證的憑證技術(shù)的工具和庫。它旨在促進跨區(qū)塊鏈和非區(qū)塊鏈網(wǎng)絡(luò)的互操作性,以實現(xiàn)可信身份驗證。Quilt:提供了一個互操作性框架,支持各種支付服務(wù)之間的互操作性。Quilt實現(xiàn)了Interledger協(xié)議(ILP),旨在連接不同的金融網(wǎng)絡(luò)和區(qū)塊鏈。Transact:專注于簡化智能合約的執(zhí)行過程,它提供了一種執(zhí)行智能合約的標準方式,支持多種區(qū)塊鏈平臺。Ursa:是一個密碼學(xué)庫,包括安全的多方計算、零知識證明等高級密碼學(xué)功能。Ursa旨在避免區(qū)塊鏈項目中密碼學(xué)實現(xiàn)的重復(fù)勞動,并增強安全性。HYPERLEGERFOUNDATION---ToolsAvalon:旨在提高區(qū)塊鏈應(yīng)用的隱私和可擴展性。它支持離鏈計算,保證了數(shù)據(jù)處理的隱私性和安全性。Cactus:是一個區(qū)塊鏈互操作性工具,支持不同區(qū)塊鏈平臺之間的安全和有效連接。Caliper:是一個區(qū)塊鏈性能基準測試工具,用于測量不同區(qū)塊鏈解決方案的性能指標。Cello:是區(qū)塊鏈即服務(wù)(BaaS)平臺,旨在提供即插即用的區(qū)塊鏈服務(wù),簡化區(qū)塊鏈網(wǎng)絡(luò)的部署和管理。Explorer:是一個區(qū)塊鏈瀏覽器,用于可視化和管理區(qū)塊鏈網(wǎng)絡(luò)的活動和數(shù)據(jù)。為什么要用企業(yè)級區(qū)塊鏈技術(shù)?對于企業(yè)應(yīng)用,我們需要考慮以下要求:參與者必須是已認證的或者可識別的網(wǎng)絡(luò)需要獲得許可高交易吞吐量性能交易確認低延遲與商業(yè)交易有關(guān)的交易和數(shù)據(jù)的隱私和機密性Hyperledger–
OpenSourceBlockchainTechnologies當(dāng)前許多早期的區(qū)塊鏈平臺正在為企業(yè)應(yīng)用做調(diào)整,而HyperledgerFabric從一開始就設(shè)計為企業(yè)用途HyperledgerFabric
的不同之處具有高度模塊化和可配置的架構(gòu),可為各行各業(yè)的業(yè)務(wù)提供創(chuàng)新性、多樣性和優(yōu)化,其中包括銀行、金融、保險、醫(yī)療保健、人力資源、供應(yīng)鏈甚至數(shù)字音樂分發(fā)。第一個支持通用編程語言編寫智能合約(如Java、Go和Node.js)的分布式賬本平臺,不受限于特定領(lǐng)域語言(Domain-SpecificLanguages,DSL)。這意味著大多數(shù)企業(yè)已經(jīng)擁有開發(fā)智能合約所需的技能,并且不需要額外的培訓(xùn)來學(xué)習(xí)新的語言或特定領(lǐng)域語言。是許可的,這意味著它與公共非許可網(wǎng)絡(luò)不同,參與者彼此了解而不是匿名的或完全不信任的。也就是說,盡管參與者可能不會完全信任彼此(例如,同行業(yè)中的競爭對手),但網(wǎng)絡(luò)可以在一個治理模式下運行,這個治理模式是建立在參與者之間確實存在的信任之上的,如處理糾紛的法律協(xié)議或框架。HyperledgerFabric
的不同之處支持可插拔的共識協(xié)議,使得平臺能夠更有效地進行定制,以適應(yīng)特定的業(yè)務(wù)場景和信任模型利用不需要原生加密貨幣的共識協(xié)議來激勵昂貴的挖礦或推動智能合約執(zhí)行。不使用加密貨幣會降低系統(tǒng)的風(fēng)險,并且沒有挖礦操作意味著可以使用與任何其他分布式系統(tǒng)大致相同的運營成本來部署平臺。這些差異化設(shè)計特性的結(jié)合使Fabric成為當(dāng)今交易處理和交易確認延遲方面性能較好的平臺之一,并且它實現(xiàn)了交易的隱私和保密以及智能合約(Fabric稱之為“鏈碼”)介紹—hyperledger-fabricdocsmaster文檔關(guān)鍵概念回顧---分布式賬本區(qū)塊鏈網(wǎng)絡(luò)的核心是一個分布式賬本,記錄網(wǎng)絡(luò)上發(fā)生的所有交易。區(qū)塊鏈賬本通常被描述為
去中心化的
,因為它會被復(fù)制到許多網(wǎng)絡(luò)參與者中,每個參與者都在
協(xié)作
維護賬本。我們將看到去中心化和協(xié)作是強大的屬性,反映了企業(yè)在現(xiàn)實世界中交換商品和服務(wù)的方式。除了”去中心化”和”協(xié)作”之外,信息僅能以追加的方式記錄到區(qū)塊鏈上,并使用加密技術(shù)保證一旦將交易添加到賬本就無法修改。這種“不可修改”的屬性簡化了信息的溯源,因為參與者可以確定信息在記錄后沒有改變過。這就是為什么區(qū)塊鏈有時被描述為
證明系統(tǒng)
Fabric---共享賬本HyperledgerFabric有一個賬本子系統(tǒng),包括兩個組件:世界狀態(tài)和交易日志。每個參與者都擁有他們所屬的每個HyperledgerFabric網(wǎng)絡(luò)的賬本副本。世界狀態(tài)組件描述了在給定時間點的賬本的狀態(tài)。它是賬本的數(shù)據(jù)庫。交易日志組件記錄產(chǎn)生世界狀態(tài)中當(dāng)前值的所有交易;這是世界狀態(tài)的更新歷史。然后,賬本包括世界狀態(tài)數(shù)據(jù)庫和交易日志歷史記錄。賬本中世界狀態(tài)的數(shù)據(jù)存儲是可替換的。默認情況下,這是LevelDB鍵值存儲數(shù)據(jù)庫。交易日志不需要是可插拔的。它只記錄區(qū)塊鏈網(wǎng)絡(luò)使用賬本數(shù)據(jù)庫前后的值。關(guān)鍵概念回顧---智能合約為了支持以同樣的方式更新信息,并實現(xiàn)一整套賬本功能(交易,查詢等),區(qū)塊鏈使用智能合約來提供對賬本的受控訪問。智能合約不僅是在網(wǎng)絡(luò)中封裝和簡化信息的關(guān)鍵機制,它還可以被編寫成自動執(zhí)行參與者的特定交易的合約。例如,可以編寫智能合約以規(guī)定物品的運費,運費根據(jù)物品送達的速度變化而變化。交易雙方同意并把條款寫入賬本后,當(dāng)物品送達時,相應(yīng)的資金就會自動轉(zhuǎn)賬。Fabric---智能合約及隱私HyperledgerFabric智能合約用鏈碼編寫,當(dāng)該應(yīng)用程序需要與賬本交互時,由區(qū)塊鏈外部的應(yīng)用程序調(diào)用。在大多數(shù)情況下,鏈碼只與賬本的數(shù)據(jù)庫、世界狀態(tài)(例如,查詢)交互,而不與交易日志交互。鏈碼可以用幾種編程語言實現(xiàn)。目前支持Go、Node.js和Java鏈碼。根據(jù)網(wǎng)絡(luò)的需求,企業(yè)對企業(yè)(B2B)網(wǎng)絡(luò)中的參與者可能對他們共享的信息量非常敏感。對于其他網(wǎng)絡(luò),隱私不是最受關(guān)注的問題。(C2C,B2C,C2B,O2O)HyperledgerFabric支持私有網(wǎng)絡(luò)(使用通道)是很重要的,因為網(wǎng)絡(luò)是相對開放的。關(guān)鍵概念回顧---共識保持賬本在整個網(wǎng)絡(luò)中同步的過程稱為
共識
。該過程確保所有賬本僅在交易被相應(yīng)參與者批準時更新,并且當(dāng)賬本更新時,所有賬本都以相同的順序更新相同的交易。將區(qū)塊鏈視為共享的并具有多份副本的交易系統(tǒng),該系統(tǒng)通過智能合約進行更新,并通過稱為共識的協(xié)作流程來保持一致。Fabric---共識在HyperledgerFabric中,共識機制不是單一固定的程序,而是可插拔的,并且可以根據(jù)網(wǎng)絡(luò)的具體需求進行配置。共識過程涵蓋了交易的全生命周期,包括交易的提案、背書、排序以及驗證和提交到賬本。具體到:背書策略:交易在被提交到賬本之前必須由指定的網(wǎng)絡(luò)成員審查并“背書”。排序服務(wù):交易經(jīng)過背書后,需要被排序服務(wù)處理,并打包成區(qū)塊。驗證與提交:節(jié)點在接收到區(qū)塊后將執(zhí)行交易的最終驗證,確認交易及其執(zhí)行結(jié)果是否符合業(yè)務(wù)規(guī)則和背書策略,然后將其提交到賬本。這種模塊化和可配置的共識機制使得Fabric可以適應(yīng)各種不同的企業(yè)應(yīng)用場景,同時保證了網(wǎng)絡(luò)的高效性和安全性。Raft、BTF、Kafka、soloHyperledgerFabric模型資產(chǎn)
—資產(chǎn)是可以通過網(wǎng)絡(luò)交換的幾乎所有具有價值的東西,從食品到古董車、貨幣期貨。鏈碼
—鏈碼執(zhí)行與交易排序分離,限制了跨節(jié)點類型所需的信任和驗證級別,并優(yōu)化了網(wǎng)絡(luò)可擴展性和性能。賬本特性
—不可變的共享賬本為每個通道編碼整個交易歷史記錄,并包括類似SQL的查詢功能,以便高效審計和解決爭議。隱私
—通道和私有數(shù)據(jù)集合實現(xiàn)了隱私且機密的多邊交易,這些交易通常是在共同網(wǎng)絡(luò)上交換資產(chǎn)的競爭企業(yè)和受監(jiān)管行業(yè)所要求的。安全和成員服務(wù)
—許可成員資格提供可信的區(qū)塊鏈網(wǎng)絡(luò),參與者知道所有交易都可以由授權(quán)的監(jiān)管機構(gòu)和審計員檢測和跟蹤。共識
—達成共識的獨特方法可實現(xiàn)企業(yè)所需的靈活性和可擴展性。HyperledgerFabric模型四個組織R1、R2、R3和R4,他們共同決定,并且達成了一個協(xié)議,他們將會設(shè)置并開發(fā)一個HyperledgerFabric網(wǎng)絡(luò)。R4被分配作為網(wǎng)絡(luò)的初始者,它有權(quán)設(shè)置網(wǎng)絡(luò)的初始版本。R4不會在網(wǎng)絡(luò)中去進行任何的業(yè)務(wù)交易。R1和R2在整個網(wǎng)絡(luò)中有進行私有通信的需求,R2和R3也是。組織R1有一個客戶端的應(yīng)用能夠在通道C1中進行業(yè)務(wù)的交易。組織R2有一個客戶端應(yīng)用可以在通道C1和C2中進行類似的工作。組織R3可以在通道C2中做這樣的工作。節(jié)點P1維護了C1的賬本L1的副本。節(jié)點P2維護了C1的賬本L1和C2的賬本L2的副本。節(jié)點P3維護了C2的賬本L2的副本。這個網(wǎng)絡(luò)是根據(jù)在網(wǎng)絡(luò)配置NC4中指定的規(guī)則來進行管理的,整個網(wǎng)絡(luò)由組織R1和R4管理。通道C1是根據(jù)在通道配置CC1中指定的規(guī)則來管理的,這個通道由組織R1和R2管理。通道C2是根據(jù)在通道配置CC2中指定的規(guī)則來管理的,這個通道由組織R2和R3管理。這有一個排序服務(wù)O4作為這個網(wǎng)絡(luò)N的一個網(wǎng)絡(luò)管理員節(jié)點,并且使用系統(tǒng)通道。排序服務(wù)同時也支持應(yīng)用通道C1和C2,來對交易進行排序、加入?yún)^(qū)塊然后分發(fā)。每個組織都有一個首選的CA。Fabric示例網(wǎng)絡(luò)區(qū)塊鏈網(wǎng)絡(luò)Peer節(jié)點區(qū)塊鏈網(wǎng)絡(luò)是由Peer節(jié)點組成的,每個節(jié)點都保存著賬本和智能合約的副本。在這個例子中,網(wǎng)絡(luò)N是由節(jié)點P1、P2和P3組成的,每個節(jié)點都維護這他們自己的分布式賬本L1。P1、P2和P3使用相同的鏈碼S1來訪問他們的分布式賬本的副本。Peer節(jié)點可以被創(chuàng)建、啟動、停止、重新配置甚至刪除。他們暴露了一系列的API,這就可以讓管理者和應(yīng)用程序同這些API提供的服務(wù)互動。我們會在這里學(xué)習(xí)更多關(guān)于這些服務(wù)的知識。賬本和鏈碼Peer節(jié)點維護著賬本及鏈碼的實例。在這個例子中,P1維護著賬本L1和鏈碼S1的實例。也可以多個賬本及鏈碼維護在一個獨立的Peer節(jié)點上。Peer節(jié)點是賬本及鏈碼的宿主,應(yīng)用程序及管理員如果想要訪問這些資源,他們必須要和Peer節(jié)點進行交互。這就是為什么Peer節(jié)點被認為是HyperledgerFabric網(wǎng)絡(luò)最基本的組成模塊。當(dāng)Peer節(jié)點被第一次創(chuàng)建的時候,它并沒有賬本也沒有鏈碼。我們接下來會看到Peer節(jié)點的上賬本是如何被創(chuàng)建的,以及鏈碼是如何被安裝的。多賬本一個Peer節(jié)點維護多個賬本。Peer節(jié)點維護著一個或者多個賬本,并且每個賬本具有零個或者多個鏈碼使用賬本。在這個例子中,我們能夠看到Peer節(jié)點P1維護著賬本L1和L2。賬本L1通過鏈碼S1來訪問。賬本2通過鏈碼S1和S2訪問。盡管一個Peer節(jié)點只維護一個賬本的實例而不運行任何訪問賬本的鏈碼是完全可能的,但是很少有Peer節(jié)點會像這樣來進行配置。大多數(shù)的Peer節(jié)點將會至少安裝一個鏈碼,用來查詢或更新Peer節(jié)點的賬本實例。有必要說明一下,無論用戶是否安裝了外部應(yīng)用使用的鏈碼,Peer節(jié)點總是會有一個特殊的系統(tǒng)鏈碼。這個不會在這個章節(jié)中進行討論。多鏈碼賬本數(shù)量和訪問賬本的鏈碼的數(shù)量之間沒有固定的關(guān)系。一個Peer節(jié)點可能會有很多鏈碼和賬本。這是一個運行著多個鏈碼的Peer節(jié)點。每個賬本可以擁有多個訪問它的鏈碼。在這個例子中,我們能夠看到Peer節(jié)點P1維護著賬本L1和L2,L1可以通過鏈碼S1和S2來訪問,賬本L2可以由S1和S3來訪問。我們能夠看到鏈碼S1既能訪問L1也能訪問L2。應(yīng)用程序和Peer節(jié)點當(dāng)應(yīng)用程序需要訪問賬本和鏈碼的時候,他們總是需要連接到Peer節(jié)點。HyperledgerFabricSDK將這個操作變得非常簡單,它的API使應(yīng)用程序能夠連接到Peer節(jié)點,調(diào)用鏈碼生成交易,提交交易到網(wǎng)絡(luò),在網(wǎng)絡(luò)中交易會被排序并且提交到分布式賬本中,并且在這個流程結(jié)束的時候接收到事件。通過連接Peer節(jié)點,應(yīng)用程序能夠執(zhí)行鏈碼來查詢或者更新賬本。對賬本的查詢結(jié)果馬上會返回,但是對賬本的更新會在應(yīng)用程序、Peer節(jié)點以及排序節(jié)點之間有更復(fù)雜的交互。讓我們更詳細地研究一下。Peer節(jié)點和排序節(jié)點,確保了賬本在每個Peer節(jié)點上都具有最新的賬本。在這個例子中,應(yīng)用程序A連接到了P1并且調(diào)用了鏈碼S1來查詢或者更新賬本L1。P1調(diào)用了鏈碼S1來生成提案響應(yīng),這個響應(yīng)包含了查詢結(jié)果或者賬本更新的提案。應(yīng)用程序A接收到了提案的響應(yīng),對于查詢來說,流程到這里就結(jié)束了。對于更新來說,應(yīng)用程序A會從所有的響應(yīng)中創(chuàng)建一筆交易,它會把這筆交易發(fā)送給排序節(jié)點O1進行排序。O1會搜集網(wǎng)絡(luò)中的交易并打包到區(qū)塊中,然后將這些區(qū)塊分發(fā)到所有Peer節(jié)點上,包括P1。P1在把交易提交到賬本L1之前對交易進行驗證。當(dāng)L1被更新之后,P1會生成一個事件,該事件會被A接收到,來標識這個過程結(jié)束了。Peer節(jié)點和通道通道允許區(qū)塊鏈網(wǎng)絡(luò)中特定的一些Peer節(jié)點以及應(yīng)用程序來彼此交互。在這個例子中,應(yīng)用程序A能夠直接同Peer節(jié)點P1和P2使用通道C進行溝通。你可以把通道想象為在某些應(yīng)用程序和Peer節(jié)點之間進行通信的小路。(排序節(jié)點沒有顯示在這個圖中,但是在工作網(wǎng)絡(luò)中它必須存在。)Peer節(jié)點和組織區(qū)塊鏈網(wǎng)絡(luò)中的Peer節(jié)點和多個組織。區(qū)塊鏈網(wǎng)絡(luò)是由不同的組織所擁有并貢獻的Peer節(jié)點構(gòu)成的。在這個例子中,我們看到由四個組織貢獻了八個Peer節(jié)點組成一個網(wǎng)絡(luò)。在網(wǎng)絡(luò)N中,通道C連接了這些Peer節(jié)點中的五個:P1、P3、P5、P7和P8。這些組織擁有的其他節(jié)點并沒有加入該通道,但是通常會加入至少一個其他通道。某個組織開發(fā)的應(yīng)用程序?qū)B接到他們自己組織的Peer節(jié)點,其他組織也一樣。為了簡化,排序節(jié)點沒有在這個圖中表示出來。創(chuàng)建網(wǎng)絡(luò)當(dāng)一個排序服務(wù)啟動后就形成了這樣的一個網(wǎng)絡(luò)。在我們的示例網(wǎng)絡(luò)N中,排序服務(wù)O4由一個單獨的節(jié)點組成,是根據(jù)一個網(wǎng)絡(luò)配置NC4來進行配置的。在網(wǎng)絡(luò)層面上,證書頒發(fā)機構(gòu)CA4被用來向管理員和組織R4的網(wǎng)絡(luò)節(jié)點分配身份信息。我們能夠看到,在定義
網(wǎng)絡(luò)N
的時候,第一件事情就是定義一個
排序服務(wù),O4。對于一個網(wǎng)絡(luò)在最初就考慮以管理員節(jié)點的形式定義這個排序服務(wù)是非常有幫助的。就像在之前同意的,O4最初被配置并且由組織R4的一個管理員來啟動,并且由R4管理。配置NC4包含了描述網(wǎng)絡(luò)管理能力初始集合的規(guī)則。最初在網(wǎng)絡(luò)中集合僅賦予了R4這個權(quán)利。這個在將來會變化,我們稍后會看到,但是目前R4是這個網(wǎng)絡(luò)中唯一的一個成員。CA4,它會被用來給管理者和網(wǎng)絡(luò)節(jié)點頒發(fā)證書。CA4在我們的網(wǎng)絡(luò)中扮演著重要的角色,因為它會分配X.509證書,這個證書能夠用來識別屬于組織R4的組件。由CA頒發(fā)的證書也可以用來為交易提供簽名,來表明一個組織對交易的結(jié)果進行背書,背書是一筆交易可以被接受并記錄到賬本上的前提條件添加網(wǎng)絡(luò)管理員組織R4更新了網(wǎng)絡(luò)配置來使組織R1也成為了管理員?,F(xiàn)在R1和R4在網(wǎng)絡(luò)配置中便具有了相同的權(quán)限。我們看到了新的組織R1變成了管理員,R1和R4現(xiàn)在在網(wǎng)絡(luò)中具有了相同的權(quán)限。我們看到證書頒發(fā)機構(gòu)CA1也被添加進來了,他用來標識R1組織的用戶?,F(xiàn)在從R1和R4來的用戶就已經(jīng)是網(wǎng)絡(luò)的管理員了。盡管排序節(jié)點O4是運行在R4的基礎(chǔ)設(shè)施上的,如果R1能夠訪問到的話就可以共享管理的權(quán)限。也就是說R1或者R4可以更新這個網(wǎng)絡(luò)配置NC4來允許組織R2進行網(wǎng)絡(luò)維護中的部分功能。通過這種方式,盡管R4運行著排序服務(wù),但是R1在其中也具有著全部的管理員權(quán)限,R2具有有限的創(chuàng)建新聯(lián)盟的權(quán)限R1:作為網(wǎng)絡(luò)的主要參與者之一,R1參與管理網(wǎng)絡(luò)配置(NC4)并維護通道C1的賬本。R1在通道C1中進行交易,并與R2共同管理該通道。R4:雖然R4作為網(wǎng)絡(luò)的初始設(shè)定者和網(wǎng)絡(luò)管理員,設(shè)置網(wǎng)絡(luò)的最初配置,但它不參與任何的業(yè)務(wù)交易。它的主要職責(zé)是確保網(wǎng)絡(luò)架構(gòu)正確實施并維持網(wǎng)絡(luò)的基礎(chǔ)運行,但不涉及日常的業(yè)務(wù)活動。定義聯(lián)盟網(wǎng)絡(luò)管理員定義了一個包含兩個成員的聯(lián)盟X1,包含組織R1和R2。這個聯(lián)盟的定義被存儲在了網(wǎng)絡(luò)配置NC4中,會在接下來的網(wǎng)絡(luò)開發(fā)中被使用。CA1和CA2是這兩個組織對應(yīng)的證書頒發(fā)機構(gòu)。由于NC4的配置方式,只有R1和R4能夠創(chuàng)建新的聯(lián)盟。這個圖標顯示了一個新的聯(lián)盟X1,它定義了R1和R2是它的聯(lián)盟組織。我們也看到了CA2也被添加進來標識來自R2的用戶。注意一個聯(lián)盟可以包含任意數(shù)量的組織,這里我們僅包含了兩個組織作為一個最簡單的配置。X1表示一個特定的聯(lián)盟。聯(lián)盟X1由組織R1和R2組成,這個聯(lián)盟的定義被存儲在網(wǎng)絡(luò)配置NC4中。在HyperledgerFabric中,聯(lián)盟通常指的是一組組織,它們在區(qū)塊鏈網(wǎng)絡(luò)中有共同的目標或業(yè)務(wù)需求,并共同維護網(wǎng)絡(luò)的治理。為聯(lián)盟創(chuàng)建通道使用聯(lián)盟X1為R1和R2創(chuàng)建的的通道C1。這個通道通過通道配置CC1來進行管理,完全獨立于網(wǎng)絡(luò)配置。CC1是由R1和R2管理的,他們在C1上具有同等的權(quán)利。R4在CC1中是沒有任何權(quán)利的。通道C1為聯(lián)盟X1提供了一個私有的通信機制。我們能夠看到通道C1已經(jīng)關(guān)聯(lián)到了排序服務(wù)O4但是這并沒有附帶任何功能。在網(wǎng)絡(luò)開發(fā)的下一個階段,我們將會連接不同的組件,比如客戶端應(yīng)用和Peer節(jié)點。但是到目前為止,一個通道就代表了將來要進行連接的可能性。通道非常有用,因為提供了一個聯(lián)盟成員之間進行私有通信和私有數(shù)據(jù)的機制。通道提供了與其他通道以及整個網(wǎng)絡(luò)的隱私性。HyperledgerFabric在這一點上是很強悍的,因為它允許組織間共享基礎(chǔ)設(shè)施的同時又保持了私有性。這里并不矛盾,網(wǎng)絡(luò)中不同的聯(lián)盟之間會需要將不同的信息和流程進行適合的共享,通道為之提供了有效的機制。通道提供了一個有效的基礎(chǔ)設(shè)施共享,同時保持了數(shù)據(jù)和通信的隱私性。節(jié)點和賬本一個Peer節(jié)點P1加入了通道C1。物理上P1會存儲賬本L1的副本。P1和O4可以使用通道C1來進行通信。Peer節(jié)點是存儲區(qū)塊鏈賬本副本的網(wǎng)絡(luò)組件。至少,我們已經(jīng)開始看到了一些區(qū)塊鏈標志性的組件了!P1在這個網(wǎng)絡(luò)中的目的是單純地放置被其他人訪問的賬本L1的副本。我們可以想象L1會被物理地存儲在P1上,但是邏輯上是存儲在通道C1上。當(dāng)我們向通道中添加更多的節(jié)點之后,我們對這些就會更加清楚。P1的配置中一個關(guān)鍵部分就是一個由CA1頒發(fā)的X.509身份信息,它將P1和組織R1關(guān)聯(lián)了起來。當(dāng)P1啟動之后,它就可以使用排序O4加入通道C1。當(dāng)O4收到這個加入請求,它會使用通道配置CC1來決定P1在這個通道中的權(quán)限。比如,CC1決定P1是否能夠向賬本L1中讀取或?qū)懭胄畔?。?yīng)用程序和智能合約鏈碼智能合約S5被安裝在了P1上。在組織R1中的客戶端應(yīng)用A1可以通過Peer節(jié)點P1使用S5來訪問賬本。A1、P1和O4都加入了通道C1,他們都可以使用由這個通道提供的通信設(shè)施。在網(wǎng)絡(luò)開發(fā)的下一個階段,我們可以看到客戶端應(yīng)用A1能夠使用通道C1來連接指定的網(wǎng)絡(luò)資源,在這個示例中,A1能夠連接Peer節(jié)點P1和排序節(jié)點O4。再次注意,看看通道是如何處在網(wǎng)絡(luò)和組織的組件的通信中心的。就像Peer節(jié)點和排序節(jié)點一樣,客戶端應(yīng)用也會有一個使它和組織相關(guān)聯(lián)的身份信息。在我們的例子中,客戶端應(yīng)用A1是跟組織R1相關(guān)聯(lián)的,盡管它處在Fabric區(qū)塊鏈網(wǎng)絡(luò)的外邊,但它是可以通過通道C1跟網(wǎng)絡(luò)相連的。智能合約可以被每個組織的應(yīng)用開發(fā)者創(chuàng)建來實現(xiàn)一個在聯(lián)盟成員間共享的業(yè)務(wù)流程。智能合約被用來幫助生成被分發(fā)到網(wǎng)絡(luò)中每個節(jié)點的交易。我們接下來會詳細討論。當(dāng)網(wǎng)絡(luò)變得更大了之后,這個會更容易理解?,F(xiàn)在,需要理解的重要的事情是,為了達到這一點,需要對智能合約執(zhí)行兩項操作,它必須被安裝,然后在通道中被定義。應(yīng)用程序和智能合約鏈碼安裝鏈碼包在智能合約S5被開發(fā)完之后,組織R1中的管理員必須要把它安裝到節(jié)點P1上。這是一個很簡單的操作。當(dāng)完成之后,P1就完全了解了S5。P1能夠看到S5的實現(xiàn)邏輯(用來訪問賬本L1的程序代碼)。我們將這個同S5的接口進行對比,接口只是描述了S5的輸入和輸出,但是沒有它的實現(xiàn)。定義鏈碼盡管鏈碼會被安裝在組織的Peer節(jié)點上,但是它是在一個通道范圍內(nèi)被管理和維護的。每個組織需要批準一個鏈碼定義,和一系列參數(shù)來定義在一個通道中鏈碼應(yīng)該被如何使用。一個組織必須要批準一個鏈碼定義,才能使用已經(jīng)安裝的智能合約來查詢賬本和為交易背書。在我們的例子中,只有一個單獨的Peer節(jié)點P1,一個組織中的管理員R1必須要批準S5的鏈碼定義。背書策略在鏈碼定義提供的信息中最重要的部分就是背書策略。它描述了在交易被其他的組織接受并存儲在他們的賬本副本上之前,哪些組織必須要同意此交易。在我們的示例網(wǎng)絡(luò)中,只有當(dāng)R1和R2對交易進行背書之后,交易才能夠被接受并存儲到賬本L1中。調(diào)用智能合約當(dāng)智能合約被安裝在Peer節(jié)點并且在通道上定義之后,它就可以被客戶端應(yīng)用調(diào)用了??蛻舳藨?yīng)用是通過發(fā)送交易提案給智能合約背書策略所指定的Peer的節(jié)點方式來調(diào)用智能合約的。這個交易的提案會作為智能合約的輸入,智能合約會使用它來生成一個背書交易響應(yīng),這會由Peer節(jié)點返回給客戶端應(yīng)用。完成網(wǎng)絡(luò)這個網(wǎng)絡(luò)通過增加新組織R2的基礎(chǔ)設(shè)施變得更大了。具體來說,R2添加了Peer節(jié)點P2,它會存有賬本L1的一個副本,和鏈碼S5。R2像R1一樣批準了相同的鏈碼定義。P2也加入了通道C1,也有一個客戶端應(yīng)用A2。A2和P2使用由CA2頒發(fā)的證書來標識A2和P2。所有這些都說明了A1和A2能夠使用Peer節(jié)點P1或者P2來調(diào)用在C1上的S5。我們能夠看到組織R2在通道C1上添加了Peer節(jié)點P2。P2也存儲了賬本L1和智能合約S5的副本。R2也添加了客戶端應(yīng)用A2,它能夠通過通道C1連接到網(wǎng)絡(luò)。為了達到這個目的,組織R2的管理員添加了Peer節(jié)點P2并且將它加入到通道C1,就像R1的管理員一樣。管理員也必須要像R1那樣批準相同的鏈碼定義。我們創(chuàng)建了第一個可運行的網(wǎng)絡(luò)!目前,我們定義了一個通道,在這個通道中組織R1和R2能夠彼此進行交易。特別地,這意味著A1和A2能夠使用在通道C1上的智能合約S5和賬本L1來生成交易??偨Y(jié)(https://hyperledger-fabric.readthedocs.io/en/latest/network/network.html)組織和角色定義:R4:作為網(wǎng)絡(luò)的初始者,負責(zé)設(shè)置網(wǎng)絡(luò)的初始配置但不參與業(yè)務(wù)交易。R1和R2:需要在整個網(wǎng)絡(luò)中進行私有通信。R2和R3:同樣有私有通信的需求。通道和賬本配置:通道C1:由組織R1和R2管理,用于他們之間的私有交易,相關(guān)賬本L1由節(jié)點P1和P2維護。通道C2:由組織R2和R3管理,相關(guān)賬本L2由節(jié)點P2和P3維護。3.節(jié)點和賬本維護:節(jié)點P1維護了通道C1的賬本L1的副本。節(jié)點P2維護了通道C1的賬本L1和通道C2的賬本L2的副本。節(jié)點P3維護了通道C2的賬本L2的副本。4.排序服務(wù):排序服務(wù)O4作為網(wǎng)絡(luò)管理員節(jié)點,負責(zé)處理所有通道的交易排序、區(qū)塊打包和分發(fā)。5
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025廣東廣州市南沙區(qū)教育局聯(lián)合中國教科院招聘事業(yè)編制小學(xué)校長1人考試筆試備考題庫及答案解析
- 市場營銷策略考試題集
- 2026年浙江省中醫(yī)院、浙江中醫(yī)藥大學(xué)附屬第一醫(yī)院招聘136人(第一批)筆試考試備考試題及答案解析
- 版權(quán)培訓(xùn)師面試題及答案解析
- 2026中國東方航空技術(shù)有限公司招聘考試筆試備考試題及答案解析
- 眼科護士資格考試復(fù)習(xí)題集
- 2025內(nèi)蒙古呼倫貝爾市阿榮旗教育事業(yè)發(fā)展中心遴選教研員4人考試筆試備考試題及答案解析
- 2026國家藥品監(jiān)督管理局新聞宣傳中心編制外人員招聘3人考試筆試參考題庫附答案解析
- 教師招考結(jié)構(gòu)化面試題集
- 寵物美容行業(yè)進修服務(wù)合同2025年
- 2025超重和肥胖管理指南課件
- 武警拓展訓(xùn)練方案
- 化肥產(chǎn)品生產(chǎn)許可證實施細則(一)(復(fù)肥產(chǎn)品部分)2025
- 初中be動詞的使用
- 婦產(chǎn)科考試試題及答案
- 光伏電站運維人員培訓(xùn)與技能提升方案
- 安全文明施工資料管理方案
- 《國家十五五規(guī)劃綱要》全文
- GB/T 46194-2025道路車輛信息安全工程
- 2025年國考《行測》全真模擬試卷一及答案
- 國家開放大學(xué)2025年商務(wù)英語4綜合測試答案
評論
0/150
提交評論