王晶,張海明*,溫亮明,馬卓然
1.中國科學(xué)院計算機網(wǎng)絡(luò)信息中心,北京 100083
2.中國科學(xué)院大學(xué),北京 100049
隨著科研數(shù)據(jù)的海量增長,科研工作者對計算機處理數(shù)據(jù)能力的要求不斷提高,但是現(xiàn)有的線性增長的集中式云計算能力無法匹配爆炸式增長的設(shè)備及數(shù)據(jù)規(guī)模[1],當(dāng)某些云服務(wù)提供商的業(yè)務(wù)量處于高峰值時期時,可能會發(fā)生超越單個科研機構(gòu)云計算平臺能力的計算需求的情況,因此需要構(gòu)筑科研云聯(lián)邦,進行跨科研機構(gòu)的資源協(xié)同與共享。但科研機構(gòu)分屬于不同法人單位,傳統(tǒng)的中心式計量系統(tǒng)設(shè)計由云聯(lián)邦中心全權(quán)負(fù)責(zé),將所有的計量數(shù)據(jù)寫入到云聯(lián)邦中心數(shù)據(jù)庫中,難以保證數(shù)據(jù)在云聯(lián)邦中心和各個科研機構(gòu)的一致性,且會造成云聯(lián)邦中心運營成本高、運行效率低[2];若云聯(lián)邦中心受到惡意攻擊,會導(dǎo)致計量隱私數(shù)據(jù)泄露,計量系統(tǒng)崩潰的后果。
目前針對云聯(lián)邦的研究主要是面向商業(yè)的云聯(lián)邦的架構(gòu)和動態(tài)資源調(diào)度方面的研究[3-5],而對科研云聯(lián)邦的計量問題研究較少。本文在調(diào)研分析構(gòu)建面向科研用戶的云聯(lián)邦平臺的意義與特點的基礎(chǔ)上,結(jié)合聯(lián)盟鏈技術(shù)的應(yīng)用場景,設(shè)計了符合科研云聯(lián)邦的計量系統(tǒng),保證聯(lián)邦參與者之間計量互信,確保資源計量準(zhǔn)確無誤的同時保護用戶數(shù)據(jù)隱私,幫助各科研機構(gòu)管理員檢查可用資源,提高管理員工作效率。
數(shù)據(jù)密集型的科研工作產(chǎn)生了越來越多的科學(xué)數(shù)據(jù)[6],科研人員需要處理的數(shù)據(jù)量不斷增大,所屬研究機構(gòu)的私有云資源可能不足以支撐對海量數(shù)據(jù)的存儲管理;如果單純地購入大量服務(wù)器,在課題項目集中使用資源過后可能造成資源閑置。閑置的資源不僅無法帶來經(jīng)濟效益,還需要耗費維護成本,如電源費用、冷卻費用、占地租賃費用等[7]。因此向其他云提供商租借資源成為備選方案之一,云聯(lián)邦思想由此誕生。云聯(lián)邦可以基于統(tǒng)一架構(gòu)通過云聯(lián)邦認(rèn)證和用戶映射將私有云和公有云結(jié)成聯(lián)邦體系,實現(xiàn)統(tǒng)一調(diào)度和管理[8],其本質(zhì)在于聯(lián)合不同組織的云資源以解決單個云中心資源不足問題,既滿足了云用戶的資源需求,又提高了云提供商的資源利用率。云聯(lián)邦的主要優(yōu)勢在于安全性高、可擴展性強和成本低廉。
科研云聯(lián)邦是在各個高校、研究所和科研機構(gòu)之間構(gòu)筑的IaaS 聯(lián)邦,可以通過統(tǒng)一接口將各個研究機構(gòu)、項目組層級的資源相互連通,實現(xiàn)這些隔離資源的互訪共享,為科研人員提供超出研究所實際資源極限的服務(wù),在用戶使用負(fù)載較低的情況下,將資源提供給云聯(lián)邦中的其他用戶使用。所有操作通過云聯(lián)邦管理中心進行管理、調(diào)度和分配,可以最大限度地提升閑置資源的利用效率,也降低了云聯(lián)邦成員獲取資源的成本??蒲性坡?lián)邦系統(tǒng)制定了較高的信息安全標(biāo)準(zhǔn),各個研究所或項目組達到安全要求后方可注冊加入成為云聯(lián)邦成員,各成員既可以在自身資源閑置時出租資源,也可以在自身資源無法滿足用戶需求時向云聯(lián)邦其他成員租借資源,實現(xiàn)資源的信息化共享,也提升了科研機構(gòu)信息化服務(wù)的安全水平。
專研云服務(wù)計費的Zuora 公司提出,如果云服務(wù)供應(yīng)商無法解決計量、定價和收費等新商業(yè)模式的核心問題,云服務(wù)將永遠(yuǎn)無法釋放它的全部潛力[9]。各商業(yè)云平臺針對不同的云服務(wù)提供了相應(yīng)的計量與計費策略,如針對云服務(wù)器ECS(Elastic Compute Service)服務(wù)設(shè)計了計算資源(vCPU 和內(nèi)存)、鏡像、塊存儲、公網(wǎng)帶寬等多個計量項[10],針對對象存儲OSS(Object Storage Service)服務(wù)設(shè)計了存儲費用、流量費用、數(shù)據(jù)處理費用、對象標(biāo)簽費用等多個單獨計量計費項[11],這些方法可以自動對系統(tǒng)內(nèi)部及不同系統(tǒng)間的資源進行調(diào)整,也能夠及時向用戶反饋服務(wù)費用使用情況。在計費方式上,各商業(yè)云平臺通常采用按量計費和包年包月計費兩種方式,按量計費屬于后付費模式,按照使用量×單價計費;包年包月屬于預(yù)付費模式,按照購買時長×單價計費。
盡管云服務(wù)具有可計量的特點,但由于科研云聯(lián)邦的各個數(shù)據(jù)中心分屬于不同法人單位,資源所有者希望云聯(lián)邦系統(tǒng)能夠?qū)Y源的使用情況進行監(jiān)測或計量,并且能夠保證計量數(shù)據(jù)隱私和數(shù)據(jù)安全,因此資源的計量子系統(tǒng)在科研云聯(lián)邦中尤為重要,后續(xù)計費功能也能夠釋放云聯(lián)邦的商業(yè)價值,在提升資源利用率的同時為云聯(lián)邦的參與者提供經(jīng)濟效益。
目前,聯(lián)盟鏈已在電子商務(wù)、金融監(jiān)管、智慧城市、創(chuàng)新醫(yī)療等多個領(lǐng)域廣泛應(yīng)用。在智慧城市領(lǐng)域,張利華[13]等人設(shè)計了基于聯(lián)盟鏈的去中心化雙鏈存儲模型,能夠安全、可靠地存儲鐵路沿線監(jiān)測數(shù)據(jù);在創(chuàng)新醫(yī)療領(lǐng)域,薛騰飛[14]等人針對醫(yī)療數(shù)據(jù)需要長期保存、詳細(xì)管理、嚴(yán)格審查的特殊性,提出了基于區(qū)塊鏈的醫(yī)療數(shù)據(jù)存儲和共享方案;劉加夢[15]等人針對頻發(fā)的中草藥造假現(xiàn)象,提出基于區(qū)塊鏈的中草藥質(zhì)量安全管理模型,增加對中草藥產(chǎn)品的把控能力;在電子商務(wù)領(lǐng)域,郭儀[16]等人利用區(qū)塊鏈技術(shù)設(shè)計電力數(shù)據(jù)資產(chǎn)交易平臺,使電力數(shù)據(jù)能夠跨部門、跨機構(gòu)有償共享,有效解決了電力數(shù)據(jù)孤島問題;在商品溯源領(lǐng)域,王可可[17]等人提出農(nóng)產(chǎn)品追溯解決方案,商品供應(yīng)方將商品流轉(zhuǎn)過程加密上鏈,保證商品流通安全,實現(xiàn)商品流通全過程可追溯;在金融監(jiān)管領(lǐng)域,章慶[18]等人分析我國債券市場現(xiàn)狀并結(jié)合Hyperchain 平臺完成概念驗證原型,具有前瞻意義;在智能管控領(lǐng)域,吳振銓[19]等人提出利用聯(lián)盟鏈實現(xiàn)智能電網(wǎng)數(shù)據(jù)的安全有效存儲與共享,改進了原有電網(wǎng)存儲數(shù)據(jù)易被惡意篡改的問題??梢姡槍Ω黝愋畔⒂绕涫敲舾袛?shù)據(jù)的生成、交換、存儲等問題,可以憑借區(qū)塊鏈的P2P 特性確保其隱私性、魯棒性和單點故障容錯性,既解決了業(yè)務(wù)參與者之間的信任、隱私及安全問題,又提升了行業(yè)交易的效率[20]。
科研云聯(lián)邦計量系統(tǒng)的設(shè)計目標(biāo)有三:一是向各數(shù)據(jù)中心管理員提供該中心資源的使用計量和租借情況報表,方便各中心查看自己的收益情況,幫助管理員檢查可用資源;二是生成年度、月度結(jié)算賬單,對接網(wǎng)絡(luò)支付工具完成在線結(jié)算,為前端提供相應(yīng)的標(biāo)準(zhǔn)API 訪問接口,方便云聯(lián)邦成員根據(jù)需求選擇服務(wù);三是通過去中心化、集體維護、公開透明的聯(lián)盟鏈技術(shù)保證計量環(huán)節(jié)的安全性與可靠性,確保資源計量準(zhǔn)確無誤的同時保護用戶數(shù)據(jù)隱私。基于以上設(shè)計目標(biāo),本文認(rèn)為在設(shè)計科研云聯(lián)邦計量系統(tǒng)時,應(yīng)遵循以下原則:(1)簡單性原則:細(xì)化資源計量因子的同時應(yīng)保留服務(wù)自身特征,使計量因子的設(shè)計盡可能簡單;(2)透明性原則:資源的計量因子應(yīng)列明重點資源,其他資源對用戶透明;(3)易理解原則:計量指標(biāo)應(yīng)該對用戶負(fù)責(zé),易于用戶理解和接受。
遵循設(shè)計原則,本文引入聯(lián)盟鏈技術(shù)設(shè)計了去中心化的科研云聯(lián)邦的計量系統(tǒng),如圖1所示。
圖1中,各個科研機構(gòu)既是云資源的提供者(即可以出租自身閑置資源),又是云資源的使用者(即可以向其他科研機構(gòu)申請資源)。如科研機構(gòu)A 既可以將自己富余的科研資源提交到聯(lián)盟鏈中供科研機構(gòu)B、C、D 使用,也可在資源短缺時向聯(lián)盟鏈提出申請獲得科研機構(gòu)B、C 的富余資源。科研機構(gòu)D 在文中被假設(shè)為無法為自身單位科研人員提供私有云服務(wù)的機構(gòu),科研人員只能通過個人電腦辦公,接入科研云聯(lián)邦后,便可以租借其他機構(gòu)資源。在此過程中科研機構(gòu)A、B、C、D 的所有租借交易行為信息以及資源狀態(tài)信息都將被記錄到區(qū)塊鏈中。
圖1 科研云聯(lián)邦計量系統(tǒng)模式圖Fig.1 Model diagram of scientific research cloud federation metering system
為了進一步說明計量系統(tǒng)的實現(xiàn)機理,本文基于IBM 和Digital Asset 提供的開源區(qū)塊鏈框架Hyperledger Fabric[21]設(shè)計了科研云聯(lián)邦計量系統(tǒng)邏輯框架,如圖2所示。
圖2中,資源提供方和資源使用方主要通過上層的API、Events 和SDKs 與Hyperledger Fabric 框架交互完成數(shù)據(jù)上鏈和數(shù)據(jù)查詢,聯(lián)盟鏈功能主要包括身份驗證、賬本管理和智能合約三個模塊。
分析貴州民族學(xué)生英語學(xué)習(xí)中所發(fā)/?/的共振峰,并將其與英語母語者的實驗數(shù)據(jù)進行對比,以從中發(fā)現(xiàn)民族語或者地方口音是否會對英語學(xué)習(xí)者的/?/產(chǎn)生影響,并分析其原因,以期找到有效提升學(xué)習(xí)者英語語音狀況的策略。
圖2 科研云聯(lián)邦計量系統(tǒng)邏輯框架Fig.2 Logical framework of scientific research cloud federation metering system
身份驗證模塊是保證云聯(lián)邦安全管理、保存用戶隱私數(shù)據(jù)的前提,公鑰基礎(chǔ)設(shè)施(Public Key Infrastructure,PKI)提供身份證明,由成員服務(wù)提供者(Member Service Provider,MSP)完成身份驗證管理操作。只有通過身份驗證的各科研機構(gòu)管理員才被允許加入到計量系統(tǒng)的聯(lián)盟鏈中,進行操作和簽名。
賬本管理模塊可以使被授權(quán)的云聯(lián)邦成員(各科研機構(gòu)管理員)通過區(qū)塊號、區(qū)塊哈希值或交易號查詢自己單位的賬本數(shù)據(jù)。為了保護各科研機構(gòu)的交易隱私,賬本管理擬采用聯(lián)盟鏈多通道形式,如圖3所示,每一條副鏈(應(yīng)用通道)對應(yīng)著一個科研機構(gòu)的資源交易歷史,這些記錄方便管理員對本單位資源使用和外借情況進行管理,方便后續(xù)業(yè)務(wù)對每個科研機構(gòu)的收支情況進行統(tǒng)計匯總;每一條副鏈只由該單位管理員以及與該單位發(fā)生交易的科研機構(gòu)管理員訪問,而未與其進行交易的科研機構(gòu)不能訪問該副鏈。每條副鏈的賬本不會傳遞到其他副鏈。多鏈的設(shè)計實現(xiàn)聯(lián)盟鏈中計量業(yè)務(wù)的隔離,保證數(shù)據(jù)安全和數(shù)據(jù)隱私。當(dāng)各科研機構(gòu)管理員通過身份驗證后,云聯(lián)邦計量系統(tǒng)可以為各科研機構(gòu)提供本中心資源使用和收益情況。
圖3 區(qū)塊鏈多通道示意圖Fig.3 Blockchain multi-channel diagram
智能合約模塊是在云聯(lián)邦系統(tǒng)嵌入智能合約自動化完成資源計量。由于本系統(tǒng)采用按使用量計量的模式,因此在云服務(wù)租借完成后,由云服務(wù)提供方根據(jù)計量因子和服務(wù)使用量來確認(rèn)計量結(jié)果,折算成金額后反饋給云服務(wù)使用方,雙方達成共識后提交到Fabric 網(wǎng)絡(luò)中,智能合約自動執(zhí)行交易流程,實現(xiàn)結(jié)算,并將交易記錄同步寫入到新的區(qū)塊中。
圖4展示了聯(lián)盟鏈中的區(qū)塊結(jié)構(gòu)示意圖,單個區(qū)塊包含區(qū)塊頭和區(qū)塊體兩部分。區(qū)塊頭中含有鏈接到上一個數(shù)據(jù)區(qū)塊的加密哈希值,能夠追蹤并查驗數(shù)據(jù),并防止計量數(shù)據(jù)被惡意篡改。每個區(qū)塊體都可能存儲有多條計量交易信息,經(jīng)過Merkle 樹的哈希過程生成最終的哈希值并記錄到區(qū)塊頭的Merkle-Root 中。
圖4 區(qū)塊結(jié)構(gòu)示意圖Fig.4 Block structure diagram
科研云聯(lián)邦主要提供云主機和對象存儲兩種服務(wù),服務(wù)內(nèi)容主要涉及實例、數(shù)據(jù)傳輸量、塊存儲使用量、IP 地址等方面,因此可以確定服務(wù)計量因子應(yīng)該包含CPU、內(nèi)存、硬盤、網(wǎng)絡(luò)流量、帶寬等,以小時為粒度進行分段計量。計量系統(tǒng)將資源使用量統(tǒng)一折算成費用,方便后續(xù)科研云聯(lián)邦資源使用的結(jié)算和計費服務(wù)的進行。當(dāng)然,兩種服務(wù)方式的費用計量策略有所差異。
云主機服務(wù)使用戶能夠高效、便捷地使用服務(wù)器,實現(xiàn)云資源的即開即用。不同于需要長期穩(wěn)定運行的商業(yè)用途的云主機,科研計算用云主機往往對單個虛擬機的CPU 和內(nèi)存資源需求更大,通常使用時間不超過一周,用戶在使用過程中會較頻繁地申請、釋放資源。云主機的實例一般包括計算資源(CPU 和內(nèi)存)、鏡像、塊存儲等,通常根據(jù)其計算資源、系統(tǒng)塊存儲和網(wǎng)絡(luò)類別收取價格。計算資源按照實例規(guī)格的形式提供,包括CPU 和內(nèi)存,通常按照實例規(guī)格收取費用;存儲服務(wù)包括系統(tǒng)盤和數(shù)據(jù)盤,通常按照容量與使用時長計量;當(dāng)選擇公網(wǎng)IP 時則按照固定帶寬計量,每小時整點結(jié)算。云主機服務(wù)的費用計量公式如下:
對象存儲服務(wù)是科研云聯(lián)邦提供的海量、安全、低成本和高持久的云存儲服務(wù)。對象存儲服務(wù)的存儲費用將按照用戶實際使用量進行計量,每小時結(jié)算一次。流量費用僅計量外網(wǎng)流出流量,即數(shù)據(jù)通過互聯(lián)網(wǎng)從對象存儲傳輸?shù)娇蛻舳水a(chǎn)生的流量。對象存儲服務(wù)的費用計量公式如下:
科研云聯(lián)邦計量系統(tǒng)將用戶使用過的資源匯總為一個交易,在區(qū)塊創(chuàng)建時寫入?yún)^(qū)塊體的交易提案中。本文以JSON 文件的形式描述了記錄在聯(lián)盟鏈中的資源信息,具體示例展示如下:
資源信息描述示例中,"ResourceProvider"代表資源提供方,"ProviderID"代表提供方的服務(wù)器ID,"ResourceUser"代表資源使用方,"UserID"代表用戶ID,"CloudService"代表云主機和對象存儲兩種服務(wù),"TotalCost"代表本交易折算費用,"UsageTime"為使用時間,"CPU"、"RAM"、"NetworkBandwidth"、"HardDisk" 代表云主機中的四個計量因子,"StorageCapacity"、"OutFlow"代表對象存儲中的兩個計量因子。
科研云聯(lián)邦計量系統(tǒng)包含有Client、CA、Orderer、Peer 四種節(jié)點,節(jié)點是聯(lián)盟鏈的通信主體,多個不同類型的節(jié)點可以運行在同一物理服務(wù)器上。用戶通過Client 節(jié)點進行云服務(wù)的租借申請;CA 節(jié)點負(fù)責(zé)聯(lián)盟鏈成員的身份驗證;Orderer 節(jié)點將接收到的交易進行排序生成區(qū)塊,并廣播給Peer 節(jié)點。Peer 節(jié)點又可分為Endorser(背書節(jié)點)、Committer(記賬節(jié)點)、Leader(領(lǐng)導(dǎo)節(jié)點)和Anchor(錨節(jié)點)四種:Endorser(背書節(jié)點)負(fù)責(zé)檢查交易提案,按照自身規(guī)則檢查交易的邏輯,執(zhí)行智能合約條款;Committer(記賬節(jié)點)接收到交易請求后進行驗證背書,執(zhí)行交易操作,并將交易結(jié)果共享到聯(lián)盟鏈賬本上,維護聯(lián)盟鏈和賬本;Leader(領(lǐng)導(dǎo)節(jié)點)連接到排序服務(wù),將接收的區(qū)塊轉(zhuǎn)發(fā)給組織內(nèi)其他節(jié)點;Anchor(錨節(jié)點)用于不同科研機構(gòu)之間的通信。
在交易過程中Client(客戶端)通過SDK 應(yīng)用程序與聯(lián)盟鏈進行交互,如圖5所示。
圖5 計量交易流程圖Fig.5 Flow chart of metering transaction
計量交易的具體流程如下:(1)Client(客戶端)通過CA(證書節(jié)點)獲取合法的身份加入到應(yīng)用通道中;(2)Client(客戶端)構(gòu)造交易請求(Proposal)提交給Endorser(背書節(jié)點);(3)Endorser(背書節(jié)點)對交易進行驗證和模擬執(zhí)行后,將結(jié)果反饋給Client(客戶端),此時并未更新賬本;(4)Client(客戶端)收到來自云聯(lián)邦內(nèi)部足夠多的背書支持后將交易發(fā)送給Orderer(排序節(jié)點),同時提交Endorser(背書節(jié)點)更新交易狀態(tài);(5)Orderer(排序節(jié)點)對網(wǎng)絡(luò)中的交易進行全局排序,并將排序后的交易構(gòu)造成區(qū)塊,然后廣播給網(wǎng)絡(luò)中的Leader(領(lǐng)導(dǎo)節(jié)點);(6)Leader(領(lǐng)導(dǎo)節(jié)點)將接收的區(qū)塊同步轉(zhuǎn)發(fā)給組織內(nèi)部其他節(jié)點;(7)Committer(記賬節(jié)點)維護區(qū)塊鏈和賬本,檢查交易的合法性和背書后將結(jié)果寫入賬本,將新區(qū)塊上鏈。
由于科研云聯(lián)邦計量系統(tǒng)屬于分布式系統(tǒng),因此需要共識機制來保障節(jié)點以相同的順序保存賬本,保證賬本的一致性。本系統(tǒng)基于Hyperledger Fabric框架并利用Raft 算法[22]作為系統(tǒng)的共識算法,Raft算法是一種崩潰容錯排序算法,遵循“領(lǐng)導(dǎo)者和跟隨者”模型,在每一個組織中選舉一個領(lǐng)導(dǎo)節(jié)點(Leader)負(fù)責(zé)決策,其余跟隨者復(fù)制其決策。通過動態(tài)選舉產(chǎn)生Leader(領(lǐng)導(dǎo)節(jié)點),可以避免出現(xiàn)故障無法分發(fā)區(qū)塊的問題。
Raft 算法易于安裝部署和管理,提高了系統(tǒng)交易的高可用性。相較于Kafka 算法需要所有節(jié)點在同一組織控制下的同一集群中服務(wù),使用Raft 算法能夠使各個組織有自己的排序節(jié)點,共同組成排序服務(wù),保證了計量系統(tǒng)的去中心化。相較于PBFT(實用拜占庭)算法可以支持容錯故障節(jié)點和作惡節(jié)點,Raft 算法僅可以承受包括領(lǐng)導(dǎo)節(jié)點(Leader)在內(nèi)的節(jié)點故障,只要系統(tǒng)中剩余節(jié)點超過半數(shù)就能夠支持容錯故障節(jié)點,但是運行效率遠(yuǎn)高于PBFT 算法。在科研云聯(lián)邦計量系統(tǒng)中,由于身份驗證模塊可以保證聯(lián)盟鏈中組織的安全性和可靠性,因此選擇Raft 算法能夠保證系統(tǒng)的交易性能,算法偽代碼如下所示。
科研云聯(lián)邦計量系統(tǒng)的共識過程可以分為交易背書、交易排序和交易驗證三個階段。交易由Client(客戶端)提交到自己組織的Orderer(排序節(jié)點)后:(1)通過自動路由到達當(dāng)前排序服務(wù)中的Leader(領(lǐng)導(dǎo)節(jié)點);(2)Leader(領(lǐng)導(dǎo)節(jié)點)檢查交易驗證的配置序列號是否與當(dāng)前配置序列號一致,如果不一致則執(zhí)行驗證,驗證失敗后駁回交易,通過驗證后則創(chuàng)建新區(qū)塊;(3)Leader(領(lǐng)導(dǎo)節(jié)點)將新區(qū)塊應(yīng)用于本地的Raft 有限狀態(tài)機;(4)有限狀態(tài)機嘗試將區(qū)塊復(fù)制到其他Orderer(排序節(jié)點);(5)區(qū)塊被分別寫入Committer(記賬節(jié)點)的本地賬本,共識過程完成。
科研云聯(lián)邦計量系統(tǒng)主要應(yīng)用了聯(lián)盟鏈技術(shù),具有去中心化特征,能夠保障計量數(shù)據(jù)的安全性、真實性和可靠性,且容易達成共識,可以有效防止單節(jié)點攻擊和惡意篡改數(shù)據(jù)。
(1)安全性:系統(tǒng)能夠保證計量數(shù)據(jù)的安全,聯(lián)盟鏈中的計量交易數(shù)據(jù)默認(rèn)不公開,僅在身份驗證過后向聯(lián)盟內(nèi)部成員公開;系統(tǒng)采用多通道架構(gòu),僅為與通道有關(guān)的科研機構(gòu)提供計量數(shù)據(jù),最大程度保證了用戶的隱私和數(shù)據(jù)安全。系統(tǒng)能夠防止單點攻擊。傳統(tǒng)的中心式計量系統(tǒng)設(shè)計由云聯(lián)邦中心全權(quán)負(fù)責(zé),將所有的計量數(shù)據(jù)寫入到云聯(lián)邦中心數(shù)據(jù)庫中,難以保證數(shù)據(jù)在云聯(lián)邦中心和各個科研機構(gòu)的一致性,且會造成云聯(lián)邦中心運營成本高、運行效率低;若云聯(lián)邦中心受到惡意攻擊,會導(dǎo)致計量隱私數(shù)據(jù)泄露,計量系統(tǒng)崩潰的后果。而基于聯(lián)盟鏈的科研云聯(lián)邦計量系統(tǒng)具有部分去中心化特征,每個科研機構(gòu)都保存有一份完整可信的數(shù)據(jù)鏈,在某個節(jié)點出現(xiàn)故障后也可通過人工干預(yù)快速恢復(fù)。
(2)準(zhǔn)確性:系統(tǒng)能夠防止數(shù)據(jù)被惡意篡改。系統(tǒng)采用聯(lián)盟鏈技術(shù),該鏈只屬于聯(lián)盟(即科研云聯(lián)邦)內(nèi)部成員所有,外界人員未經(jīng)認(rèn)證無法加入。在計量交易數(shù)據(jù)上鏈后,每個數(shù)據(jù)區(qū)塊都依賴于前一個數(shù)據(jù)區(qū)塊的哈希值進行存儲,要想惡意篡改某個數(shù)據(jù)塊必須修改該數(shù)據(jù)區(qū)塊之后的所有數(shù)據(jù)區(qū)塊信息,此過程需要耗費巨大算力,從經(jīng)濟角度而言不具備攻擊可行性。此外,由于聯(lián)盟鏈可控性較強,即使出現(xiàn)計量誤差,也會被聯(lián)盟內(nèi)大部分節(jié)點識別并及時修改,相較于完全不能修改的公有鏈而言更為靈活便捷,保證了計量數(shù)據(jù)的準(zhǔn)確性。系統(tǒng)能夠保證數(shù)據(jù)的真實可靠。在一次云服務(wù)調(diào)用完成后,由云服務(wù)提供方向鏈上傳輸附有雙方數(shù)字簽名的數(shù)據(jù),上鏈過程中的其他節(jié)點可以據(jù)此保證數(shù)據(jù)來源的真實可靠性。
(3)高效性:系統(tǒng)運行效率高。Suporn Pongnumkul 等人在文章[23]中從性能方面對比評估了Hyperledger Fabric 和以太坊兩個區(qū)塊鏈平臺,在事務(wù)平均執(zhí)行時間、平均延遲和平均吞吐量方面,Hyperledger Fabric 的性能均優(yōu)于以太坊。如圖6所示,當(dāng)交易數(shù)量達到10 000 時,以太坊的延遲時間達到了Hyperledger Fabric 的14.22 倍。Julian Dreyer[24]等人對比測試了應(yīng)用Hyperledger Fabric 不同版本對每秒傳入交易數(shù)量分別為10、100 和1000 時的系統(tǒng)執(zhí)行時間,F(xiàn)abric v2.0 版本執(zhí)行時間較之前版本有明顯下降,對于系統(tǒng)的整體性能有顯著提升。而表1[25]展示了五種常見共識算法的性能對比,可以看出Raft 算法執(zhí)行速度快,且吞吐量遠(yuǎn)高于其他算法,能夠保證系統(tǒng)的交易性能。本系統(tǒng)利用Hyperledger Fabric 框架和Raft 共識算法能夠保證云聯(lián)邦計量系統(tǒng)的運行高效性。
圖6 以太坊與Hyperledger Fabric 平均延遲時間對比Fig.6 Comparison of average latency between Ethereum and Hyperledger Fabric
表1 共識算法對比[25]Table 1 Comparison of consensus algorithm[25]
針對科研用戶短期內(nèi)對云服務(wù)資源的大量需求以及云聯(lián)邦資源計量的現(xiàn)實困境,設(shè)計了基于聯(lián)盟鏈的科研云聯(lián)邦計量系統(tǒng),將作為科研云聯(lián)邦系統(tǒng)的重要組成部分上線運行。本系統(tǒng)基于Hyperledger Fabric 框架,利用聯(lián)盟鏈技術(shù)進行資源計量,保證用戶數(shù)據(jù)的安全與隱私,解決了傳統(tǒng)集中式計量運營成本高、效率低、易受惡意攻擊、數(shù)據(jù)存儲不安全等問題,既可幫助云聯(lián)邦管理員檢查可用資源,又可為管理員提供收益報表,提高管理員工作效率,具有一定的實用價值。后續(xù)研究將選擇真實應(yīng)用場景進行測試,并逐步細(xì)化結(jié)算和計費功能模塊的設(shè)計。
利益沖突聲明
所有作者聲明不存在利益沖突關(guān)系。