本公開涉及區(qū)塊鏈技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)查詢方法、裝置及節(jié)點設(shè)備。
背景技術(shù):
區(qū)塊鏈是由區(qū)塊鏈網(wǎng)絡(luò)中所有節(jié)點共同參與維護的去中心化分布式數(shù)據(jù)庫系統(tǒng),它是由一系列基于密碼學(xué)方法產(chǎn)生的數(shù)據(jù)塊組成,每個數(shù)據(jù)塊即為區(qū)塊鏈中的一個區(qū)塊。根據(jù)產(chǎn)生時間的先后順序,區(qū)塊被有序地鏈接在一起,形成一個數(shù)據(jù)鏈條,被形象地稱為區(qū)塊鏈。區(qū)塊鏈有其特有的區(qū)塊產(chǎn)生、交易產(chǎn)生和驗證協(xié)議,具有不可篡改、不可偽造和完全可追溯等安全特性。
區(qū)塊鏈網(wǎng)絡(luò)基于P2P網(wǎng)絡(luò),每個參與交易和區(qū)塊存儲、驗證、轉(zhuǎn)發(fā)的P2P網(wǎng)絡(luò)節(jié)點都是一個區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點。區(qū)塊鏈數(shù)據(jù)對每個節(jié)點是完全公開的,節(jié)點可以隨意查看任何一個區(qū)塊任意一筆交易的信息。
相關(guān)技術(shù)中,當(dāng)查詢者需要查詢區(qū)塊鏈中的數(shù)據(jù)時,若查詢者本身就是區(qū)塊鏈網(wǎng)絡(luò)中的一個節(jié)點,則只要從自己存儲的區(qū)塊鏈副本中進行查詢即可;若查詢者并不是區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點,則需要向區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點發(fā)送查詢請求,以實現(xiàn)數(shù)據(jù)查詢。
由于區(qū)塊鏈網(wǎng)絡(luò)中的單一節(jié)點有被數(shù)據(jù)篡改或黑客攻擊的可能性,因此,若某一節(jié)點的區(qū)塊鏈副本已經(jīng)被篡改了,則查詢者向其發(fā)送查詢請求后會接收到錯誤的查詢結(jié)果。
技術(shù)實現(xiàn)要素:
為克服相關(guān)技術(shù)中存在的問題,本公開提供一種數(shù)據(jù)查詢方法、裝置及節(jié)點設(shè)備。
根據(jù)本公開實施例的第一方面,提供一種數(shù)據(jù)查詢方法,應(yīng)用于區(qū)塊鏈網(wǎng)絡(luò)的區(qū)塊鏈節(jié)點,所述方法包括:
接收查詢請求,確定與所述查詢請求對應(yīng)的待查詢數(shù)據(jù)的安全等級;
根據(jù)所述安全等級確定查詢節(jié)點,所述查詢節(jié)點為區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點;
發(fā)送所述查詢請求給所確定的所述查詢節(jié)點;
接收所述查詢節(jié)點返回的查詢結(jié)果,如果比例最高的查詢結(jié)果滿足預(yù)設(shè)條件,將所述比例最高的查詢結(jié)果作為所述待查詢數(shù)據(jù)對應(yīng)的查詢結(jié)果。
根據(jù)本公開實施例的第二方面,提供一種數(shù)據(jù)查詢方法,應(yīng)用于區(qū)塊鏈網(wǎng)絡(luò)的區(qū)塊鏈節(jié)點,所述方法包括:
根據(jù)目標(biāo)區(qū)塊鏈節(jié)點發(fā)送的查詢請求,確定與所述查詢請求對應(yīng)的待查詢數(shù)據(jù)的安全等級;
根據(jù)所述安全等級確定響應(yīng)所述查詢請求的概率;
當(dāng)根據(jù)所述概率,確定響應(yīng)所述查詢請求時,返回查詢結(jié)果給所述目標(biāo)區(qū)塊鏈節(jié)點。
根據(jù)本公開實施例的第三方面,提供一種數(shù)據(jù)查詢裝置,應(yīng)用于區(qū)塊鏈網(wǎng)絡(luò)的區(qū)塊鏈節(jié)點,所述裝置包括:
安全等級確定模塊,被配置為接收查詢請求,確定與所述查詢請求對應(yīng)的待查詢數(shù)據(jù)的安全等級;
第一查詢節(jié)點確定模塊,被配置為根據(jù)所述安全等級確定查詢節(jié)點,所述查詢節(jié)點為區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點;
第一查詢請求轉(zhuǎn)發(fā)模塊,被配置為發(fā)送所述查詢請求給所確定的所述查詢節(jié)點;
第一查詢結(jié)果確定模塊,被配置為接收所述查詢節(jié)點返回的查詢結(jié)果,如果比例最高的查詢結(jié)果滿足預(yù)設(shè)條件,將所述比例最高的查詢結(jié)果作為所述待查詢數(shù)據(jù)對應(yīng)的查詢結(jié)果。
根據(jù)本公開實施例的第四方面,提供一種數(shù)據(jù)查詢裝置,應(yīng)用于區(qū)塊鏈網(wǎng)絡(luò)的區(qū)塊鏈節(jié)點,所述裝置包括:
安全等級確定模塊,被配置為根據(jù)目標(biāo)區(qū)塊鏈節(jié)點發(fā)送的查詢請求,確定與所述查詢請求對應(yīng)的待查詢數(shù)據(jù)的安全等級;
查詢概率確定模塊,被配置為根據(jù)所述安全等級確定響應(yīng)所述查詢請求的概率;
第一查詢結(jié)果返回模塊,被配置為在根據(jù)所述概率,確定響應(yīng)所述查詢請求時,返回查詢結(jié)果給所述目標(biāo)區(qū)塊鏈節(jié)點。
根據(jù)本公開實施例的第五方面,提供一種計算機程序產(chǎn)品,所述計算機程序產(chǎn)品包含能夠由可編程的裝置執(zhí)行的計算機程序,所述計算機程序具有當(dāng)由所述可編程的裝置執(zhí)行時用于執(zhí)行上述第一方面的方法的代碼部分。
根據(jù)本公開實施例的第六方面,提供一種非臨時性計算機可讀存儲介質(zhì),所述非臨時性計算機可讀存儲介質(zhì)中包括一個或多個程序,所述一個或多個程序用于執(zhí)行上述第一方面所述的方法。
根據(jù)本公開實施例的第七方面,提供一種節(jié)點設(shè)備,包括:
上述第六方面所述的非臨時性計算機可讀存儲介質(zhì);以及
一個或者多個處理器,用于執(zhí)行所述非臨時性計算機可讀存儲介質(zhì)中的程序。
根據(jù)本公開實施例的第八方面,提供一種計算機程序產(chǎn)品,其特征在于,所述計算機程序產(chǎn)品包含能夠由可編程的裝置執(zhí)行的計算機程序,所述計算機程序具有當(dāng)由所述可編程的裝置執(zhí)行時用于執(zhí)行上述第二方面所述的方法的代碼部分。
根據(jù)本公開實施例的第九方面,提供一種非臨時性計算機可讀存儲介質(zhì),所述非臨時性計算機可讀存儲介質(zhì)中包括一個或多個程序,所述一個或多個程序用于執(zhí)行上述第二方面所述的方法。
根據(jù)本公開實施例的第十方面,提供一種節(jié)點設(shè)備,包括:
上述第九方面所述的非臨時性計算機可讀存儲介質(zhì);以及
一個或者多個處理器,用于執(zhí)行所述非臨時性計算機可讀存儲介質(zhì)中的程序。
本公開實施例至少包括以下有益效果:根據(jù)不同安全等級確定不同的查詢策略,避免了單個節(jié)點被攻擊、數(shù)據(jù)被篡改等導(dǎo)致的查詢錯誤;提高查詢結(jié)果的可信度和正確率,防止區(qū)塊鏈數(shù)據(jù)被篡改帶來的查詢錯誤和安全風(fēng)險。
本公開的其他特征和優(yōu)點將在隨后的具體實施方式部分予以詳細說明。
附圖說明
附圖是用來提供對本公開的進一步理解,并且構(gòu)成說明書的一部分,與下面的具體實施方式一起用于解釋本公開,但并不構(gòu)成對本公開的限制。在附圖中:
圖1是本公開一實施例的區(qū)塊鏈網(wǎng)絡(luò)的示意圖;
圖2是本公開一實施例的數(shù)據(jù)查詢方法的流程示意圖;
圖3是本公開另一實施例的數(shù)據(jù)查詢方法的流程示意圖;
圖4是本公開一實施例中候選結(jié)果未滿足預(yù)先條件時的處理流程示意圖;
圖5是本公開一實施例中查詢失敗時,目標(biāo)區(qū)塊鏈節(jié)點發(fā)布信息的示意圖;
圖6是本公開一實施例的數(shù)據(jù)查詢方法的流程示意圖;
圖7是本公開另一實施例的數(shù)據(jù)查詢方法的流程示意圖;
圖8是本公開一實施例的數(shù)據(jù)查詢裝置的框圖;
圖9是本公開另一實施例的數(shù)據(jù)查詢裝置的框圖;
圖10是根據(jù)一示例性實施例示出的一種用于數(shù)據(jù)查詢方法的裝置的框圖。
具體實施方式
在對本公開提供的區(qū)塊鏈權(quán)限控制方法、裝置及節(jié)點設(shè)備進行說明之前,先對本公開各個實施例所涉及的區(qū)塊鏈進行介紹。
本公開實施例中,將區(qū)塊鏈中的數(shù)據(jù)根據(jù)屬性設(shè)置不同安全等級,而不同安全等級的數(shù)據(jù)在查詢時則對應(yīng)不同的查詢節(jié)點隨機抽取比例,進而由相應(yīng)數(shù)量的查詢節(jié)點進行數(shù)據(jù)查詢;并根據(jù)查詢節(jié)點返回的查詢結(jié)果統(tǒng)計是否達到該安全級數(shù)據(jù)的查詢成功判斷閾值,如果達到查詢成功判斷閾值則認為此查詢結(jié)果可信,達不到查詢成功判斷閾值則需要以更高比例或者直接以百分百的比例進行第二次查詢,如果第二次查詢依然達不到相應(yīng)安全級數(shù)據(jù)對應(yīng)的查詢成功判斷閾值,則可進行預(yù)警或由人工及其他方式判定此數(shù)據(jù)的準確性。由此,本公開實施例的數(shù)據(jù)查詢方法、裝置和節(jié)點設(shè)備可提高查詢結(jié)果的可信度和正確率,防止區(qū)塊鏈數(shù)據(jù)被篡改帶來的查詢錯誤和安全風(fēng)險。
本公開實施例的,區(qū)塊鏈數(shù)據(jù)的查詢方法,可應(yīng)用于查詢端不是區(qū)塊鏈中的節(jié)點的場景,也可應(yīng)用于查詢端是區(qū)塊鏈中的節(jié)點的場景,提高查詢結(jié)果的可信度和正確率,防止區(qū)塊鏈數(shù)據(jù)被篡改帶來的查詢錯誤和安全風(fēng)險。
在對本公開提供的數(shù)據(jù)查詢方法、裝置和節(jié)點設(shè)備進行說明之前,先對本公開各個實施例所涉及的區(qū)塊鏈進行介紹。
區(qū)塊鏈節(jié)點:區(qū)塊鏈是由區(qū)塊鏈網(wǎng)絡(luò)中所有節(jié)點共同參與維護的去中心化分布式數(shù)據(jù)庫系統(tǒng),它是由一系列基于密碼學(xué)方法產(chǎn)生的數(shù)據(jù)塊組成,每個數(shù)據(jù)塊即為區(qū)塊鏈中的一個區(qū)塊。根據(jù)產(chǎn)生時間的先后順序,區(qū)塊被有序地鏈接在一起,形成一個數(shù)據(jù)鏈條,被形象地稱為區(qū)塊鏈。下面對區(qū)塊鏈網(wǎng)絡(luò)的一些概念進行介紹。
區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點可以稱為區(qū)塊鏈節(jié)點,其中區(qū)塊鏈網(wǎng)絡(luò)基于P2P(Peer to Peer,對等網(wǎng)絡(luò))網(wǎng)絡(luò),每個參與交易和區(qū)塊存儲、驗證、轉(zhuǎn)發(fā)的P2P網(wǎng)絡(luò)節(jié)點都是一個區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點。
用戶身份:區(qū)塊鏈中的用戶身份可以使用公鑰或者是根據(jù)該公鑰生成的賬戶地址表示,并且公鑰和私鑰是成對出現(xiàn)的,其中私鑰由用戶掌握而不發(fā)布到上述的區(qū)塊鏈網(wǎng)絡(luò)中,公鑰或者上述的賬戶地址可隨意發(fā)布在區(qū)塊鏈網(wǎng)絡(luò)中。其中,公鑰可以通過特定的哈希和編碼后成為上述的賬戶地址。值得一提的是,用戶身份和區(qū)塊鏈節(jié)點不存在一一對應(yīng)關(guān)系,用戶可以在任意一個區(qū)塊鏈節(jié)點上使用自己的私鑰。
區(qū)塊鏈數(shù)據(jù)寫入:由區(qū)塊鏈節(jié)點通過向區(qū)塊鏈網(wǎng)絡(luò)發(fā)布交易(Transaction)實現(xiàn)向區(qū)塊鏈寫入數(shù)據(jù)。該交易包括:區(qū)塊鏈節(jié)點按照預(yù)設(shè)的交易數(shù)據(jù)格式對生成的交易數(shù)據(jù)包,以及利用該區(qū)塊鏈節(jié)點自己的私鑰對該交易數(shù)據(jù)包進行的數(shù)字簽名,該數(shù)字簽名用于證明該區(qū)塊鏈節(jié)點的用戶的身份;而后,該交易被發(fā)布到區(qū)塊鏈網(wǎng)絡(luò)后,被區(qū)塊鏈網(wǎng)絡(luò)中的“礦工”(即執(zhí)行PoW(Proof Of Work,工作證明)共識競爭機制的區(qū)塊鏈節(jié)點)記錄入?yún)^(qū)塊鏈中產(chǎn)生的新區(qū)塊,并將該新區(qū)塊發(fā)布到區(qū)塊鏈網(wǎng)絡(luò)中,在該新區(qū)塊以及該新區(qū)塊所記錄的交易其他區(qū)塊鏈節(jié)點驗證通過和接受后,該新區(qū)塊所記錄的交易即被寫入?yún)^(qū)塊鏈。其中,區(qū)塊鏈中的新區(qū)塊是由上述的“礦工”通過執(zhí)行PoW或PoS等共識競爭機制而定期產(chǎn)生的,因此產(chǎn)生新區(qū)塊的時間間隔通常和上述的預(yù)設(shè)技術(shù)要求相關(guān),通過設(shè)置不同的預(yù)設(shè)技術(shù)要求可以改變區(qū)塊鏈產(chǎn)生新區(qū)塊的時間間隔。
參見圖1,為本公開一實施例的區(qū)塊鏈網(wǎng)絡(luò)的示意圖。
該區(qū)塊鏈網(wǎng)絡(luò)100中包括:一個或多個區(qū)塊鏈節(jié)點101,這些區(qū)塊鏈節(jié)點101可以各種形式來實施,例如,可以為手機、智能電話、筆記本電腦、數(shù)字廣播接收器、PDA(個人數(shù)字助理)、PAD(平板電腦)、PMP(便攜式多媒體播放器)、服務(wù)器、礦機等。
在一個實施例中,區(qū)塊鏈中的每個區(qū)塊包括區(qū)塊頭和區(qū)塊主體。區(qū)塊主體保存交易數(shù)據(jù)。交易數(shù)據(jù)通過默克爾樹進行保存。默克爾樹根的哈希值存儲到區(qū)塊頭中。區(qū)塊頭至少包括:上一區(qū)塊頭的哈希值、默克爾樹根的哈希值、時間戳和區(qū)塊號等。
交易數(shù)據(jù)可為任何類型的數(shù)據(jù),包括但不限于:各種類型的統(tǒng)計數(shù)據(jù)(例如,人口數(shù)據(jù)、醫(yī)療數(shù)據(jù)等),各種類型的貨幣交易數(shù)據(jù)(例如,轉(zhuǎn)賬交易數(shù)據(jù)),以及各種類型的請求數(shù)據(jù)(例如,查詢請求、節(jié)點加入請求等)等。
本公開實施例中,為了保證信息查詢的安全性,將對區(qū)塊鏈數(shù)據(jù)按照數(shù)據(jù)屬性進行安全等級設(shè)置,不同的安全等級對應(yīng)不同的查詢策略,提高數(shù)據(jù)查詢的安全性和準確率。
參見表1,為本公開一實施例的不同安全等級的區(qū)塊鏈數(shù)據(jù)與不同的查詢策略的對應(yīng)關(guān)系。
表1
其中,查詢節(jié)點比例是指,查詢節(jié)點數(shù)與區(qū)塊鏈節(jié)點總數(shù)的比值,如式(1)所示。在本公開的一實施例中,查詢節(jié)點為響應(yīng)查詢請求的節(jié)點,或接收到查詢請求的節(jié)點。
其中,n為查詢節(jié)點數(shù),N為區(qū)塊鏈網(wǎng)絡(luò)中的區(qū)塊鏈節(jié)點總數(shù)。
查詢成功判定閾值是指,查詢節(jié)點返回的查詢結(jié)果中,比例最高的查詢結(jié)果的數(shù)量與查詢節(jié)點總數(shù)的比值,如式(2)所示。
其中,m為比例最高的查詢結(jié)果的數(shù)量。
應(yīng)理解,由于區(qū)塊鏈中可能存在一些查詢節(jié)點因關(guān)機或死機等異常造成無法響應(yīng)任何請求的情況,公式(1)和公式(2)中的n包括了這些本應(yīng)響應(yīng)查詢請求,返回查詢結(jié)果,但由于異常未返回查詢結(jié)果的查詢節(jié)點以及返回查詢結(jié)果的查詢節(jié)點的總數(shù)。
在本公開的一實施例中,可根據(jù)區(qū)塊鏈數(shù)據(jù)所屬的類別,確定其安全等級。第一安全等級的區(qū)塊鏈數(shù)據(jù)可為與個人信息相關(guān)的數(shù)據(jù)、貨幣交易數(shù)據(jù)等;第二安全等級的區(qū)塊鏈數(shù)據(jù)可為各種類型的統(tǒng)計數(shù)據(jù);第三安全等級的區(qū)塊鏈數(shù)據(jù)可為各種類型的請求數(shù)據(jù)(例如,查詢請求、節(jié)點加入請求等)。應(yīng)理解,區(qū)塊鏈數(shù)據(jù)的安全等級可根據(jù)實際情況進行設(shè)定,并不限于這里所給出的示例。
在另一些實施例中,在新建區(qū)塊時,確定要寫入到區(qū)塊鏈的數(shù)據(jù)的安全等級。將數(shù)據(jù)的安全等級與數(shù)據(jù)一起寫入到區(qū)塊鏈中。由此,在進行數(shù)據(jù)查詢時,可從區(qū)塊鏈中查詢到數(shù)據(jù)的安全等級。
上述表1所示的區(qū)塊鏈數(shù)據(jù)的安全等級與查詢策略的對應(yīng)關(guān)系被存儲到區(qū)塊鏈的一區(qū)塊中。當(dāng)區(qū)塊鏈節(jié)點接收到查詢請求時,可根據(jù)查詢請求,確定待查詢數(shù)據(jù),并從區(qū)塊鏈的區(qū)塊中查詢區(qū)塊鏈數(shù)據(jù)的安全等級與查詢策略的對應(yīng)關(guān)系,確定待查詢數(shù)據(jù)的查詢策略。
參見圖2,為本公開一實施例的數(shù)據(jù)查詢方法的流程示意圖。該方法包括以下步驟:
在步驟201中,接收查詢請求,確定與查詢請求對應(yīng)的待查詢數(shù)據(jù)的安全等級。
在步驟202中,根據(jù)安全等級確定查詢節(jié)點。
在步驟203中,發(fā)送查詢請求給所確定的查詢節(jié)點。
在步驟204中,接收查詢節(jié)點返回的查詢結(jié)果,如果比例最高的查詢結(jié)果滿足預(yù)設(shè)條件,將比例最高的查詢結(jié)果作為待查詢數(shù)據(jù)對應(yīng)的查詢結(jié)果。
以下將結(jié)合圖3至圖5對本公開實施例的數(shù)據(jù)查詢方法進行介紹。
參見圖3,在步驟301中,目標(biāo)區(qū)塊鏈節(jié)點根據(jù)查詢請求,確定待查詢數(shù)據(jù)的安全等級。
在一個實施例中,當(dāng)要進行數(shù)據(jù)查詢時,查詢端生成查詢請求,并將查詢請求發(fā)送給目標(biāo)區(qū)塊鏈節(jié)點。這里的查詢端為非區(qū)塊鏈網(wǎng)絡(luò)中的電子設(shè)備。
在另一實施例中,查詢請求由目標(biāo)區(qū)塊鏈節(jié)點自己生成,即該目標(biāo)區(qū)塊鏈節(jié)點即為查詢端。
查詢請求中包括以下信息中的至少一者:交易哈希、賬戶地址和查詢關(guān)鍵字。
當(dāng)查詢請求中包括交易哈希時,確定的待查詢數(shù)據(jù)可包括:交易哈希對應(yīng)的交易是否生效、貨幣交易數(shù)據(jù)等。在一個實施例中,當(dāng)查詢請求中包括交易哈希時,將待查詢數(shù)據(jù)的安全等級確定為第一安全等級。
當(dāng)查詢請求中包括賬戶地址時,確定的待查詢數(shù)據(jù)可包括:賬戶地址對應(yīng)的賬戶的信息、賬戶地址對應(yīng)的賬戶的交易記錄等。在一個實施例中,當(dāng)查詢請求中包括賬戶地址時,將待查詢數(shù)據(jù)的安全等級確定為第一安全等級。
當(dāng)查詢請求中包括查詢關(guān)鍵字時,確定的待查詢數(shù)據(jù)可包括:與關(guān)鍵字相對應(yīng)的數(shù)據(jù)。在一個實施例中,可根據(jù)關(guān)鍵字,確定待查詢數(shù)據(jù)的安全等級,當(dāng)關(guān)鍵字包括:賬戶、交易等信息時,將待查詢數(shù)據(jù)的安全等級確定為第一安全等級;當(dāng)關(guān)鍵字未包括賬戶、交易等信息時,將待查詢數(shù)據(jù)的安全等級確定為第二安全等級或其它等級。
由此,本公開實施例,可實現(xiàn)根據(jù)查詢請求,確定待查詢數(shù)據(jù)的安全等級。
在步驟302中,目標(biāo)區(qū)塊鏈節(jié)點根據(jù)待查詢數(shù)據(jù)的安全等級,確定查詢策略。
在本公開的一實施例中,可從存儲有上述表1所示的對應(yīng)關(guān)系的區(qū)塊中,查詢安全等級對應(yīng)的查詢策略。
在步驟303中,目標(biāo)區(qū)塊鏈節(jié)點根據(jù)安全等級對應(yīng)的查詢策略,確定查詢節(jié)點。
在步驟304中,目標(biāo)區(qū)塊鏈節(jié)點向查詢節(jié)點轉(zhuǎn)發(fā)查詢請求。
在本公開的一實施例中,每個區(qū)塊鏈節(jié)點均保存有區(qū)塊鏈網(wǎng)絡(luò)中的所有節(jié)點的地址信息,并在有新節(jié)點加入?yún)^(qū)塊鏈網(wǎng)絡(luò)和有節(jié)點退出區(qū)塊鏈網(wǎng)絡(luò)時,更新所保存的地址信息。由此,目標(biāo)區(qū)塊鏈節(jié)點可根據(jù)存儲的區(qū)塊鏈節(jié)點的地址信息,例如IP地址信息,隨機選擇和查詢策略相對應(yīng)個數(shù)的區(qū)塊鏈節(jié)點作為查詢節(jié)點,并根據(jù)區(qū)塊鏈節(jié)點的IP地址,進行查詢請求的轉(zhuǎn)發(fā)。例如,根據(jù)查詢策略確定查詢節(jié)點比例為w1%時,在區(qū)塊鏈網(wǎng)絡(luò)的節(jié)點中隨機選擇w1%×N個節(jié)點作為查詢節(jié)點,根據(jù)其IP地址,向這w1%×N個查詢節(jié)點發(fā)送查詢請求。
應(yīng)理解,目標(biāo)區(qū)塊鏈節(jié)點所確定的查詢節(jié)點中可包括自身,且包括自身時,無需進行查詢請求的轉(zhuǎn)發(fā)。
在步驟305中,目標(biāo)區(qū)塊鏈節(jié)點接收查詢節(jié)點返回查詢結(jié)果。
接收到查詢請求的查詢節(jié)點,根據(jù)查詢請求進行查詢,獲得查詢結(jié)果,并將查詢結(jié)果返回給目標(biāo)區(qū)塊鏈節(jié)點。在一個實施例中,目標(biāo)區(qū)塊鏈節(jié)點在轉(zhuǎn)發(fā)查詢請求時,將自己的地址信息與查詢請求一起進行轉(zhuǎn)發(fā),由此,查詢節(jié)點在獲取到查詢結(jié)果時,可根據(jù)目標(biāo)區(qū)塊鏈節(jié)點的地址信息,將查詢結(jié)果返回給目標(biāo)區(qū)塊鏈節(jié)點。
查詢節(jié)點根據(jù)查詢請求獲取查詢結(jié)果時:當(dāng)查詢請求中包括交易哈希時,查詢節(jié)點根據(jù)交易哈希,確定待查詢數(shù)據(jù)所在的區(qū)塊,并從相應(yīng)的區(qū)塊中獲取數(shù)據(jù),以及將獲取的數(shù)據(jù)作為查詢結(jié)果返回給目標(biāo)區(qū)塊鏈節(jié)點。
在一些實施例中,查詢節(jié)點根據(jù)交易哈希,對交易哈希對應(yīng)的交易進行驗證,即根據(jù)交易哈希,在區(qū)塊鏈中進行查詢,判斷交易是否被記錄到某個區(qū)塊中,并且根據(jù)區(qū)塊在區(qū)塊鏈中的位置,確定該區(qū)塊得到了多少確認。由此,查詢結(jié)果包括交易驗證結(jié)果,該交易驗證結(jié)果至少包括:交易是否已被記錄到區(qū)塊中,以及得到的確認區(qū)塊數(shù)。
當(dāng)查詢請求中包括賬戶地址時,查詢節(jié)點根據(jù)賬戶地址,確定賬戶地址所對應(yīng)的區(qū)塊,并從相應(yīng)的區(qū)塊中獲取數(shù)據(jù),以及將獲取的數(shù)據(jù)作為查詢結(jié)果返回給目標(biāo)區(qū)塊鏈節(jié)點。
當(dāng)查詢請求中包括查詢關(guān)鍵字時,查詢節(jié)點根據(jù)查詢關(guān)鍵字,對區(qū)塊鏈進行遍歷,獲得與關(guān)鍵字相對應(yīng)的數(shù)據(jù),以及將與關(guān)鍵字相對應(yīng)的數(shù)據(jù)作為查詢結(jié)果返回給目標(biāo)區(qū)塊鏈節(jié)點。
在步驟306中,目標(biāo)區(qū)塊鏈節(jié)點根據(jù)查詢節(jié)點返回的查詢結(jié)果,確定候選結(jié)果。
目標(biāo)區(qū)塊鏈節(jié)點接收查詢節(jié)點返回的查詢結(jié)果,并將不同查詢結(jié)果進行統(tǒng)計,將比例最高的查詢結(jié)果作為候選結(jié)果。例如,若返回的查詢結(jié)果數(shù)為100個,其中有85個查詢結(jié)果都為A,則將A為比例最高的查詢結(jié)果,將其作為候選結(jié)果。
在步驟307中,當(dāng)候選結(jié)果滿足預(yù)設(shè)條件時,將候選結(jié)果作為待查詢數(shù)據(jù)對應(yīng)的查詢結(jié)果。
在一個實施例中,預(yù)設(shè)條件為:返回的查詢結(jié)果為候選結(jié)果的查詢節(jié)點數(shù)與查詢節(jié)點總數(shù)的比值大于或等于待查詢數(shù)據(jù)對應(yīng)的查詢成功判斷閾值。由此,目標(biāo)區(qū)塊鏈節(jié)點將返回的查詢結(jié)果為候選結(jié)果的查詢節(jié)點數(shù)與查詢節(jié)點總數(shù)相比,當(dāng)比值大于或等于待查詢數(shù)據(jù)對應(yīng)的查詢策略中的查詢成功判定閾值時,即將候選結(jié)果作為待查詢數(shù)據(jù)對應(yīng)的查詢結(jié)果。
在本公開的實施例中,并不是所有的查詢節(jié)點都會返回查詢結(jié)果,例如,查詢節(jié)點可能由于異常(例如,被非法控制,被篡改,關(guān)機或故障等)未返回查詢結(jié)果,但比值的計算中,將返回的查詢結(jié)果為候選結(jié)果的查詢節(jié)點數(shù)與查詢節(jié)點總數(shù)相比,從而使得未返回查詢結(jié)果的查詢節(jié)點對查詢結(jié)果會產(chǎn)生影響,提高查詢結(jié)果的可參考性,降低查詢風(fēng)險。
參見圖4,當(dāng)候選結(jié)果未滿足預(yù)設(shè)條件時,則重新進行查詢。在本公開的一實施例中,重新進行查詢時,對查詢節(jié)點的數(shù)量進行調(diào)整,以提高查詢結(jié)果的可信度和正確率。
在步驟401中,目標(biāo)區(qū)塊鏈節(jié)點按照第一預(yù)設(shè)比例增加查詢節(jié)點的數(shù)量。
在本公開的實施例中,第一預(yù)設(shè)比例可設(shè)置為10%-50%。在一些實施例中,若第一次查詢未成功(即候選結(jié)果未滿足預(yù)設(shè)條件),則將查詢節(jié)點的比例提高至100%。
在步驟402中,目標(biāo)區(qū)塊鏈節(jié)點向查詢節(jié)點轉(zhuǎn)發(fā)查詢請求。
在步驟403中,目標(biāo)區(qū)塊鏈節(jié)點接收查詢節(jié)點返回查詢結(jié)果。
在步驟404中,目標(biāo)區(qū)塊鏈節(jié)點根據(jù)查詢節(jié)點返回的查詢結(jié)果,確定候選結(jié)果。
在步驟405中,當(dāng)候選結(jié)果滿足預(yù)設(shè)條件時,將候選結(jié)果作為待查詢數(shù)據(jù)對應(yīng)的查詢結(jié)果。
應(yīng)理解,步驟402-405和上述步驟304-307的實施原理相同,在此不再贅述。且在步驟405中,確定候選結(jié)果是否滿足預(yù)設(shè)條件時,查詢成功判定閾值與步驟307中相同。當(dāng)然,在一些實施例中,也可在步驟405中,將查詢成功判定閾值按比例提高,本公開對此不作限定。
參見圖5,在本公開的實施例中,當(dāng)進行該第二次查詢時,候選結(jié)果仍未滿足預(yù)設(shè)條件,則第二次查詢失敗,目標(biāo)區(qū)塊鏈節(jié)點發(fā)布預(yù)警信息到區(qū)塊鏈網(wǎng)絡(luò)中。該預(yù)警信息中包括:查詢請求中的交易哈希、賬戶地址或查詢關(guān)鍵字。該預(yù)警信息用于提示區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點,查詢請求所對應(yīng)的數(shù)據(jù)出現(xiàn)安全風(fēng)險。在一個實施例中,若查詢端為非區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點設(shè)備,則目標(biāo)區(qū)塊鏈節(jié)點向查詢端發(fā)送提示信息,該提示信息用于提示查詢結(jié)果不可用或查詢無效等。
應(yīng)理解,當(dāng)?shù)诙尾樵兪r,還可進行第三次、第四次……查詢,查詢的次數(shù)可根據(jù)實際情況進行設(shè)置,直到查詢次數(shù)達到最大查詢次數(shù),仍查詢失敗時,按照圖5所示輸出預(yù)警信息和提示信息。每增加一次查詢,可將查詢節(jié)點的比例提高一次。
本公開實施例的數(shù)據(jù)查詢方法,根據(jù)不同安全等級確定不同的查詢策略,避免了單個節(jié)點被攻擊、數(shù)據(jù)被篡改等導(dǎo)致的查詢錯誤;提高查詢結(jié)果的可信度和正確率,防止區(qū)塊鏈數(shù)據(jù)被篡改帶來的查詢錯誤和安全風(fēng)險;可避免因只通過單個節(jié)點進行查詢,而該單個節(jié)點被攻擊或數(shù)據(jù)被篡改,而使查詢到錯誤信息的可能性;另一方面,也避免了所有的查詢請求都采用同一比例查詢節(jié)點進行查詢帶來的資源浪費,以及每次查詢都通過100%的區(qū)塊鏈節(jié)點進行查詢對所有區(qū)塊鏈節(jié)點帶來的負擔(dān),可在保證查詢結(jié)果可靠性的情況下,降低對區(qū)塊鏈并發(fā)性造成的負面影響。
參見圖6,為本公開另一實施例的數(shù)據(jù)查詢方法的流程示意圖。該方法包括以下步驟:
在步驟601中,根據(jù)目標(biāo)區(qū)塊鏈節(jié)點發(fā)送的查詢請求,確定與查詢請求對應(yīng)的待查詢數(shù)據(jù)的安全等級;
在步驟602中,根據(jù)安全等級確定響應(yīng)查詢請求的概率;
在步驟603中,當(dāng)根據(jù)概率,確定響應(yīng)查詢請求時,返回查詢結(jié)果給目標(biāo)區(qū)塊鏈節(jié)點。
在本公開的該實施例中,目標(biāo)區(qū)塊鏈節(jié)點(即接收到查詢端發(fā)送的查詢請求的區(qū)塊鏈節(jié)點或自身產(chǎn)生查詢請求的區(qū)塊鏈節(jié)點)將查詢請求發(fā)布到區(qū)塊鏈網(wǎng)絡(luò)中,使得區(qū)塊鏈網(wǎng)絡(luò)中的所有節(jié)點都可接收到查詢請求。接收到查詢請求的區(qū)塊鏈節(jié)點,可根據(jù)查詢請求所對應(yīng)的查詢策略,確定響應(yīng)查詢請求的概率,從而按照概率進行查詢結(jié)果的返回。
參見圖7,在本公開一實施例的數(shù)據(jù)查詢方法中,在步驟701中,目標(biāo)區(qū)塊鏈節(jié)點將查詢請求發(fā)布到區(qū)塊鏈網(wǎng)絡(luò)中。
與上述圖3所示的實施例相同,查詢請求可為目標(biāo)區(qū)塊鏈節(jié)點自己生成,或非區(qū)塊鏈網(wǎng)絡(luò)中的電子設(shè)備生成。
在該實施例中,目標(biāo)區(qū)塊鏈節(jié)點將查詢請求發(fā)送給與自己連接的區(qū)塊鏈節(jié)點,而這些區(qū)塊鏈節(jié)點又將查詢請求發(fā)送給其它區(qū)塊鏈節(jié)點,使得區(qū)塊鏈網(wǎng)絡(luò)中的每個區(qū)塊鏈節(jié)點都可以接收到查詢請求。
在步驟702中,接收到查詢請求的區(qū)塊鏈節(jié)點,根據(jù)查詢請求,確定待查詢數(shù)據(jù)的安全等級。
在步驟703中,根據(jù)待查詢數(shù)據(jù)的安全等級,確定查詢策略。
應(yīng)理解,步驟702確定待查詢數(shù)據(jù)的安全等級,以及步驟703確定查詢策略的實施原理與上述圖3所示的實施例相同,在此不再贅述。
在步驟704中,區(qū)塊鏈節(jié)點根據(jù)安全等級對應(yīng)的查詢策略,確定響應(yīng)查詢請求的概率。
在本公開的一實施例中,響應(yīng)查詢請求的概率和上述表1中查詢節(jié)點的比例相同,由此,區(qū)塊鏈節(jié)點可從存儲表1所示信息的區(qū)塊中查詢到與不同安全等級對應(yīng)的響應(yīng)查詢請求的概率。
由于安全等級和響應(yīng)查詢請求的概率是相對應(yīng)的,因此,區(qū)塊鏈節(jié)點可根據(jù)安全等級獲得自己需要響應(yīng)查詢請求的概率。在一個實施例中,區(qū)塊鏈節(jié)點獲得響應(yīng)查詢請求的概率后,即以生成隨機數(shù)的方法來確定自身是否響應(yīng)此查詢請求。
例如,若響應(yīng)查詢請求的概率為80%,則隨機數(shù)可以為1至10之間的任意整數(shù)。則可知1,2,3,4,5,6,7,8,9,10這十個數(shù)字在隨機數(shù)組里面出現(xiàn)的概率都是10%。由于響應(yīng)查詢請求的概率為80%,則可設(shè)定如果生成的隨機數(shù)是1或2則不響應(yīng)查詢請求,如果生成的隨機數(shù)是3至10之間的任一數(shù)則響應(yīng)查詢請求。按照此方法,由于每個節(jié)點都有80%的概率會返回結(jié)果,根據(jù)概率論原理,則區(qū)塊鏈網(wǎng)絡(luò)中正常工作的節(jié)點中約80%會響應(yīng)查詢請求,而返回查詢結(jié)果。因為區(qū)塊鏈中可能存在一些節(jié)點因關(guān)機或死機等原因造成無法響應(yīng)任何請求,因此80%的區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點總數(shù)應(yīng)作為之后判定查詢結(jié)果是否滿足查詢成功判定閾值百分比的分母。而響應(yīng)查詢請求的區(qū)塊鏈節(jié)點返回的查詢結(jié)果中占比例最高的查詢結(jié)果的數(shù)量則為判定是否滿足查詢成功判定閾值百分比的分子。
應(yīng)理解,區(qū)塊鏈節(jié)點還可根據(jù)其它的方式,確定是否響應(yīng)查詢請求,例如,若安全等級對應(yīng)的查詢節(jié)點比例高于一預(yù)設(shè)值時,則響應(yīng)查詢請求的方式,本公開實施例對此不作限定。
在步驟705中,響應(yīng)查詢請求的查詢節(jié)點,返回查詢結(jié)果給目標(biāo)區(qū)塊鏈節(jié)點。
應(yīng)理解,查詢節(jié)點獲取查詢結(jié)果的實施過程和上述圖2所示實施例相同,在此不再贅述。
在步驟706中,目標(biāo)區(qū)塊鏈節(jié)點根據(jù)查詢節(jié)點返回的查詢結(jié)果,確定候選結(jié)果。
在步驟707中,當(dāng)候選結(jié)果滿足預(yù)設(shè)條件時,將候選結(jié)果作為待查詢數(shù)據(jù)對應(yīng)的查詢結(jié)果。
應(yīng)理解,步驟706和步驟707和上述圖3所示實施例的步驟306和307的實施過程相同,在此不再贅述。
當(dāng)候選結(jié)果未滿足查詢結(jié)果判別閾值預(yù)設(shè)條件時,則重新進行查詢。在本公開的一實施例中,重新進行查詢時,目標(biāo)區(qū)塊鏈節(jié)點重新將查詢請求發(fā)布到區(qū)塊鏈網(wǎng)絡(luò)中,區(qū)塊鏈節(jié)點若再次接收到相同的查詢請求,則將響應(yīng)查詢請求的概率按照第二預(yù)設(shè)比例增加,第二預(yù)設(shè)比例可設(shè)置為10%-50%。在一些實施例中,若第一次查詢未成功(即候選結(jié)果未滿足預(yù)設(shè)條件),則將再次接收到同樣的查詢請求的區(qū)塊鏈節(jié)點將響應(yīng)查詢請求的概率提高至100%,即區(qū)塊鏈網(wǎng)絡(luò)中的所有接收到查詢請求的節(jié)點均響應(yīng)查詢請求
響應(yīng)查詢請求的查詢節(jié)點將查詢結(jié)果返回給目標(biāo)區(qū)塊鏈節(jié)點。目標(biāo)區(qū)塊鏈節(jié)點根據(jù)查詢節(jié)點返回的查詢結(jié)果,確定候選結(jié)果。
當(dāng)候選結(jié)果滿足預(yù)設(shè)條件時,將候選結(jié)果作為待查詢數(shù)據(jù)對應(yīng)的查詢結(jié)果。
應(yīng)理解,確定候選結(jié)果是否滿足預(yù)設(shè)條件時,查詢成功判定閾值可保持不變,或比例提高,本公開對此不作限和上述圖4所示的實施例相同,當(dāng)進行第二次查詢時,候選結(jié)果仍未滿足預(yù)設(shè)條件,則第二次查詢失敗,目標(biāo)區(qū)塊鏈節(jié)點發(fā)布預(yù)警信息到區(qū)塊鏈網(wǎng)絡(luò)中。該預(yù)警信息中包括:查詢請求中的交易哈希、賬戶地址或查詢關(guān)鍵字。該預(yù)警信息用于提示區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點,查詢請求所對應(yīng)的數(shù)據(jù)出現(xiàn)安全風(fēng)險。在一個實施例中,若查詢端為非區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點設(shè)備,則目標(biāo)區(qū)塊鏈節(jié)點向查詢端發(fā)送提示信息,該提示信息用于提示查詢結(jié)果不可用或查詢無效等。
應(yīng)理解,當(dāng)?shù)诙尾樵兪r,還可進行第三次、第四次……查詢,查詢的次數(shù)可根據(jù)實際情況進行設(shè)置,直到查詢次數(shù)達到最大查詢次數(shù),仍查詢失敗時,按照圖5所示輸出預(yù)警信息和提示信息。每增加一次查詢,可將響應(yīng)查詢請求的概率提高一次。
本公開實施例的數(shù)據(jù)查詢方法,根據(jù)不同安全等級確定不同的查詢策略,避免了單個節(jié)點被攻擊、數(shù)據(jù)被篡改等導(dǎo)致的查詢錯誤;提高查詢結(jié)果的可信度和正確率,防止區(qū)塊鏈數(shù)據(jù)被篡改帶來的查詢錯誤和安全風(fēng)險;可避免因只通過單個節(jié)點進行查詢,而該單個節(jié)點被攻擊或數(shù)據(jù)被篡改,而使查詢到錯誤信息的可能性;另一方面,也避免了所有的查詢請求都采用同一比例查詢節(jié)點進行查詢帶來的資源浪費,以及每次查詢都通過100%的區(qū)塊鏈節(jié)點進行查詢對所有區(qū)塊鏈節(jié)點帶來的負擔(dān),可在保證查詢結(jié)果可靠性的情況下,降低對區(qū)塊鏈并發(fā)性造成的負面影響。
參見圖8,本公開實施例還提供一種數(shù)據(jù)查詢裝置,應(yīng)用于區(qū)塊鏈網(wǎng)絡(luò)的區(qū)塊鏈節(jié)點,該裝置包括:
安全等級確定模塊801,被配置為接收查詢請求,確定與所述查詢請求對應(yīng)的待查詢數(shù)據(jù)的安全等級;
第一查詢節(jié)點確定模塊802,被配置為根據(jù)所述安全等級確定查詢節(jié)點,所述查詢節(jié)點為區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點;
第一查詢請求轉(zhuǎn)發(fā)模塊803,被配置為發(fā)送所述查詢請求轉(zhuǎn)發(fā)給所確定的所述查詢節(jié)點;
第一查詢結(jié)果確定模塊804,被配置為接收所述查詢節(jié)點返回的查詢結(jié)果,如果比例最高的查詢結(jié)果滿足預(yù)設(shè)條件,將所述比例最高的查詢結(jié)果作為所述待查詢數(shù)據(jù)對應(yīng)的查詢結(jié)果。
在一個實施例中,所述安全等級確定模塊801,被配置為在存儲有所述待查詢數(shù)據(jù)與安全等級的對應(yīng)關(guān)系的區(qū)塊中,查詢所述待查詢數(shù)據(jù)對應(yīng)的安全等級。
在一個實施例中,第一查詢結(jié)果確定模塊804包括:
第一候選結(jié)果確定子模塊,被配置為將所述比例最高的查詢結(jié)果作為第一候選結(jié)果;
第一查詢結(jié)果確定子模塊,被配置為在返回的查詢結(jié)果為所述第一候選結(jié)果的查詢節(jié)點數(shù)與查詢節(jié)點總數(shù)的比值大于或等于所述待查詢數(shù)據(jù)對應(yīng)的查詢成功判斷閾值時,將所述比例最高的查詢結(jié)果作為所述待查詢數(shù)據(jù)對應(yīng)的查詢結(jié)果。
在一個實施例中,所述裝置800還包括:
查詢節(jié)點調(diào)整模塊805,被配置為當(dāng)比例最高的查詢結(jié)果未滿足預(yù)設(shè)條件時,對查詢節(jié)點的數(shù)量進行調(diào)整;
第二查詢節(jié)點確定模塊806,被配置為根據(jù)調(diào)整后的查詢節(jié)點數(shù)量,確定查詢節(jié)點;
第二查詢請求轉(zhuǎn)發(fā)模塊807,被配置為將所述查詢請求轉(zhuǎn)發(fā)給所確定的所述查詢節(jié)點;以及
第二查詢結(jié)果確定模塊808,被配置為根據(jù)查詢節(jié)點返回的查詢結(jié)果,確定所述待查詢數(shù)據(jù)對應(yīng)的查詢結(jié)果。
在一個實施例中,第二查詢結(jié)果確定模塊808包括:
第二候選結(jié)果確定子模塊,被配置為將比例最高的查詢結(jié)果作為第二候選結(jié)果;
預(yù)警信息發(fā)布子模塊,被配置為在返回的查詢結(jié)果為所述第二候選結(jié)果的查詢節(jié)點數(shù)與查詢節(jié)點總數(shù)的比值小于所述待查詢數(shù)據(jù)對應(yīng)的查詢成功判斷閾值時,向區(qū)塊鏈網(wǎng)絡(luò)發(fā)布預(yù)警信息。
參見圖9,本公開實施例還提供一種數(shù)據(jù)查詢裝置,應(yīng)用于區(qū)塊鏈網(wǎng)絡(luò)的區(qū)塊鏈節(jié)點,該裝置900包括:
安全等級確定模塊901,被配置為根據(jù)目標(biāo)區(qū)塊鏈節(jié)點發(fā)送的查詢請求,確定與所述查詢請求對應(yīng)的待查詢數(shù)據(jù)的安全等級;
查詢概率確定模塊902,被配置為根據(jù)所述安全等級確定響應(yīng)所述查詢請求的概率;
第一查詢結(jié)果返回模塊903,被配置為在根據(jù)所述概率,確定響應(yīng)所述查詢請求時,返回查詢結(jié)果給所述目標(biāo)區(qū)塊鏈節(jié)點。
在一個實施例中,裝置900還包括:
概率調(diào)整模塊904,被配置為在重復(fù)接收到所述查詢請求時,對所述概率進行調(diào)整;
第二查詢結(jié)果返回模塊905,被配置為在根據(jù)調(diào)整后的概率,確定響應(yīng)所述查詢請求時,返回查詢結(jié)果給所述目標(biāo)區(qū)塊鏈節(jié)點
在一個實施例中,第一查詢結(jié)果返回模塊903包括:
第一區(qū)塊確定子模塊,被配置為在所述查詢請求中包括交易哈希時,根據(jù)所述交易哈希,確定所述待查詢數(shù)據(jù)所在的區(qū)塊;
第一查詢結(jié)果確定子模塊,被配置為從確定的區(qū)塊中獲取數(shù)據(jù),以及將獲取的數(shù)據(jù)作為查詢結(jié)果返回給所述目標(biāo)區(qū)塊鏈節(jié)點。
在一個實施例中,第一查詢結(jié)果返回模塊903包括:
交易驗證子模塊,被配置為在所述查詢請求中包括交易哈希時,根據(jù)所述交易哈希,對交易哈希對應(yīng)的交易進行驗證;
第二查詢結(jié)果確定子模塊,被配置為將驗證結(jié)果作為所述查詢結(jié)果返回給所述目標(biāo)區(qū)塊鏈節(jié)點,所述驗證結(jié)果至少包括:交易是否已被記錄到區(qū)塊中,以及得到的確認區(qū)塊數(shù)。
在一個實施例中,第一查詢結(jié)果返回模塊903包括:
第二區(qū)塊確定子模塊,被配置為當(dāng)所述查詢請求中包括賬戶地址時,根據(jù)所述賬戶地址,確定賬戶地址所對應(yīng)的區(qū)塊;
第三查詢結(jié)果確定子模塊,被配置為從確定的區(qū)塊中獲取數(shù)據(jù),以及將獲取的數(shù)據(jù)作為所述查詢結(jié)果返回給所述目標(biāo)區(qū)塊鏈節(jié)點。
在一個實施例中,第一查詢結(jié)果返回模塊903包括:
第三區(qū)塊確定子模塊,被配置為當(dāng)所述查詢請求中包括查詢關(guān)鍵字時,根據(jù)所述查詢關(guān)鍵字,對區(qū)塊鏈進行遍歷,獲得與關(guān)鍵字相對應(yīng)的數(shù)據(jù);以及
第四查詢結(jié)果確定子模塊,被配置為將與所述關(guān)鍵字相對應(yīng)的數(shù)據(jù)作為所述查詢結(jié)果返回給所述目標(biāo)區(qū)塊鏈節(jié)點。
關(guān)于上述實施例中的裝置,其中各個模塊執(zhí)行操作的具體方式已經(jīng)在有關(guān)該方法的實施例中進行了詳細描述,此處將不做詳細闡述說明。
圖10是根據(jù)一示例性實施例示出的一種用于數(shù)據(jù)查詢方法的裝置1000的框圖,該裝置1000可以是區(qū)塊鏈中的節(jié)點設(shè)備。如圖10所示,該裝置1000可以包括:處理器1001,存儲器1002,多媒體組件1003,輸入/輸出(I/O)接口1004,以及通信組件1005。
其中,處理器1001用于控制該裝置1000的整體操作,以完成上述的數(shù)據(jù)查詢方法的全部或部分步驟。存儲器1002用于存儲操作系統(tǒng),各種類型的數(shù)據(jù)以支持在該裝置1000的操作,這些數(shù)據(jù)的例如可以包括用于在該裝置1000上操作的任何應(yīng)用程序或方法的指令,以及應(yīng)用程序相關(guān)的數(shù)據(jù)。該存儲器1002可以由任何類型的易失性或非易失性存儲設(shè)備或者它們的組合實現(xiàn),例如靜態(tài)隨機存取存儲器(Static Random Access Memory,簡稱SRAM),電可擦除可編程只讀存儲器(Electrically Erasable Programmable Read-Only Memory,簡稱EEPROM),可擦除可編程只讀存儲器(Erasable Programmable Read-Only Memory,簡稱EPROM),可編程只讀存儲器(Programmable Read-Only Memory,簡稱PROM),只讀存儲器(Read-Only Memory,簡稱ROM),磁存儲器,快閃存儲器,磁盤或光盤。
多媒體組件1003可以包括屏幕和音頻組件。其中屏幕例如可以是觸摸屏,音頻組件用于輸出和/或輸入音頻信號。例如,音頻組件可以包括一個麥克風(fēng),麥克風(fēng)用于接收外部音頻信號。所接收的音頻信號可以被進一步存儲在存儲器1002或通過通信組件1005發(fā)送。音頻組件還包括至少一個揚聲器,用于輸出音頻信號。I/O接口1004為處理器1001和其他接口模塊之間提供接口,上述其他接口模塊可以是鍵盤,鼠標(biāo),按鈕等。這些按鈕可以是虛擬按鈕或者實體按鈕。通信組件1005用于該裝置1000與其他設(shè)備之間進行有線或無線通信。無線通信,例如Wi-Fi,藍牙,近場通信(Near Field Communication,簡稱NFC),2G、3G或4G,或它們中的一種或幾種的組合,因此相應(yīng)的該通信組件1005可以包括:Wi-Fi模塊,藍牙模塊,NFC模塊。
在一示例性實施例中,裝置1000可以被一個或多個應(yīng)用專用集成電路(Application Specific Integrated Circuit,簡稱ASIC)、數(shù)字信號處理器(Digital Signal Processor,簡稱DSP)、數(shù)字信號處理設(shè)備(Digital Signal Processing Device,簡稱DSPD)、可編程邏輯器件(Programmable Logic Device,簡稱PLD)、現(xiàn)場可編程門陣列(Field Programmable Gate Array,簡稱FPGA)、控制器、微控制器、微處理器或其他電子元件實現(xiàn),用于執(zhí)行上述的數(shù)據(jù)查詢方法。
在另一示例性實施例中,還提供了一種計算機程序產(chǎn)品,所述計算機程序產(chǎn)品包含能夠由可編程的裝置執(zhí)行的計算機程序,所述計算機程序具有當(dāng)由所述可編程的裝置執(zhí)行時用于執(zhí)行上述的數(shù)據(jù)查詢方法的代碼部分。
在另一示例性實施例中,還提供了一種包括指令的非臨時性計算機可讀存儲介質(zhì),例如包括指令的存儲器1002,上述指令可由裝置1000的處理器1001執(zhí)行以完成上述的數(shù)據(jù)查詢方法。示例地,該非臨時性計算機可讀存儲介質(zhì)可以是ROM、隨機存取存儲器(Random Access Memory,簡稱RAM)、CD-ROM、磁帶、軟盤和光數(shù)據(jù)存儲設(shè)備等。
以上結(jié)合附圖詳細描述了本公開的優(yōu)選實施方式,但是,本公開并不限于上述實施方式中的具體細節(jié),在本公開的技術(shù)構(gòu)思范圍內(nèi),可以對本公開的技術(shù)方案進行多種簡單變型,這些簡單變型均屬于本公開的保護范圍。
流程圖中或在本公開的實施例中以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個或更多個用于實現(xiàn)特定邏輯功能或過程的步驟的可執(zhí)行指令的代碼的模塊、片段或部分,并且本公開實施方式的范圍包括另外的實現(xiàn),其中可以不按所示出或討論的順序,包括根據(jù)所涉及的功能按基本同時的方式或按相反的順序,來執(zhí)行功能,這應(yīng)被本公開的實施例所述技術(shù)領(lǐng)域的技術(shù)人員所理解。
另外需要說明的是,在上述具體實施方式中所描述的各個具體技術(shù)特征,在不矛盾的情況下,可以通過任何合適的方式進行組合。為了避免不必要的重復(fù),本公開對各種可能的組合方式不再另行說明。
此外,本公開的各種不同的實施方式之間也可以進行任意組合,只要其不違背本公開的思想,其同樣應(yīng)當(dāng)視為本公開所公開的內(nèi)容。