本文作者:kaifamei

一種區塊鏈投票數據緩存方法、設備及介質與流程

更新時間:2025-12-25 04:41:31 0條評論

一種區塊鏈投票數據緩存方法、設備及介質與流程



1.本技術涉及區塊鏈技術領域,尤其涉及一種區塊鏈投票數據緩存方法、設備及介質。


背景技術:

2.區塊鏈技術的本質是具備容錯性的復制狀態機,歷史證明是目前部分公鏈的創新時間系統。歷史證明機制使用哈希函數來測量時間的流逝,并確定網絡上發生的各種事件(例如事務請求)的日期。使用歷史證明的鏈節點通過寄存器,既可以了解經過的時間,又可以了解網絡上發生的事件的時間順序。
3.當至少有超過節點數三分之二的非拜占庭節點在同一視圖時,如果不能及時的執行請求,則必須移動到一個新的視圖中,最大化這段時間,并在這段時間中,時間呈指數級增長,直到請求被執行,容易造成網絡節點執行緩慢,不能連續發射新的請求,區塊鏈的延遲性高,不能及時有效的處理請求信息。


技術實現要素:

4.本技術實施例提供了一種區塊鏈投票數據緩存的方法、設備及介質,用于解決如下技術問題:現有的區塊鏈的網絡節點在大量接收請求信息時,容易造成寄存器飽和,不利于連續發射數據信息,具有較高的延遲性,效率比較低。
5.本技術實施例采用下述技術方案:
6.一方面,本技術實施例提供了一種區塊鏈投票數據緩存方法,其特征在于,所述方法包括:將從各個區塊鏈節點中獲取的投票數據存儲到當前校驗節點的緩存隊列中;其中,所述投票數據包括新增投票數據以及歷史投票數據;將所述新增投票數據添加到投票棧中,并更新部分歷史投票數據的鎖定延遲時間;其中,所述歷史投票數據為在所述新增投票數據之前入棧的投票數據;根據所述投票棧中的投票數據的投票時間以及鎖定延遲時間,確定所述投票數據的鎖定過期時間;判斷所述投票棧中投票數據的鎖定過期時間是否小于等于當前時間;若是,則將所述投票數據及所述投票數據之后入棧的投票數據全部進行出棧處理;若否,則在所述緩存隊列中的投票數據的數量大于等于第一預設閾值后,將所述緩存隊列中大于等于第一預設閾值的投票數據進行出列處理;將所述當前校驗節點與其他校驗節點進行同步處理,并將出棧處理的投票數據以及出列處理的投票數據廣播到其他校驗節點中。
7.本技術實施例通過對緩存隊列中投票數據的合理調度,解決了在大量網絡節點接收請求消息時,寄存器容易過飽和的問題,提高了連續發射數據信息的可行性,使延遲能夠大幅度降低,具有更高的處理效率。
8.在一種可行的實施方式中,將從各個區塊鏈節點中獲取的投票數據存儲到當前校驗節點的緩存隊列中,具體包括:通過所述各個區塊鏈節點對應的客戶端,生成所述投票數據;其中,所述投票數據中包括時間戳;遍歷區塊鏈中所有的校驗節點,得到最新空閑節點;
將所述投票數據發送到所述最新空閑節點的所述緩存隊列中,得到所述新增投票數據。
9.在一種可行的實施方式中,遍歷區塊鏈中所有的校驗節點,得到最新空閑節點,具體包括:遍歷所有校驗節點,并計算每個校驗節點的最小集提交的臨界值深度;在所述臨界值深度滿足臨界值規則的校驗節點中,篩選總集鎖定時間大于第二預設閾值的校驗節點作為目標校驗節點;其中,所述臨界值規則為:所述校驗節點的最小集提交的臨界值深度大于等于50%;獲取所述新增投票數據的時間戳,并將所述時間戳與所述目標校驗節點的最新出棧時間進行差值計算,若計算出的差值小于第三預設閾值,則將所述目標校驗節點確定為最新空閑節點。
10.在一種可行的實施方式中,根據所述投票棧中投票數據的投票時間以及鎖定延遲時間,確定所述投票數據的鎖定過期時間,具體包括:根據所述投票數據的時間戳,確定所述投票數據的投票時間;將更新后的所述歷史投票數據的鎖定延遲時間,以及其余投票數據的原始鎖定延遲時間,確定為所述投票數據的最終鎖定延遲時間;將所述投票時間與所述最終鎖定延遲時間相加,得到所述鎖定過期時間。
11.本技術實施例利用鎖定延遲時間迫使校驗節點將機會成本提交給特定的節點,鎖定延遲是在時間單位槽位中測量的,因此校驗節點需要等待一個實時的強制延遲,才能打破對其他節點的提交。
12.在一種可行的實施方式中,將所述新增投票數據添加到投票棧中,并更新部分歷史投票數據的鎖定延遲時間,具體包括:判斷所述歷史投票數據與所述投票棧的棧頂距離;若所述棧頂距離大于所述歷史投票數據中的歷史棧頂距離最大值,則對所述歷史投票數據的鎖定延遲時間進行翻倍處理;若所述棧頂距離小于等于所述歷史投票數據中的所述歷史棧頂距離最大值,則所述歷史投票數據的鎖定延遲時間不變。
13.在一種可行的實施方式中,判斷所述投票棧中投票數據的鎖定過期時間是否小于等于當前時間;若是,則將所述投票數據及所述投票數據之后入棧的投票數據全部進行出棧處理,具體包括:比較所述歷史投票數據中的所述鎖定過期時間與所述新增投票數據的入棧時間值的大小;其中,新增投票數據的入棧時間為所述當前時間;若所述歷史投票數據中的所述鎖定過期時間小于等于所述新增投票數據的入棧時間值,則將所述歷史投票數據以及在所述歷史投票數據之后入棧的投票數據全部進行出棧處理。
14.在一種可行的實施方式中,將所述當前校驗節點與其他校驗節點進行同步處理,具體包括:控制所述當前校驗節點向所述其他校驗節點發送校驗狀態包;其中,所述校驗狀態包中包括所述當前校驗節點的區塊哈希值以及區塊高度值;若所述當前校驗節點的區塊高度高于所述其他校驗節點的區塊高度,則將所述當前校驗節點高于所述其他校驗節點的區塊高度部分進行分批打包,并通過所述校驗狀態包,對所述其他校驗節點進行補齊,得到補齊校驗節點;若所述當前校驗節點的區塊高度不高于所述其他校驗節點的區塊高度,則將所述其他校驗節點確定為共識校驗節點;通過所述補齊校驗節點與所述共識校驗節點,組成同步處理后的其他校驗節點。
15.在一種可行的實施方式中,將出棧處理的投票數據以及出列處理的投票數據廣播到其他校驗節點中,具體包括:對同步處理后的其他校驗節點的區塊頭數據進行區塊哈希計算,并根據計算結果,對同步處理后的每個其他校驗節點進行共識驗證,得到驗證結果;其中,所述計算結果由共識節點索引與區塊簽名組成;若所述驗證結果為通過時,則將所述
出棧處理的投票數據以及出列處理的投票數據進行區塊廣播,以實現所述投票數據廣播到更新后的所述其他校驗節點中。
16.本技術實施例通過同步處理,可以使網絡中每個節點都可以知道其他節點的狀態,而無需與他們通信,類似于異步共識,實現將投票數據進行區塊廣播,有利于更加高效的處理數據信息,并且能夠連續的發射數據信息,延遲性更低。
17.第二方面,本技術實施例還提供了一種區塊鏈投票數據緩存設備,包括:至少一個處理器;以及,與所述至少一個處理器通信連接的存儲器;其中,所述存儲器存儲有能夠被所述至少一個處理器執行的指令,以使所述至少一個處理器能夠執行上述任一實施方式所述的一種區塊鏈投票數據緩存方法。
18.第三方面,本技術實施例還提供了一種非易失性計算機存儲介質,所述存儲介質為非易失性計算機可讀存儲介質,所述非易失性計算機可讀存儲介質存儲有至少一個程序,每個所述程序包括指令,所述指令當被終端執行時,使所述終端執行上述任一實施方式所述的一種區塊鏈投票數據緩存方法。
19.本技術實施例提供了一種區塊鏈投票數據緩存方法、設備及介質,能夠在實用拜占庭容錯時,讓指數級增長的延時可在歷史證明中計算并強制執行,加強了活性而非一致性,解決了在大量網絡節點接收請求消息時,寄存器容易過飽和的問題,提高了連續發射數據信息的可行性,使延遲能夠大幅度降低,具有更高的處理效率。
附圖說明
20.為了更清楚地說明本技術實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本技術中記載的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。在附圖中:
21.圖1為本技術實施例提供的一種區塊鏈投票數據緩存方法流程圖;
22.圖2為本技術實施例提供的一種區塊鏈投票數據緩存設備的結構示意圖。
具體實施方式
23.為了使本技術領域的人員更好地理解本技術中的技術方案,下面將結合本技術實施例中的附圖,對本技術實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本技術一部分實施例,而不是全部的實施例。基于本說明書實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都應當屬于本技術保護的范圍。
24.本技術實施例提供了一種區塊鏈投票數據緩存方法,如圖1所示,區塊鏈投票數據緩存方法具體包括步驟s101-s106:
25.s101、將從各個區塊鏈節點中獲取的投票數據存儲到當前校驗節點的緩存隊列中。
26.具體地,通過各個區塊鏈節點對應的客戶端,生成投票數據。其中,投票數據中包括時間戳。遍歷所有校驗節點,并計算每個校驗節點的最小集提交的臨界值深度。在臨界值深度滿足臨界值規則的校驗節點中,篩選總集鎖定時間大于第二預設閾值的校驗節點
作為目標校驗節點。其中,臨界值規則為:校驗節點的最小集提交的臨界值深度大于等于50%。獲取新增投票數據的時間戳,并將時間戳與目標校驗節點的最新出棧時間進行差值計算,若計算出的差值小于第三預設閾值,則將目標校驗節點確定為最新空閑節點。
27.在一個實施例中,在投票棧索引7處,鎖定延遲時間為256個時間單位。當索引7在集中提交的臨界值深度小于50%時,校驗節點可以拒絕投票并讓棧中索引為0至7的投票過期。每個校驗節點獨立控制提交給校驗節點的風險,使更高頻率的節點將允許校驗節點獲得更多獎勵。
28.作為一種可行的實施方式,首先根據各個改進的實用拜占庭容錯區塊鏈節點對應的客戶端,生成投票數據,然后對區塊鏈中所有的校驗節點進行遍歷,計算每個校驗節點的最小集提交的臨界值深度,并在臨界規則下,對臨界值深度進行篩選,選出總集鎖定時間大于第二預設閾值的校驗節點作為目標校驗節點,然后將新增投票數據的時間戳與目標校驗節點的最新出棧時間進行差值計算,確定出差值并與第三預設閾值進行比較,當小于第三預設閾值時,該目標驗證節點則為最新空閑節點。
29.進一步地,將投票數據發送到最新空閑節點的緩存隊列中,得到新增投票數據。
30.s102、將新增投票數據添加到投票棧中,并更新部分歷史投票數據的鎖定延遲時間。
31.具體地,判斷歷史投票數據與投票棧的棧頂距離。若棧頂距離大于歷史投票數據中的歷史棧頂距離最大值,則對歷史投票數據的鎖定延遲時間進行翻倍處理;其中,投票數據新入棧時,它的鎖定延遲時間為2個時間單位槽位。若棧頂距離小于等于歷史投票數據中的歷史棧頂距離最大值,則歷史投票數據的鎖定延遲時間不變。
32.票序投票時間鎖定延遲鎖定過期時間

