聯盟鏈的可信度驗證方法、系統、裝置及設備
本說明書實施例關於資訊技術領域,尤其關於一種聯盟鏈的可信度驗證方法、系統、裝置及設備。
在聯盟鏈中,常常存在功能差異很大的多個節點,例如,在一條著作權存證的聯盟鏈上,可能包括作品發佈節點、版權登記節點、版權轉讓節點以及公證節點等等。而基於用戶的不同需求,和用戶對接的往往只是其中的一個節點,該節點可以認為是該用戶的對接節點。例如,用戶透過某節點所發佈的應用程式APP發佈了一項交易,並透過該對接節點將該交易進行了聯盟鏈存證,以後再進行驗證時也往往是透過該對接節點進行。
在這個過程中,用戶本身難以感知整個聯盟鏈的其它節點,通常也對於其它節點並無多大興趣。在用戶體驗中,交易的完成和驗證彷彿是對接節點為中心的,進而,用戶就會對該對接節點以及聯盟鏈的可信度產生疑慮。
基於此,需要一種可以讓用戶對聯盟鏈的可信度進行驗證的方案。
針對現有技術中用戶在對於聯盟鏈的可信驗證中,體驗不佳的問題,為提高用戶體驗,本說明書實施例提供一種可以讓用戶對聯盟鏈的可信度進行驗證的方案,該方案的第一方面,包括一種聯盟鏈的可信度驗證方法,在客戶端生成交易,並透過對接節點將所述交易上鏈存證後,包括:
客戶端獲取聯盟鏈中的多個節點地址;
根據所述多個節點位址,發送交易位置查詢請求至所述多個節點,其中,所述交易位置查詢請求中包含所述交易的摘要雜湊;
任一節點接收所述位置查詢請求,基於所述摘要雜湊各自查詢所述摘要雜湊所對應的交易在所述聯盟鏈中的位置資訊,並返回所述位置查詢結果至客戶端;
客戶端基於所述多個節點分別返回的位置查詢結果的一致程度,驗證包含所述交易資訊的聯盟鏈的可信度。
第二方面,本說明書實施例還提供一種聯盟鏈的可信度驗證方法,在用戶生成交易,並透過對接節點將所述交易上鏈存證後,包括:
獲取聯盟鏈中的多個節點地址;
根據所述多個節點位址,發送交易位置查詢請求至所述多個節點,其中,所述交易位置查詢請求中包含所述交易的摘要雜湊;
根據所述多個節點分別返回的位置查詢結果的一致程度,驗證包含所述交易資訊的聯盟鏈的可信度。
第三方面,本說明書實施例還提供一種聯盟鏈中的請求處理方法,在節點為聯盟鏈中的節點時,包括:
所述節點確定自身節點用戶的用戶標識,並從確定出由用戶標識組成的白名單,其中,所述用戶標識用於標識用戶身份,以及,用於標識和該用戶對接的節點;
發送白名單至聯盟鏈中的其它節點,以便其它節點根據所述白名單確定是否執行非自身節點用戶所發送的請求,所述請求包括交易位置查詢請求或者簡單支付驗證SPV請求,所述請求中包含目標交易的摘要雜湊。
與第一方面對應的,本說明書實施例還提供一種聯盟鏈的可信度驗證系統,包括客戶端和聯盟鏈網路,所述聯盟鏈網路包括多個節點;在客戶端生成交易,並透過對接節點將所述交易上鏈存證後,
客戶端獲取聯盟鏈中的多個節點地址;根據所述多個節點位址,發送交易位置查詢請求至所述多個節點,其中,所述交易位置查詢請求中包含所述交易的摘要雜湊;
聯盟鏈網路中的任一節點接收所述位置查詢請求,基於所述摘要雜湊各自查詢所述摘要雜湊所對應的交易在所述聯盟鏈中的位置資訊,並返回所述位置查詢結果至客戶端;
客戶端基於所述多個節點分別返回的位置查詢結果的一致程度,驗證包含所述交易資訊的聯盟鏈的可信度。
與第二方面對應的,本說明書實施例還提供一種聯盟鏈的可信度驗證裝置,在用戶生成交易,並透過對接節點將所述交易上鏈存證後,所述裝置包括:
獲取模組,獲取聯盟鏈中的多個節點位址;
發送模組,根據所述多個節點位址,發送交易位置查詢請求至所述多個節點,其中,所述交易位置查詢請求中包含所述交易的摘要雜湊;
接收模組,接收所述多個節點分別返回的位置查詢結果;
驗證模組,根據所述位置查詢結果的一致程度,驗證包含所述交易資訊的聯盟鏈的可信度。
與第三方面對應的,本說明書實施例還提供一種聯盟鏈中的請求處理裝置,位於所述聯盟鏈中的節點上,包括:
確定模組,確定自身節點用戶的用戶標識,並從確定出由用戶標識組成的白名單,其中,所述用戶標識用於標識用戶身份,以及,用於標識和該用戶對接的節點;
發送模組,發送白名單至聯盟鏈中的其它節點,以便其它節點根據所述白名單確定是否執行非自身節點用戶所發送的請求,所述請求包括交易位置查詢請求或者簡單支付驗證SPV請求,所述請求中包含目標交易的摘要雜湊。
本說明書實施例所提供的方案中,在客戶端透過對接節點完成交易上鏈存證之後,針對該交易,客戶端針向聯盟鏈中的多個節點發起交易位置查詢請求,從而可以得到多個節點對於該交易的各自的位置查詢結果。進而,可以基於多個節點的位置查詢結果的一致程度去驗證該聯盟鏈的可信度,提高用戶體驗。
應當理解的是,以上的一般描述和後文的細節描述僅是示例性和解釋性的,並不能限制本說明書實施例。
此外,本說明書實施例中的任一實施例並不需要達到上述的全部效果。
為了使本領域技術人員更好地理解本說明書實施例中的技術方案,下面將結合本說明書實施例中的附圖,對本說明書實施例中的技術方案進行詳細地描述,顯然,所描述的實施例僅僅是本說明書的一部分實施例,而不是全部的實施例。基於本說明書中的實施例,本領域普通技術人員所獲得的所有其他實施例,都應當屬於保護的範圍。
在聯盟鏈中通常包含了多個不同的功能節點,在當前,聯盟鏈常採用的一種架構為,各功能節點分別面向各自的用戶,用戶透過他們感興趣的功能節點接入聯盟鏈。
在本說明書實施例所涉及的聯盟鏈中的節點,可以認為每個節點都參與聯盟鏈網路的路由功能,同時也可以包含其他功能,例如,每個節點都可以參與驗證並傳播交易及區塊資訊,發現並維持與對等節點的連接,以及還可以在本機存放區有完整的聯盟鏈,和一些與聯盟鏈相關的資料。
如圖1所示,圖1為當前聯盟鏈中所涉及的一種架構。在圖1中,聯盟鏈網路中的節點可能都包含有不同的功能,以及,各節點由於提供不同的功能,面向的目標用戶也常常並不相同,在同一聯盟鏈中,各功能節點還經常分別開發自己的應用程式APP讓自身節點用戶進行註冊並接入。而用戶則通常從中選取一個節點對接聯盟鏈,進行交易發佈以及驗證。
以下結合附圖,詳細說明本說明書各實施例提供的技術方案。本說明書實施例的方案的第一方面,如圖2所示,圖2是本說明書實施例提供的系統方面的一種聯盟鏈的可信度驗證方法的流程示意圖,在客戶端生成交易,並透過對接節點將所述交易上鏈存證後,該流程具體包括如下步驟:
S201,客戶端獲取聯盟鏈中的多個節點地址。
對客戶端而言,已知的是對接節點的位址,聯盟鏈中的其它節點位址可以向對接節點請求獲得。也可以透過其它方式獲取,例如,聯盟鏈中的所有節點定時將自己的地址發佈至某公開雲端,客戶端本地保存一張地址清單,並且客戶端定期從該公開雲端獲取所有節點的位址對該地址清單進行更新,從而,可以從該地址清單中隨時選取若干節點位址。透過該方式,可以繞開客戶端的對接節點,提高用戶對於整個聯盟鏈的信任程度。
S203,根據所述多個節點位址,發送交易位置查詢請求至所述多個節點,其中,所述交易位置查詢請求中包含所述交易的摘要雜湊。
由於在用戶完成交易並透過對接節點上鏈存證之後,就會收到一個關於該存證交易的通知消息,通常其中就包括摘要雜湊,並保存於客戶端本地。因此,客戶端總是可以從本地中獲取該摘要雜湊,並將其加入交易位置查詢請求中。
在客戶端方面,可以是在收到該通知消息後,根據用戶的指令發起查詢請求;也可以是,接收到該通知消息即觸發查詢請求。
S205,任一節點接收所述位置查詢請求,基於所述摘要雜湊各自查詢所述摘要雜湊所對應的交易在所述聯盟鏈中的位置資訊,並返回所述位置查詢結果至客戶端。
一個區塊鏈由多個區塊組成,同時,一個區塊中通常包含多個交易。因此,在本說明書實施例中,所述的位置資訊具體指的是該交易被存證時,處於區塊鏈中的哪個區塊上,以及,在該區塊中的什麼位置。
在區塊鏈中,可以有多種方式用來標識不同的區塊,例如,區塊頭雜湊值或者區塊高度(block height)。區塊頭雜湊值即為區塊頭進行雜湊計算而得到的雜湊值,可以用於唯一、明確地標識一個區塊。在區塊鏈中,通常第一個區塊其區塊高度為0,以後每增加一個區塊,區塊高度加1。一個區塊通常有一個明確的區塊高度。因此,區塊頭雜湊值或者區塊高度可以作為區塊中繼資料的一部分,被儲存在節點中一個獨立的資料庫表中,以便於索引和更快地檢索到該區塊。
同時,在一個區塊中,由於通常包含了多個交易,因此,還可以用各交易在該區塊中的位址偏移量來分別標識區塊中的交易。顯而易見,在同一個區塊中,各交易的位址偏移量並不相同。
進而,可以在交易所處的區塊上鏈存證以後,各節點中可以透過維護一張形如(交易摘要雜湊,區塊頭雜湊值,位址偏移量),或者,(交易摘要雜湊,區塊高度,位址偏移量)的資料表,就可以透過交易的摘要雜湊查詢得到對應的區塊標識以及交易在區塊中的位址。換言之,節點可以透過交易的摘要雜湊確定該交易在聯盟鏈中的位置。
當然,由於區塊鏈的具體格式是可以自訂的,在不同的區塊格式下,位置資訊的內容也會有所不同,這並不構成對本方案的限定。此外,需要說明的是,任一節點接收到的請求可以是直接來自於客戶端,也可以是接收聯盟鏈中其它節點所轉發的客戶端請求。
S207,客戶端基於所述多個節點分別返回的位置查詢結果的一致程度,驗證包含所述交易資訊的聯盟鏈的可信度。
每個節點在查詢結束之後,即可以將查詢結果返回客戶端。需要說明的是,該過程可以是一個非同步處理過程,客戶端在發送完查詢請求之後,並不需要即時的回饋結果。因此,客戶端可以等待所有的節點都返回一個查詢結果再進行驗證。
由於一個交易在聯盟鏈中只會有一個確定的位置,因此,聯盟鏈的可信度可以基於查詢結果的一致程度而定。理論上,各節點所返回的位置資訊應該完全相同。一個較為嚴格的驗證方式即為,若所有位置查詢結果均一致,則該聯盟鏈為可信的。當然,由於各種網路原因、設備原因等等,可以容許一定的偏差。例如,根據返回的所有結果的對一致程度進行計算,若返回的結果中不存在占比超過95%的相同查詢結果,則認為聯盟度可信度為0,否則,將所述相同結果的占比作為該聯盟鏈的可信度。
進一步地,當確定聯盟鏈不可信時,還可以發出警報。具體的,警報消息中可以指出各節點的查詢結果不一致的程度是多少(即有多少個或者多少比例與多數結果不一致),以及,具體的給出與多數結果不一致的節點和該類節點的查詢結果。
本說明書實施例所提供的方案中,在用戶透過對接節點完成交易上鏈存證之後,針對該交易,用戶針向聯盟鏈中的多個節點發起交易位置查詢請求,從而可以得到多個節點對於該交易的各自的查詢結果。進而,可以基於多個節點的位置查詢結果的一致程度去驗證該聯盟鏈的可信度,提高用戶體驗。
在一種具體的實施方式下,客戶端獲取聯盟鏈中的多個節點位址,可以是客戶端隨機獲取聯盟鏈中的多個節點位址,隨機獲取節點位址驗證一方面可以使得驗證結果更加公正,另一方面,也可以使得用戶的請求平均的流向向各節點,避免某些用戶多的節點負荷太重。又或者,客戶端獲取聯盟鏈中包含所述對接節點位址的多個節點位址,在這種方式下,用戶可以首先選取一批節點位址,然後再將對接節點的地址加入即可。加入對接節點進行驗證時,在返回的結果中也包含對接節點的驗證結果,可以使得驗證更具有針對性,提高用戶體驗。
在一種具體的實施方式下,用戶還可以根據所述多個節點位址,發送簡單支付驗證SPV請求至所述多個節點,其中,所述SPV請求中包含所述交易的摘要雜湊。任一節點基於所述摘要雜湊,各自驗證所述摘要雜湊所對應的交易是否是處於所述聯盟鏈中,生成SPV驗證結果,並返回所述SPV驗證結果至客戶端。客戶端基於所述多個節點分別返回的SPV驗證結果,驗證包含所述交易資訊的聯盟鏈的可信度。
在區塊鏈的每個區塊中,包含了記錄於該區塊的所有交易,並且可以默克爾Merkle樹表示。區塊中所有的交易將資料雜湊化,然後將雜湊值儲存至相應的葉子節點中。樹中的一個葉子節點表徵區塊中存在一筆對應的交易。為了證明區塊中存在某個特定的目標交易,一個節點只需要計算log2
N個雜湊值,形成一條從目標交易到樹根的Merkle路徑即可。
節點在進行簡單支付驗證(Simplified Payment Verification,SPV)時,不必保存所有交易也不必下載整個區塊。節點可以僅僅保存區塊頭,並透過目標交易的雜湊和Merkle路徑來驗證目標交易是否存在於該區塊中。換言之,各節點的SPV驗證結果是一個二值結果,要麼為“是”,要麼為“否”。
由於一個交易在聯盟鏈中要麼存在,要麼不存在,理論上,當聯盟鏈沒有問題時,各節點所返回的SPV驗證結果應該完全相同。因此,一個較為嚴格的可信度確認方式為,若所有SPV驗證結果均一致為“是”,則確認該聯盟鏈是可信的,否則是不可信的。當然,由於各種網路原因、設備原因等等,可以容許一定的偏差。例如,設定一個閾值,若SPV驗證結果的一致為“是”的程度超過該閾值,則確認該聯盟鏈是可信的。
進一步地,當確認該聯盟鏈不可信時,還可以發出警報。具體的,警報消息中可以指出各節點的查詢結果不一致的程度是多少(即“是”和“否”的結果分別是多少),以及,具體的給出與多數結果不一致的節點和該類節點的查詢結果。以及,還可以根據返回的所有結果的不一致的程度計算一個可信度數值作為參考。例如,若返回的結果中不存在占比超過一定閾值的相同查詢結果,則認為聯盟度可信,否則,則認為聯盟鏈不可信。
需要說明的是,上述基於位置查詢結果的一致性進行驗證的方案,和基於SPV驗證的結果的一致性進行驗證的方案,屬於可以同時分開進行的方案。在實際操作中,二者的驗證結果是分別獨立的。換言之,客戶端可以只選擇一種方式執行驗證,也可以同時選擇兩種方式執行驗證,在同時執行兩種驗證方案時,需要二種驗證方案的結果同時滿足一致性條件,才認為聯盟鏈是可信的。以及,在驗證的過程中,兩種方案的執行不分先後。
由於在聯盟鏈中,各功能節點通常會有自己的對接客戶端以及對應的對接用戶。在本說明書實施例的方案中,各節點經常需要處理來自於非自身節點用戶的請求。
在一種實施方式下,節點可以對於任意連接自己的客戶端所發送的查詢請求或者SPV請求進行處理。在另一種實施方式下,基於聯盟共用的原則,各節點還可以提供查詢服務或者SPV服務給白名單用戶,如果發送請求的客戶端標識在白名單上,則進行處理,否則,不進行處理。
確定白名單用戶的具體方式包括:聯盟鏈中的任一節點確定自身的白名單,並廣播白名單至聯盟鏈中的其它節點,以便其它節點根據所述白名單確定是否執行查詢處理。一種常見的處理方式即為,聯盟鏈中的任一節點將自身的註冊用戶確認為白名單用戶並進行廣播。而其它節點則可以根據請求所包含的客戶端標識是否是白名單用戶,來決定是否進行進一步的處理。此處的白名單可以以節點為最小單元,也可以以用戶為最小單元,各節點所保存的白名單用戶可以相同,也可以不同。節點接收到白名單用戶所發送的請求時才進行處理。
例如,假設聯盟鏈中存在A、B、C、D四個節點,在上述方案中,可以B、C、D節點將A節點的對接用戶確認為白名單用戶,四個節點共同維護;也可以在B節點的白名單用戶中包括A節點的用戶,但是C、D節點的白名單用戶中不包括A節點的用戶。具體的情形可以基於業務情形自行確定。
在較為一般的情形中,政府機構(例如公證處)或者公益機構(例如慈善機構)節點的對接用戶可以是所有聯盟鏈中其它節點的白名單用戶,一個節點的業務夥伴節點的節點用戶也可以是該節點的白名單用戶。進一步,在各節點中還可以根據用戶的來源或者歷史行為資料以及其它因素(例如,第三方信用評估分),對白名單用戶進行許可權分級,例如,最低許可權的白名單用戶只有查詢許可權,更高許可權的白名單用戶可能還可以擁有進一步的其它許可權等等。
在實際應用中,一個聯盟鏈中各節點的用戶數量情形並不相同,有的節點的對接用戶多,有的節點的對接用戶少。通常而言,那些直接面對市場的節點的對接用戶的數量總是多餘一些後方節點的數量。例如,在一個用於保護著作權的聯盟鏈中,面對創作者的作品發佈平臺的註冊用戶,總是遠多於公證處的註冊用戶。
那麼在這種情形下,本說明書實施例的方案中,聯盟中的各節點在對於請求處理上並不是“公平”的。換言之,註冊用戶少的節點總是會接收到超出本身本應負責處理的請求數量,這對於註冊用戶少的節點並不是很有利。
此時,一種可實施的方式為,任一節點在接收到請求並決定處理時,首先做一個判斷,確定該節點確定自身對於其它節點用戶所發起的位置查詢請求的第一處理次數,以及,確認其它節點對於該節點用戶所發起的位置查詢請求的第二處理次數;根據所述第一處理次數和第二處理次數,判斷是否延遲處理所述位置查詢請求。
第一處理次數和第二處理次數可以以一段時間為週期,例如,每天或者每月,定期進行清零,也可以是全部歷史資料的數量統計。判斷是否延遲處理的條件,可以是根據第一處理次數X和第二處理次數Y計算獲得一個貢獻比例值Z與預設閾值進行比較,例如,Z=(X-Y)/Y,或者,Z=X/Y等等。貢獻比例值表徵了一個節點在處理請求時的“自身貢獻”和“請求他人”的比例,一旦貢獻比例值超過了一定閾值,則表示該節點已經處理了較多的請求,則該節點可以延遲處理接收到的其它節點用戶所發送的請求,延遲處理請求可以有效降低弱節點(即註冊用戶少的節點,一般對於大流量的處理能力相對弱)的負荷。由於在本說明書實施例的方案中,客戶端並不需要即時得到驗證結果,因此各節點對於請求的處理可以是非同步的,延遲處理並不會影響本說明書實施例的方案的效果。
在一種實施方式下,客戶端在選取多個節點時,有可能連續多次選到同一個節點,在這種方式下,客戶端可以判斷對該節點的交易位置查詢請求的發送次數是否到達閾值,若是,對該節點延遲發送交易位置查詢請求。發送次數的統計可以統計一段時間內的次數,也可以統計所有的歷史次數。透過上述方式,在客戶端方面即可以避免連續的請求另一節點,降低對另一節點的負荷的影響。
本說明書實施例的方案的第二方面,如圖3所示,圖3為本說明書是實施例所提供的客戶端方面的一種聯盟鏈的可信度驗證方法的流程示意圖,在用戶生成交易,並透過對接節點將所述交易上鏈存證後,包括:
S301,獲取聯盟鏈中的多個節點位址,具體的方式包括,隨機獲取聯盟鏈中的多個節點位址;或者,獲取聯盟鏈中包含所述對接節點位址的多個節點位址。
S303,根據所述多個節點位址,發送交易位置查詢請求至所述多個節點,其中,所述交易位置查詢請求中包含所述交易的摘要雜湊;
S305,根據所述多個節點分別返回的位置查詢結果的一致程度,驗證包含所述交易資訊的聯盟鏈的可信度。
進一步地,上述方法還包括,根據所述多個節點位址,發送簡單支付驗證SPV請求至所述多個節點,其中,所述SPV請求中包含所述交易的摘要雜湊;接收所述多個節點分別返回的SPV驗證結果,驗證包含所述交易資訊的聯盟鏈的可信度。
進一步,所述S303中的發送交易位置查詢請求至所述多個節點,包括,針對所述多個節點中的任一節點,判斷對該節點的交易位置查詢請求的發送次數是否到達閾值,若是,對該節點延遲發送交易位置查詢請求。
本說明書實施例的方案的第三方面,如圖4所示,圖4為本說明書是實施例所提供的一種聯盟鏈的請求處理方法的流程示意圖,在用戶生成交易,並透過對接節點將所述交易上鏈存證後,包括:
S401,所述節點確定自身節點用戶的用戶標識,並從確定出由用戶標識組成的白名單,其中,所述用戶標識用於標識用戶身份,以及,用於標識和該用戶對接的節點;聯盟鏈中可以透過事先協商好的格式,在用戶標識中包含有對接節點的資訊,例如,在用戶標識開頭加上不同的序號用以標識該用戶的對接節點。
S403,發送白名單至聯盟鏈中的其它節點,以便其它節點根據所述白名單確定是否執行非自身節點用戶所發送的請求,所述請求包括交易位置查詢請求或者簡單支付驗證SPV請求,所述請求中包含目標交易的摘要雜湊。
進一步的,上述方法還包括,節點接收任一用戶所發送的請求,所述請求中還包括用戶標識;判斷所述用戶標識是否處於白名單中,若否,不對請求執行處理。
進一步的,上述方法還包括,接收任一用戶所發送的請求,所述請求中還包括用戶標識,當所述用戶標識所對應的用戶非自身節點用戶時:確定該節點對於其它節點用戶所發起的請求的第一處理次數,以及,確認其它節點對於該節點用戶所發起的請求的第二處理次數;根據所述第一處理次數和第二處理次數,判斷是否延遲處理所述請求。
與第一方面對應的,本說明書實施例還提供一種盟鏈的可信度驗證系統,包括客戶端和聯盟鏈網路,所述聯盟鏈網路包括多個節點;在客戶端生成交易,並透過對接節點將所述交易上鏈存證後,
客戶端獲取聯盟鏈中的多個節點地址;根據所述多個節點位址,發送交易位置查詢請求至所述多個節點,其中,所述交易位置查詢請求中包含所述交易的摘要雜湊;
聯盟鏈網路中的任一節點接收所述位置查詢請求,基於所述摘要雜湊各自查詢所述摘要雜湊所對應的交易在所述聯盟鏈中的位置資訊,並返回所述位置查詢結果至客戶端;
客戶端基於所述多個節點分別返回的位置查詢結果的一致程度,驗證包含所述交易資訊的聯盟鏈的可信度。
進一步地,在所述系統中,所述客戶端隨機獲取聯盟鏈中的多個節點地址;或者,客戶端獲取聯盟鏈中包含所述對接節點位址的多個節點位址。
進一步地,在所述系統中,客戶端根據所述多個節點位址,發送簡單支付驗證SPV請求至所述多個節點,其中,所述SPV請求中包含所述交易的摘要雜湊;任一節點基於所述摘要雜湊,各自驗證所述摘要雜湊所對應的交易是否是處於所述聯盟鏈中,生成SPV驗證結果,並返回所述SPV驗證結果至客戶端;客戶端基於所述多個節點分別返回的SPV驗證結果,驗證包含所述交易資訊的聯盟鏈的可信度。
進一步地,在所述系統中,在客戶端獲取聯盟鏈中的多個節點位址之前,聯盟鏈中的任一節點確定自身的白名單,並廣播白名單至聯盟鏈中的其它節點,以便其它節點根據所述白名單確定是否執行查詢處理;所述交易位置查詢請求中包含所述交易的摘要雜湊,包括:所述交易位置查詢請求包含所述交易的摘要雜湊和所述客戶端標識;任一節點接收所述位置查詢請求之後,還包括:確定所述位置查詢請求所包含的客戶端標識是否處於白名單中,若否,不執行查詢處理。
進一步地,在所述系統中,該節點確定自身對於其它節點用戶所發起的位置查詢請求的第一處理次數,以及,確認其它節點對於該節點用戶所發起的位置查詢請求的第二處理次數;根據所述第一處理次數和第二處理次數,判斷是否延遲處理所述位置查詢請求。
進一步地,在所述系統中,所述客戶端,針對所述多個節點中的任一節點,判斷對該節點的交易位置查詢請求的發送次數是否到達閾值,若是,對該節點延遲發送交易位置查詢請求。
與第二方面對應的,本說明書實施例還提供一種聯盟鏈的可信度驗證裝置,在用戶生成交易,並透過對接節點將所述交易上鏈存證後,如圖5所示,圖5為本說明書實施例所提供的一種可信度驗證裝置的結構示意圖,所述裝置包括:
獲取模組501,獲取聯盟鏈中的多個節點位址;
發送模組503,根據所述多個節點位址,發送交易位置查詢請求至所述多個節點,其中,所述交易位置查詢請求中包含所述交易的摘要雜湊;
接收模組505,接收所述多個節點分別返回的位置查詢結果;
驗證模組507,根據所述位置查詢結果的一致程度,驗證包含所述交易資訊的聯盟鏈的可信度。
進一步地,所述獲取模組501,隨機獲取聯盟鏈中的多個節點位址;或者,獲取聯盟鏈中包含所述對接節點位址的多個節點位址。
進一步地,所述發送模組503還用於,根據所述多個節點位址,發送簡單支付驗證SPV請求至所述多個節點,其中,所述SPV請求中包含所述交易的摘要雜湊;所述接收模組505,接收所述多個節點分別返回的SPV驗證結果;所述驗證模組507,根據所述SPV驗證結果,驗證包含所述交易資訊的聯盟鏈的可信度。
進一步地,所述發送模組503,針對所述多個節點中的任一節點,判斷對該節點的交易位置查詢請求的發送次數是否到達閾值,若是,對該節點延遲發送交易位置查詢請求。
與第三方面對應的,本說明書實施例還提供一種聯盟鏈中的請求處理裝置,位於所述聯盟鏈中的節點上,如圖6所示,圖6為本說明書實施例所提供的一種請求處理裝置的結構示意圖,所述裝置包括:
確定模組601,確定自身節點用戶的用戶標識,並從確定出由用戶標識組成的白名單,其中,所述用戶標識用於標識用戶身份,以及,用於標識和該用戶對接的節點;
發送模組603,發送白名單至聯盟鏈中的其它節點,以便其它節點根據所述白名單確定是否執行非自身節點用戶所發送的請求,所述請求包括交易位置查詢請求或者簡單支付驗證SPV請求,所述請求中包含目標交易的摘要雜湊。
進一步地,所述裝置還包括,接收模組605,接收任一用戶所發送的請求,所述請求中還包括用戶標識;判斷模組607,判斷所述用戶標識是否處於白名單中,若否,不對請求執行處理。
進一步地,所述接收模組605,接收任一用戶所發送的請求,所述請求中還包括用戶標識,當所述用戶標識所對應的用戶非自身節點用戶時,所述確定模組601還用於,確定該節點對於其它節點用戶所發起的請求的第一處理次數,以及,確認其它節點對於該節點用戶所發起的請求的第二處理次數;所述判斷模組607還用於,根據所述第一處理次數和第二處理次數,判斷是否延遲處理所述請求。
本說明書實施例還提供一種電腦設備,其至少包括記憶體、處理器及儲存在記憶體上並可在處理器上運行的電腦程式,其中,處理器執行所述程式時實現圖3所示的聯盟鏈的可信度驗證方法。
本說明書實施例還提供一種電腦設備,其至少包括記憶體、處理器及儲存在記憶體上並可在處理器上運行的電腦程式,其中,處理器執行所述程式時實現圖4所示的聯盟鏈中的請求處理方法。
圖7示出了本說明書實施例所提供的一種更為具體的計算設備硬體結構示意圖,該設備可以包括:處理器1010、記憶體1020、輸入/輸出介面1030、通訊介面1040和匯流排1050。其中處理器1010、記憶體1020、輸入/輸出介面1030和通訊介面1040透過匯流排1050實現彼此之間在設備內部的通訊連接。
處理器1010可以採用通用的CPU(Central Processing Unit,中央處理器)、微處理器、應用專用積體電路(Application Specific Integrated Circuit,ASIC)、或者一個或多個積體電路等方式實現,用於執行相關程式,以實現本說明書實施例所提供的技術方案。
記憶體1020可以採用ROM(Read Only Memory,唯讀記憶體)、RAM(Random Access Memory,隨機存取記憶體)、靜態存放裝置,動態儲存裝置設備等形式實現。記憶體1020可以儲存作業系統和其他應用程式,在透過軟體或者韌體來實現本說明書實施例所提供的技術方案時,相關的程式碼保存在記憶體1020中,並由處理器1010來調用執行。
輸入/輸出介面1030用於連接輸入/輸出模組,以實現資訊輸入及輸出。輸入輸出/模組可以作為元件配置在設備中(圖中未示出),也可以外接於設備以提供相應功能。其中輸入裝置可以包括鍵盤、滑鼠、觸控式螢幕、麥克風、各類感測器等,輸出設備可以包括顯示器、揚聲器、振動器、指示燈等。
通訊介面1040用於連接通訊模組(圖中未示出),以實現本設備與其他設備的通訊交互。其中通訊模組可以透過有線方式(例如USB、網線等)實現通訊,也可以透過無線方式(例如移動網路、WIFI、藍牙等)實現通訊。
匯流排1050包括一通路,在設備的各個元件(例如處理器1010、記憶體1020、輸入/輸出介面1030和通訊介面1040)之間傳輸資訊。
需要說明的是,儘管上述設備僅示出了處理器1010、記憶體1020、輸入/輸出介面1030、通訊介面1040以及匯流排1050,但是在具體實施過程中,該設備還可以包括實現正常運行所必需的其他元件。此外,本領域的技術人員可以理解的是,上述設備中也可以僅包含實現本說明書實施例方案所必需的組件,而不必包含圖中所示的全部元件。
本說明書實施例還提供一種電腦可讀儲存媒體,其上儲存有電腦程式,該程式被處理器執行時實現圖3所示的聯盟鏈的可信度驗證方法。
本說明書實施例還提供另一種電腦可讀儲存媒體,其上儲存有電腦程式,該程式被處理器執行時實現圖4所示的聯盟鏈中的請求處理方法。
電腦可讀媒體包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀指令、資料結構、程式的模組或其他資料。電腦的儲存媒體的例子包括,但不限於相變記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可擦除可程式設計唯讀記憶體(EEPROM)、快閃記憶體或其他記憶體技術、唯讀光碟唯讀記憶體(CD-ROM)、數位多功能光碟(DVD)或其他光學儲存、磁盒式磁帶,磁帶磁片儲存或其他磁性存放裝置或任何其他非傳輸媒體,可用於儲存可以被計算設備訪問的資訊。按照本文中的界定,電腦可讀媒體不包括暫存電腦可讀媒體(transitory media),如調製的資料信號和載波。
透過以上的實施方式的描述可知,本領域的技術人員可以清楚地瞭解到本說明書實施例可借助軟體加必需的通用硬體平臺的方式來實現。基於這樣的理解,本說明書實施例的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟體產品的形式體現出來,該電腦軟體產品可以儲存在儲存媒體中,如ROM/RAM、磁碟、光碟等,包括若干指令用以使得一台電腦設備(可以是個人電腦,伺服器,或者網路設備等)執行本說明書實施例各個實施例或者實施例的某些部分所述的方法。
上述實施例闡明的系統、方法、模組或單元,具體可以由電腦晶片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為電腦,電腦的具體形式可以是個人電腦、膝上型電腦、行動電話、相機電話、智慧型電話、個人數位助理、媒體播放機、導航設備、電子郵件收發設備、遊戲控制台、平板電腦、可穿戴設備或者這些設備中的任意幾種設備的組合。
本說明書中的各個實施例均採用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於方法實施例而言,由於其基本相似於方法實施例,所以描述得比較簡單,相關之處參見方法實施例的部分說明即可。以上所描述的方法實施例僅僅是示意性的,其中所述作為分離部件說明的模組可以是或者也可以不是物理上分開的,在實施本說明書實施例方案時可以把各模組的功能在同一個或多個軟體和/或硬體中實現。也可以根據實際的需要選擇其中的部分或者全部模組來實現本實施例方案的目的。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解並實施。
以上所述僅是本說明書實施例的具體實施方式,應當指出,對於本技術領域的普通技術人員來說,在不脫離本說明書實施例原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本說明書實施例的保護範圍。
501:獲取模組
503:發送模組
505:接收模組
507:驗證模組
601:確定模組
603:發送模組
605:接收模組
607:判斷模組
1010:處理器
1020:記憶體
1030:輸入/輸出介面
1040:通訊介面
1050:匯流排
為了更清楚地說明本說明書實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本說明書實施例中記載的一些實施例,對於本領域普通技術人員來講,還可以根據這些附圖獲得其他的附圖。
圖1為當前聯盟鏈中所涉及的一種架構示意圖;
圖2是本說明書實施例提供的系統方面的一種聯盟鏈的可信度驗證方法的流程示意圖;
圖3為本說明書是實施例所提供的客戶端方面的一種聯盟鏈的可信度驗證方法的流程示意圖;
圖4為本說明書是實施例所提供的一種聯盟鏈中的請求處理方法的流程示意圖;
圖5為本說明書實施例所提供的一種可信度驗證裝置的結構示意圖;
圖6為本說明書實施例所提供的一種請求處理裝置的結構示意圖;
圖7是用於配置本說明書實施例方法的一種設備的結構示意圖。