• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    存儲容量可擴展區(qū)塊鏈系統(tǒng)的高效查詢模型*

    2019-10-24 05:49:44賈大宇信俊昌王之瓊王國仁
    軟件學(xué)報 2019年9期
    關(guān)鍵詞:用戶模型系統(tǒng)

    賈大宇,信俊昌,2,王之瓊,郭 薇,王國仁

    1(東北大學(xué) 計算機科學(xué)與工程學(xué)院,遼寧 沈陽 110819)

    2(遼寧省大數(shù)據(jù)管理與分析重點實驗室,遼寧 沈陽 110819)

    3(東北大學(xué) 中荷生物醫(yī)學(xué)與信息工程學(xué)院,遼寧 沈陽 110819)

    4(沈陽航空航天大學(xué) 計算機學(xué)院,遼寧 沈陽 110136)

    5(北京理工大學(xué) 計算機學(xué)院,北京 100081)

    通訊作者:信俊昌,E-mail:xinjunchang@mail.neu.edu.cn

    區(qū)塊鏈技術(shù)起源于2008 年化名為“中本聰”(Satoshi nakamoto)的學(xué)者在密碼學(xué)郵件組發(fā)表的奠基性論文《比特幣:一種點對點電子現(xiàn)金系統(tǒng)》[1].區(qū)塊鏈技術(shù)具有去中心化、透明性、開放性、自治性、匿名性和信息不可篡改等特點[2],被認(rèn)為是繼大型機、個人電腦、互聯(lián)網(wǎng)、移動社交網(wǎng)絡(luò)之后,計算范式的第5 次顛覆式創(chuàng)新,是人類信用進(jìn)化史上繼血親信用、貴金屬信用、央行紙幣信用之后的第4 個里程碑[3].區(qū)塊鏈技術(shù)為解決中心化機構(gòu)普遍存在的高成本、低效率和數(shù)據(jù)存儲不安全等問題提供了解決方案[4].

    但目前存在儲存擴展性較差的問題,以迄今為止最為成功的區(qū)塊鏈應(yīng)用場景比特幣為例,截至2018 年5 月6 日,產(chǎn)生了521 534個區(qū)塊[5]、17 019 個比特幣,總?cè)萘繛?74.34GB.截至2017 年5 月7 日,鏈上已認(rèn)證地址9 892 723 個[6],并且經(jīng)過一年多大家對比特幣關(guān)注度的增加,已認(rèn)證地址數(shù)量大幅提升.在區(qū)塊鏈系統(tǒng)中,節(jié)點有效保證區(qū)塊鏈數(shù)據(jù)安全的方法是作為完全節(jié)點保存完整的區(qū)塊鏈數(shù)據(jù).如果目前比特幣系統(tǒng)中所有節(jié)點都作為完全節(jié)點,那么近1 000 萬個節(jié)點各自提供近200GB 的磁盤空間來儲存區(qū)塊鏈數(shù)據(jù),整個系統(tǒng)將占用約2 000PB 的存儲容量保存200GB 左右的數(shù)據(jù),這極大地浪費了存儲空間.在未來,區(qū)塊鏈技術(shù)將會被大規(guī)模地應(yīng)用,預(yù)計到2027 年,全球10%的GDP 將會通過區(qū)塊鏈技術(shù)存儲[7].隨著區(qū)塊鏈容量的不斷增加,參與節(jié)點的存儲容量將逐漸不能滿足其存儲空間要求,這些不能滿足要求的節(jié)點就不能繼續(xù)作為完全節(jié)點保留在系統(tǒng)中.隨著系統(tǒng)中完全節(jié)點數(shù)量的減少,對區(qū)塊鏈系統(tǒng)的安全性必將產(chǎn)生影響,如:基于工作量證明(proof of work,簡稱POW)[8]機制的區(qū)塊鏈系統(tǒng)的總算力就會下降;基于股權(quán)證明(proof of stake,簡稱POS)[9]機制系統(tǒng)中的股權(quán)容易集中;基于委任權(quán)益證明(delegated proof of stake,簡稱DPOS)[10]機制的區(qū)塊鏈系統(tǒng)更容易被少數(shù)節(jié)點控制等.同時,如果不具備足夠存儲空間的節(jié)點不能加入到區(qū)塊鏈系統(tǒng)中,區(qū)塊鏈的可擴展性也會降低.因此,區(qū)塊鏈具有良好的存儲容量可擴展性是非常重要的.

    目前,對于區(qū)塊鏈存儲容量可擴展性的研究不是很多,文獻(xiàn)[11]提出了名為ElasticChain 的區(qū)塊鏈模型,該模型在有效保證數(shù)據(jù)安全的前提下,增加了區(qū)塊鏈的存儲容量.但是在原有的區(qū)塊鏈模型中,全節(jié)點保存著完整的區(qū)塊鏈數(shù)據(jù),在查詢數(shù)據(jù)時,全節(jié)點只需要在本地磁盤進(jìn)行查找操作.而ElasticChain 模型在增加存儲容量之后,模型中的大部分節(jié)點沒有保存全部的區(qū)塊鏈數(shù)據(jù),所以當(dāng)一個節(jié)點發(fā)起查詢操作后,它將訪問系統(tǒng)中其他大量節(jié)點,遍歷一條完整的區(qū)塊數(shù)據(jù).因此,ElasticChain 模型與原區(qū)塊鏈模型相比,數(shù)據(jù)的查詢效率明顯降低.同時,由于ElasticChain 模型在查詢時數(shù)據(jù)來自不同節(jié)點,系統(tǒng)中也存在一些惡意節(jié)點返回的虛假數(shù)據(jù)的現(xiàn)象,這也給數(shù)據(jù)查詢的準(zhǔn)確度和數(shù)據(jù)的安全造成一定的影響.隨著區(qū)塊鏈技術(shù)的廣泛應(yīng)用,人們對區(qū)塊鏈中數(shù)據(jù)查找速度和準(zhǔn)確度的要求會越來越高,沒有有效的數(shù)據(jù)查詢方法,將會對未來區(qū)塊鏈技術(shù)的廣泛應(yīng)用帶來巨大限制.

    因此,本文在ElasticChain 模型基礎(chǔ)上提出一種新的容量可擴展區(qū)塊鏈系統(tǒng)的高效查詢方法——ElasticQM(elastic query model).ElasticQM 的框架共有4 層,分別是用戶層、查詢層、存儲層和數(shù)據(jù)層.

    · 在用戶層中,包括了數(shù)據(jù)緩存、數(shù)據(jù)驗證和數(shù)據(jù)同步等模塊:數(shù)據(jù)同步模塊保證了數(shù)據(jù)的時效性;數(shù)據(jù)緩存模塊將查詢過的數(shù)據(jù)緩存在本地磁盤中,增加再次查詢該數(shù)據(jù)的查詢速度;

    · 在查詢層中,ElasticQM 結(jié)合了P2P 網(wǎng)絡(luò)超級節(jié)點查找技術(shù),提出了容量可擴展區(qū)塊鏈模型的全局查詢優(yōu)化算法.通過建立具有高可靠性和高穩(wěn)定性的查詢超級節(jié)點,在模型響應(yīng)數(shù)據(jù)查詢請求時,優(yōu)先訪問查詢超級節(jié)點,在保證數(shù)據(jù)安全的前提下,提高了數(shù)據(jù)查詢效率;

    · 在存儲層中,模型采用基于ElasticChain 的區(qū)塊鏈模型,保證了區(qū)塊鏈數(shù)據(jù)的容量可擴展性;

    · 在數(shù)據(jù)層中,我們提出了B-M tree 的數(shù)據(jù)存儲結(jié)構(gòu).該存儲結(jié)構(gòu)結(jié)合了平衡二叉樹(balanced binary tree)[12]和梅克爾樹(Merkle tree)[13]的各種特點,在保證區(qū)塊數(shù)據(jù)驗證速度的同時,提高了每個區(qū)塊內(nèi)的局部查詢速度,并使區(qū)塊鏈支持?jǐn)?shù)據(jù)范圍查詢.

    本文的主要貢獻(xiàn)如下.

    (1)提出了一種區(qū)塊鏈存儲容量可擴展模型的高效查詢方法——ElasticQM.此查詢模型由用戶層、查詢層、存儲層和數(shù)據(jù)層共4 層模塊組成;

    (2)在ElasticQM 查詢層,提出了一種容量可擴展區(qū)塊鏈模型的全局查詢優(yōu)化算法,增加了查詢超級節(jié)點、查詢驗證節(jié)點和查詢?nèi)~子節(jié)點這3 種模型中的角色,提高了查詢效率;

    (3)在ElasticQM 數(shù)據(jù)層,提出了一種基于B-M 樹的區(qū)塊鏈存儲結(jié)構(gòu),并給出了B-M 樹的建立算法和基于B-M 樹的查找算法.區(qū)塊鏈基于B-M 樹的存儲結(jié)構(gòu),會在區(qū)塊鏈進(jìn)行的塊內(nèi)局部查找時,提高區(qū)塊鏈的查詢速度;

    (4)通過在不同節(jié)點可擴展區(qū)塊鏈中對不同數(shù)據(jù)量區(qū)塊進(jìn)行的查詢實驗結(jié)果表明,ElasticQM 查詢方法具有高效的查詢效率.

    1 相關(guān)工作

    近年來,對于區(qū)塊鏈技術(shù)的研究越來越受到人們關(guān)注.首先,在提高區(qū)塊鏈中數(shù)據(jù)查詢效率方面,文獻(xiàn)[14]開發(fā)了基于Ethereum 的高效查詢層EtherQL.EtherQL 會自動同步區(qū)塊鏈系統(tǒng)中新的區(qū)塊數(shù)據(jù),并將其存儲在專用數(shù)據(jù)庫中,以確保查詢準(zhǔn)確性和高效性.同時,EtherQL 提供了比其他區(qū)塊鏈應(yīng)用系統(tǒng)更高效、更靈活的數(shù)據(jù)查詢接口,并且支持對區(qū)塊鏈數(shù)據(jù)的范圍查詢和top-k查詢.在區(qū)塊鏈系統(tǒng)性能評價方面,文獻(xiàn)[15]首次提出了區(qū)塊鏈應(yīng)用的評價框架——Blockbench.文獻(xiàn)中,Blockbench 在Hyperledger Fabric 和以太坊的兩個客戶端(Parity 和Geth)這3 個區(qū)塊鏈私有鏈平臺上,評價了每個平臺在吞吐量、延遲、可擴展性和容錯方面的性能,并做了詳細(xì)的比較和分析.并且,區(qū)塊鏈技術(shù)在未來也是計算機、數(shù)據(jù)庫領(lǐng)域的研究熱點.文獻(xiàn)[16]通過查閱大量區(qū)塊鏈系統(tǒng)的框架和應(yīng)用情況,分析出未來在區(qū)塊鏈數(shù)據(jù)管理和分析方面的主要研究方向:區(qū)塊鏈充分利用現(xiàn)有成熟的數(shù)據(jù)和信息系統(tǒng)的方法、增強區(qū)塊鏈數(shù)據(jù)安全性和隱私性的有效方法、在區(qū)塊鏈上和區(qū)塊鏈下的數(shù)據(jù)分析方法和如何使基于區(qū)塊鏈的系統(tǒng)更加活躍和智能.

    其次,在保證區(qū)塊鏈數(shù)據(jù)安全性方面,文獻(xiàn)[17]提出了基于股權(quán)證明(POS)的區(qū)塊鏈協(xié)議Ouroboros Praos.該協(xié)議通過設(shè)置安全的數(shù)字簽名和一種新型可驗證隨機函數(shù),來保證在半同步狀態(tài)下區(qū)塊鏈的安全性.文獻(xiàn)開發(fā)了一個通用的基于新協(xié)議的區(qū)塊鏈模型,并通過建立隨機預(yù)言機模型進(jìn)行模擬實驗,驗證了新協(xié)議的高安全性.文獻(xiàn)[18]提出ForkBase 數(shù)據(jù)庫存儲引擎,ForkBase 解決了在數(shù)據(jù)容易產(chǎn)生分叉或分歧的系統(tǒng)中出現(xiàn)的多版本、交叉語義和惡意篡改攻擊等問題.同時,文獻(xiàn)提出了名為POS-Tree 的管理大型數(shù)據(jù)對象的索引結(jié)構(gòu),減少了系統(tǒng)的存儲開銷.文獻(xiàn)評估了ForkBase 與區(qū)塊鏈平臺、wiki 服務(wù)和一個協(xié)作分析應(yīng)用軟件OrpheusDB 等3 個具有代表性的復(fù)雜應(yīng)用各自的性能,展示了Fork-Base 的可用性和高效性.文獻(xiàn)[19]分析了比特幣以外的區(qū)塊鏈的安全性和網(wǎng)絡(luò)可靠性,分析發(fā)現(xiàn),Namecoin 區(qū)塊鏈系統(tǒng)中擁有單個礦工在數(shù)月里的計算能力超過全網(wǎng)的51%,這是區(qū)塊鏈系統(tǒng)中非常嚴(yán)重的安全隱患.因此,文獻(xiàn)提出了開源軟件Blockstack,在Blockstack 框架中設(shè)計了4 層架構(gòu)——區(qū)塊鏈層、虛擬層、路由層和數(shù)據(jù)存儲層,避免了Namecoin 區(qū)塊鏈系統(tǒng)檢測出來的安全問題.文獻(xiàn)[20]提出了量化框架來分析基于PoW 共識機制的區(qū)塊鏈系統(tǒng)在不同網(wǎng)絡(luò)參數(shù)下的安全性.框架分析了區(qū)塊鏈系統(tǒng)在實際應(yīng)用中存在的網(wǎng)絡(luò)傳播、不同區(qū)塊大小、區(qū)塊生成時間間隔、信息傳播機制以及日食攻擊(eclipse attacks)等影響系統(tǒng)安全性的約束.設(shè)計了應(yīng)對雙重支付(double-spending)和自私挖掘(selfish mining)的最優(yōu)對抗策略.

    2 預(yù)備知識和問題定義

    2.1 區(qū)塊鏈的區(qū)塊結(jié)構(gòu)和查詢方法

    目前,區(qū)塊鏈應(yīng)用的主要模型架構(gòu)基于中本聰?shù)恼撐腫1],如圖1 所示,在每個區(qū)塊中,存儲了版本號、上一個區(qū)塊的哈希值、本區(qū)塊產(chǎn)生的隨機數(shù)、時間戳、難度值和由交易信息生成的Merkle 樹的根.

    · 版本號也是該區(qū)塊的區(qū)塊號;

    · 上一個區(qū)塊的哈希值是上一個剛剛生成區(qū)塊的區(qū)塊頭通過SHA256 算法生成的哈希值,并填入到當(dāng)前區(qū)塊中;

    · 本區(qū)塊產(chǎn)生的隨機數(shù)是在區(qū)塊鏈工作量證明機制下,區(qū)塊鏈各個節(jié)點根據(jù)上一個區(qū)塊的哈希值,并通過反復(fù)嘗試來找到的符合設(shè)定哈希函數(shù)的隨機數(shù);

    · 時間戳記錄了該區(qū)塊產(chǎn)生的時間,標(biāo)識了該區(qū)塊的唯一性;

    · 難度值會根據(jù)之前一段時間區(qū)塊的平均生成時間進(jìn)行調(diào)整,以應(yīng)對整個網(wǎng)絡(luò)不斷變化的整體計算總量,如果計算總量增長了,則系統(tǒng)會調(diào)高數(shù)學(xué)題的難度值,使得預(yù)期完成下一個區(qū)塊的時間依然在一定時間內(nèi);

    · Merkle 樹的根是由區(qū)塊主體中所有交易的哈希值再逐級兩兩哈希計算出來的數(shù)值,主要用于快速檢驗一筆交易是否在這個區(qū)塊中存在[13].當(dāng)系統(tǒng)驗證區(qū)塊鏈中是否包含某筆交易時,只需要一個交易哈希,一個Merkle 樹根哈希和一個Merkle 路徑,實現(xiàn)了區(qū)塊鏈的簡易支付驗證(simplified payment verification,簡稱SPV)[21].

    Fig.1 Structure of blocks圖1 區(qū)塊結(jié)構(gòu)

    因為在區(qū)塊鏈的機制中,要求每個完全節(jié)點必須存儲一個區(qū)塊鏈的完整副本.當(dāng)查詢其中一條交易信息時,會在本地完整的區(qū)塊鏈副本中進(jìn)行遍歷查詢.但隨著越來越多的人使用區(qū)塊鏈系統(tǒng),不太可能每個人都去運行全節(jié)點,一部分區(qū)塊鏈的用戶會選擇使用輕量級錢包.輕量級錢包不會保存區(qū)塊鏈的數(shù)據(jù),當(dāng)其發(fā)起查詢請求時,需將查詢請求發(fā)送到相鄰全節(jié)點,在全節(jié)點中進(jìn)行查詢操作,并將查詢結(jié)果返回給輕量級節(jié)點.

    2.2 區(qū)塊鏈存儲容量可擴展模型的結(jié)構(gòu)和查詢方法

    目前,對于增加區(qū)塊鏈可擴展性的研究還不是很多.文獻(xiàn)[11]提出了區(qū)塊鏈存儲容量可擴展模型ElasticChain,將一條完整的區(qū)塊鏈副本進(jìn)行分片處理,并將分片數(shù)據(jù)保存在一定比例的節(jié)點中,提升了區(qū)塊鏈的存儲容量.ElasticChain 模型首先采用了區(qū)塊鏈數(shù)據(jù)副本分片策略,計算出了安全、合適的每個分片大小和分片被存儲的副本數(shù).然后,ElasticChain 模型增加了驗證節(jié)點對存儲數(shù)據(jù)的節(jié)點進(jìn)行基于POR(數(shù)據(jù)可檢索性證明)方法的實時檢測,并記錄更新存儲節(jié)點穩(wěn)定性值,依此選擇高穩(wěn)定性節(jié)點來儲存新產(chǎn)生的數(shù)據(jù)副本,提高了數(shù)據(jù)存儲的穩(wěn)定性.

    如圖2 所示,ElasticChain 模型包括了用戶節(jié)點、儲存節(jié)點和驗證節(jié)點.用戶節(jié)點是原始數(shù)據(jù)擁有者,儲存節(jié)點是副本的保存者,而驗證節(jié)點是儲存節(jié)點穩(wěn)定性的驗證者.一個節(jié)點可以同時具備兩種或者3 種角色.當(dāng)用戶節(jié)點查詢區(qū)塊鏈數(shù)據(jù)時,需要首先訪問保存本地的P 鏈(P 鏈存儲區(qū)塊鏈數(shù)據(jù)分片存儲的位置),查找到分片數(shù)據(jù)保存的相應(yīng)存儲節(jié)點.然后訪問存儲節(jié)點,將每個分片數(shù)據(jù)逐一返回到用戶節(jié)點.最后才能在返回數(shù)據(jù)中進(jìn)行查詢操作.

    Fig.2 Structure of ElasticChain model圖2 ElasticChain 模型架構(gòu)

    2.3 問題定義

    令S表示包含n個區(qū)塊的一條完整的區(qū)塊鏈數(shù)據(jù)集合,即S={B1,B2,...,Bn}.并且每一個區(qū)塊B被表示為元組B=〈H,K〉,其中,H表示區(qū)塊B的區(qū)塊頭信息;K表示區(qū)塊B中的交易數(shù)據(jù),交易數(shù)據(jù)K是由m個交易組成的集合,即K={T1,T2,...,Tm}.每一個交易T被表示為一個元組T=〈V,O,N,R,E〉,其中,V表示此時交易T的版本號,O表示交易T發(fā)起者的地址,N表示交易的數(shù)額,R表示交易T接收方公鑰的哈希,E表示交易的其他信息.一個區(qū)塊中第i個交易可以表示為Ti=〈Vi,Oi,Ni,Ri,Ei〉.

    本文要解決的問題是,當(dāng)區(qū)塊鏈S存儲在區(qū)塊鏈存儲容量可擴展模型中,進(jìn)行基于交易發(fā)起者的地址O、交易的數(shù)額N、交易接收方地址R的條件查詢查詢時,提高其查詢速度.在本文中,以對地址為Oi的節(jié)點所發(fā)起的所有交易進(jìn)行查詢操作為例進(jìn)行闡述說明.

    3 ElasticQM 查詢模型總覽

    基于ElasticChain 區(qū)塊鏈存儲容量可擴展模型,我們提出了在擴展模型上的高效查詢方法——ElasticQM.ElasticQM 查詢模型一共由4 層模塊組成,分別是用戶層、查詢層、存儲層和數(shù)據(jù)層.ElasticQM 模型架構(gòu)如圖3所示.

    · 用戶在發(fā)起查詢請求后首先訪問用戶層,在用戶層的緩存數(shù)據(jù)中進(jìn)行查找:如果找到了相應(yīng)數(shù)據(jù),則停止查找,返回查詢結(jié)果;如果沒有在用戶層緩存中找到查詢結(jié)果,則訪問模型查詢層;

    · ElasticQM 查詢層會根據(jù)容量可擴展區(qū)塊鏈模型的全局查詢優(yōu)化算法找到查找到數(shù)據(jù)所在區(qū)塊;

    · ElasticQM 的存儲層則是可擴展區(qū)塊鏈的基于ElasticChain 的區(qū)塊存儲方式,實現(xiàn)了區(qū)塊鏈數(shù)據(jù)的存儲可擴展性;

    · 最后,ElasticQM 在數(shù)據(jù)層提出了基于B-M tree 的區(qū)塊數(shù)據(jù)存儲方式,提高了區(qū)塊鏈塊內(nèi)查找效率.

    在ElasticQM 模型中,區(qū)塊鏈系統(tǒng)既實現(xiàn)了存儲容量的可擴展性,又在不影響區(qū)塊鏈去中心化特性和安全性的前提下,實現(xiàn)了區(qū)塊鏈數(shù)據(jù)的全局和局部的快速查詢.

    Fig.3 Structure of ElasticQM modle圖3 ElasticQM 模型架構(gòu)

    4 ElasticQM 查詢模型設(shè)計細(xì)節(jié)

    用戶通過ElasticQM 查詢模型4 層模塊的處理,快速得到查詢結(jié)果.

    · 首先,在ElasticQM 查詢層中,用戶在執(zhí)行查詢操作后,ElasticQM 會與區(qū)塊鏈數(shù)據(jù)實時同步,并經(jīng)過數(shù)據(jù)驗證緩存在支持SQL 查詢的數(shù)據(jù)庫中,第4.1 節(jié)將具體描述數(shù)據(jù)查詢過程;

    · 然后,在ElasticQM 查詢層中,結(jié)合P2P 網(wǎng)絡(luò)超級節(jié)點查找技術(shù),提出了容量可擴展區(qū)塊鏈模型的全局查詢優(yōu)化算法.在算法中,將區(qū)塊鏈節(jié)點分為了查詢超級節(jié)點、查詢?nèi)~子節(jié)點和驗證節(jié)點,葉子節(jié)點在查詢數(shù)據(jù)時會優(yōu)先訪問查詢超級節(jié)點,并將返回數(shù)據(jù)進(jìn)行區(qū)塊安全檢驗和數(shù)據(jù)未被篡改檢驗.模型中的驗證節(jié)點實時記錄節(jié)點的穩(wěn)定性,來確定是否可以作為超級查詢節(jié)點.查詢操作詳情可以在第4.2 節(jié)看到;

    · 其次,在ElasticQM 存儲層中,基本采用了文獻(xiàn)[11]中ElasticChain 模型的數(shù)據(jù)存儲方法,實現(xiàn)了區(qū)塊鏈的容量可擴展存儲.但在ElasticChain 模型的節(jié)點可靠性驗證部分進(jìn)行了改進(jìn).模型中,用戶節(jié)點不再存儲保存著分片存儲路徑的P 鏈,減少了ElasticChain 模型的存儲空間,存儲過程在第4.3 節(jié)詳細(xì)描述;

    · 最后,在ElasticQM 數(shù)據(jù)層中,為了能高效查詢區(qū)塊鏈數(shù)據(jù)中一個區(qū)塊內(nèi)的某一條數(shù)據(jù),我們將區(qū)塊里的數(shù)據(jù)保存在了B-M tree 中,提高了每個區(qū)塊內(nèi)的局部查詢速度.相關(guān)存儲過程在第4.4 節(jié)描述.

    4.1 用戶層

    在ElasticQM用戶層中,當(dāng)一個節(jié)點發(fā)起查詢請求后,會首先訪問ElasticQM用戶層緩存數(shù)據(jù):如果節(jié)點找到相應(yīng)數(shù)據(jù),則停止查找,返回查詢結(jié)果;如果節(jié)點沒有在用戶層中找到查詢結(jié)果,則訪問模型ElasticQM 查詢層進(jìn)行查找操作.

    因此,ElasticQM 在用戶層中設(shè)計了數(shù)據(jù)同步、安全檢測、數(shù)據(jù)處理和數(shù)據(jù)緩存這4 個模塊.數(shù)據(jù)緩存模塊的作用是:當(dāng)用戶層在每個節(jié)點成功完成一次查詢之后,將查詢結(jié)果緩存在用戶層緩存模塊中.用戶層緩存模塊是一個持SQL 查詢的數(shù)據(jù)庫,因此在下一次查詢相同數(shù)據(jù)時,ElasticQM 就可以在SQL 數(shù)據(jù)庫中進(jìn)行查找,增加了查詢速度.但是,區(qū)塊鏈數(shù)據(jù)每時每刻都在不斷地更新和變化,這就需要緩存模塊的數(shù)據(jù)也隨這不斷更新.用戶層中的數(shù)據(jù)同步模塊就會在每經(jīng)過一個相同的時間段,對數(shù)據(jù)緩存模塊中的數(shù)據(jù)與區(qū)塊鏈中數(shù)據(jù)進(jìn)行實時的同步和更新.在數(shù)據(jù)更新過程中,用戶層的安全檢查模塊會對新增數(shù)據(jù)進(jìn)行安全檢驗,保證數(shù)據(jù)的真實性.通過安全檢測模塊的數(shù)據(jù),才能被保存在數(shù)據(jù)緩存模塊中.而數(shù)據(jù)處理模塊則是在用戶層經(jīng)過數(shù)據(jù)同步和數(shù)據(jù)安全檢測后,將區(qū)塊鏈數(shù)據(jù)處理成可以保存在SQL 數(shù)據(jù)庫中的形式.例如在比特幣交易系統(tǒng)中,將進(jìn)行比特幣交易的買方地址、賣方地址和交易數(shù)量以表格的形式分別存入數(shù)據(jù)緩存模塊,加快下次查找速度.

    4.2 查詢層

    ElasticQM 的查詢層模塊接收模型用戶層發(fā)送的查詢請求,再根據(jù)查詢層中的查詢算法,在模型的存儲層快速找到相應(yīng)的數(shù)據(jù)返回給用戶層.在ElasticQM 查詢層中,我們提出了基于容量可擴展區(qū)塊鏈模型的全局查詢優(yōu)化算法.該算法結(jié)合了P2P 網(wǎng)絡(luò)中基于Super-peer 的分布式拓?fù)浣Y(jié)構(gòu),將可擴展區(qū)塊鏈模型中的節(jié)點分為了查詢超級節(jié)點、查詢?nèi)~子節(jié)點和查詢驗證節(jié)點,查詢層結(jié)構(gòu)如圖4 所示.

    Fig.4 Architecture of query layer in ElasticQM圖4 ElasticQM 查詢層架構(gòu)

    模型中,查詢超級節(jié)點上存儲了系統(tǒng)中相鄰葉子結(jié)點的信息和超級節(jié)點間的路由信息.當(dāng)進(jìn)行查詢操作時,發(fā)現(xiàn)算法僅在查詢超級結(jié)點之間轉(zhuǎn)發(fā),超級結(jié)點再將查詢請求轉(zhuǎn)發(fā)給適當(dāng)?shù)娜~子結(jié)點.模型中,查詢?nèi)~子節(jié)點至少保存著區(qū)塊鏈每個區(qū)塊的區(qū)塊頭數(shù)據(jù),來驗證收到的查詢數(shù)據(jù)是否被篡改,這個與比特幣錢包中的輕量級錢包相似.同時,查詢?nèi)~子節(jié)點保存著相鄰查詢超級節(jié)點位置,在查詢數(shù)據(jù)時,如果本地沒有完整的區(qū)塊鏈數(shù)據(jù),則會優(yōu)先訪問網(wǎng)絡(luò)中查詢超級節(jié)點.每一個新加入?yún)^(qū)塊鏈系統(tǒng)的節(jié)點,都會先被視為查詢?nèi)~子節(jié)點.查詢驗證節(jié)點和區(qū)塊中每個查詢超級節(jié)點和活躍的查詢?nèi)~子節(jié)點相連,實時記錄相連節(jié)點的可靠性.

    查詢驗證節(jié)點會根據(jù)記錄的查詢超級節(jié)點是否出現(xiàn)惡意篡改區(qū)塊鏈數(shù)據(jù)來判斷超級節(jié)點的安全性,根據(jù)記錄的查詢超級節(jié)點在線時間和工作量得出超級節(jié)點的穩(wěn)定性,根據(jù)記錄的查詢超級節(jié)點工作速度得到超級節(jié)點的處理能力.超級節(jié)點的工作量和工作速度通過查詢?nèi)~子節(jié)點實時向驗證節(jié)點反饋,查詢驗證節(jié)點會根據(jù)查詢超級節(jié)點的安全性、穩(wěn)定性和處理能力決定其是否繼續(xù)作為查詢超級節(jié)點.同時,查詢驗證節(jié)點還會實時檢查整個區(qū)塊鏈數(shù)據(jù),對于在區(qū)塊鏈上操作較多的活躍的查詢?nèi)~子節(jié)點,驗證節(jié)點也會記錄其節(jié)點的可靠性,作為查詢超級的候補節(jié)點.

    ElasticQM 查詢層采用了容量可擴展區(qū)塊鏈模型的全局查詢優(yōu)化算法,如圖5 所示.當(dāng)一個節(jié)點收到查詢請求時,節(jié)點首先判斷自身是否為查詢超級節(jié)點:如果該節(jié)點不為查詢超級節(jié)點,則會訪問距離最近的查詢超級節(jié)點,然后,該超級節(jié)點根據(jù)本地保存路由信息,找到接近查找目標(biāo)的超級節(jié)點;如果該節(jié)點為查詢超級節(jié)點,則直接訪問本地路由信息,找到接近查找目標(biāo)的超級節(jié)點.接著,由這個接近查找目標(biāo)的超級節(jié)點找到與它相連的保存著需要查找的數(shù)據(jù)的葉子節(jié)點,將查詢結(jié)果同查詢結(jié)果所在的區(qū)塊和與之相連的其他區(qū)塊的區(qū)塊頭作為最終查詢結(jié)果.最后,將最終查詢結(jié)果按查找時的相同路徑返回給發(fā)送查詢請求的節(jié)點.當(dāng)最初送查詢請求的節(jié)點收到了查詢數(shù)據(jù)后,首先要通過本地保存的區(qū)塊鏈的區(qū)塊頭數(shù)據(jù)與返回數(shù)據(jù)做對比,檢驗查詢結(jié)果所在的區(qū)塊鏈沒有在查詢過程中被篡改過.然后,查詢發(fā)起節(jié)點通過對查詢結(jié)果的哈希值與查詢結(jié)果所在區(qū)塊的區(qū)塊頭哈希值進(jìn)行校驗,檢驗查詢結(jié)果是在其區(qū)塊中的真實數(shù)據(jù),未被惡意篡改.查詢發(fā)起節(jié)點會將檢驗結(jié)果返回給驗證節(jié)點,使驗證節(jié)點能夠?qū)崟r地監(jiān)督查詢路徑上的超級節(jié)點和葉子節(jié)點的可靠性程度.如果出現(xiàn)某一節(jié)點惡意篡改數(shù)據(jù)的情況,驗證節(jié)點則會減少該節(jié)點的可靠性值;如果數(shù)據(jù)查詢結(jié)果正常,則增加路徑上所有節(jié)點的可靠性值.可靠值低的節(jié)點將不能繼續(xù)作為查找超級節(jié)點,而可靠性較高的葉子節(jié)點可以成為新的查詢超級節(jié)點.

    Fig.5 Global query optimization algorithm for query layer in ElasticQM圖5 ElasticQM 查詢層的全局查詢優(yōu)化算法

    容量可擴展區(qū)塊鏈模型的全局查詢優(yōu)化算法的具體過程見算法1.

    算法1.容量可擴展區(qū)塊鏈模型的全局查詢優(yōu)化算法.

    輸入:發(fā)起查詢節(jié)點A,查詢條件:Oi,Ni或Ri;

    輸出:查詢結(jié)果,交易集合T.

    ElasticQM 的查詢層模塊中,查詢超級節(jié)點只有在區(qū)塊鏈系統(tǒng)中發(fā)起查詢操作請求時,才會被優(yōu)先訪問.查詢層的超級節(jié)點在區(qū)塊鏈數(shù)據(jù)存儲時沒有任何優(yōu)先級,與網(wǎng)絡(luò)中其他節(jié)點相同.因此,查詢層中的超級節(jié)點不會影響整個可擴展區(qū)塊鏈系統(tǒng)的安全性和去中心化的特征.

    在算法1 的步驟8 中,由于ElasticQM 模型中一些節(jié)點沒有保存著一條完整的區(qū)塊鏈數(shù)據(jù),因此節(jié)點需要在訪問完整的區(qū)塊鏈數(shù)據(jù)后,才能驗證查詢結(jié)果的安全性.不在節(jié)點內(nèi)存儲的區(qū)塊鏈數(shù)據(jù),將由模型中其他節(jié)點(查詢超級節(jié)點、查詢?nèi)~子節(jié)點和查詢驗證節(jié)點)共同恢復(fù)并驗證.ElasticQM 的查詢層采用全局查詢優(yōu)化算法后,避免了目前ElasticChain 模型查詢區(qū)塊數(shù)據(jù)時采用泛洪方法在系統(tǒng)中盲目查找的過程,減少了數(shù)據(jù)查找對區(qū)塊鏈網(wǎng)絡(luò)帶來的巨大處理壓力,并有效地減少了查詢所需時間,增加了查詢效率.

    ElasticQM 在查詢層采用全局查詢優(yōu)化算法后,同樣可以保證區(qū)塊鏈系統(tǒng)對數(shù)據(jù)的一致性要求.當(dāng)模型中的超級節(jié)點將本地的路由信息惡意修改或丟失,附近的葉子節(jié)點將不能訪問這個超級節(jié)點或超級節(jié)點返回錯誤路徑.在這種情況下,葉子節(jié)點會訪問附近其他超級節(jié)點進(jìn)行數(shù)據(jù)查詢.如果系統(tǒng)中存儲節(jié)點將本地的數(shù)據(jù)丟失或篡改,在查詢發(fā)起節(jié)點收到查詢結(jié)果后,會根據(jù)本地存儲的區(qū)塊鏈哈希頭的數(shù)據(jù),對查詢結(jié)果的哈希值進(jìn)行驗證.如果發(fā)起節(jié)點發(fā)現(xiàn)數(shù)據(jù)錯誤或不完整的情況,將會把驗證信息發(fā)個查詢超級節(jié)點,超級節(jié)點確認(rèn)后,將惡意的存儲節(jié)點從路由表中刪除.因此,節(jié)點在ElasticQM 在查詢層中可以達(dá)到共識.

    4.3 存儲層

    ElasticQM 的存儲層響應(yīng)查詢層的查詢請求,并發(fā)送請求到數(shù)據(jù)層進(jìn)行數(shù)據(jù)查詢.在ElasticQM 存儲層中,基本采用了文獻(xiàn)[11]中ElasticChain 模型的數(shù)據(jù)存儲方法,實現(xiàn)了區(qū)塊鏈的容量可擴展存儲.ElasticQM 的存儲層主要包括了數(shù)據(jù)分片、節(jié)點驗證和分片存儲這3 個部分.在數(shù)據(jù)數(shù)據(jù)分片和分片存儲部分,ElasticQM 的存儲層采用了和ElasticChain 模型相同的算法,得到分片的方法、每個分片的大小和分片的副本數(shù).但存儲層在節(jié)點可靠性驗證部分對ElasticChain 模型進(jìn)行了改進(jìn):在ElasticQM 存儲層中的用戶節(jié)點完成每次數(shù)據(jù)分片存儲后,不再存儲P 鏈來記錄分片的存儲位置.其他節(jié)點的可靠性驗證過程都與ElasticChain 模型相同.

    ElasticChain 模型中,用戶節(jié)點保存P 鏈數(shù)據(jù)是為了快速查詢數(shù)據(jù),但是P 鏈占據(jù)了大量的存儲空間.經(jīng)過ElasticQM 模型的改進(jìn),在區(qū)塊鏈上的查詢操作交給了模型查詢層完成,因此減少了區(qū)塊鏈模型的存儲空間,進(jìn)一步增加了區(qū)塊鏈的存儲容量可擴展性.

    4.4 數(shù)據(jù)層

    目前,區(qū)塊鏈數(shù)據(jù)在每個塊中以梅克爾樹的形式存儲.梅克爾樹的特點是一個數(shù)據(jù)利用其生成的哈希值,可以快速地驗證是否存在于區(qū)塊鏈中.當(dāng)用戶想要訪問區(qū)塊鏈中的一條具體數(shù)據(jù)信息時,對于一個完全節(jié)點就需要遍歷區(qū)塊內(nèi)利用梅克爾樹存儲的全部數(shù)據(jù).但是隨著區(qū)塊鏈應(yīng)用的廣泛普及,區(qū)塊鏈中保存的數(shù)據(jù)量也會急劇增加,在一條完整的區(qū)塊鏈上進(jìn)行數(shù)據(jù)查詢,效率隨之越來越慢.因此,本節(jié)提出了基于B-M 樹的區(qū)塊鏈存儲結(jié)構(gòu),既實現(xiàn)了梅克爾樹的特點(一個節(jié)點可以在不下載整個塊的情況下,驗證區(qū)塊中是否包含某筆交易),又提高了在一條完整區(qū)塊鏈上的數(shù)據(jù)查詢效率,并使區(qū)塊鏈支持?jǐn)?shù)據(jù)范圍查詢.

    基于B-M 樹的區(qū)塊鏈存儲結(jié)構(gòu)結(jié)合了平衡二叉樹和梅克爾樹的的各自特點,其節(jié)點的數(shù)據(jù)結(jié)構(gòu)如圖6 所示.一個B-M 樹的節(jié)點包括了數(shù)據(jù)序列化后的哈希值或合并后的哈希值(hash)、其包含所有葉子節(jié)點記錄發(fā)起者地址的最大值(max)和最小值(min)、該位置在平衡二叉樹映射節(jié)點地址(K)和指向葉子節(jié)點的左指針(L1)與右指針(R1).

    Fig.6 Structure of B-M tree圖6 B-M 樹數(shù)據(jù)結(jié)構(gòu)

    在B-M 樹建立過程中,首先,系統(tǒng)確認(rèn)在一個區(qū)塊產(chǎn)生的固定時間里寫入?yún)^(qū)塊的數(shù)據(jù);然后,根據(jù)每個用戶地址數(shù)值的大小,建立起平衡二叉樹,保證樹中每個節(jié)點左右兩個子樹的高度差的絕對值不超過1;最后,從樹的底部開始,逐層地將這個平衡二叉樹的葉子節(jié)點的哈希值兩兩進(jìn)行合并,組成新的哈希值,并同時保存著所有合并的記錄發(fā)起者用戶地址的最大值和最小值、該位置在平衡二叉樹映射節(jié)點地址和指向葉子節(jié)點的左指針與右指針.模型會不斷重復(fù)這個過程,直到合并成一個哈希值,并將其保存在區(qū)塊頭.在哈希值兩兩合并過程中,從平衡二叉樹的底部開始,左葉子節(jié)點和其父節(jié)點先做一次合并,然后將得到的合并哈希值與右葉子節(jié)點再次合并,得到父節(jié)點和左右兩個葉子節(jié)點的合并在一起的哈希值,直到合并成一個哈希值.這樣,B-M 樹的存儲結(jié)構(gòu)就被建立起來,B-M 樹詳細(xì)的建立算法見算法2.

    算法2.B-M 樹建立算法.

    輸入:一串交易數(shù)據(jù)的數(shù)組;

    輸出:B-M 樹存儲模型.

    同時,我們通過舉例具體闡述B-M 樹的建立過程.當(dāng)記錄發(fā)起者的用戶地址為4,7,8,10,14,20,25,30,40 時,B-M 樹的建立過程如圖7 所示.

    Fig.7 Establishment process of B-M tree圖7 B-M 樹建立過程

    當(dāng)某節(jié)點發(fā)起一個范圍查詢時,首先,如果這個節(jié)點是完全節(jié)點,則在本地查詢;如果不是完全節(jié)點,則連接一個完全節(jié)點,在這個完全節(jié)點中進(jìn)行查詢.在完全節(jié)點中查詢數(shù)據(jù)時,首先從新區(qū)塊到舊區(qū)塊的順序遍歷每個區(qū)塊的區(qū)塊頭中B-M 樹的樹根,根據(jù)B-M 樹根中所有葉子節(jié)點的記錄發(fā)起者地址最大值和最小值,判斷要查詢數(shù)據(jù)是否存在于這個區(qū)塊中:如果不在樹根的最大值和最小值范圍內(nèi),則校驗下一個區(qū)塊;如果在范圍內(nèi),則根據(jù)B-M 樹中保存的平衡二叉樹映射節(jié)點地址K進(jìn)行基于平衡二叉樹查找算法的搜索,直至找到相關(guān)數(shù)據(jù),將結(jié)果返回給發(fā)起查找節(jié)點.如果搜索完整個B-M 樹還沒有找到所查找數(shù)據(jù),則以相同方法搜索下一個區(qū)塊.B-M 樹查找算法見算法3.例如在圖7 的B-M 樹中,如果查找記錄發(fā)起者地址為8 的數(shù)據(jù),首先從B-M 樹根節(jié)點處判斷其葉子節(jié)點包括記錄的發(fā)起者地址范圍為4~40,地址8 在其范圍內(nèi),對這個B-M 樹進(jìn)行查找操作.在B-M 樹內(nèi)查找時,首先訪問根節(jié)點保存的K值為20,大于8,所以向這個B-M 樹的左葉子節(jié)點進(jìn)行搜索.當(dāng)訪問到K值為10 的節(jié)點,地址值仍然大于8,所以繼續(xù)范圍左葉子節(jié)點,到K值為7 的節(jié)點.因為該節(jié)點K值小于所搜索地址,因此B-M 樹繼續(xù)查找該節(jié)點的右葉子節(jié)點,并訪問到了記錄發(fā)起者地址為8 的數(shù)據(jù).最后,將查找結(jié)果返回給查找節(jié)點.當(dāng)一個節(jié)點發(fā)起交易驗證時,驗證過程同目前區(qū)塊鏈系統(tǒng)相似.當(dāng)一個節(jié)點驗證區(qū)塊鏈中是否包含某筆交易時,節(jié)點利用Merkle 樹特點,只需要一個交易哈希,一個Merkle 樹根哈希和一個Merkle 路徑,在不下載整個塊的情況下進(jìn)行驗證.

    算法3.B-M 樹查找算法.

    輸入:基于B-M 樹的區(qū)塊鏈數(shù)據(jù),查詢條件:Oi;

    輸出:查詢結(jié)果,交易集合T.

    基于B-M 樹存儲結(jié)構(gòu)的區(qū)塊鏈模型,既保證了數(shù)據(jù)在區(qū)塊中可快速驗證,又充分利用二叉樹特點保證了查詢的高效性.基于B-M 樹模型與使用B+樹建立區(qū)塊內(nèi)數(shù)據(jù)索引的方法相比,省略了根據(jù)索引再查找數(shù)據(jù)的過程,因此具有更快的查詢速度.

    4.5 理論分析與討論

    本節(jié)總結(jié)ElasticQM 查詢模型中查詢層所提出的容量可擴展區(qū)塊鏈模型的全局查詢優(yōu)化算法、數(shù)據(jù)層所提出的B-M 樹建立算法和B-M 樹查找算法的時間代價和空間代價.對于區(qū)塊鏈容量可擴展模型ElasticChain,進(jìn)行查詢操作時,最壞的情況是不能根據(jù)P 鏈中信息找到存儲分片數(shù)據(jù)的節(jié)點(節(jié)點故障),這樣,模型需要采用泛洪搜索算法,在區(qū)塊鏈網(wǎng)絡(luò)中進(jìn)行搜索,這樣,搜索的時間復(fù)雜度為O(np),np為系統(tǒng)中的節(jié)點數(shù).而在ElasticQM 容量可擴展區(qū)塊鏈模型的全局查詢優(yōu)化算法中,查詢?nèi)~子節(jié)點通過向查詢超級節(jié)點請求,再由超級節(jié)點間進(jìn)行查詢,這樣,在查詢層ElasticQM 模型的查詢時間復(fù)雜度為O(nsp),nsp為系統(tǒng)中的查詢超級節(jié)點數(shù).在ElasticQM 數(shù)據(jù)層,基于B-M 樹的查找算法時間復(fù)雜度接近于平衡二叉樹為O(lognt),nt為一個區(qū)塊中的交易總數(shù).而在 ElasticChain 模型中,在區(qū)塊內(nèi)進(jìn)行查詢需要遍歷區(qū)塊完整數(shù)據(jù),查詢時間復(fù)雜度為O(nt).因此,ElasticQM 查詢模型整體查詢時間復(fù)雜度為O(nsp×lognt),ElasticChain 模型整體查詢時間復(fù)雜度為O(np×nt).在空間代價方面,ElasticQM 模型在查詢層的全局優(yōu)化算法與ElasticChain 模型相同,都是基于副本分片策略進(jìn)行存儲.而在ElasticQM 模型數(shù)據(jù)層,與區(qū)塊鏈和ElasticChain 模型相比增加了指針和葉子節(jié)點范圍等數(shù)據(jù),但在一個區(qū)塊中.兩個模型空間復(fù)雜度同為O(nt),nt為一個區(qū)塊中的交易總數(shù).

    5 實驗與分析

    5.1 實驗環(huán)境

    實驗的開發(fā)環(huán)境為Intel Core i5-6500 3.20GHz CPU 和16GB 內(nèi)存的PC 機上.利用VMware Workstation 12.5.2建立了4,8,12 和16 個節(jié)點.每個節(jié)點為內(nèi)存1GB 硬盤大小為60GB 的ubuntu16.04 系統(tǒng).借助IBM 開發(fā)的開源的Hyperledge fabric v0.6 版本,構(gòu)建起ElasticChain 區(qū)塊鏈的容量可擴展模型.

    在實驗中,我們在ElasticQM 模型、基于ElasticChain 容量可擴展區(qū)塊鏈模型和基于fabric 的區(qū)塊鏈系統(tǒng)上分別進(jìn)行查詢操作.實驗循環(huán)運行調(diào)用chaincode_example02.go 交易代碼,每完成一次交易,會生成大小為5.39KB 的廣播消息和具有唯一標(biāo)識的哈希值.在查詢一條交易或驗證交易安全性時,都可以根據(jù)生成的唯一的哈希值進(jìn)行查詢驗證操作.當(dāng)3 個模型分別產(chǎn)生127MB,635MB 和1270MB 數(shù)據(jù)時,停止調(diào)用交易代碼.

    在基于ElasticChain 區(qū)塊鏈模型中,我們將數(shù)據(jù)進(jìn)行基于副本分配策略分片處理,在分片時,我們設(shè)置了每64MB 數(shù)據(jù)作為一個分片,每個分片保存的副本數(shù)根據(jù)分配策略計算得出,每個分片的最小副本數(shù)為2 份.并且在ElasticQM 的存儲層,也采用相同的副本分配方法.同時,實驗分析了3 種區(qū)塊鏈模型在不同節(jié)點數(shù)下(當(dāng)在網(wǎng)絡(luò)中共有4 個節(jié)點、8 個節(jié)點、12 個節(jié)點和16 個節(jié)點時)查詢速度的快慢.當(dāng)網(wǎng)絡(luò)中節(jié)點數(shù)為4,8,12 和16 時,在ElasticQM 查詢層實驗設(shè)置的查詢超級節(jié)點數(shù)分別為1 個~4 個,其余節(jié)點為查詢?nèi)~子節(jié)點,每個查詢超級節(jié)點分別鏈接著3 個不重復(fù)的葉子節(jié)點,并且實驗在查詢?nèi)~子節(jié)點中隨機選取了2 個作為查詢驗證節(jié)點.

    5.2 評估與結(jié)果分析

    首先,實驗分析在可擴展模型上,基于ElasticQM 查詢方法的查詢效率.

    實驗的查詢目標(biāo)是在容量大小為127MB,635MB 和1270MB 的區(qū)塊鏈數(shù)據(jù)中,隨機抽取90 條交易記錄和10 條惡意編造的交易記錄;然后,在基于ElasticQM 和基于ElasticChain 區(qū)塊鏈模型中,對這100 條記錄進(jìn)行查找操作.兩種模型在4 個、8 個、12 個和16 個節(jié)點時在總?cè)萘繛?27MB 區(qū)塊鏈數(shù)據(jù)中,平均查找一條交易記錄所需時間如圖8(a)所示.基于ElasticQM 和基于ElasticChain 模型在總?cè)萘繛?35MB 和1270MB 區(qū)塊鏈數(shù)據(jù)中,平均查找一條交易記錄所需時間如圖8(b)和圖8(c)所示.

    Fig.8 Queries speed for ElasticQM and ElasticChain model圖8 ElasticQM 和ElasticChain 模型的查詢速度

    通過分析圖8 的實驗結(jié)果,可以得到以下結(jié)論.

    (1)在相同的區(qū)塊鏈數(shù)據(jù)中進(jìn)行查詢操作時,ElasticQM 模型與ElasticChain 模型相比,當(dāng)網(wǎng)絡(luò)中節(jié)點數(shù)較少時,ElasticChain 模型的平均查詢一條記錄的速度比ElasticQM 模型略快;而當(dāng)網(wǎng)絡(luò)中節(jié)點數(shù)較增加時,ElasticChain 模型的平均查詢一條記錄的所需時間明顯增加,而ElasticQM 模型所用的查詢時間增量較小;并且當(dāng)節(jié)點數(shù)量越多時,ElasticQM 的查詢速度優(yōu)于 ElasticChain 模型越明顯.這是由于ElasticChain 模型將區(qū)塊鏈數(shù)據(jù)分片存儲后,數(shù)據(jù)查詢算法會首先遍歷P 鏈數(shù)據(jù),而當(dāng)P 鏈中存儲的節(jié)點存在故障,模型就會采用基于P2P 網(wǎng)路中的泛洪算法,因此查詢效率較低.而ElasticQM 模型在查詢層采用了基于超級節(jié)點的查詢算法,網(wǎng)絡(luò)中當(dāng)節(jié)點數(shù)增加后,ElasticQM 在查詢時仍然可以通過超級節(jié)點中保存的路由信息快速找到相應(yīng)的數(shù)據(jù);

    (2)通過對圖8(a)~圖8(c)進(jìn)行對比可以看出:如果網(wǎng)絡(luò)中節(jié)點數(shù)相同,當(dāng)區(qū)塊鏈數(shù)據(jù)增加后,ElasticQM 模型和ElasticChain 模型在區(qū)塊鏈上數(shù)據(jù)查詢時間隨著查找范圍的擴大成比例地增加.但由于兩種模型采用副本分配策略將數(shù)據(jù)分片處理后再存儲,查詢時間開銷主要包括了在區(qū)塊鏈中查找時間和訪問存儲節(jié)點和驗證節(jié)點的時間.隨著區(qū)塊鏈數(shù)據(jù)增加,ElasticQM 模型和ElasticChain 模型節(jié)點間的通訊次數(shù)增加緩慢.因此,兩個模型與基于fabric 的區(qū)塊鏈模型相比,查詢時間增速較慢;

    (3)隨著區(qū)塊鏈數(shù)據(jù)的增加,網(wǎng)絡(luò)中相同節(jié)點數(shù)時,ElasticQM 模型在區(qū)塊鏈數(shù)據(jù)上進(jìn)行查找的時間增長的速率比ElasticChain 模型的查找時間增長較慢.因為在ElasticQM 模型的每個區(qū)塊中,數(shù)據(jù)以B-M樹的結(jié)構(gòu)進(jìn)行存儲,其在塊內(nèi)的查詢效率接近平和二叉樹查找效率.

    然后,實驗分析ElasticQM 模型所占用存儲空間的大小.

    在實驗中,在ElasticQM 模型、基于ElasticChain 容量可擴展區(qū)塊鏈模型和基于fabric 的區(qū)塊鏈系統(tǒng)上分別存儲比特幣錢包中前一個、五個和十個區(qū)塊數(shù)據(jù)(數(shù)據(jù)大小分別為127MB,635MB 和1270MB).ElasticQM 模型的存儲層和ElasticChain 模型的副本分片策略與查詢實驗相同.當(dāng)網(wǎng)絡(luò)中節(jié)點數(shù)為4,8,12 和16 時(ElasticQM查詢層查詢超級節(jié)點、查詢?nèi)~子節(jié)點和查詢驗證節(jié)點的設(shè)置也與上述查詢實驗相同),ElasticQM 模型、ElasticChain 模型和基于fabric 的區(qū)塊鏈系統(tǒng)中所有節(jié)點存儲數(shù)據(jù)的總量如圖9 所示.

    Fig.9 Storage space occupied by ElasticQM,ElasticChain and fabric-based blockchain model圖9 ElasticQM,ElasticChain 和基于fabric 區(qū)塊鏈模型占用的存儲空間總量

    通過分析圖9 的實驗結(jié)果,可以得到以下結(jié)論.

    (1)ElasticQM 和ElasticChain 模型的所有節(jié)點儲存總量與fabric 區(qū)塊鏈相比,在節(jié)點數(shù)較少的情況下相差不大;但當(dāng)節(jié)點數(shù)增多時,ElasticQM 和ElasticChain 模型所占用的存儲空間與fabric 區(qū)塊鏈系統(tǒng)相比明顯減少.這是由于在實驗中fabric 區(qū)塊鏈系統(tǒng)節(jié)點都是完全節(jié)點,隨節(jié)點數(shù)的增加,系統(tǒng)存儲開銷也正比例地增加;而ElasticQM 和ElasticChain 模型采用了副本分片策略,在保證安全的情況下將數(shù)據(jù)進(jìn)行了分片處理并保存,實現(xiàn)了區(qū)塊鏈數(shù)據(jù)的存儲容量的可擴展性;

    (2)當(dāng)網(wǎng)絡(luò)中的區(qū)塊鏈數(shù)據(jù)量較小時,ElasticQM 和ElasticChain 模型儲存總量與fabric 區(qū)塊鏈相比相差不大.這是由于ElasticChain 模型在存儲交易數(shù)據(jù)的同時,在P 鏈中保存了存儲節(jié)點位置信息,在POR 鏈中保存了儲存節(jié)點的可靠性評價信息.而ElasticQM 模型在查詢層查詢超級節(jié)點中保存了超級節(jié)點間的路由信息,查詢驗證節(jié)點存儲了各個節(jié)點的查詢穩(wěn)定性,在數(shù)據(jù)層每個區(qū)塊中數(shù)據(jù)以B-M 樹的結(jié)構(gòu)進(jìn)行存儲,B-M 樹中記錄著發(fā)起者地址的最大值和最小值、該位置在平衡二叉樹映射節(jié)點地址和指向葉子節(jié)點的左指針與右指針,并且在用戶層增加了數(shù)據(jù)緩存模塊.這些ElasticQM 和ElasticChain 模型比目前區(qū)塊鏈系統(tǒng)增加的數(shù)據(jù)占據(jù)著一定比例的存儲空間.但隨著區(qū)塊鏈中區(qū)塊的不斷增加,基于實驗中的副本分配策略就會大量減少ElasticQM 和ElasticChain 模型中的存儲總量.

    (3)ElasticQM 模型占用的存儲空間略少于ElasticChain 模型,但兩個模型占用的存儲空間的差距不大;并且當(dāng)網(wǎng)絡(luò)中的區(qū)塊鏈數(shù)據(jù)不斷增加時,ElasticQM 和ElasticChain 模型儲存總量的增量趨于平緩.

    6 總結(jié)與展望

    區(qū)塊鏈技術(shù)是目前計算機領(lǐng)域的研究熱點,隨著其廣泛應(yīng)用,對于區(qū)塊鏈存儲容量的可擴展有著越來越高的要求.基于ElasticChain 區(qū)塊鏈存儲容量可擴展模型,將一條完整的區(qū)塊鏈副本進(jìn)行分片處理,并將分片數(shù)據(jù)保存在一定比例的節(jié)點中,提升了區(qū)塊鏈的存儲容量.本文提出一種區(qū)塊鏈容量可擴展模型的高效查詢方法——ElasticQM,將數(shù)據(jù)保存在用戶層、查詢層、存儲層和數(shù)據(jù)層模塊中:在用戶層,模型將查詢結(jié)果緩存,加快再次查詢相同數(shù)據(jù)時的查詢速度;模型在查詢層采用容量可擴展區(qū)塊鏈模型的全局查詢優(yōu)化算法,增加了查詢超級節(jié)點、查詢驗證節(jié)點和查詢?nèi)~子節(jié)點這 3 種模型中的角色,提高了查詢效率;在存儲層,模型基于ElasticChain 區(qū)塊鏈存儲方法實現(xiàn)了區(qū)塊鏈的容量可擴展存儲;在數(shù)據(jù)層,ElasticQM 采用基于B-M 樹的區(qū)塊鏈存儲結(jié)構(gòu),并給出了B-M 樹的建立算法和基于B-M 樹的查找算法.通過在多節(jié)點不同數(shù)據(jù)量的區(qū)塊鏈中查詢的實驗表明,ElasticQM 所有節(jié)點占用存儲空間略小于ElasticChain 模型,但明顯小于目前區(qū)塊鏈模型,并且ElasticQM 的查詢效率明顯優(yōu)于ElasticChain 模型.

    在未來區(qū)塊鏈技術(shù)的應(yīng)用中,多鏈共存將是一個普遍現(xiàn)象.為了解決不同體系的區(qū)塊鏈中的代幣互轉(zhuǎn)的問題,就產(chǎn)生了對跨鏈操作的需求.目前,主流的跨鏈技術(shù)包括公證人機制、側(cè)鏈技術(shù)和中繼技術(shù)等.但在本文的模型中,尚未對可跨鏈的區(qū)塊鏈模型的高效查詢方法進(jìn)行研究.因此,在可以實現(xiàn)跨鏈操作的區(qū)塊鏈系統(tǒng)中進(jìn)行高效的數(shù)據(jù)查詢,將是未來區(qū)塊鏈技術(shù)的重要研究方向之一.

    猜你喜歡
    用戶模型系統(tǒng)
    一半模型
    Smartflower POP 一體式光伏系統(tǒng)
    WJ-700無人機系統(tǒng)
    ZC系列無人機遙感系統(tǒng)
    北京測繪(2020年12期)2020-12-29 01:33:58
    重要模型『一線三等角』
    重尾非線性自回歸模型自加權(quán)M-估計的漸近分布
    連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
    關(guān)注用戶
    商用汽車(2016年11期)2016-12-19 01:20:16
    3D打印中的模型分割與打包
    關(guān)注用戶
    商用汽車(2016年6期)2016-06-29 09:18:54
    www.熟女人妻精品国产| 女人爽到高潮嗷嗷叫在线视频| 国产免费一区二区三区四区乱码| 国产精品 欧美亚洲| 人妻久久中文字幕网| 午夜老司机福利片| 久久免费观看电影| 国产成人精品无人区| 纵有疾风起免费观看全集完整版| 纵有疾风起免费观看全集完整版| 欧美精品一区二区免费开放| 免费在线观看黄色视频的| 欧美黄色淫秽网站| 国产一区二区在线观看av| 亚洲av男天堂| 一级毛片电影观看| 啦啦啦在线免费观看视频4| 国产成人免费无遮挡视频| 黄色视频在线播放观看不卡| 久久久欧美国产精品| 美女大奶头黄色视频| 国产97色在线日韩免费| 精品高清国产在线一区| 久久久精品区二区三区| 蜜桃在线观看..| 一级,二级,三级黄色视频| 熟女少妇亚洲综合色aaa.| 国产精品久久久久成人av| av线在线观看网站| 女人久久www免费人成看片| 男人操女人黄网站| 淫妇啪啪啪对白视频 | 人人妻人人爽人人添夜夜欢视频| 丝袜人妻中文字幕| 亚洲avbb在线观看| 久久人人爽av亚洲精品天堂| 老司机亚洲免费影院| 精品亚洲成a人片在线观看| 女性生殖器流出的白浆| 精品熟女少妇八av免费久了| 美女福利国产在线| 狠狠精品人妻久久久久久综合| 亚洲成av片中文字幕在线观看| 欧美亚洲 丝袜 人妻 在线| 一级毛片电影观看| 亚洲精品第二区| 久久久精品免费免费高清| 大型av网站在线播放| 三级毛片av免费| 成人国产av品久久久| 男女无遮挡免费网站观看| 亚洲国产看品久久| 深夜精品福利| 日韩欧美免费精品| 大香蕉久久成人网| 爱豆传媒免费全集在线观看| 首页视频小说图片口味搜索| 成年av动漫网址| 精品视频人人做人人爽| 国产在线免费精品| 高清黄色对白视频在线免费看| 精品久久久久久电影网| 黄片播放在线免费| 午夜日韩欧美国产| 曰老女人黄片| 国产欧美日韩一区二区三区在线| 蜜桃国产av成人99| 每晚都被弄得嗷嗷叫到高潮| 欧美精品高潮呻吟av久久| 亚洲,欧美精品.| 天天添夜夜摸| 久久精品亚洲av国产电影网| 精品国产乱码久久久久久小说| 极品人妻少妇av视频| 夫妻午夜视频| 免费一级毛片在线播放高清视频 | 麻豆国产av国片精品| 一级片'在线观看视频| 日本av手机在线免费观看| 免费在线观看视频国产中文字幕亚洲 | 免费黄频网站在线观看国产| 蜜桃在线观看..| 中文字幕另类日韩欧美亚洲嫩草| 国产av又大| 日本一区二区免费在线视频| 国产精品影院久久| 搡老岳熟女国产| 宅男免费午夜| 国产欧美日韩精品亚洲av| 五月开心婷婷网| 久久人妻福利社区极品人妻图片| 一区在线观看完整版| 欧美另类亚洲清纯唯美| 91国产中文字幕| 日韩大码丰满熟妇| 爱豆传媒免费全集在线观看| 精品国内亚洲2022精品成人 | 法律面前人人平等表现在哪些方面 | 侵犯人妻中文字幕一二三四区| 日本av免费视频播放| 亚洲男人天堂网一区| 国产亚洲av高清不卡| 建设人人有责人人尽责人人享有的| 涩涩av久久男人的天堂| 18禁国产床啪视频网站| 久久久国产成人免费| 女人爽到高潮嗷嗷叫在线视频| av福利片在线| 久久中文看片网| 国产亚洲精品第一综合不卡| 国产91精品成人一区二区三区 | 欧美xxⅹ黑人| 亚洲第一欧美日韩一区二区三区 | 国产1区2区3区精品| 一进一出抽搐动态| 91av网站免费观看| 色精品久久人妻99蜜桃| 婷婷丁香在线五月| 又黄又粗又硬又大视频| 999久久久精品免费观看国产| 一区福利在线观看| 69av精品久久久久久 | 黑人操中国人逼视频| 精品人妻1区二区| 一个人免费在线观看的高清视频 | 精品亚洲成a人片在线观看| 国产有黄有色有爽视频| 一本大道久久a久久精品| 久久ye,这里只有精品| 日韩中文字幕视频在线看片| 国产97色在线日韩免费| e午夜精品久久久久久久| 亚洲av国产av综合av卡| 五月开心婷婷网| 国产野战对白在线观看| 日韩一区二区三区影片| 黄色毛片三级朝国网站| 成人影院久久| 爱豆传媒免费全集在线观看| 精品一区二区三区四区五区乱码| 久9热在线精品视频| 黄片大片在线免费观看| 精品免费久久久久久久清纯 | 日韩大码丰满熟妇| 欧美在线黄色| 中国国产av一级| 国产一卡二卡三卡精品| 999久久久国产精品视频| 中文字幕精品免费在线观看视频| 精品久久蜜臀av无| 成年动漫av网址| 黑人欧美特级aaaaaa片| 夜夜夜夜夜久久久久| 狂野欧美激情性xxxx| 狂野欧美激情性xxxx| 亚洲精品中文字幕一二三四区 | 国产精品熟女久久久久浪| 青草久久国产| 欧美日韩亚洲高清精品| 欧美黄色淫秽网站| 欧美精品人与动牲交sv欧美| 日韩制服丝袜自拍偷拍| 91精品三级在线观看| 国产极品粉嫩免费观看在线| 我要看黄色一级片免费的| 日韩 欧美 亚洲 中文字幕| 纵有疾风起免费观看全集完整版| 亚洲情色 制服丝袜| 亚洲精品中文字幕在线视频| 香蕉丝袜av| av又黄又爽大尺度在线免费看| 在线 av 中文字幕| 两个人免费观看高清视频| 视频在线观看一区二区三区| 国产99久久九九免费精品| 欧美亚洲日本最大视频资源| 俄罗斯特黄特色一大片| 婷婷丁香在线五月| 国产亚洲av高清不卡| 十八禁网站免费在线| 国产成人一区二区三区免费视频网站| 欧美国产精品va在线观看不卡| 青春草视频在线免费观看| 一级片免费观看大全| 国产高清videossex| 国产亚洲一区二区精品| 国产欧美亚洲国产| 日韩一卡2卡3卡4卡2021年| 热99国产精品久久久久久7| 久久精品熟女亚洲av麻豆精品| 日韩人妻精品一区2区三区| 久久午夜综合久久蜜桃| 每晚都被弄得嗷嗷叫到高潮| 天堂中文最新版在线下载| 久久久国产一区二区| 久久国产精品影院| 性少妇av在线| 国产一区二区三区av在线| 高清黄色对白视频在线免费看| 老汉色av国产亚洲站长工具| 中文字幕制服av| 国产极品粉嫩免费观看在线| 亚洲av电影在线进入| 亚洲精品粉嫩美女一区| 美女中出高潮动态图| 欧美另类亚洲清纯唯美| 夜夜夜夜夜久久久久| 国产精品偷伦视频观看了| 精品福利永久在线观看| 色94色欧美一区二区| 黄片小视频在线播放| 午夜福利乱码中文字幕| 欧美+亚洲+日韩+国产| 欧美日韩黄片免| 国产精品99久久99久久久不卡| 国产精品一区二区精品视频观看| 国产成人a∨麻豆精品| 亚洲综合色网址| 黄色视频,在线免费观看| 亚洲熟女毛片儿| 久久人人爽av亚洲精品天堂| 中文精品一卡2卡3卡4更新| 午夜老司机福利片| 久久久久久久久久久久大奶| 搡老乐熟女国产| 亚洲国产成人一精品久久久| 亚洲av日韩在线播放| 黑人欧美特级aaaaaa片| 国产亚洲精品第一综合不卡| 欧美精品一区二区免费开放| 免费在线观看视频国产中文字幕亚洲 | 久久人妻福利社区极品人妻图片| 中国国产av一级| 99久久人妻综合| 男女下面插进去视频免费观看| 国产片内射在线| 好男人电影高清在线观看| 亚洲一码二码三码区别大吗| 啦啦啦在线免费观看视频4| 在线观看人妻少妇| 一级,二级,三级黄色视频| 免费在线观看日本一区| 久久国产精品男人的天堂亚洲| 久久精品亚洲av国产电影网| 色老头精品视频在线观看| 99精品欧美一区二区三区四区| 久久这里只有精品19| 狂野欧美激情性bbbbbb| 女性生殖器流出的白浆| 免费久久久久久久精品成人欧美视频| 99久久人妻综合| 一级,二级,三级黄色视频| 91精品国产国语对白视频| av欧美777| 麻豆国产av国片精品| 国产在视频线精品| 99精品欧美一区二区三区四区| 十分钟在线观看高清视频www| 十分钟在线观看高清视频www| 国产色视频综合| 搡老乐熟女国产| 在线观看舔阴道视频| 久久久久久久大尺度免费视频| 亚洲av电影在线进入| 女人精品久久久久毛片| 久久国产亚洲av麻豆专区| 亚洲精品中文字幕在线视频| 亚洲精品粉嫩美女一区| 精品国产一区二区久久| 777久久人妻少妇嫩草av网站| 在线精品无人区一区二区三| 久9热在线精品视频| 欧美人与性动交α欧美软件| 欧美精品高潮呻吟av久久| 99国产综合亚洲精品| 日本av免费视频播放| 久久久久久久久免费视频了| 女人被躁到高潮嗷嗷叫费观| 国产av精品麻豆| 亚洲免费av在线视频| 男男h啪啪无遮挡| 日韩欧美国产一区二区入口| 精品熟女少妇八av免费久了| 激情视频va一区二区三区| 少妇裸体淫交视频免费看高清 | 女人被躁到高潮嗷嗷叫费观| 欧美成狂野欧美在线观看| www日本在线高清视频| 国产三级黄色录像| 91老司机精品| 国产不卡av网站在线观看| 夜夜夜夜夜久久久久| 久久久久久久大尺度免费视频| 1024视频免费在线观看| 免费在线观看视频国产中文字幕亚洲 | 少妇的丰满在线观看| 免费在线观看影片大全网站| 1024视频免费在线观看| 国产老妇伦熟女老妇高清| 国产男女超爽视频在线观看| 啦啦啦在线免费观看视频4| 国产91精品成人一区二区三区 | 一边摸一边抽搐一进一出视频| 日韩视频一区二区在线观看| 色播在线永久视频| 国产精品二区激情视频| 国产激情久久老熟女| 精品人妻一区二区三区麻豆| 人人妻人人澡人人看| 午夜两性在线视频| 天天操日日干夜夜撸| 9191精品国产免费久久| 五月开心婷婷网| 天堂8中文在线网| h视频一区二区三区| 免费不卡黄色视频| 国产高清视频在线播放一区 | 成年av动漫网址| 桃红色精品国产亚洲av| 曰老女人黄片| 欧美黄色淫秽网站| 亚洲欧美精品综合一区二区三区| 欧美黑人欧美精品刺激| 国产国语露脸激情在线看| 欧美精品啪啪一区二区三区 | 后天国语完整版免费观看| 亚洲专区字幕在线| 黄片小视频在线播放| 欧美黄色淫秽网站| 一区二区三区激情视频| 香蕉丝袜av| 久久综合国产亚洲精品| 天天躁狠狠躁夜夜躁狠狠躁| 又大又爽又粗| 精品高清国产在线一区| 午夜福利一区二区在线看| 国产麻豆69| 日韩一区二区三区影片| 国产精品自产拍在线观看55亚洲 | 满18在线观看网站| 淫妇啪啪啪对白视频 | 交换朋友夫妻互换小说| 亚洲 欧美一区二区三区| 亚洲第一av免费看| 国产97色在线日韩免费| 十八禁高潮呻吟视频| 99精品久久久久人妻精品| 超碰97精品在线观看| 男女边摸边吃奶| 成年人午夜在线观看视频| 免费观看av网站的网址| 老司机深夜福利视频在线观看 | 少妇 在线观看| 在线看a的网站| 美国免费a级毛片| 亚洲av日韩精品久久久久久密| 人人妻人人添人人爽欧美一区卜| 国产欧美日韩精品亚洲av| 天堂8中文在线网| 久久中文看片网| 国产人伦9x9x在线观看| 91麻豆精品激情在线观看国产 | 黄色视频不卡| 91精品伊人久久大香线蕉| 日本黄色日本黄色录像| 人人妻人人添人人爽欧美一区卜| 亚洲国产日韩一区二区| 看免费av毛片| 国产欧美亚洲国产| 啦啦啦视频在线资源免费观看| 欧美日本中文国产一区发布| av国产精品久久久久影院| 欧美黑人欧美精品刺激| 亚洲精品久久午夜乱码| www.av在线官网国产| 高潮久久久久久久久久久不卡| a级片在线免费高清观看视频| √禁漫天堂资源中文www| 午夜免费观看性视频| 亚洲欧洲日产国产| 日韩欧美一区二区三区在线观看 | 大型av网站在线播放| 中文字幕精品免费在线观看视频| 亚洲一码二码三码区别大吗| 亚洲精品一卡2卡三卡4卡5卡 | 又黄又粗又硬又大视频| 国产免费福利视频在线观看| 岛国在线观看网站| 母亲3免费完整高清在线观看| 午夜激情av网站| 男女下面插进去视频免费观看| 色婷婷久久久亚洲欧美| 国产成人精品久久二区二区91| 男人爽女人下面视频在线观看| 人成视频在线观看免费观看| 亚洲精品成人av观看孕妇| 男女边摸边吃奶| 欧美成人午夜精品| tocl精华| 18禁观看日本| 日本vs欧美在线观看视频| 国产野战对白在线观看| 91麻豆av在线| 国产免费av片在线观看野外av| 国产人伦9x9x在线观看| 中文字幕人妻丝袜一区二区| 啦啦啦中文免费视频观看日本| 午夜福利,免费看| 久久综合国产亚洲精品| 19禁男女啪啪无遮挡网站| 国产成人免费无遮挡视频| 91成年电影在线观看| 亚洲精品av麻豆狂野| 成人亚洲精品一区在线观看| 搡老熟女国产l中国老女人| 国产欧美亚洲国产| 成人18禁高潮啪啪吃奶动态图| 在线观看免费视频网站a站| 男女高潮啪啪啪动态图| 在线精品无人区一区二区三| 中文字幕高清在线视频| 最近中文字幕2019免费版| 国产精品久久久久成人av| 日本a在线网址| 777久久人妻少妇嫩草av网站| 久久久久国内视频| 婷婷色av中文字幕| 免费在线观看黄色视频的| av天堂在线播放| 少妇的丰满在线观看| 成年动漫av网址| 搡老乐熟女国产| 一二三四社区在线视频社区8| 久久 成人 亚洲| 90打野战视频偷拍视频| 亚洲va日本ⅴa欧美va伊人久久 | 久久精品亚洲熟妇少妇任你| 99国产精品一区二区三区| 精品国产一区二区三区久久久樱花| 国产免费一区二区三区四区乱码| 黄频高清免费视频| 欧美精品亚洲一区二区| 亚洲色图 男人天堂 中文字幕| 亚洲精品国产av蜜桃| 夜夜夜夜夜久久久久| 青春草视频在线免费观看| 国产片内射在线| www.999成人在线观看| 啦啦啦在线免费观看视频4| 大陆偷拍与自拍| 中文字幕精品免费在线观看视频| 麻豆av在线久日| 亚洲三区欧美一区| 三级毛片av免费| 亚洲成人免费av在线播放| 婷婷丁香在线五月| 人妻一区二区av| 国产1区2区3区精品| 精品国产乱码久久久久久男人| 下体分泌物呈黄色| 国产精品偷伦视频观看了| 18禁观看日本| 自拍欧美九色日韩亚洲蝌蚪91| 久久毛片免费看一区二区三区| 午夜免费鲁丝| 亚洲九九香蕉| 九色亚洲精品在线播放| 国产av又大| 亚洲av成人不卡在线观看播放网 | 高清视频免费观看一区二区| 真人做人爱边吃奶动态| 最近最新中文字幕大全免费视频| 丰满饥渴人妻一区二区三| 精品熟女少妇八av免费久了| bbb黄色大片| 中文字幕制服av| 这个男人来自地球电影免费观看| 国产精品久久久久久精品电影小说| 51午夜福利影视在线观看| 亚洲专区字幕在线| 久久人妻福利社区极品人妻图片| 国产成人精品久久二区二区免费| 国产精品九九99| 精品国内亚洲2022精品成人 | 欧美日韩亚洲国产一区二区在线观看 | 久久女婷五月综合色啪小说| 日日爽夜夜爽网站| 日本黄色日本黄色录像| 久久久久久久久免费视频了| 人妻一区二区av| 我的亚洲天堂| 中文字幕人妻丝袜一区二区| 国产成人av激情在线播放| 欧美黑人欧美精品刺激| 色视频在线一区二区三区| 宅男免费午夜| 正在播放国产对白刺激| 久久精品aⅴ一区二区三区四区| 亚洲第一欧美日韩一区二区三区 | 一二三四在线观看免费中文在| 中亚洲国语对白在线视频| 欧美日韩精品网址| a级毛片在线看网站| 美女国产高潮福利片在线看| 成年美女黄网站色视频大全免费| 在线观看舔阴道视频| 最近中文字幕2019免费版| 天天躁日日躁夜夜躁夜夜| 成人亚洲精品一区在线观看| 国产免费视频播放在线视频| 欧美黑人欧美精品刺激| 精品一区二区三区av网在线观看 | 男女午夜视频在线观看| 亚洲国产av新网站| 成年av动漫网址| 午夜老司机福利片| av线在线观看网站| 国产成人一区二区三区免费视频网站| 亚洲精品国产av蜜桃| 视频区图区小说| 天天躁夜夜躁狠狠躁躁| 亚洲欧美成人综合另类久久久| 久久久久久免费高清国产稀缺| 久久九九热精品免费| 另类精品久久| 别揉我奶头~嗯~啊~动态视频 | 三级毛片av免费| 极品少妇高潮喷水抽搐| 欧美人与性动交α欧美精品济南到| 亚洲国产欧美日韩在线播放| 麻豆国产av国片精品| 国产熟女午夜一区二区三区| 欧美 亚洲 国产 日韩一| 大陆偷拍与自拍| 一本综合久久免费| 国产一区二区激情短视频 | 久久久精品免费免费高清| 久久热在线av| 精品国产一区二区三区四区第35| 大片电影免费在线观看免费| 欧美在线黄色| 777米奇影视久久| 国产亚洲av片在线观看秒播厂| 日本vs欧美在线观看视频| 黑人巨大精品欧美一区二区蜜桃| 操出白浆在线播放| 嫩草影视91久久| 99久久国产精品久久久| 欧美+亚洲+日韩+国产| 一区二区av电影网| 伊人久久大香线蕉亚洲五| 欧美日韩一级在线毛片| 午夜精品国产一区二区电影| 国产成人一区二区三区免费视频网站| 人人妻,人人澡人人爽秒播| 亚洲免费av在线视频| 在线观看一区二区三区激情| 久久久久国产一级毛片高清牌| 亚洲国产看品久久| 亚洲欧洲精品一区二区精品久久久| 国产一区二区三区在线臀色熟女 | 久久久国产成人免费| 青春草视频在线免费观看| 久久国产亚洲av麻豆专区| 色精品久久人妻99蜜桃| 丝瓜视频免费看黄片| 欧美少妇被猛烈插入视频| 天天添夜夜摸| 国产日韩欧美视频二区| 夜夜夜夜夜久久久久| 人人妻人人爽人人添夜夜欢视频| 热99国产精品久久久久久7| 中文字幕人妻熟女乱码| 80岁老熟妇乱子伦牲交| 咕卡用的链子| 桃红色精品国产亚洲av| 日本欧美视频一区| av在线播放精品| 中国美女看黄片| 午夜福利18| 免费在线观看日本一区| 一级片免费观看大全| 亚洲真实伦在线观看| 日本三级黄在线观看| 露出奶头的视频| 亚洲国产高清在线一区二区三| 精品欧美一区二区三区在线| 国产欧美日韩精品亚洲av| 欧美日韩精品网址| 国产视频内射| 亚洲av成人av| 亚洲午夜精品一区,二区,三区| 亚洲成人久久爱视频| 久久精品国产清高在天天线| 不卡av一区二区三区| 一级作爱视频免费观看| 日韩欧美一区二区三区在线观看| 一本综合久久免费| 在线观看日韩欧美| 国产av一区二区精品久久| 亚洲国产日韩欧美精品在线观看 | a级毛片在线看网站| 99国产极品粉嫩在线观看| 国产成人av激情在线播放| 99久久无色码亚洲精品果冻| 亚洲av成人不卡在线观看播放网| 男女那种视频在线观看| 人成视频在线观看免费观看| 日本五十路高清| 免费在线观看日本一区| 午夜福利在线观看吧| 少妇人妻一区二区三区视频| 天堂av国产一区二区熟女人妻 | 亚洲av五月六月丁香网| 非洲黑人性xxxx精品又粗又长|