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

    一種面向區(qū)塊鏈的鏈下數(shù)據(jù)庫(kù)高吞吐量可驗(yàn)證查詢方法

    2021-05-24 09:01:16源,汪衛(wèi),鄧
    關(guān)鍵詞:數(shù)據(jù)庫(kù)

    隋 源,汪 衛(wèi),鄧 雪

    1(復(fù)旦大學(xué) 軟件學(xué)院 數(shù)據(jù)庫(kù)與海量信息處理實(shí)驗(yàn)室,上海 200433)2(復(fù)旦大學(xué) 計(jì)算機(jī)科學(xué)技術(shù)學(xué)院 數(shù)據(jù)庫(kù)與海量信息處理實(shí)驗(yàn)室,上海 200433)3(珠海復(fù)旦創(chuàng)新研究院,廣東 珠海 518057)

    E-mail:18212010027@fudan.edu.cn

    1 引 言

    從2009年最初的比特幣開始,區(qū)塊鏈技術(shù)也不單單局限于加密數(shù)字貨幣的應(yīng)用,更多的研究逐漸的將重點(diǎn)放在如何將數(shù)據(jù)管理能夠與區(qū)塊鏈更好的結(jié)合.區(qū)塊鏈本質(zhì)上是一個(gè)去中心化的不可篡改的分布式賬本,區(qū)塊鏈技術(shù)是集成數(shù)據(jù)庫(kù)、共識(shí)機(jī)制、密碼學(xué)、分布式數(shù)據(jù)存儲(chǔ)等多個(gè)方向的應(yīng)用研究.區(qū)塊鏈網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)都是互相獨(dú)立的個(gè)體,彼此不信任對(duì)方,通過密碼學(xué)的手段網(wǎng)絡(luò)中的所有節(jié)點(diǎn)選舉出背書節(jié)點(diǎn),并定期更換背書節(jié)點(diǎn),維護(hù)一個(gè)哈希加密的鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu).從數(shù)據(jù)庫(kù)的角度看待區(qū)塊鏈,區(qū)塊鏈?zhǔn)且粋€(gè)存儲(chǔ)了大量時(shí)間戳數(shù)據(jù)的數(shù)據(jù)庫(kù).區(qū)塊鏈自身需要大量的共識(shí)和密碼計(jì)算來保證自身的效率,這就導(dǎo)致了傳統(tǒng)結(jié)構(gòu)的區(qū)塊鏈的系統(tǒng)吞吐量都比較低,不能滿足用戶的需要.

    區(qū)塊鏈本身具有防篡改的特性,隨著區(qū)塊鏈在其他領(lǐng)域的應(yīng)用和發(fā)展,例如金融、供應(yīng)鏈、物流等領(lǐng)域,用戶對(duì)可驗(yàn)證查詢的需求也越來越高,比如用戶想要查詢“昨天晚上六點(diǎn)”這樣的歷史數(shù)據(jù),可驗(yàn)證查詢是指提供查詢服務(wù)的節(jié)點(diǎn)在把查詢結(jié)果返回給請(qǐng)求查詢的用戶的同時(shí),也會(huì)返回一個(gè)可以證明查詢結(jié)果正確可靠的數(shù)據(jù)結(jié)構(gòu).區(qū)塊鏈數(shù)據(jù)管理研究方向是從數(shù)據(jù)庫(kù)的角度,運(yùn)用成熟的傳統(tǒng)的數(shù)據(jù)庫(kù)技術(shù)來解決區(qū)塊鏈系統(tǒng)存在的問題.由此很多數(shù)據(jù)庫(kù)化的區(qū)塊鏈系統(tǒng)和新的方法被提出.區(qū)塊鏈數(shù)據(jù)管理是一個(gè)全新的方向,主要涉及的領(lǐng)域有數(shù)據(jù)溯源、查詢驗(yàn)證、版本控制等等.許多的數(shù)據(jù)庫(kù)研究機(jī)構(gòu)IBM,Oracle和SAP以及諸如FlureedDB[1],BigchainDB[2],和SwarmDB[3],也都在致力于研究成熟的數(shù)據(jù)庫(kù)技術(shù)如何在區(qū)塊鏈中加以利用.

    為此,本文提出了一種通過增加鏈下數(shù)據(jù)庫(kù)層的方式,增加系統(tǒng)的每秒事務(wù)吞吐量,如圖1所示是一種增加鏈下數(shù)據(jù)庫(kù)層的方法示意圖.鏈下數(shù)據(jù)庫(kù)負(fù)責(zé)存儲(chǔ)全部的數(shù)據(jù),鏈下數(shù)據(jù)庫(kù)的類型可以是一個(gè)性能成熟強(qiáng)大的關(guān)系型或者是NoSQL類型的數(shù)據(jù)庫(kù),本文中鏈下數(shù)據(jù)庫(kù)采用了HBase(1)https://hbase.apache.org/,首先HBase適合海量數(shù)據(jù),這對(duì)于區(qū)塊鏈源源不斷產(chǎn)生時(shí)間序列數(shù)據(jù)的情況是一個(gè)很好的優(yōu)勢(shì).它的易拓展、高并發(fā)的特點(diǎn),對(duì)于本身是分布式的區(qū)塊鏈網(wǎng)絡(luò)有著很大的幫助.鏈下數(shù)據(jù)庫(kù)按批次的將全部數(shù)據(jù)存儲(chǔ),并計(jì)算每個(gè)批次的消息摘要值,存放在區(qū)塊鏈上.這樣的結(jié)構(gòu),鏈下數(shù)據(jù)庫(kù)可以提供性能的保證,區(qū)塊鏈可以提供安全的保證.

    本文工作如下:

    提出一種區(qū)塊鏈結(jié)合鏈下數(shù)據(jù)庫(kù)的模式,以應(yīng)對(duì)系統(tǒng)每秒吞吐量比較高的應(yīng)用場(chǎng)景;

    基于這種模式,提出了一種可以根據(jù)信任程度不同的多模式可驗(yàn)證查詢方法和一種異步可驗(yàn)證查詢方法;

    對(duì)于鏈下數(shù)據(jù)庫(kù)結(jié)合區(qū)塊鏈的方式,進(jìn)行了與沒有鏈下數(shù)據(jù)庫(kù)的區(qū)塊鏈的對(duì)比試驗(yàn),并驗(yàn)證了可驗(yàn)證查詢的效率.

    2 區(qū)塊鏈數(shù)據(jù)管理面臨問題及挑戰(zhàn)

    2.1 相關(guān)工作

    目前區(qū)塊鏈的研究已經(jīng)不止局限于代幣,國(guó)外目前已經(jīng)有了一些區(qū)塊鏈在工業(yè)領(lǐng)域應(yīng)用的研究,大致可以分為幾個(gè)方面:

    提升事務(wù)處理速度(TPS):由于區(qū)塊鏈的防篡改特性,必須使用大量的密碼學(xué)和共識(shí)機(jī)制來保證系統(tǒng)的安全穩(wěn)定,這就導(dǎo)致了大部分的區(qū)塊鏈系統(tǒng)的事物處理能力遇到了瓶頸,為了提升系統(tǒng)的事務(wù)處理能力,Ankur Sharma等人[4]通過重新組織事務(wù)順序,識(shí)別事務(wù)語(yǔ)義來減少失效事務(wù)的數(shù)量,并盡早的識(shí)別確定失效的事務(wù),來提升事務(wù)處理的能力.通過改變區(qū)塊鏈系統(tǒng)的結(jié)構(gòu)也可以達(dá)到提升系統(tǒng)的事務(wù)處理能力,Hung Dang[5]通過分片的方式,并行產(chǎn)生區(qū)塊,這種并行出塊的結(jié)構(gòu)在以太坊等區(qū)塊鏈系統(tǒng)中也得到了利用.

    還有的研究[6-11]通過增加外源數(shù)據(jù)庫(kù)來實(shí)現(xiàn)提升事務(wù)處理能力的效果,因?yàn)橐恍┏墒斓臄?shù)據(jù)庫(kù)的事務(wù)處理能力很強(qiáng),可以通過把數(shù)據(jù)放在線下,加密證據(jù)放在線上的方式來達(dá)到提升事務(wù)處理速度的效果.

    可驗(yàn)證查詢:區(qū)塊鏈與傳統(tǒng)數(shù)據(jù)庫(kù)相比,不可篡改的特性是一個(gè)很大的優(yōu)勢(shì),但是目前大部分的區(qū)塊鏈系統(tǒng)并不支持可驗(yàn)證查詢,Cheng Xu 等人[6]通過更改區(qū)塊結(jié)構(gòu),來支持可驗(yàn)證的查詢,并且保證查詢結(jié)果的完整性,并且在效率上也有一定的保證.

    版本控制:分叉問題是區(qū)塊鏈系統(tǒng)的一個(gè)缺陷,比特幣和以太坊自從誕生以來都經(jīng)過了很多次硬分叉.但是Sheng Wang 等人[7]通過一種Merkle有向圖(Merkle DAG)的數(shù)據(jù)結(jié)構(gòu),將這種缺陷利用到了版本控制技術(shù)領(lǐng)域中,有效的解決了版本之間的空間效率問題.

    數(shù)據(jù)溯源:在現(xiàn)有區(qū)塊鏈中查詢數(shù)據(jù)歷史只能通過重放所有交易來完成,這種方法適用于大規(guī)模,離線分析,但不適合在線事務(wù)處理.在工業(yè)應(yīng)用領(lǐng)域溯源查詢往往是比較常見的.PingchengRuan等人[8]通過在Hyperledger和一個(gè)名為ForkBase的區(qū)塊鏈優(yōu)化存儲(chǔ)系統(tǒng)之上實(shí)現(xiàn)了LineageChain,支持高效的溯源查詢并且可以有效的利用空間資源.

    2.2 相關(guān)技術(shù)——Hyperledger Fabric

    Hyperledger Fabric(2)https://www.hyperledger.org/use/fabric是IBM提出的一種聯(lián)盟鏈區(qū)塊鏈系統(tǒng),在這個(gè)網(wǎng)絡(luò)中,每個(gè)節(jié)點(diǎn)都是已知的,每個(gè)節(jié)點(diǎn)都運(yùn)行著一個(gè)賬本的實(shí)例,除此之外每個(gè)節(jié)點(diǎn)存儲(chǔ)著一份當(dāng)前狀態(tài)的數(shù)據(jù).該系統(tǒng)有著高效的事務(wù)處理流,分為模擬、排序、驗(yàn)證、提交4個(gè)階段.在模擬階段,client向?qū)eer的指定子集(背書節(jié)點(diǎn))提交事務(wù)建議.背書節(jié)點(diǎn)根據(jù)其當(dāng)前狀態(tài)的本地副本模擬交易.在排序階段,排序服務(wù)在所有接收到的事務(wù)之間建立全局順序,并以塊的粒度將排序好的事務(wù)分配給網(wǎng)絡(luò)的所有peer.在驗(yàn)證階段,所有對(duì)peer根據(jù)背書分別驗(yàn)證所接收塊內(nèi)的事務(wù).在提交階段,將塊追加到本地賬本,并將有效交易記錄所做的更改應(yīng)用于當(dāng)前狀態(tài).

    Hyperledger Fabric是一種聯(lián)盟鏈的架構(gòu),所有的節(jié)點(diǎn)在整個(gè)網(wǎng)絡(luò)中每時(shí)每刻都是已知的.每個(gè)節(jié)點(diǎn)都被分配到一個(gè)組織中,這意味著每個(gè)節(jié)點(diǎn)被所在的組織管理和監(jiān)督.在一個(gè)組織中,所有節(jié)點(diǎn)都互相信任,每個(gè)節(jié)點(diǎn)都運(yùn)行一個(gè)Fabric的本地實(shí)例,實(shí)例包括全網(wǎng)賬本的副本,具體是全網(wǎng)的交易事務(wù)的有序序列(即包括有效事務(wù),又包括無(wú)效事務(wù)).除了全網(wǎng)賬本的副本以外,每個(gè)節(jié)點(diǎn)還以狀態(tài)數(shù)據(jù)庫(kù)的形式包含當(dāng)前狀態(tài),除了在模擬階段和驗(yàn)證階段都扮演重要角色的節(jié)點(diǎn)之外,還有一個(gè)名為排序服務(wù)的單獨(dú)節(jié)點(diǎn),它是排序階段的核心組件,被認(rèn)為是值得信任的.

    2.3 面臨問題及挑戰(zhàn)

    目前的在食品藥品等制造生產(chǎn)中,數(shù)據(jù)防偽、數(shù)據(jù)溯源等是很重要的技術(shù),用戶或者監(jiān)管部門需要知道每個(gè)環(huán)節(jié)中的數(shù)據(jù),每個(gè)環(huán)節(jié)的數(shù)據(jù)也要保證安全可靠防篡改.考慮這樣一個(gè)場(chǎng)景,在某種食品藥品生產(chǎn)運(yùn)輸銷售的過程中,涉及到,生產(chǎn)商,運(yùn)輸商,銷售商,消費(fèi)者和一些監(jiān)管部門.

    當(dāng)消費(fèi)者拿到自己購(gòu)買的商品后,若想知道該商品是否是符合生產(chǎn)標(biāo)準(zhǔn)的,就需要溯源可驗(yàn)證查詢的支持.例如在運(yùn)輸?shù)倪^程中,運(yùn)輸環(huán)境需要低于一定的溫度,那么運(yùn)輸商就需要按照時(shí)間序列將溫度、濕度等信息進(jìn)行保存.傳統(tǒng)的溯源的方法的數(shù)據(jù)庫(kù)僅僅考慮了數(shù)據(jù)的存儲(chǔ),并沒有考慮存儲(chǔ)數(shù)據(jù)的安全性.

    區(qū)塊鏈本身有防篡改的特性,在防偽溯源領(lǐng)域有先天的優(yōu)勢(shì),但是由于大量的共識(shí)算法導(dǎo)致區(qū)塊鏈的每秒事務(wù)吞吐量(TPS)遇到了瓶頸.普通的關(guān)系型數(shù)據(jù)庫(kù)或者NoSQL并不能提供防篡改的安全性保障.

    由于在這里想解決的問題是提升區(qū)塊鏈的每秒事務(wù)吞吐量(TPS),一些以代幣為基礎(chǔ)的區(qū)塊鏈應(yīng)用在事務(wù)吞吐量角度的缺陷較為嚴(yán)重,Bitcoin(3)https://bitcoin.org/en/、Ethereum(4)https://ethereum.org/這些系統(tǒng)在事務(wù)吞吐量方面的表現(xiàn)并沒有任何優(yōu)勢(shì).而一些以物聯(lián)網(wǎng)為基礎(chǔ)的區(qū)塊鏈應(yīng)用平臺(tái)在事務(wù)吞吐量方面優(yōu)勢(shì)就很明顯,如Hyperledger Fabric、IOTA(5)https://www.iota.org/.

    Hyperledger Fabric是一個(gè)開源的聯(lián)盟鏈框架,繼承獨(dú)立的開放協(xié)議和標(biāo)準(zhǔn),通過框架方法和專用模塊,包括各區(qū)塊鏈的共識(shí)機(jī)制和存儲(chǔ)方式,以及身份服務(wù)、訪問控制和智能合約.但是Hyperledger Fabric在真正部署應(yīng)用的過程中還存在很多不足:

    1) 事務(wù)處理速度不夠,通過實(shí)驗(yàn)獲得到當(dāng)使用CouchDB作為狀態(tài)數(shù)據(jù)庫(kù)時(shí)TPS在300個(gè)/秒左右,這樣的事務(wù)處理能力是遠(yuǎn)遠(yuǎn)不夠的;

    2) 查詢功能不夠完備,底層數(shù)據(jù)庫(kù)是levelDB,只支持簡(jiǎn)單的等值查詢.

    為了解決以上的兩個(gè)問題,本文的思路是在Hyperledger Fabric架構(gòu)的基礎(chǔ)上引入一個(gè)外源數(shù)據(jù)庫(kù),由外源數(shù)據(jù)庫(kù)提供存儲(chǔ)及查詢效率的保證,區(qū)塊鏈提供數(shù)據(jù)安全的保證.

    3 鏈下數(shù)據(jù)庫(kù)改進(jìn)的Hyperledger Fabric架構(gòu)

    3.1 高吞吐量Hyperledger Fabric+外源數(shù)據(jù)庫(kù)架構(gòu)

    雖然Hyperledger Fabric的每秒事務(wù)吞吐量較傳統(tǒng)結(jié)構(gòu)的區(qū)塊鏈相比已經(jīng)有了很大的提升,但是并沒有達(dá)到關(guān)系型或者NoSQL類型數(shù)據(jù)庫(kù)那樣高的標(biāo)準(zhǔn),為了更進(jìn)一步的提升每秒事務(wù)吞吐量,在Hyperledger的基礎(chǔ)上加入一層外源數(shù)據(jù)庫(kù),外源數(shù)據(jù)庫(kù)為區(qū)塊鏈提供事務(wù)吞吐量.

    圖1 鏈下數(shù)據(jù)庫(kù)架構(gòu)Fig.1 Off-chain database schema

    以HBase作為一個(gè)例子,HBase作為一個(gè)鏈下數(shù)據(jù)庫(kù),存放所有的數(shù)據(jù),并將數(shù)據(jù)按照批次進(jìn)行打包計(jì)算消息摘要值,僅將消息摘要值存放到區(qū)塊鏈上,這樣的做法會(huì)大大提升每秒事務(wù)吞吐量.這樣的一個(gè)HBase作為區(qū)塊鏈的鏈下數(shù)據(jù)庫(kù)架構(gòu)如圖1所示.

    圖1中有4種類型的節(jié)點(diǎn)分別是client、peer、order和data center.節(jié)點(diǎn)作用見表1,Data center節(jié)點(diǎn)負(fù)責(zé)存儲(chǔ)所有數(shù)據(jù),并定期檢查數(shù)據(jù)安全性;client節(jié)點(diǎn)負(fù)責(zé)與用戶進(jìn)行交互,與peer節(jié)點(diǎn)進(jìn)行通信;peer節(jié)點(diǎn)是核心節(jié)點(diǎn),負(fù)責(zé)背書、記賬,將智能合約變成狀態(tài)更新發(fā)送給order節(jié)點(diǎn),peer節(jié)點(diǎn)還存儲(chǔ)了區(qū)塊鏈中所有的交易數(shù)據(jù),即每個(gè)批次的數(shù)據(jù)的消息摘要值,并不是所有的數(shù)據(jù),全數(shù)據(jù)在data center節(jié)點(diǎn)中存儲(chǔ);order節(jié)點(diǎn)提供排序服務(wù),將peer發(fā)送給order的交易數(shù)據(jù)排序并產(chǎn)生區(qū)塊,廣播給全網(wǎng)的peer節(jié)點(diǎn).

    表1 節(jié)點(diǎn)類型及作用Table 1 Node types and functions

    在某食品生產(chǎn)銷售的過程中,有生產(chǎn)商、運(yùn)輸商、銷售商和消費(fèi)者群體這幾個(gè)相互獨(dú)立的組織,他們之間互相不信任.那么生產(chǎn)商、運(yùn)輸商和銷售商就可以構(gòu)成3個(gè)組織,每個(gè)組織都實(shí)時(shí)的產(chǎn)生自己的數(shù)據(jù)并存放到鏈下數(shù)據(jù)庫(kù)中,并通過3個(gè)組織的區(qū)塊鏈網(wǎng)絡(luò)對(duì)數(shù)據(jù)進(jìn)行加密,區(qū)塊鏈?zhǔn)沟镁€下數(shù)據(jù)庫(kù)中的數(shù)據(jù)不可篡改.

    3.2 數(shù)據(jù)更新維護(hù)方法

    溯源系統(tǒng)中,數(shù)據(jù)是實(shí)時(shí)產(chǎn)生,例如在運(yùn)輸?shù)倪^程中傳感器產(chǎn)生時(shí)間序列數(shù)據(jù),這些時(shí)間序列數(shù)據(jù)需要實(shí)時(shí)的存入,通過client節(jié)點(diǎn)發(fā)送給data center節(jié)點(diǎn),data center節(jié)點(diǎn)首先緩存這些數(shù)據(jù),當(dāng)數(shù)據(jù)達(dá)到一定數(shù)量時(shí)(如100條),數(shù)據(jù)中心節(jié)點(diǎn)將這一定數(shù)量的數(shù)據(jù)打包成一個(gè)批次,并計(jì)算消息摘要值.之后data center將消息摘要值通過peer節(jié)點(diǎn)添加到區(qū)塊鏈上.

    為了方便說明,給出一個(gè)例子:假設(shè)只有一個(gè)組織(例如生產(chǎn)商),生產(chǎn)商需要將生產(chǎn)過程中的數(shù)據(jù)存入到鏈下數(shù)據(jù)庫(kù)中并且存證以便消費(fèi)者或者監(jiān)管部門查詢.組織內(nèi)部有client節(jié)點(diǎn)、peer節(jié)點(diǎn)、order節(jié)點(diǎn)和數(shù)據(jù)中心節(jié)點(diǎn),client節(jié)點(diǎn)源源不斷的接收到時(shí)間序列數(shù)據(jù)(例如傳感器數(shù)據(jù)),假設(shè)client收到的數(shù)據(jù),并向data center節(jié)點(diǎn)(HBase)發(fā)送.

    組織1的data center節(jié)點(diǎn)設(shè)置每10條數(shù)據(jù)為一個(gè)批次,時(shí)刻到時(shí)刻,組織1的data center節(jié)點(diǎn)插入了10條數(shù)據(jù)如表2所示.

    t1時(shí)刻到t2時(shí)刻,組織1的data center節(jié)點(diǎn)生成了10條數(shù)據(jù)如表3所示.

    Data center節(jié)點(diǎn)將傳感器時(shí)刻到時(shí)刻的數(shù)據(jù)作為第1批次的數(shù)據(jù)打包在一起,并計(jì)算消息摘要值,為方便說明,消息摘要值采用SHA256計(jì)算方法.

    根據(jù)表2中傳感器時(shí)刻到數(shù)據(jù)構(gòu)建一個(gè)二維數(shù)據(jù),所計(jì)算出來的消息摘要值為911c6da8a8da020fe625d98553f23383,data center節(jié)點(diǎn)將它保存,并且通過client節(jié)點(diǎn)將存到區(qū)塊鏈中.

    表2 第1批次的數(shù)據(jù)Table 2 First batch data

    表3 第2批次的數(shù)據(jù)Table 3 Second batch data

    同理,表3中的數(shù)據(jù)計(jì)算出消息摘要值為f725063aa16bed9c971df65473c0b312,data center節(jié)點(diǎn)同樣將它保存,并且通過cli節(jié)點(diǎn)將存到區(qū)塊鏈中.

    算法1.數(shù)據(jù)插入算法(Insert Data)

    輸入:一段時(shí)間序列數(shù)據(jù)Vector

    輸出:true or false

    數(shù)據(jù)中心節(jié)點(diǎn)Data Center:

    1.functionBoolean

    插入數(shù)據(jù)(Vector,data,invoke)

    2. 數(shù)據(jù)緩沖區(qū).append(data)

    3.while(緩沖區(qū)達(dá)到數(shù)據(jù)塊大小){

    4. Hx=計(jì)算消息摘要(數(shù)據(jù)緩沖區(qū))

    5. putDB(Hx)//將Hx放入數(shù)據(jù)中心中

    6. putBLC(Hx) //將Hx放入?yún)^(qū)塊鏈中

    7.returntrue

    8. }

    9. return true

    算法1的1-2行表示當(dāng)數(shù)據(jù)量沒有達(dá)到預(yù)先設(shè)定的數(shù)據(jù)塊大小時(shí),將數(shù)據(jù)暫時(shí)放入緩沖區(qū);3-7行表示,如果緩沖區(qū)中的數(shù)據(jù)達(dá)到預(yù)先設(shè)定的數(shù)據(jù)塊大小,則計(jì)算數(shù)據(jù)塊消息摘要,并放入數(shù)據(jù)庫(kù)和區(qū)塊鏈中.

    如圖2所示,data1數(shù)據(jù)代表傳感器第一個(gè)批次的數(shù)據(jù),data center節(jié)點(diǎn)將它計(jì)算消息摘要值并將它同時(shí)存放在data center和區(qū)塊鏈中,算法1說明了數(shù)據(jù)插入的過程.

    3.3 數(shù)據(jù)存放方式

    在生產(chǎn)銷售溯源場(chǎng)景中,在生產(chǎn)商生產(chǎn)的過程中,需要將全數(shù)據(jù)記錄在data center節(jié)點(diǎn),比如需要記錄的傳感器溫度,傳感器將溫度數(shù)據(jù)實(shí)時(shí)的傳送給data center節(jié)點(diǎn),區(qū)塊鏈負(fù)責(zé)對(duì)data center節(jié)點(diǎn)進(jìn)行加密.

    圖2 插入數(shù)據(jù)示意圖Fig.2 Insert data schema

    Data center節(jié)點(diǎn)在整個(gè)結(jié)構(gòu)中起著很重要的作用,它負(fù)責(zé)存儲(chǔ)全數(shù)據(jù),定期檢查數(shù)據(jù)的安全可靠性,為全網(wǎng)提供可靠的查詢服務(wù),所以data center節(jié)點(diǎn)的安全性是很重要的一個(gè)環(huán)節(jié).單純的集中式的data center節(jié)點(diǎn)會(huì)存在容易被攻擊、宕機(jī)后只有一個(gè)節(jié)點(diǎn)無(wú)法再繼續(xù)提供服務(wù)的問題.為了解決這些問題,data center節(jié)點(diǎn)不應(yīng)該僅僅有中心化模式,在這里考慮3種模式的data center,第1種是中心化的data center節(jié)點(diǎn);第2種是data center節(jié)點(diǎn)不只有一個(gè),而是有很多個(gè)備份;第3種是采用分布式數(shù)據(jù)庫(kù),通過Hadoop搭建分布式HBase.

    3.3.1 中心化HBase

    中心化的HBase所有的組織公用一個(gè)data center節(jié)點(diǎn),在實(shí)際的溯源場(chǎng)景中,如圖3(a)所示,這個(gè)HBase節(jié)點(diǎn)存儲(chǔ)全網(wǎng)的數(shù)據(jù),包括生產(chǎn)商、運(yùn)輸商、和銷售商的數(shù)據(jù),定期打包批次數(shù)據(jù),并為全網(wǎng)提供查詢和驗(yàn)證支持.

    3.3.2 備份HBase

    單節(jié)點(diǎn)的HBase缺陷是很明顯的,比如當(dāng)唯一好的HBase節(jié)點(diǎn)收到攻擊時(shí),沒有其他備份節(jié)點(diǎn),在唯一的HBase節(jié)點(diǎn)宕機(jī)之后,無(wú)法保證整個(gè)網(wǎng)絡(luò)的正確有效的運(yùn)行.

    第2種網(wǎng)絡(luò)結(jié)構(gòu)是HBase節(jié)點(diǎn)有多個(gè)備份,在圖3(b)中,每個(gè)組織都有一個(gè)HBase節(jié)點(diǎn),每個(gè)HBase節(jié)點(diǎn)都保存著全網(wǎng)的所有數(shù)據(jù),當(dāng)其中某一個(gè)HBase節(jié)點(diǎn)出現(xiàn)問題宕機(jī)時(shí),其余的HBase節(jié)點(diǎn)可以繼續(xù)保證全網(wǎng)的運(yùn)行.

    3.3.3 分布式HBase

    多備份的HBase節(jié)點(diǎn)雖然可以保證一定的安全可靠性,但是缺少有效的數(shù)據(jù)同步的方法,不同之間的HBase節(jié)點(diǎn)之間保證數(shù)據(jù)的一致較為困難.為此data center節(jié)點(diǎn)可以采用分布式數(shù)據(jù)庫(kù),例如HBase可以通過Hadoop支持實(shí)現(xiàn)分布式.

    如圖3(c),分布式HBase通過DFS的支持,作為全網(wǎng)的data center節(jié)點(diǎn),這里data center節(jié)點(diǎn)已經(jīng)不是一個(gè)中心化的結(jié)構(gòu)了,區(qū)塊鏈為分布式的外源數(shù)據(jù)庫(kù)(HBase)提供了安全性的保障.

    圖3 數(shù)據(jù)不同存放方式Fig.3 Different storage methods of data

    4 高吞吐量多模式可驗(yàn)證查詢方法

    4.1 多模式可驗(yàn)證應(yīng)用場(chǎng)景

    在溯源的過程中,可驗(yàn)證查詢是非常重要的技術(shù),例如生產(chǎn)商、運(yùn)輸商、銷售商、用戶之間互相不信任.外源數(shù)據(jù)庫(kù)不止為整個(gè)網(wǎng)絡(luò)提供吞吐量的支持,還為全網(wǎng)提供多模式可驗(yàn)證查詢的支持.區(qū)塊鏈本身具有防篡改的特性,利用這個(gè)防篡改的特性,可以為用戶提供可驗(yàn)證查詢,即用戶請(qǐng)求查詢時(shí),提供查詢服務(wù)的節(jié)點(diǎn)(HBase節(jié)點(diǎn)),在返回查詢結(jié)果的同時(shí),返回給用戶一個(gè)可以證明查詢結(jié)果完整正確的數(shù)據(jù)結(jié)構(gòu).

    當(dāng)用戶向HBase節(jié)點(diǎn)請(qǐng)求查詢時(shí),HBase首先通過查詢接口將符合條件的數(shù)據(jù),根據(jù)查詢結(jié)果的數(shù)據(jù)的批次,找到同批次的所有數(shù)據(jù),將它們按照時(shí)間戳重新排列起來,重新計(jì)算消息散列值,并從區(qū)塊鏈中查詢到該批數(shù)據(jù)未被篡改過的最初的消息摘要值,將新計(jì)算的消息散列值與從區(qū)塊鏈上拿到的消息散列值進(jìn)行比對(duì),驗(yàn)證查詢結(jié)果是否是正確的.

    圖4 多模式驗(yàn)證查詢流程圖Fig.4 Multi-schema validation query

    根據(jù)請(qǐng)求查詢的節(jié)點(diǎn)對(duì)data center節(jié)點(diǎn)信任程度不同,可以采用不同模式的驗(yàn)證查詢方式,當(dāng)請(qǐng)求查詢的節(jié)點(diǎn)對(duì)data center信任程度較低時(shí),需要采用代價(jià)比較高的全數(shù)據(jù)驗(yàn)證方式;當(dāng)請(qǐng)求查詢的節(jié)點(diǎn)對(duì)data center信任程度中等時(shí),可以采用代價(jià)相對(duì)沒有那么高的data center節(jié)點(diǎn)代替驗(yàn)證的查詢方式;當(dāng)請(qǐng)求查詢的節(jié)點(diǎn)對(duì)data center的信任程度比較高時(shí),可以采用代價(jià)較小的簡(jiǎn)單驗(yàn)證查詢方式.多模式驗(yàn)證查詢的流程圖見圖4.

    圖5 多模式數(shù)據(jù)驗(yàn)證Fig.5 Multi-mode verifiable query method

    4.2 簡(jiǎn)單驗(yàn)證查詢

    當(dāng)請(qǐng)求查詢的節(jié)點(diǎn)對(duì)HBase節(jié)點(diǎn)信任程度較高的時(shí)候,驗(yàn)證查詢的方式可以采用簡(jiǎn)單驗(yàn)證查詢.

    Client節(jié)點(diǎn)首先向HBase節(jié)點(diǎn)發(fā)送查詢請(qǐng)求,HBase節(jié)點(diǎn)查詢到結(jié)果和結(jié)果的批次信息,通過批次信息在區(qū)塊鏈中查詢到最初的未被篡改的消息摘要值,將這個(gè)消息散列值與在HBase中的消息散列值進(jìn)行比較,若比較結(jié)果是相同的則,說明查詢結(jié)果沒有問題,若比較結(jié)果是不同的則說明查詢結(jié)果有可能是偽造的.簡(jiǎn)單驗(yàn)證查詢示意圖見圖5.

    簡(jiǎn)單驗(yàn)證查詢過程的系統(tǒng)開銷主要來自于從區(qū)塊鏈中取得到消息摘要值,除此之外簡(jiǎn)單驗(yàn)證查詢的查詢效率與傳統(tǒng)數(shù)據(jù)庫(kù)基本相同,事實(shí)上查詢效率大部分取決于鏈下數(shù)據(jù)庫(kù)的種類,采用NoSQL或者關(guān)系型數(shù)據(jù)庫(kù)都可以保證系統(tǒng)的高吞吐量.

    4.3 Data Center節(jié)點(diǎn)代替驗(yàn)證查詢

    當(dāng)請(qǐng)求查詢的節(jié)點(diǎn)對(duì)HBase節(jié)點(diǎn)的信任程度中等時(shí),可以采用data center代替驗(yàn)證的查詢方式,算法2說明了Data center節(jié)點(diǎn)代替驗(yàn)證查詢的步驟.

    算法2.DC代替驗(yàn)證查詢 (DC Validation Query)

    輸入:查詢條件

    輸出:查詢結(jié)果和查詢結(jié)果是否有效(true or false)

    客戶端Client:

    1.function(查詢結(jié)果,查詢結(jié)果是否有效) DCVQ(查詢條件):

    2. 查詢結(jié)果,查詢結(jié)果是否有效=DCVQ_DC(查詢條件)

    3.if(查詢結(jié)果有效)

    4.return(查詢結(jié)果,查詢結(jié)果有效)

    5.else

    6.return(null,查詢結(jié)果無(wú)效)

    數(shù)據(jù)中心Data center

    7.function(查詢結(jié)果,查詢結(jié)果是否有效) DCVQ_DC(查詢條件)

    8. 查詢結(jié)果=getDB(查詢條件)

    9. 數(shù)據(jù)中心中的消息摘要值=計(jì)算消息摘要(查詢結(jié)果)

    10. 區(qū)塊鏈中的消息摘要值=getBLC(查詢條件)

    11.if(數(shù)據(jù)中心中的消息摘要值==區(qū)塊鏈中的消息摘要值)

    12.return(查詢結(jié)果,查詢結(jié)果有效)

    13.else

    14. return (null,查詢結(jié)果無(wú)效)

    算法2的1-6行是請(qǐng)求查詢的客戶端節(jié)點(diǎn)進(jìn)行的操作,在第2行客戶端節(jié)點(diǎn)向數(shù)據(jù)中心節(jié)點(diǎn)請(qǐng)求查詢結(jié)果和結(jié)果的真實(shí)性.與簡(jiǎn)單驗(yàn)證查詢不同的是從數(shù)據(jù)中心節(jié)點(diǎn)拿到數(shù)據(jù)塊需要重新計(jì)算消息摘要值,再與區(qū)塊鏈中消息摘要值進(jìn)行對(duì)比返回結(jié)果.

    當(dāng)請(qǐng)求查詢的節(jié)點(diǎn)向HBase節(jié)點(diǎn)請(qǐng)求查詢時(shí),HBase首先在自身查詢出符合條件的數(shù)據(jù)和批次信息,之后根據(jù)批次信息查詢出同批次的所有數(shù)據(jù),并按照時(shí)間戳排序(將同批次數(shù)據(jù)按照存入HBase時(shí)的數(shù)據(jù)排列即可),重新計(jì)算該批數(shù)據(jù)的消息摘要值.根據(jù)查詢結(jié)果的區(qū)塊信息在區(qū)塊鏈中查詢到該批次數(shù)據(jù)的最初消息散列值,將重新計(jì)算的消息散列值與區(qū)塊鏈中的消息散列值進(jìn)行對(duì)比,若比較結(jié)果是相同的則說明查詢結(jié)果沒有問題,若比較結(jié)果是不同的則說明查詢結(jié)果有可能是偽造的.Data center節(jié)點(diǎn)代替驗(yàn)證查詢示意圖見圖5.

    Data Center節(jié)點(diǎn)代替驗(yàn)證查詢方法開銷與簡(jiǎn)單驗(yàn)證查詢相比多了將數(shù)據(jù)塊重新計(jì)算消息摘要的過程.由于數(shù)據(jù)塊在磁盤中是按照順序存放的,讀取磁盤開銷代價(jià)并不是很大,計(jì)算消息摘要代價(jià)也在級(jí)別,所以可以保證系統(tǒng)的高吞吐量.

    4.4 全數(shù)據(jù)驗(yàn)證查詢

    當(dāng)請(qǐng)求查詢的節(jié)點(diǎn)對(duì)HBase節(jié)點(diǎn)的信任程度較差時(shí),就需要采用全數(shù)據(jù)驗(yàn)證查詢的方法,全數(shù)據(jù)驗(yàn)證方法的方式是將與查詢結(jié)果同批次的數(shù)據(jù)都返回給請(qǐng)求查詢的節(jié)點(diǎn),請(qǐng)求查詢的節(jié)點(diǎn)自己驗(yàn)證數(shù)據(jù)的真實(shí)性,所以全數(shù)據(jù)查詢驗(yàn)證代價(jià)開銷比較高.算法3說明了全數(shù)據(jù)查詢過程步驟.

    HBase節(jié)點(diǎn)收到請(qǐng)求查詢節(jié)點(diǎn)的查詢請(qǐng)求后,首先查詢到符合條件的結(jié)果,根據(jù)查詢結(jié)果的批次信息找到同批次的所有數(shù)據(jù),并將這些同批次所有的數(shù)據(jù)返回給請(qǐng)求查詢的client節(jié)點(diǎn).請(qǐng)求查詢的client節(jié)點(diǎn)還要在區(qū)塊鏈中查詢到最初存入的未被篡改過的消息摘要值.Client節(jié)點(diǎn)通過重新計(jì)算批次數(shù)據(jù)的消息摘要值并與區(qū)塊鏈中查詢到的消息散列值進(jìn)行對(duì)比,來確定查詢結(jié)果是否真實(shí)可靠.全數(shù)據(jù)驗(yàn)證查詢示意圖見圖5.

    算法3.全數(shù)據(jù)驗(yàn)證查詢 (Full Data Validation Query)

    輸入:查詢條件

    輸出:查詢結(jié)果和查詢結(jié)果是否有效(true or false)

    客戶端Client:

    1.function(查詢結(jié)果,查詢結(jié)果是否有效) FDVQ(查詢條件):

    2. 查詢結(jié)果=FDVQ_DC(查詢條件)

    3. 數(shù)據(jù)中心中的消息摘要值=計(jì)算消息摘要(查詢結(jié)果)

    4. 區(qū)塊鏈中的消息摘要值=getBLC(查詢條件)

    6.return(查詢結(jié)果,查詢結(jié)果有效)

    7.else

    8.return(null,查詢結(jié)果無(wú)效)

    數(shù)據(jù)中心Data Center:

    9.function(查詢結(jié)果)FDVQ_DC(查詢條件):

    10. 查詢結(jié)果=getDB(查詢條件)

    11.return查詢結(jié)果

    算法3的1-8行是請(qǐng)求查詢的客戶端節(jié)點(diǎn)進(jìn)行的操作,在第2行客戶端節(jié)點(diǎn)向數(shù)據(jù)中心節(jié)點(diǎn)請(qǐng)求完整數(shù)據(jù)塊,第3行客戶端節(jié)點(diǎn)計(jì)算消息摘要值,第4行客戶端節(jié)點(diǎn)向區(qū)塊鏈請(qǐng)求消息摘要值,第5-8行進(jìn)行消息摘要值對(duì)比并返回結(jié)果.

    例如在表2中的數(shù)據(jù),在存儲(chǔ)過程中被修改,見表4.

    表4 第1批次被篡改數(shù)據(jù)Table 4 First batch of tampered data

    某個(gè)查詢節(jié)點(diǎn)想查詢數(shù)據(jù)編號(hào)為3的數(shù)據(jù):

    Query:Select * from Table1 where 數(shù)據(jù)編號(hào)=3;

    表5 查詢結(jié)果Table 5 Query results

    無(wú)論采用簡(jiǎn)單驗(yàn)證查詢、data center節(jié)點(diǎn)代替查詢驗(yàn)證查詢還是全數(shù)據(jù)驗(yàn)證查詢方式,查詢到的結(jié)果見表5.

    數(shù)據(jù)中心節(jié)點(diǎn)根據(jù)被篡改過后的數(shù)據(jù)計(jì)算出消息摘要值為7981c3f689896fb560bc5590b8e8192e,而在區(qū)塊鏈中拿到的哈希摘要值為911c6da8a8da020fe625d98553f23383,兩者值不同.若采用了data center節(jié)點(diǎn)代替驗(yàn)證查詢和全數(shù)據(jù)驗(yàn)證查詢的方式,請(qǐng)求查詢的用戶節(jié)點(diǎn)會(huì)發(fā)現(xiàn)查詢結(jié)果可能存在問題,而若采用了簡(jiǎn)單驗(yàn)證查詢的方式,則說明請(qǐng)求查詢的用戶節(jié)點(diǎn)對(duì)data center節(jié)點(diǎn)的信任程度較高且data center較為安全不易被篡改和攻擊.

    與DataCenter節(jié)點(diǎn)代替驗(yàn)證查詢不同的是,數(shù)據(jù)中心節(jié)點(diǎn)和區(qū)塊鏈需要把數(shù)據(jù)塊和消息摘要值返回給用戶節(jié)點(diǎn)用戶自己進(jìn)行驗(yàn)證,而驗(yàn)證所帶來的開銷與DataCenter節(jié)點(diǎn)代替驗(yàn)證查詢基本是相同的,系統(tǒng)高吞吐量的性能即可得到保證.

    5 實(shí)驗(yàn)評(píng)估

    5.1 實(shí)驗(yàn)配置

    5.1.1 實(shí)驗(yàn)環(huán)境

    實(shí)驗(yàn)集群的硬件環(huán)境為雙核心四線程CPU Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz,內(nèi)存為16G(2×8192 MB (16G) 1600MHz),硬盤轉(zhuǎn)速為5400rmp.操作系統(tǒng)版本為Ubuntu18.04,Golang版本為go1.12.6 Linux/amd64,Hyperledger Fabric版本為hyperledger/fabric release-1.3.0.

    5.1.2 網(wǎng)絡(luò)參數(shù)

    1)單機(jī)單節(jié)點(diǎn)配置參數(shù)

    單機(jī)單節(jié)點(diǎn)是將所有的組件(包括order、peer、client、HBase節(jié)點(diǎn))部署在一臺(tái)服務(wù)器上,節(jié)點(diǎn)名稱及數(shù)量見表6.

    表6 單機(jī)單節(jié)點(diǎn)配置參數(shù)Table 6 Configuration parameters of single machine and single node

    2) 多機(jī)多節(jié)點(diǎn)配置參數(shù)

    多機(jī)多節(jié)點(diǎn)將每個(gè)組件放在不同的計(jì)算機(jī)上,形成一個(gè)集群,所采用的節(jié)點(diǎn)配置及數(shù)量見表7.

    表7 多機(jī)多節(jié)點(diǎn)配置參數(shù)Table 7 Configuration parameters of multi-machine and multi-node

    5.2 吞吐量測(cè)試

    5.2.1 無(wú)HBase測(cè)試

    為了對(duì)比試驗(yàn)的方便,對(duì)不加HBase只有Fabric的網(wǎng)絡(luò)進(jìn)行吞吐量測(cè)試.

    1)不同存儲(chǔ)方式對(duì)性能的影響

    在Hyperledger Fabric中,數(shù)據(jù)以key-value形式的文檔數(shù)據(jù)存儲(chǔ),在實(shí)驗(yàn)中數(shù)據(jù)存儲(chǔ)采用了兩種方式,分別是一對(duì)象一個(gè)文檔和一個(gè)歷史版本一個(gè)文檔.一對(duì)象一文檔指的是每個(gè)對(duì)象中用數(shù)組或者其他數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)歷史版本信息.這種結(jié)構(gòu)的數(shù)據(jù)會(huì)將每個(gè)對(duì)象的歷史版本信息存在一個(gè)文檔內(nèi),數(shù)據(jù)特點(diǎn):文檔數(shù)量少,每個(gè)文檔尺寸大.一個(gè)歷史版本一文檔指的是每個(gè)對(duì)象的id+時(shí)間信息代表一個(gè)歷史版本的信息.這種結(jié)構(gòu)的數(shù)據(jù)會(huì)將一個(gè)對(duì)象的每個(gè)版本信息都存儲(chǔ)為一個(gè)文檔,數(shù)據(jù)特點(diǎn):文檔數(shù)量多,單個(gè)文檔尺寸小.

    圖6 存儲(chǔ)方式和索引對(duì)性能的影響Fig.6 Influence of index and storge types on query performance

    為了測(cè)試不同存儲(chǔ)方式對(duì)性能的影響,本文測(cè)試了不同存儲(chǔ)方式下的插入效率、修改效率、查詢效率.首先測(cè)試了插入50000條數(shù)據(jù)所需要的總時(shí)間,如圖6(a)所示,實(shí)驗(yàn)結(jié)果表明一對(duì)象一文檔插入每條數(shù)據(jù)所需要的平均時(shí)間為0.08s,而一歷史版本一文檔插入每條數(shù)據(jù)所需要的平均時(shí)間為0.10s;本文還測(cè)試了不同存儲(chǔ)方式下的修改性能,實(shí)驗(yàn)方法是隨機(jī)對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行修改50000次,實(shí)驗(yàn)結(jié)果表明一對(duì)象一文檔每次修改的平均時(shí)間為0.08s,一歷史版本一文檔的每次修改的平均時(shí)間為0.11s;在測(cè)試查詢效率的過程中,分為簡(jiǎn)單查詢測(cè)試和范圍查詢測(cè)試,簡(jiǎn)單查詢測(cè)試是指按照HBase中的列名進(jìn)行查詢,范圍查詢測(cè)試是指查詢的屬性是一個(gè)數(shù)值范圍,在實(shí)驗(yàn)中,一對(duì)象一文檔在簡(jiǎn)單查詢測(cè)試中每次需要0.07s的時(shí)間,一歷史版本一文檔在范圍查詢測(cè)試中每次需要0.09s.

    2)索引對(duì)查詢性能的影響

    CouchDB支持對(duì)數(shù)據(jù)進(jìn)行構(gòu)建索引,在一對(duì)象一文檔的情況下,本文測(cè)試了索引對(duì)范圍查詢效率的影響,如圖6(b)所示,實(shí)驗(yàn)結(jié)果表明有索引的查詢效率要比無(wú)索引的查詢效率高.

    5.2.2 多機(jī)多節(jié)點(diǎn)外源數(shù)據(jù)庫(kù)測(cè)試

    實(shí)驗(yàn)所采用的數(shù)據(jù)是索非亞空氣質(zhì)量數(shù)據(jù)集(6)https://www.kaggle.com/hmavrodiev/sofia-air-quality-dataset,是傳感器類型的時(shí)間序列數(shù)據(jù).

    將HBase節(jié)點(diǎn)加入整個(gè)集群中,其中數(shù)據(jù)再HBase中的存儲(chǔ)結(jié)構(gòu)見表8.

    1)單節(jié)點(diǎn)與多節(jié)點(diǎn)性能測(cè)試

    在實(shí)際應(yīng)用的場(chǎng)景中,往往都是分布式、并行的結(jié)構(gòu),本文將單節(jié)點(diǎn)和多節(jié)點(diǎn)的性能進(jìn)行了實(shí)驗(yàn)對(duì)比.首先測(cè)試了插入17709數(shù)據(jù),分別統(tǒng)計(jì)了鏈下數(shù)據(jù)庫(kù)(HBase)和區(qū)塊鏈的性能表現(xiàn),同時(shí)測(cè)試了與驗(yàn)證相關(guān)的操作性能表現(xiàn),分別是每批次平均插入所需要的時(shí)間(每批次默認(rèn)200條數(shù)據(jù))和平均每次驗(yàn)證查詢所需要的時(shí)間.其中每一批次的數(shù)據(jù)插入過程中涉及到驗(yàn)證的環(huán)節(jié)是批次數(shù)據(jù)需要進(jìn)行計(jì)算消息摘要值,驗(yàn)證查詢中涉及到驗(yàn)證的環(huán)節(jié)就是將查詢結(jié)果同批次的數(shù)據(jù)重新計(jì)算消息摘要值.

    表8 HBase存儲(chǔ)結(jié)構(gòu)Table 8 HBase storage structure

    如圖8(a)所示,實(shí)驗(yàn)結(jié)果表明,鏈下數(shù)據(jù)庫(kù)的效率是很高的,而且與無(wú)鏈下數(shù)據(jù)庫(kù)相比,系統(tǒng)的吞吐量也有明顯的提升.在單節(jié)點(diǎn)和多節(jié)點(diǎn)驗(yàn)證相關(guān)的測(cè)試中,多節(jié)點(diǎn)的表現(xiàn)較單節(jié)點(diǎn)相比有一點(diǎn)提升.

    圖7 鏈下數(shù)據(jù)庫(kù)與區(qū)塊鏈資源占比分析Fig.7 Analysis of resource of off-chain database and block chain

    如圖7所示了每次插入數(shù)據(jù)HBase和區(qū)塊鏈所占用的時(shí)間,不論是單節(jié)點(diǎn)還是多節(jié)點(diǎn),HBase所占用的時(shí)間遠(yuǎn)遠(yuǎn)沒有區(qū)塊鏈占用的時(shí)間多.

    2)多節(jié)點(diǎn)吞吐量及并發(fā)性實(shí)驗(yàn)

    實(shí)驗(yàn)中有3個(gè)組織并且在一個(gè)通道內(nèi),其中有兩個(gè)組織在并發(fā)的插入數(shù)據(jù)或者進(jìn)行驗(yàn)證查詢.

    如圖8(b)所示,實(shí)驗(yàn)結(jié)果表明,多節(jié)點(diǎn)并行時(shí)的HBase與區(qū)塊鏈相比依然在執(zhí)行時(shí)占用了較少的時(shí)間.在驗(yàn)證相關(guān)的測(cè)試中,每個(gè)節(jié)點(diǎn)的每批次數(shù)據(jù)平均插入時(shí)間大概在1.3s左右,平均每次的驗(yàn)證查詢時(shí)間在1.45s左右.

    在加入HBase外源數(shù)據(jù)庫(kù)后,整個(gè)架構(gòu)的系統(tǒng)吞吐能力有很大的提升,插入數(shù)據(jù)系統(tǒng)吞吐量由每秒2個(gè)變?yōu)槊棵?5個(gè)左右,驗(yàn)證查詢也有著不錯(cuò)的效果.

    圖8 單節(jié)點(diǎn)多節(jié)點(diǎn)測(cè)試對(duì)比Fig.8 Comparison of single node and multi-node

    5.3 鏈下數(shù)據(jù)庫(kù)與區(qū)塊鏈性能對(duì)比

    為了說明區(qū)塊鏈加鏈下數(shù)據(jù)庫(kù)的架構(gòu)的性能優(yōu)勢(shì),將區(qū)塊鏈和鏈下數(shù)據(jù)庫(kù)性能進(jìn)行了對(duì)比試驗(yàn),如圖9所示.

    圖9 鏈下數(shù)據(jù)庫(kù)與區(qū)塊鏈TPS對(duì)比Fig.9 Compare of off-chain database and block chain

    實(shí)驗(yàn)表明,當(dāng)只使用HyperledgerFabric時(shí),系統(tǒng)每秒處理事務(wù)數(shù)量?jī)H為3左右,當(dāng)加入HBase以后,架構(gòu)的系統(tǒng)每秒處理事務(wù)數(shù)量有了很大的提升,在75個(gè)左右.而只使用HBase的系統(tǒng)每秒處理事務(wù)數(shù)量在85個(gè)左右.該實(shí)驗(yàn)說明區(qū)塊鏈加鏈下數(shù)據(jù)庫(kù)的架構(gòu),在保證了安全性的同時(shí),也有不錯(cuò)的系統(tǒng)吞吐量性能.

    6 結(jié) 論

    本文提出了一種區(qū)塊鏈結(jié)合線下數(shù)據(jù)庫(kù)的模式,采用該模式能讓區(qū)塊鏈網(wǎng)絡(luò)具有較強(qiáng)的事務(wù)吞吐能力,鏈下數(shù)據(jù)庫(kù)還為整個(gè)區(qū)塊鏈網(wǎng)絡(luò)提供查詢、存儲(chǔ)服務(wù).在這個(gè)模式的基礎(chǔ)上,本文提出了一種多模式可驗(yàn)證查詢和異步可驗(yàn)證查詢的方法,根據(jù)節(jié)點(diǎn)之家信任程度的不同,提供不同代價(jià)花費(fèi)的驗(yàn)證查詢方式.通過Hyperledger Fabric平臺(tái)和HBase構(gòu)建了一個(gè)外源數(shù)據(jù)庫(kù)區(qū)塊鏈平臺(tái),并進(jìn)行了實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明該模式使得區(qū)塊鏈網(wǎng)絡(luò)具有更高的事務(wù)吞吐能力和驗(yàn)證查詢能力.

    接下來的工作要將鏈下數(shù)據(jù)庫(kù)與區(qū)塊鏈能夠更好的結(jié)合,到目前為止鏈下數(shù)據(jù)庫(kù)還是獨(dú)立于區(qū)塊鏈的存在,并不是區(qū)塊鏈的一部分,以Hbase為例子,將ledgerDB換為Hbase這樣的更加高效的、查詢更加強(qiáng)大的數(shù)據(jù)庫(kù),通過Hbase維護(hù)Merkle Tree這樣的數(shù)據(jù)結(jié)構(gòu),讓外源數(shù)據(jù)庫(kù)成為區(qū)塊鏈的一個(gè)內(nèi)部組件;節(jié)點(diǎn)之間的關(guān)系管理方面:目前為止節(jié)點(diǎn)之間的信任模型還不完善,可以嘗試引入圖的概念,建立節(jié)點(diǎn)網(wǎng)絡(luò),量化節(jié)點(diǎn)之間的信任關(guān)系.

    猜你喜歡
    數(shù)據(jù)庫(kù)
    數(shù)據(jù)庫(kù)
    數(shù)據(jù)庫(kù)
    兩種新的非確定數(shù)據(jù)庫(kù)上的Top-K查詢
    數(shù)據(jù)庫(kù)
    數(shù)據(jù)庫(kù)
    數(shù)據(jù)庫(kù)
    數(shù)據(jù)庫(kù)
    數(shù)據(jù)庫(kù)
    數(shù)據(jù)庫(kù)
    數(shù)據(jù)庫(kù)
    欧美日本中文国产一区发布| 国产女主播在线喷水免费视频网站| 欧美激情国产日韩精品一区| 国产在线视频一区二区| 久久av网站| 国产av一区二区精品久久| 亚洲丝袜综合中文字幕| 国产色爽女视频免费观看| 国产亚洲精品第一综合不卡 | 男女国产视频网站| 黑人高潮一二区| 亚洲伊人久久精品综合| 观看av在线不卡| 国产精品偷伦视频观看了| 中文欧美无线码| 在线看a的网站| 国产极品天堂在线| freevideosex欧美| 成年人免费黄色播放视频| 亚洲人成77777在线视频| 免费高清在线观看视频在线观看| 超色免费av| 欧美bdsm另类| 国产精品国产三级国产av玫瑰| 日本猛色少妇xxxxx猛交久久| 欧美日韩成人在线一区二区| 亚洲美女黄色视频免费看| 亚洲美女视频黄频| 高清av免费在线| 精品少妇久久久久久888优播| 一区二区三区乱码不卡18| 在线 av 中文字幕| 亚洲五月色婷婷综合| 久热久热在线精品观看| 十八禁高潮呻吟视频| 自拍欧美九色日韩亚洲蝌蚪91| 我的女老师完整版在线观看| 午夜久久久在线观看| 国产精品欧美亚洲77777| 亚洲精品久久午夜乱码| 啦啦啦视频在线资源免费观看| 国产在视频线精品| 国产黄色视频一区二区在线观看| 国产一级毛片在线| 一个人免费看片子| 熟女av电影| 国产欧美亚洲国产| 女性生殖器流出的白浆| 亚洲欧美精品自产自拍| 汤姆久久久久久久影院中文字幕| 成人黄色视频免费在线看| 国产极品粉嫩免费观看在线 | 精品久久国产蜜桃| 天美传媒精品一区二区| 最近手机中文字幕大全| 97精品久久久久久久久久精品| 久久久久久久国产电影| 国产成人精品一,二区| 日日摸夜夜添夜夜添av毛片| 成人亚洲精品一区在线观看| 满18在线观看网站| 亚洲天堂av无毛| 一区二区av电影网| 精品久久国产蜜桃| 久久 成人 亚洲| 国产精品99久久99久久久不卡 | 国产成人午夜福利电影在线观看| 91精品三级在线观看| 99视频精品全部免费 在线| 日韩av在线免费看完整版不卡| 少妇人妻 视频| 多毛熟女@视频| 毛片一级片免费看久久久久| 欧美精品亚洲一区二区| 亚洲国产欧美日韩在线播放| 又黄又爽又刺激的免费视频.| 久热这里只有精品99| 国产一区二区三区综合在线观看 | av网站免费在线观看视频| 欧美人与性动交α欧美精品济南到 | 欧美精品一区二区免费开放| 国产精品国产三级国产av玫瑰| 人人澡人人妻人| 我要看黄色一级片免费的| 天堂俺去俺来也www色官网| 国产深夜福利视频在线观看| 另类亚洲欧美激情| 波野结衣二区三区在线| 久久久午夜欧美精品| 午夜av观看不卡| 国产精品秋霞免费鲁丝片| 夫妻午夜视频| 午夜91福利影院| 99热这里只有是精品在线观看| 日日啪夜夜爽| 亚洲国产精品999| 亚洲第一区二区三区不卡| 欧美日韩视频精品一区| 啦啦啦在线观看免费高清www| 日本爱情动作片www.在线观看| 人妻人人澡人人爽人人| 国产精品99久久99久久久不卡 | 国产亚洲精品第一综合不卡 | 夫妻性生交免费视频一级片| 亚洲精品,欧美精品| 亚洲伊人久久精品综合| 久久影院123| 夜夜骑夜夜射夜夜干| 蜜桃国产av成人99| 精品一区二区三卡| 色94色欧美一区二区| 久久免费观看电影| 草草在线视频免费看| 男女高潮啪啪啪动态图| 亚洲国产最新在线播放| 欧美3d第一页| 秋霞伦理黄片| 国产有黄有色有爽视频| 69精品国产乱码久久久| 亚洲av福利一区| 亚洲精品av麻豆狂野| 狂野欧美白嫩少妇大欣赏| 精品亚洲乱码少妇综合久久| 人人妻人人爽人人添夜夜欢视频| 国产免费一级a男人的天堂| 一区二区av电影网| 精品一区在线观看国产| 午夜福利影视在线免费观看| 美女视频免费永久观看网站| 日韩视频在线欧美| 久久鲁丝午夜福利片| 永久网站在线| 国产一区二区三区av在线| 十分钟在线观看高清视频www| 校园人妻丝袜中文字幕| 少妇人妻精品综合一区二区| 少妇精品久久久久久久| 免费大片黄手机在线观看| 久久久亚洲精品成人影院| 少妇被粗大的猛进出69影院 | 18禁观看日本| 免费看不卡的av| 性高湖久久久久久久久免费观看| 伊人亚洲综合成人网| 亚洲精品日韩av片在线观看| 一本—道久久a久久精品蜜桃钙片| 夫妻午夜视频| 午夜老司机福利剧场| 久久精品久久久久久久性| 伊人久久国产一区二区| 在线精品无人区一区二区三| 一级,二级,三级黄色视频| 五月玫瑰六月丁香| av电影中文网址| 香蕉精品网在线| 国产色爽女视频免费观看| 久久人人爽人人爽人人片va| 爱豆传媒免费全集在线观看| 久久影院123| 中文乱码字字幕精品一区二区三区| 最近2019中文字幕mv第一页| 丰满饥渴人妻一区二区三| 日日啪夜夜爽| 99re6热这里在线精品视频| 国产成人精品无人区| 亚洲美女视频黄频| 欧美日韩视频高清一区二区三区二| 亚洲国产最新在线播放| 天堂俺去俺来也www色官网| 日韩电影二区| 免费观看在线日韩| 国产国语露脸激情在线看| 18禁在线播放成人免费| 欧美精品亚洲一区二区| 国产日韩欧美在线精品| 成人亚洲欧美一区二区av| 大香蕉久久成人网| 亚洲av电影在线观看一区二区三区| 少妇 在线观看| 80岁老熟妇乱子伦牲交| 国产精品久久久久久久电影| 视频在线观看一区二区三区| 考比视频在线观看| 全区人妻精品视频| 欧美精品一区二区免费开放| 亚洲欧洲精品一区二区精品久久久 | 欧美日韩一区二区视频在线观看视频在线| 如日韩欧美国产精品一区二区三区 | 亚洲精品国产色婷婷电影| 在现免费观看毛片| av在线app专区| 亚洲成色77777| 日韩制服骚丝袜av| 午夜免费鲁丝| 51国产日韩欧美| 久久国产精品男人的天堂亚洲 | 久久久亚洲精品成人影院| 午夜激情久久久久久久| 一区二区三区乱码不卡18| 国产乱人偷精品视频| 久久久国产精品麻豆| 欧美日韩精品成人综合77777| 在线观看美女被高潮喷水网站| 青春草国产在线视频| 久热这里只有精品99| 精品人妻偷拍中文字幕| 啦啦啦在线观看免费高清www| 老司机亚洲免费影院| 久久久a久久爽久久v久久| 老司机影院毛片| 亚洲国产精品专区欧美| 中文字幕av电影在线播放| 久久99热6这里只有精品| 久久狼人影院| 纵有疾风起免费观看全集完整版| 97超视频在线观看视频| 一级毛片我不卡| 丝袜喷水一区| 成年美女黄网站色视频大全免费 | 自线自在国产av| 黄色配什么色好看| 免费人妻精品一区二区三区视频| 精品久久国产蜜桃| 狂野欧美激情性bbbbbb| 午夜免费观看性视频| 亚洲av国产av综合av卡| 精品久久久久久久久av| 丰满迷人的少妇在线观看| 韩国av在线不卡| 91精品一卡2卡3卡4卡| 日产精品乱码卡一卡2卡三| 国产日韩一区二区三区精品不卡 | 九草在线视频观看| 亚洲国产av影院在线观看| 久久午夜福利片| 久久精品国产亚洲av天美| 亚洲中文av在线| 搡女人真爽免费视频火全软件| 毛片一级片免费看久久久久| av线在线观看网站| 插逼视频在线观看| 99久久中文字幕三级久久日本| 99九九在线精品视频| 国产日韩欧美亚洲二区| 看免费成人av毛片| 永久网站在线| 啦啦啦在线观看免费高清www| 9色porny在线观看| 久久精品国产亚洲网站| 久久久久久久久久成人| 国产不卡av网站在线观看| 满18在线观看网站| 精品久久久久久久久av| 国产黄色视频一区二区在线观看| 97超碰精品成人国产| 国产午夜精品久久久久久一区二区三区| 丰满迷人的少妇在线观看| 婷婷色av中文字幕| 18+在线观看网站| 欧美日韩成人在线一区二区| 天美传媒精品一区二区| 狠狠精品人妻久久久久久综合| 伦理电影大哥的女人| 极品人妻少妇av视频| 免费观看的影片在线观看| 亚洲三级黄色毛片| 日韩av不卡免费在线播放| √禁漫天堂资源中文www| 少妇熟女欧美另类| 99re6热这里在线精品视频| 99热国产这里只有精品6| 大片免费播放器 马上看| 国产色爽女视频免费观看| 欧美xxⅹ黑人| 欧美另类一区| 久久精品久久久久久久性| 女性生殖器流出的白浆| 亚洲一级一片aⅴ在线观看| 曰老女人黄片| 欧美激情 高清一区二区三区| 亚洲色图 男人天堂 中文字幕 | 亚洲欧洲日产国产| 久久99热6这里只有精品| 欧美日本中文国产一区发布| 久久久久久伊人网av| 久久久久网色| 久久久欧美国产精品| 日本与韩国留学比较| 日日爽夜夜爽网站| 国产亚洲精品第一综合不卡 | 婷婷色综合大香蕉| 能在线免费看毛片的网站| av专区在线播放| 制服诱惑二区| 一本大道久久a久久精品| 80岁老熟妇乱子伦牲交| 如日韩欧美国产精品一区二区三区 | 热re99久久国产66热| 纯流量卡能插随身wifi吗| 五月开心婷婷网| 黑人高潮一二区| 亚洲五月色婷婷综合| 国产欧美亚洲国产| 精品一区二区免费观看| 国产精品蜜桃在线观看| 国产午夜精品久久久久久一区二区三区| av电影中文网址| 中国美白少妇内射xxxbb| 精品国产乱码久久久久久小说| 精品少妇久久久久久888优播| 伊人久久国产一区二区| 欧美精品人与动牲交sv欧美| 青春草亚洲视频在线观看| 晚上一个人看的免费电影| 国产精品久久久久久久电影| 精品国产国语对白av| 免费大片黄手机在线观看| 久久综合国产亚洲精品| 少妇被粗大的猛进出69影院 | 日韩成人av中文字幕在线观看| 97超碰精品成人国产| 国国产精品蜜臀av免费| 两个人免费观看高清视频| 一级片'在线观看视频| 国产高清三级在线| av又黄又爽大尺度在线免费看| 国产日韩欧美亚洲二区| 99久久中文字幕三级久久日本| 亚洲精品乱码久久久v下载方式| 欧美人与性动交α欧美精品济南到 | 国产极品天堂在线| 97精品久久久久久久久久精品| 纵有疾风起免费观看全集完整版| 午夜老司机福利剧场| 国产欧美亚洲国产| 美女福利国产在线| 国产高清不卡午夜福利| 人妻人人澡人人爽人人| 精品国产露脸久久av麻豆| 亚洲色图综合在线观看| 伦理电影大哥的女人| 国产高清有码在线观看视频| 亚洲性久久影院| 久久久久人妻精品一区果冻| 97超碰精品成人国产| a级毛片免费高清观看在线播放| 中文字幕久久专区| 国产一区二区在线观看日韩| 日本欧美国产在线视频| 国产成人午夜福利电影在线观看| 久久精品久久久久久噜噜老黄| 一本大道久久a久久精品| 午夜免费男女啪啪视频观看| 少妇人妻久久综合中文| 午夜激情av网站| 一个人看视频在线观看www免费| 精品久久久久久电影网| 水蜜桃什么品种好| 五月开心婷婷网| 亚洲精品色激情综合| 建设人人有责人人尽责人人享有的| 日韩熟女老妇一区二区性免费视频| 一本—道久久a久久精品蜜桃钙片| 国产精品国产三级国产专区5o| 国产av码专区亚洲av| 亚洲综合色网址| 成人二区视频| 狠狠婷婷综合久久久久久88av| 中文字幕最新亚洲高清| 久久精品国产亚洲av天美| 成人毛片a级毛片在线播放| 天堂8中文在线网| 免费黄频网站在线观看国产| 亚洲精品视频女| 午夜91福利影院| 午夜福利,免费看| 99久久中文字幕三级久久日本| 麻豆乱淫一区二区| 亚洲成色77777| 久久午夜综合久久蜜桃| 亚洲少妇的诱惑av| 欧美亚洲 丝袜 人妻 在线| 好男人视频免费观看在线| 久热这里只有精品99| 搡女人真爽免费视频火全软件| 一级黄片播放器| 老司机影院毛片| 中文字幕最新亚洲高清| 丝袜喷水一区| 在线观看免费日韩欧美大片 | 成人亚洲欧美一区二区av| 国产高清国产精品国产三级| 久久久a久久爽久久v久久| 91aial.com中文字幕在线观看| 日韩免费高清中文字幕av| 一个人看视频在线观看www免费| 国产欧美另类精品又又久久亚洲欧美| 校园人妻丝袜中文字幕| 夜夜爽夜夜爽视频| 欧美日韩视频精品一区| 一级毛片我不卡| 欧美老熟妇乱子伦牲交| 亚洲伊人久久精品综合| 国产片特级美女逼逼视频| 91精品三级在线观看| 国产精品人妻久久久影院| 国产一级毛片在线| 男的添女的下面高潮视频| 免费大片18禁| 青春草视频在线免费观看| 久久精品久久久久久噜噜老黄| 精品人妻熟女av久视频| 波野结衣二区三区在线| 99九九线精品视频在线观看视频| 亚洲欧美色中文字幕在线| 一区在线观看完整版| 国产精品99久久99久久久不卡 | 91午夜精品亚洲一区二区三区| 校园人妻丝袜中文字幕| 中文字幕久久专区| 日韩伦理黄色片| 97精品久久久久久久久久精品| 最近中文字幕2019免费版| 久久精品久久精品一区二区三区| 在线观看免费视频网站a站| 少妇人妻 视频| 日韩 亚洲 欧美在线| 精品国产一区二区三区久久久樱花| 久久影院123| 一级毛片aaaaaa免费看小| 国产熟女午夜一区二区三区 | 欧美少妇被猛烈插入视频| 69精品国产乱码久久久| 成人免费观看视频高清| 母亲3免费完整高清在线观看 | 纵有疾风起免费观看全集完整版| 欧美精品国产亚洲| a级毛片黄视频| 亚洲欧美日韩另类电影网站| 在线观看免费视频网站a站| 一级,二级,三级黄色视频| 亚洲av电影在线观看一区二区三区| 国产精品一二三区在线看| 亚洲四区av| 中文字幕久久专区| 国产成人精品久久久久久| 亚洲伊人久久精品综合| 老司机影院成人| 夜夜爽夜夜爽视频| 亚洲精品亚洲一区二区| 国产黄片视频在线免费观看| 亚洲国产精品国产精品| 久久热精品热| 国产精品女同一区二区软件| 欧美日韩亚洲高清精品| 人妻夜夜爽99麻豆av| 精品少妇内射三级| 97超碰精品成人国产| 国产极品粉嫩免费观看在线 | 国产精品久久久久成人av| 大又大粗又爽又黄少妇毛片口| 天天躁夜夜躁狠狠久久av| 亚洲欧洲精品一区二区精品久久久 | a级毛色黄片| 欧美日本中文国产一区发布| 自拍欧美九色日韩亚洲蝌蚪91| 丰满饥渴人妻一区二区三| 国产精品一区二区在线观看99| 97超视频在线观看视频| 久久久久精品性色| 免费看光身美女| 国产成人免费观看mmmm| 曰老女人黄片| 国产在线免费精品| 色哟哟·www| 91精品国产九色| 你懂的网址亚洲精品在线观看| 精品久久久久久久久av| 天堂俺去俺来也www色官网| 国产免费现黄频在线看| 国产精品免费大片| 亚洲精品国产av蜜桃| 日本免费在线观看一区| 成人18禁高潮啪啪吃奶动态图 | 亚洲精品久久成人aⅴ小说 | 色哟哟·www| 亚洲不卡免费看| 伊人亚洲综合成人网| 亚洲精品av麻豆狂野| 亚洲欧美色中文字幕在线| 日本与韩国留学比较| 国产亚洲精品久久久com| 在线播放无遮挡| 久久久久久久久大av| 一边摸一边做爽爽视频免费| 久久久国产精品麻豆| 九色成人免费人妻av| av线在线观看网站| 日产精品乱码卡一卡2卡三| 午夜老司机福利剧场| 日韩欧美一区视频在线观看| 欧美bdsm另类| 熟女人妻精品中文字幕| 久久久久久久久久久免费av| 国产片内射在线| 亚洲精品一区蜜桃| 蜜臀久久99精品久久宅男| 日韩免费高清中文字幕av| 久久亚洲国产成人精品v| 日本wwww免费看| 亚洲av免费高清在线观看| 国产精品不卡视频一区二区| 亚洲综合色惰| 一级黄片播放器| 成年美女黄网站色视频大全免费 | 久久久久久久亚洲中文字幕| 2022亚洲国产成人精品| 美女cb高潮喷水在线观看| 高清视频免费观看一区二区| 狂野欧美激情性xxxx在线观看| 久久国产精品男人的天堂亚洲 | 搡女人真爽免费视频火全软件| 韩国高清视频一区二区三区| 91久久精品电影网| 亚洲欧美日韩卡通动漫| 精品少妇黑人巨大在线播放| 多毛熟女@视频| 精品久久久噜噜| 久久久久久久久大av| 内地一区二区视频在线| 亚洲色图 男人天堂 中文字幕 | 丰满迷人的少妇在线观看| 夜夜爽夜夜爽视频| 亚洲一级一片aⅴ在线观看| 久久久久久久久久久丰满| 精品国产乱码久久久久久小说| 亚洲av综合色区一区| 午夜日本视频在线| av电影中文网址| 国产欧美亚洲国产| 免费大片18禁| 99久久精品一区二区三区| 中国三级夫妇交换| 嘟嘟电影网在线观看| 亚洲国产精品一区二区三区在线| 人人澡人人妻人| 亚洲欧美成人精品一区二区| www.色视频.com| 亚洲精品中文字幕在线视频| 国产黄色免费在线视频| 国产乱来视频区| 男女啪啪激烈高潮av片| 亚洲精品国产av成人精品| 国产精品一区二区在线观看99| 久久久久人妻精品一区果冻| 精品一区二区三卡| 免费播放大片免费观看视频在线观看| 麻豆精品久久久久久蜜桃| 我的老师免费观看完整版| 成人无遮挡网站| 在线精品无人区一区二区三| 国产精品欧美亚洲77777| 少妇精品久久久久久久| 亚洲美女视频黄频| 国产精品蜜桃在线观看| 国产黄色免费在线视频| 国产成人aa在线观看| 男女免费视频国产| 亚洲国产最新在线播放| 色网站视频免费| 久久 成人 亚洲| 亚洲欧美成人精品一区二区| 亚洲内射少妇av| 久久久国产欧美日韩av| 日日撸夜夜添| 亚洲图色成人| 亚洲熟女精品中文字幕| 999精品在线视频| 91国产中文字幕| 三级国产精品片| 午夜福利网站1000一区二区三区| 夜夜骑夜夜射夜夜干| 中文字幕人妻丝袜制服| 最后的刺客免费高清国语| 色94色欧美一区二区| 免费观看性生交大片5| 中国美白少妇内射xxxbb| 9色porny在线观看| 欧美变态另类bdsm刘玥| 麻豆乱淫一区二区| 午夜av观看不卡| 欧美亚洲日本最大视频资源| freevideosex欧美| a 毛片基地| 国产成人精品无人区| 大香蕉97超碰在线| 亚洲欧美精品自产自拍| 丰满少妇做爰视频| 精品酒店卫生间| 91久久精品国产一区二区成人| kizo精华| 黑人猛操日本美女一级片| 国产色婷婷99| 一本色道久久久久久精品综合| 亚洲不卡免费看| 久久久久精品久久久久真实原创| 婷婷色av中文字幕| 免费高清在线观看视频在线观看| 国产黄色视频一区二区在线观看| 亚洲精品aⅴ在线观看| 免费观看的影片在线观看| 久久国产精品大桥未久av| 丝袜美足系列| 国产在线视频一区二区| 久久久久久久精品精品|