本文介紹了一些區(qū)塊鏈原理性的使用案例,并概括了其基本要求及高層架構(gòu)。區(qū)塊鏈技術(shù)在不斷演變中,Hyperledger 的設(shè)計(jì)正運(yùn)用了這項(xiàng)技術(shù)構(gòu)架。在相同網(wǎng)絡(luò)的企業(yè)競(jìng)爭(zhēng)合作中,Hyperledger 作為商對(duì)商(B2B) 、商對(duì)客(B2C)的一種交易協(xié)議,既符合規(guī)章制度,又能夠支持各類要求的實(shí)現(xiàn)。其設(shè)計(jì)(下面會(huì)詳述)的核心元素是智能合約(又稱鏈上代碼)、數(shù)字資產(chǎn)、記錄儲(chǔ)存庫(kù)、中心化共識(shí)網(wǎng)絡(luò)、加密安全。此外,區(qū)塊鏈主要產(chǎn)品還涉及行業(yè)性能要求、身份識(shí)別、私下機(jī)密交易、以及便攜式共識(shí)模型等。
背景
區(qū)塊鏈?zhǔn)?種新興技術(shù),它能夠徹底改變?nèi)谫Y、供應(yīng)鏈、及其他交易網(wǎng)絡(luò),為創(chuàng)新與發(fā)展帶去新的機(jī)遇,同時(shí)還能減少運(yùn)營(yíng)成本,降低風(fēng)險(xiǎn)。自2009年來(lái)比特幣在交易領(lǐng)域迅速崛起,許多企業(yè)及行業(yè)投入了大量資源來(lái)研究其底層技術(shù),從而傳播這廣受歡迎但又頗具爭(zhēng)議的加密幣。
區(qū)塊鏈?zhǔn)且环N點(diǎn)對(duì)點(diǎn)分布式賬本技術(shù),它是第一-個(gè)在金融領(lǐng)域獲得動(dòng)力的技術(shù),因?yàn)樗軌蛴行Ф踩匕l(fā)行、交易、管理、服務(wù)資產(chǎn)。在記錄系統(tǒng)(SoR)范圍內(nèi),生態(tài)系統(tǒng)中的每一位成員都需要維護(hù)好自己的賬本系統(tǒng),并審核與其他成員的交易進(jìn)展,這個(gè)過(guò)程既低效,又昂貴,而且沒(méi)有內(nèi)部組織操作流標(biāo)準(zhǔn)。而分布式賬本則完全不同,它能夠減少成本,使業(yè)務(wù)網(wǎng)絡(luò)的建立更加容易,并且不再需要提供中心點(diǎn)控制。
由于共享賬本概念在商業(yè)領(lǐng)域越來(lái)越受關(guān)注,區(qū)塊鏈智能合約也因此引起了人們的注意。智能合約是各種商業(yè)規(guī)則的集合,它在區(qū)塊鏈上運(yùn)行,由一組利益相關(guān)方共有并進(jìn)行驗(yàn)證。智能合約在商業(yè)自動(dòng)化進(jìn)程中非常管用,而且誠(chéng)信可靠,它能夠使利益相關(guān)方以團(tuán)體形式處理并驗(yàn)證合約條款。Hyperledger就是采用鏈上代碼(chaincode) 執(zhí)行智能合約的。
比特幣及其他加密幣的開(kāi)發(fā)就是用來(lái)對(duì)抗任何形式的審查的一任何人都能參與,而且不需要建立身份,只要貢獻(xiàn)一點(diǎn)時(shí)間來(lái)完成運(yùn)算周期就行。在比特幣區(qū)塊鏈模型中,沒(méi)有中心機(jī)構(gòu)來(lái)發(fā)放許可,因?yàn)檫@些網(wǎng)絡(luò)是非授權(quán)的。他們要進(jìn)行無(wú)數(shù)工作量證明運(yùn)算,成本非常高。
Hyperledger對(duì)傳統(tǒng)區(qū)塊鏈模型進(jìn)行了革新,其中包括管理參與者的訪問(wèn)許可權(quán)。換句話說(shuō),Hyperledger 是有權(quán)限的共享賬本。Hyperledger為身份識(shí)別、審核及隱私提供了一個(gè)安全、健康的模型,從而縮短運(yùn)算周期,實(shí)現(xiàn)有效擴(kuò)展,應(yīng)對(duì)業(yè)內(nèi)各種運(yùn)用要求。
進(jìn)入2016年,關(guān)于區(qū)塊鏈的認(rèn)識(shí)越來(lái)越多,研究出一個(gè)適用且可擴(kuò)展的解?決方案變得日益緊迫。
為什么是一個(gè)新構(gòu)架
作為一項(xiàng)剛開(kāi)發(fā)的技術(shù),區(qū)塊鏈還不能滿足商業(yè)交易中各類復(fù)雜要求。其可擴(kuò)展性還存在問(wèn)題,也不能支持私下機(jī)密交易,這些限制都使其難以在眾多以業(yè)務(wù)為主的應(yīng)用程序中運(yùn)行自如。為了應(yīng)對(duì)各種各樣的市場(chǎng)需求,Hyperledger的設(shè)計(jì)以產(chǎn)業(yè)應(yīng)用為重點(diǎn),解決了現(xiàn)有缺點(diǎn),擴(kuò)展了業(yè)內(nèi)先行者原有的功能。
我們的設(shè)想
我們?cè)O(shè)想了區(qū)塊鏈技術(shù)會(huì)為現(xiàn)代商業(yè)交易帶來(lái)的革新與改變,分析了業(yè)內(nèi)的使用案例及密鑰要求,設(shè)計(jì)并建立了一套系統(tǒng)來(lái)推動(dòng)區(qū)塊鏈技術(shù)的廣泛運(yùn)用。
一個(gè)涵蓋眾多網(wǎng)絡(luò)的世界
我們希望能夠出現(xiàn)眾多區(qū)塊鏈網(wǎng)絡(luò),使每個(gè)網(wǎng)絡(luò)賬本都能執(zhí)行不同的業(yè)務(wù)?;谶@一期望,我們開(kāi)發(fā)了Hyperledger。現(xiàn)在單一普遍的通用網(wǎng)絡(luò)或許已經(jīng)出現(xiàn),但是要想網(wǎng)絡(luò)賬本核心功能的運(yùn)行依靠其他網(wǎng)絡(luò)來(lái)完成,還尚未有實(shí)例。Hyperledger除了能夠?qū)崿F(xiàn)這種網(wǎng)絡(luò)獨(dú)立運(yùn)行之外,它還有一個(gè)尋址系統(tǒng),能夠通過(guò)一個(gè)賬本的交易,發(fā)現(xiàn)并利用另一賬本中的正當(dāng)交易與智能合約(鏈上代碼chaincode)。
對(duì)網(wǎng)絡(luò)權(quán)限的需求日益增加
有權(quán)限的網(wǎng)絡(luò)是通過(guò)已知白名單組織來(lái)運(yùn)行驗(yàn)證與非驗(yàn)證節(jié)點(diǎn)的,由網(wǎng)絡(luò)發(fā)行機(jī)關(guān)來(lái)授予交易者一個(gè)識(shí)別身份。發(fā)行機(jī)關(guān)根據(jù)網(wǎng)絡(luò)的目的來(lái)確定適當(dāng)?shù)脑L問(wèn)權(quán)限,而這種權(quán)限需要進(jìn)行身份識(shí)別,然后才能在網(wǎng)絡(luò)進(jìn)行交易。這一網(wǎng)絡(luò)能夠公開(kāi)運(yùn)行,并且很容易就能融入到移動(dòng)應(yīng)用。它也能完全私下運(yùn)行,受邀參與者只有通過(guò)驗(yàn)證,才能獲悉其情況。因?yàn)镠yperledger構(gòu)架的設(shè)計(jì)符合各種目的,能夠允許各網(wǎng)絡(luò)之間互相訪問(wèn),而且其協(xié)議也能夠滿足各類使用要求,并且還設(shè)有不同級(jí)別的權(quán)限。
隱私及機(jī)密的重要性
我們相信任何區(qū)塊鏈構(gòu)架都有一個(gè)基本要求,那就是網(wǎng)絡(luò)上任何一方的身份及行為模式,都不能允許未經(jīng)授權(quán)的人通過(guò)賬本來(lái)打探情況。我們也希望能夠保證區(qū)塊鏈用戶的業(yè)務(wù)邏輯及其他交易參數(shù)的機(jī)密性,做到除了合約涉及的利益相關(guān)方或交易中的資產(chǎn),沒(méi)有人能夠訪問(wèn)這些數(shù)據(jù)。
行業(yè)用例
我們編寫(xiě)了一套區(qū)塊鏈初步要求,這些對(duì)接下來(lái)介紹的使用案例來(lái)說(shuō)至關(guān)重要。
(注:下述用例能推動(dòng)指導(dǎo)架構(gòu)及測(cè)試驅(qū)動(dòng)的開(kāi)發(fā)。這些案例雖然還在發(fā)展中,但是所有參與者都應(yīng)該認(rèn)同其內(nèi)容及技術(shù)層次的優(yōu)先順序。如果您覺(jué)得哪里不盡人意,就可以提出進(jìn)行改變。請(qǐng)不要超過(guò)四個(gè)抽象用例,最好是三個(gè)。)
商務(wù)合同
商務(wù)合同能夠通過(guò)編碼,使雙方或更多參與者自動(dòng)執(zhí)行合約條款,并且保證誠(chéng)信。雖然區(qū)塊鏈上的信息本質(zhì)上是公開(kāi)的,但是商對(duì)商合約要求具備隱私保護(hù)的機(jī)制,來(lái)保護(hù)敏感的商業(yè)信息,防止信息泄露給同樣能夠訪問(wèn)賬本的外部人員。
雖然說(shuō)保密協(xié)議對(duì)商業(yè)案例來(lái)說(shuō)很重要,但是也有很多場(chǎng)合需要也應(yīng)該做到合約公開(kāi),從而保證賬本上所有人員都能輕松獲取消息:比如,用來(lái)確定報(bào)價(jià)以供競(jìng)標(biāo)的賬本。這種合約就需要標(biāo)準(zhǔn)化,這樣競(jìng)標(biāo)人就可以很快獲取信息。
資產(chǎn)存管
金融證券之類的資產(chǎn)必須在區(qū)塊鏈網(wǎng)絡(luò)上實(shí)現(xiàn)去中心化,這樣所有同種資產(chǎn)的利益相關(guān)方就能直接訪問(wèn)每一資產(chǎn),從而發(fā)起交易,獲取相關(guān)信息,而不再需要通過(guò)層層中間人來(lái)進(jìn)行了。交易基本實(shí)現(xiàn)實(shí)時(shí)結(jié)算,而且也必須保證所有利益相關(guān)方能夠?qū)崟r(shí)掌握資產(chǎn)情況。對(duì)任何資產(chǎn)種類,利益相關(guān)方都應(yīng)有權(quán)增加商務(wù)規(guī)則,這樣也能通過(guò)自動(dòng)化邏輯應(yīng)用來(lái)減少運(yùn)營(yíng)成本。創(chuàng)造資產(chǎn)的人必須像用例保證的那樣,實(shí)現(xiàn)資產(chǎn)及相關(guān)交易規(guī)則保密或者公開(kāi)。
供應(yīng)鏈
區(qū)塊鏈框架必須保證每一位供應(yīng)鏈網(wǎng)絡(luò)中的參與者都能夠:輸入并追蹤原材料來(lái)源;記錄部件生產(chǎn)的遙測(cè)數(shù)據(jù);追蹤航運(yùn)商品的出處;保證包括成品生產(chǎn)、貯存、銷售及后續(xù)事宜在內(nèi)的所有記錄都不可改變。除了之前描述過(guò)的商務(wù)合約及資產(chǎn)存管模式,供應(yīng)鏈這一用例更多強(qiáng)調(diào)的是其深度搜索性,保證可以在過(guò)去層層交易中追溯所需記錄。其核心是為每一個(gè)從其他組件品中制造出來(lái)的商品創(chuàng)建出處。
特色要求
下面提到的特色要求以健全產(chǎn)業(yè)的用例為基礎(chǔ),推動(dòng)了Hyperledger構(gòu)架的開(kāi)發(fā)。這些要求包括身份識(shí)別與可審核性、私下交易、保密合約、模塊共識(shí)、性能績(jī)效、可擴(kuò)展性、鏈上代碼( chaincode)以及智能合約。
身份識(shí)別與可審核性
交易的隱私性固然重要,但是區(qū)塊鏈商業(yè)用途也要遵守--定的規(guī)章制度,使監(jiān)管方能夠訪問(wèn)調(diào)查交易記錄。事后(有時(shí)得好幾年后)交易一方必須提供身份識(shí)別以及資產(chǎn)所有權(quán),在沒(méi)有機(jī)制的情況下,通過(guò)身份識(shí)別來(lái)確定當(dāng)事人身份以及其在賬本上的活動(dòng)。
于是Hyperledger協(xié)議順勢(shì)而生,它在注冊(cè)機(jī)關(guān)登記了一個(gè)加密證書(shū),從而鎖定用戶的機(jī)密數(shù)據(jù)。注冊(cè)機(jī)關(guān)能夠發(fā)布并撤銷網(wǎng)絡(luò)參與者的身份驗(yàn)證。針對(duì)每一個(gè)身份,協(xié)議都會(huì)生成一個(gè)秘鑰,供成員在網(wǎng)絡(luò)上進(jìn)行交易,而且不會(huì)透露交易方的身份,保障網(wǎng)絡(luò)隱私。
私下交易及保密合約
如果交易模式能夠進(jìn)行公開(kāi)觀察與分析,那么共享賬本就會(huì)泄露商業(yè)關(guān)系的細(xì)節(jié),而這些細(xì)節(jié)本不應(yīng)透露給競(jìng)爭(zhēng)者的。供應(yīng)方或買方的圈子本來(lái)就小,支持雙方貿(mào)易的系統(tǒng)就更不應(yīng)該泄露任何一方的交易情況。因此,運(yùn)用于商業(yè)活動(dòng)的區(qū)塊鏈就必須提供一個(gè)機(jī)制,來(lái)保證未授權(quán)的第三方不能獲悉有關(guān)身份、交易模式、以及保密合約等條款。
Hyperledger可以通過(guò)加密交易來(lái)保證其內(nèi)容的機(jī)密性,只有利益相關(guān)方能夠?qū)ζ溥M(jìn)行解密并執(zhí)行。此外,業(yè)務(wù)邏輯(通過(guò)智能合約來(lái)實(shí)現(xiàn))也做了加密處理來(lái)確保安全(如果利益相關(guān)方要求機(jī)密的話),并且只有在運(yùn)行的時(shí)候才能加載、破解。關(guān)于這一點(diǎn),會(huì)在之后架構(gòu)部分詳細(xì)闡明。
模塊共識(shí)
由于不同行業(yè)及領(lǐng)域有各自的網(wǎng)絡(luò)要運(yùn)行,所以不同的網(wǎng)絡(luò)也要配置不同的共識(shí)算法來(lái)滿足不同的使用要求。Hyperledger協(xié)議下的共識(shí)必須運(yùn)用可插入式算法,使用戶自行在配置中自行選擇共識(shí)算法。Hyperledger協(xié)議的首次發(fā)行將提供拜占庭容錯(cuò)算法(BFT),這種算法采用的是實(shí)用拜占庭容錯(cuò)算法(PBFT)協(xié)議。我們期待今后社區(qū)中能有更多人分享其他共識(shí)算法模型。
邏輯=鏈上代碼=智能合約
區(qū)塊鏈邏輯,或者我們常說(shuō)的“智能合約”,是各方之間自動(dòng)執(zhí)行的協(xié)議,其中所有相關(guān)條款都由代碼編成,能夠進(jìn)行自動(dòng)結(jié)算,今后通過(guò)簽名或其他觸發(fā)事件來(lái)執(zhí)行。在Hyperledger項(xiàng)目中,我們把它叫做“鏈上代碼”(chaincode) , 通過(guò)鏈上代碼來(lái)建立并區(qū)分區(qū)塊鏈邏輯及其書(shū)面合約。(這 個(gè)術(shù)語(yǔ)還在檢測(cè)中,可能會(huì)有所改變。)
鏈上代碼(chaincode)概念比智能合約還要再寬泛一些,智能合約這一概念是由NickSzabo提出來(lái)的。鏈上代碼能夠通過(guò)任何主流編程語(yǔ)言進(jìn)行編寫(xiě),并且在Hyperledger的上下文背景層內(nèi)執(zhí)行。鏈上代碼能夠定義智能合約模塊語(yǔ)言(類似Velocity或者Jade),限制環(huán)境函數(shù)的執(zhí)行以及其運(yùn)算靈活度,從而滿足法律合約的要求。
性能績(jī)效以及可擴(kuò)展性
如果從經(jīng)濟(jì)角度來(lái)認(rèn)識(shí)區(qū)塊鏈框架的網(wǎng)絡(luò)應(yīng)用,那么在設(shè)計(jì)過(guò)程中就必須把長(zhǎng)期的業(yè)績(jī)考慮進(jìn)去。一個(gè)賬本或一套賬本必須能夠持續(xù)運(yùn)作100多年,并且在用戶可獲取的時(shí)效內(nèi),允許客戶使用其發(fā)掘、搜索、身份識(shí)別及其他功能。不過(guò)隨著時(shí)間的推移,指定網(wǎng)絡(luò)的節(jié)點(diǎn)數(shù)量及交易人員也會(huì)越來(lái)越多,因此,其框架還必須在保證性能表現(xiàn)的前提下,解決這些問(wèn)題。
架構(gòu)
下面圖2將為您展示Hyperledger所參考的架構(gòu),包括三大類:會(huì)員制、區(qū)塊鏈、鏈上代碼。這些都是邏輯結(jié)構(gòu),而不是對(duì)獨(dú)立步驟、地址空間或者(虛擬)機(jī)器中分區(qū)組件的物理描述。
其中有些部分會(huì)從頭建起,有的會(huì)采用現(xiàn)有的開(kāi)源碼,還有一些則與現(xiàn)有服務(wù)結(jié)合從而實(shí)現(xiàn)所需功能。
會(huì)員制服務(wù)負(fù)責(zé)管理的是網(wǎng)絡(luò)上的身份識(shí)別、隱私與機(jī)密。參與者通過(guò)注冊(cè)來(lái)獲取身份,然后屬性授權(quán)機(jī)構(gòu)才能發(fā)放密鑰來(lái)進(jìn)行交易。聲譽(yù)管理器能夠使審計(jì)人員瀏覽某參與者的交易情況,如果審計(jì)人員已經(jīng)獲得參與者授予的適當(dāng)訪問(wèn)權(quán)限的話。
區(qū)塊鏈服務(wù)負(fù)責(zé)管理分布式賬本,通過(guò)在超文本傳輸協(xié)議2.0建立的點(diǎn)對(duì)點(diǎn)協(xié)議進(jìn)行。數(shù)據(jù)結(jié)構(gòu)經(jīng)過(guò)優(yōu)化能夠有效維護(hù)眾參與者重復(fù)的整體狀態(tài)。不同的共識(shí)算法或?qū)⑶度朊恳粋€(gè)配置中,以保證高度一致性(通過(guò)拜占庭容錯(cuò)算法來(lái)處理錯(cuò)誤,通過(guò)崩潰容忍來(lái)處理延誤與中斷,或借助工作量證明方案來(lái)應(yīng)對(duì)審查)。
鏈上代碼(Chaincode)服務(wù)負(fù)責(zé)提供安全又輕便的沙盒裝載路徑,供鏈上代碼執(zhí)行驗(yàn)證節(jié)點(diǎn)。整個(gè)環(huán)境是一個(gè)封鎖且安全的容器,內(nèi)含一個(gè) 簽署過(guò)的圖片庫(kù),包括安全的操作系統(tǒng)及鏈上代碼語(yǔ)言,以及Golang (準(zhǔn)備期)、Java (計(jì)劃期)、Node. js (計(jì)劃期)等軟件開(kāi)發(fā)工具包組圖與執(zhí)行環(huán)境。如果有需要的話,也能添加其他程序語(yǔ)言。
會(huì)員制
區(qū)塊鏈
分布式賬本運(yùn)用RocksDB來(lái)長(zhǎng)久保存數(shù)據(jù)集,并且為了符合其三大屬性,它還建立了一個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu)來(lái)反映狀態(tài)。大型文件(文檔等)存儲(chǔ)在區(qū)塊鏈賬本之外的貯存庫(kù)中,而其散列值則能夠作為交易的一部分存放在鏈內(nèi),這是為了保證文件的完整性。
Hyperledger能夠支持兩種交易:代碼部署交易以及代碼調(diào)用交易。代碼部署交易能夠執(zhí)行一條鏈上代碼的提交、更新或者終止等命令,其驗(yàn)證節(jié)點(diǎn)必須保護(hù)代碼及其執(zhí)行環(huán)境的真實(shí)性與完整性。相比之下,代碼調(diào)用交易則是一種用來(lái)執(zhí)行鏈E代碼函數(shù)的應(yīng)用程序界面,其過(guò)程類似于運(yùn)用統(tǒng)--資源標(biāo)識(shí)符來(lái)調(diào)用JEE的小型服務(wù)程序。值得注意的是,其中每一個(gè)鏈上代碼都負(fù)責(zé)維護(hù)自己的狀態(tài),而且函數(shù)調(diào)用是改變鏈上代碼狀態(tài)的一個(gè)常見(jiàn)辦法。
共識(shí)管理器是一個(gè)抽象概念,它定義了共識(shí)算法與其他Hyperledger組件之間的接口。共識(shí)管理器接收交易,根據(jù)算法來(lái)決定如何組織以及何時(shí)執(zhí)行這些交易。交易成功執(zhí)行后就會(huì)在賬本上反映變化。
Hyperledger執(zhí)行的是拜占庭協(xié)議,其在容錯(cuò)與擴(kuò)展性方面都有強(qiáng)大優(yōu)勢(shì)。
Event Hub是一個(gè)去中心化網(wǎng)絡(luò),它的屬性很復(fù)雜,因?yàn)橥皇录赡軙?huì)多次出現(xiàn),而且每次都會(huì)覆蓋到每個(gè)對(duì)等節(jié)點(diǎn)?;卣{(diào)函數(shù)能夠終止接收同一事件的多次調(diào)用,這樣一來(lái),對(duì)等節(jié)點(diǎn)(最好是非驗(yàn)證的本機(jī)節(jié)點(diǎn))就能夠管理應(yīng)用程序相關(guān)的發(fā)布或訂閱事件了。只要條件滿足,對(duì)等節(jié)點(diǎn)就發(fā)動(dòng)事件,順序不分先后。這些事件不會(huì)永遠(yuǎn)存在,所以應(yīng)用程序如果有需要就得及時(shí)捕捉。
鏈上代碼( chaincode )
鏈上代碼交易是有時(shí)間限定的,并且在鏈上代碼裝置過(guò)程中是按特定形式裝配的,這和數(shù)據(jù)庫(kù)調(diào)用或網(wǎng)站服務(wù)調(diào)用類似。如果超過(guò)交易時(shí)限,那么就按出錯(cuò)處理,不會(huì)給賬本狀態(tài)帶去任何改變。如果調(diào)用的函數(shù)有相同保密范圍限制的話,一個(gè)鏈上代碼函數(shù)就能夠調(diào)用另一個(gè)鏈上代碼函數(shù)一也就是 說(shuō),如果兩個(gè)機(jī)密鏈上代碼之間,有相同的一組驗(yàn)證器,那么它們之間就能互相調(diào)用。
新區(qū)塊進(jìn)行交易時(shí),會(huì)維持區(qū)塊鏈上最后區(qū)塊的整體狀態(tài)差量。如果當(dāng)前區(qū)塊達(dá)到共識(shí),那么變量就會(huì)提交到數(shù)據(jù)庫(kù),之后整體狀態(tài)的區(qū)塊數(shù)量就會(huì)增加1個(gè)。如果節(jié)點(diǎn)沒(méi)有達(dá)到共識(shí),那么差量就會(huì)不會(huì)算入,數(shù)據(jù)庫(kù)也不會(huì)進(jìn)行修改。
應(yīng)用編程界面
Hyperledger包括了REST、JSON RPC應(yīng)用程序界面、事件以及連接網(wǎng)絡(luò)的應(yīng)用程序軟件開(kāi)發(fā)工具包。典型的一點(diǎn)是,應(yīng)用程序與一個(gè)對(duì)等節(jié)點(diǎn)進(jìn)行交互需要通過(guò)某種形式來(lái)驗(yàn)證該個(gè)體的正當(dāng)權(quán)限,其中客戶的信息是有其身份識(shí)別簽名的,而且要經(jīng)過(guò)節(jié)點(diǎn)的核實(shí)。
Hyperledger有--套命令行界面(CLI)來(lái)管理運(yùn)行網(wǎng)絡(luò)。這套命令行界面也可以用于鏈上代碼測(cè)試過(guò)程中。REST應(yīng)用程序界面以及軟件開(kāi)發(fā)工具包(SDK)是建立在JSON-RPC應(yīng)用程序界面上的,這也是現(xiàn)在最完整的應(yīng)用程序界面層。軟件開(kāi)發(fā)工具包則能夠適用于Golang, JavaScript, Java 等語(yǔ)言中,如果有需要,也可以添加其他編程語(yǔ)言。
這一應(yīng)用程序界面能夠分成以下幾類: :
· 身份識(shí)別——通過(guò)登記來(lái)獲得或撤銷認(rèn)證
· 尋址——定位并追蹤交易來(lái)源
· 交易一一賬本上的執(zhí)行單元
· 鏈上代碼——在區(qū)塊鏈上運(yùn)行的程序
· 區(qū)塊鏈——賬本的內(nèi)容
· 網(wǎng)絡(luò)——區(qū)塊鏈網(wǎng)絡(luò)的信息
· 存儲(chǔ)庫(kù)一一文件或文檔的外部?jī)?chǔ)存
· 事件一一區(qū)塊鏈上的訂閱或發(fā)行事件
應(yīng)用模型
網(wǎng)絡(luò)技術(shù)
有三種潛在配置模型:云服務(wù)器托管的單一網(wǎng)絡(luò)、云服務(wù)器托管的多個(gè)網(wǎng)絡(luò),以及參與者托管的內(nèi)聯(lián)網(wǎng)。
云服務(wù)器托管的單一網(wǎng)絡(luò)是最簡(jiǎn)易、最高效的拓?fù)浣Y(jié)構(gòu),其中每一位參與者都有一組對(duì)等節(jié)點(diǎn),包括驗(yàn)證節(jié)點(diǎn)。盡管網(wǎng)絡(luò)在云環(huán)境下運(yùn)行并且托管給物理硬件廠商,參與者還是能夠根據(jù)合約來(lái)控制運(yùn)算資源,從而在中心化環(huán)境中實(shí)現(xiàn)去中心化配置。
云服務(wù)器托管的多個(gè)網(wǎng)絡(luò)能夠使參與者通過(guò)云供應(yīng)商管理對(duì)等節(jié)點(diǎn),如果這些節(jié)點(diǎn)能夠在超文本傳輸協(xié)議(Hyper ledgerTTP)下互相連接的話。
參與者托管的內(nèi)聯(lián)網(wǎng)通過(guò)超文本傳輸協(xié)議來(lái)使用參與者所有的網(wǎng)絡(luò)。
結(jié)論
Hyperledger的任務(wù)是將區(qū)塊鏈技術(shù)引入大眾市場(chǎng)?;仡櫫丝尚械膮^(qū)塊鏈解決方案,也了解了業(yè)界領(lǐng)先者及技術(shù)推廣者給出的相關(guān)用例后,我們相信區(qū)塊鏈將會(huì)成為至關(guān)重要的技術(shù)模型,推動(dòng)眾多工業(yè)與企業(yè)進(jìn)行革新。
我們注意到,業(yè)內(nèi)目前急需-套為企業(yè)打造的區(qū)塊鏈框架,做到既高效,又可擴(kuò)展,并且能夠?yàn)殡[私與機(jī)密相關(guān)的需求提供企業(yè)級(jí)的支持。我們也發(fā)現(xiàn)了各種不同的用例,而每一用例可能需要不同的區(qū)塊鏈底層實(shí)現(xiàn)。
為了全面發(fā)掘區(qū)塊鏈技術(shù)的潛能,并且開(kāi)創(chuàng)一套能滿足各種使用需求的標(biāo)準(zhǔn),我們?cè)O(shè)計(jì)了靈活且可延伸的Hyperledger構(gòu)架。此外,我們還在引導(dǎo)Hyper ledger協(xié)議的默認(rèn)實(shí)現(xiàn),其中涉及了各種計(jì)算機(jī)科學(xué)學(xué)科的先進(jìn)成果。
評(píng)論
查看更多