426

347

2810

11617
33.表1
34.票序投票時間鎖定延遲鎖定過期時間

9211

2810

11617
35.表2
36.票序投票時間鎖定延遲鎖定過期時間

10212

9413

2810

11617
37.表3
38.在一個實施例中,表1為投票棧初始狀態表,表2為在單位時間9(即當前時間為9)
時投票數據

的入棧表,表3為在單位時間為10(即當前時間為10)時投票數據

的入棧表。如表1、表2和表3所示,當新增投票數據入棧后,把新增投票數據添加到該當前校驗節點的緩存隊列的投票棧中,當

入棧后,此時

與棧頂的距離為0,對應的鎖定延遲時間為2,當

入棧后,也就是在單位時間為10時,

與棧頂的距離變成了歷史新高:1,所以鎖定延遲時間加倍,由單位時間2變為單位時間4,根據表1可得,



,由于到棧頂的距離沒有達到歷史新高,所對應的鎖定延遲也不會改變。
39.s103、根據投票棧中的投票數據的投票時間以及鎖定延遲時間,確定投票數據的鎖定過期時間。
40.具體地,根據投票數據的時間戳,確定投票數據的投票時間。將更新后的歷史投票數據的鎖定延遲時間,以及其余投票數據的原始鎖定延遲時間,確定為投票數據的最終鎖定延遲時間。將投票時間與最終鎖定延遲時間相加,得到鎖定過期時間。
41.作為一種可行的實施方式,首先對投票數據的投票時間進行確定,然后將更新后的歷史投票數據的鎖定延遲時間,以及其余投票數據的原始鎖定延遲時間,統一確定為投票數據的鎖定延遲時間,即最終鎖定延遲時間,然后將投票時間與最終鎖定延遲時間相加,得到鎖定過期時間。
42.在一個實施例中,如表2和表3所示,鎖定過期時間都是由鎖定延遲時間以及投票時間相加所得到的,也就是更新后的歷史投票數據的鎖定延遲時間,以及其余投票數據的原始鎖定延遲時間,統一確定為投票數據的鎖定延遲時間,依然滿足上述鎖定過期時間。
43.s104、判斷投票棧中投票數據的鎖定過期時間是否小于等于當前時間;若是,則將投票數據及投票數據之后入棧的投票數據全部進行出棧處理。
44.具體地,比較歷史投票數據中的鎖定過期時間與新增投票數據的入棧時間值的大小。其中,新增投票數據的入棧時間為當前時間。若歷史投票數據中的鎖定過期時間小于等于新增投票數據的入棧時間值,則將歷史投票數據以及在歷史投票數據之后入棧的投票數據全部進行出棧處理。
45.作為一種可行的實施方式,對歷史投票數據中的鎖定過期時間與新增投票數據的入棧時間值的大小進行比較,也就是,將歷史投票數據中的鎖定過期時間與當前時間進行比較,當歷史投票數據中有鎖定過期時間小于等于新增投票數據的入棧時間值,則將該歷史投票數據以及,在該歷史投票數據之后入棧的新增投票數據進行出棧處理,并且不因新入棧的新增投票數據的鎖定過期時間的大小所影響。
46.票序投票時間鎖定延遲鎖定過期時間

11213

11617
47.表4
48.在一個實施例中,表4為單位時間為10(即當前時間為10)時投票數據

入棧表。結合表2和表1中的內容,當單位時間為9時,

入棧后,此時



的鎖定過期時間分別為6和7,所以,它們的鎖定過期時間要小于時間單位為9時的情況,將



進行出棧處理,由于

的鎖定過期時間依然大于單位時間9,所以

留在棧中。
49.在一個實施例中,結合表3和表4所示,當時間單位為10時,

入棧,而此時雖然



的鎖定過期時間要大于單位時間10,但是

的鎖定過期時間為10,已經不滿足在棧中
的條件,所以要將





進行出棧處理,也就是,最后得到如表4所示的只保留了




50.s105、若投票棧中投票數據的鎖定過期時間大于當前時間,則在緩存隊列中的投票數據的數量大于等于第一預設閾值后,將緩存隊列中大于等于第一預設閾值的投票數據進行出列處理。
51.具體地,當緩存隊列的投票數據的數量大于等于第一預設閾值,將大于等于第一預設閾值的投票數據都要進行出列處理,也就是,當緩存隊列中的投票棧已經存滿時,將所有的投票數據全部進行出列,不保留任何投票數據。
52.作為一種可行的實施例,當投票棧到達32個投票時,可以認為該投票棧處于最大鎖定狀態,當任何鎖定值等于或大于1《《32時,符合上述條件的投票數據都會出列。
53.s106、將當前校驗節點與其他校驗節點進行同步處理,并將出棧處理的投票數據以及出列處理的投票數據廣播到其他校驗節點中。
54.具體地,控制當前校驗節點向其他校驗節點發送校驗狀態包;其中,校驗狀態包中包括當前校驗節點的區塊哈希值以及區塊高度值。若當前校驗節點的區塊高度高于其他校驗節點的區塊高度,則將當前校驗節點高于其他校驗節點的區塊高度部分進行分批打包,并通過校驗狀態包,對其他校驗節點進行補齊,得到補齊校驗節點。若當前校驗節點的區塊高度不高于其他校驗節點的區塊高度,則將其他校驗節點確定為共識校驗節點。通過補齊校驗節點與共識校驗節點,組成同步處理后的其他校驗節點。
55.作為一種可行的實施方式,當前校驗節點向其他校驗節點發送校驗狀態包,來實現對其他校驗節點的同步處理,通過對當前校驗節點的區塊高度與其他校驗節點的區塊高度的判斷,實現對其他校驗節點的同步處理,將當前校驗節點高于其他校驗節點的區塊高度部分進行分批打包,得到補齊校驗節點,當前校驗節點的區塊高度不高于其他校驗節點的區塊高度時,將其他校驗節點確定為共識校驗節點,最后將補齊校驗節點與共識校驗節點共同組成同步處理后的其他校驗節點。
56.進一步地,對同步處理后的其他校驗節點的區塊頭數據進行區塊哈希計算,并根據計算結果,對同步處理后的每個其他校驗節點進行共識驗證,得到驗證結果。其中,計算結果由共識節點索引與區塊簽名組成。若驗證結果為通過時,則將出棧處理的投票數據以及出列處理的投票數據進行區塊廣播,以實現投票數據廣播到更新后的其他校驗節點中。
57.作為一種可行的實施方式,通過對同步處理后的其他校驗節點的區塊頭數據進行區塊哈希計算,對同步處理后的每個其他校驗節點進行共識驗證,然后根據驗證結果,實現對出棧及出列的投票數據進行簽名驗證,來實現將驗證通過后的投票數據廣播到改進的實用拜占庭容錯區塊鏈中的各個區塊中,最后執行來自客戶端的請求操作消息的操作。
58.另外,本技術實施例還提供了一種區塊鏈投票數據緩存設備,如圖2所示,設備具體200包括:
59.至少一個處理器201,以及,與至少一個處理器201通信連接的存儲器202。其中,存儲器202存儲有能夠被至少一個處理器201執行的指令,以使至少一個處理器201能夠執行:
60.將從各個區塊鏈節點中獲取的投票數據存儲到當前校驗節點的緩存隊列中;其中,投票數據包括新增投票數據以及歷史投票數據;
61.將新增投票數據添加到投票棧中,并更新部分歷史投票數據的鎖定延遲時間;其
中,歷史投票數據為在新增投票數據之前入棧的投票數據;
62.根據投票棧中的投票數據的投票時間以及鎖定延遲時間,確定投票數據的鎖定過期時間;
63.判斷投票棧中投票數據的鎖定過期時間是否小于等于當前時間;若是,則將投票數據及投票數據之后入棧的投票數據全部進行出棧處理;
64.若否,則在緩存隊列中的投票數據的數量大于等于第一預設閾值后,將緩存隊列中大于等于第一預設閾值的投票數據進行出列處理;
65.將當前校驗節點與其他校驗節點進行同步處理,并將出棧處理的投票數據以及出列處理的投票數據廣播到其他校驗節點中。
66.本技術實施例還提供了一種可讀性存儲介質一種非易失性計算機存儲介質,其特征在于,所述存儲介質為非易失性計算機可讀存儲介質,所述非易失性計算機可讀存儲介質存儲有至少一個程序,每個所述程序包括指令,所述指令當被終端執行時,使所述終端執行:
67.將從各個區塊鏈節點中獲取的投票數據存儲到當前校驗節點的緩存隊列中;其中,投票數據包括新增投票數據以及歷史投票數據;將新增投票數據添加到投票棧中,并更新部分歷史投票數據的鎖定延遲時間;其中,歷史投票數據為在新增投票數據之前入棧的投票數據;根據投票棧中的投票數據的投票時間以及鎖定延遲時間,確定投票數據的鎖定過期時間;判斷投票棧中投票數據的鎖定過期時間是否小于等于當前時間;若是,則將投票數據及投票數據之后入棧的投票數據全部進行出棧處理;若否,則在緩存隊列中的投票數據的數量大于等于第一預設閾值后,將緩存隊列中大于等于第一預設閾值的投票數據進行出列處理;將當前校驗節點與其他校驗節點進行同步處理,并將出棧處理的投票數據以及出列處理的投票數據廣播到其他校驗節點中。
68.計算機可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現信息存儲。信息可以是計算機可讀指令、數據結構、程序的模塊或其他數據。計算機的存儲介質的例子包括,但不限于相變內存(pram)、靜態隨機存取存儲器(sram)、動態隨機存取存儲器(dram)、其他類型的隨機存取存儲器(ram)、只讀存儲器(rom)、電可擦除可編程只讀存儲器(eeprom)、快閃記憶體或其他內存技術、只讀光盤只讀存儲器(cd-rom)、數字多功能光盤(dvd)或其他光學存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設備或任何其他非傳輸介質,可用于存儲可以被計算設備訪問的信息。按照本文中的界定,計算機可讀介質不包括暫存電腦可讀媒體(transitory media),如調制的數據信號和載波。
69.本技術提出了一種區塊鏈投票數據緩存的方法、設備及介質,使用歷史證明作為實用拜占庭容錯區塊鏈共識算法的網絡時鐘,能夠在節點在拜占庭容錯時,讓指數級增長的延時可在歷史證明中計算并強制執行,加強了活性而非一致性,解決了在大量網絡節點接收請求消息時,寄存器容易過飽和的問題,提高了連續發射數據信息的可行性,使延遲能夠大幅度降低,具有更高的處理效率。
70.本技術中的各個實施例均采用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于設備、非易失性計算機存儲介質實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
71.上述對本技術特定實施例進行了描述。其它實施例在所附權利要求書的范圍內。在一些情況下,在權利要求書中記載的動作或步驟可以按照不同于實施例中的順序來執行并且仍然可以實現期望的結果。另外,在附圖中描繪的過程不一定要求示出的特定順序或者連續順序才能實現期望的結果。在某些實施方式中,多任務處理和并行處理也是可以的或者可能是有利的。
72.以上所述僅為本技術的實施例而已,并不用于限制本技術。對于本領域技術人員來說,本技術的實施例可以有各種更改和變化。凡在本技術實施例的精神和原理之內所作的任何修改、等同替換、改進等,均應包含在本技術的權利要求范圍之內。


文章投稿或轉載聲明

本文鏈接:http://m.newhan.cn/zhuanli/patent-8-1049-0.html

來源:專利查詢檢索下載-實用文體寫作網版權所有,轉載請保留出處。本站文章發布于 2022-11-27 21:27:56

發表評論

驗證碼:
用戶名: 密碼: 匿名發表
評論列表 (有 條評論
2人圍觀
參與討論