本發(fā)明涉及互聯(lián)網(wǎng)金融領(lǐng)域,更具體地,涉及一種區(qū)塊鏈中新區(qū)塊的生成方法及區(qū)塊鏈。
背景技術(shù):
在當今互聯(lián)網(wǎng)金融領(lǐng)域中,利用比特幣的區(qū)塊鏈技術(shù)可以通過比特幣點對點網(wǎng)絡將所有的交易歷史都儲存在區(qū)塊鏈中,從而實現(xiàn)通過網(wǎng)絡記錄每一筆比特幣的交易記錄,并去中心化,同時降低交易記錄被擅自篡改的機率,提高比特幣持有者的安全保障性。
隨著比特幣交易記錄數(shù)量的逐漸增多,區(qū)塊鏈也在持續(xù)延長,目前通常采用的區(qū)塊鏈中新區(qū)塊生成的方法主要為區(qū)塊鏈中的任一節(jié)點生成一個新區(qū)塊,之后通知該區(qū)塊鏈中的其他節(jié)點分別對該新區(qū)塊進行投票,在依據(jù)投票結(jié)果判斷該新區(qū)塊合法時,其他節(jié)點會在各自的存儲空間內(nèi)生成該新區(qū)塊,之后才能由該區(qū)域鏈中的任一節(jié)點繼續(xù)生成下一個新區(qū)塊,最終將生成的多個合法的新區(qū)塊鏈接到區(qū)塊鏈中,以存儲更多的比特幣交易記錄。然而,采用現(xiàn)有的新區(qū)塊生成的方法時,必須在當前新區(qū)塊被全部節(jié)點進行投票并確認合法后,才能繼續(xù)由任一節(jié)點生成下一個新區(qū)塊,從而大大降低了區(qū)塊鏈中生成新區(qū)塊的速度,也進一步影響了區(qū)塊鏈整體的處理效率與吞吐量。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明提供了一種區(qū)塊鏈中新區(qū)塊的生成方法及區(qū)塊鏈,先生成新區(qū)塊,再通知其他節(jié)點進行投票,提高了區(qū)塊鏈中新區(qū)塊的生成速度。
具體技術(shù)方案如下:
一種區(qū)塊鏈中新區(qū)塊的生成方法,應用于區(qū)塊鏈,所述區(qū)塊鏈包含多個節(jié)點,所述方法包括:
當目標節(jié)點的運行狀態(tài)滿足預設條件時,控制所述目標節(jié)點在公共存儲空間生成新區(qū)塊,所述目標節(jié)點為所述區(qū)塊鏈中的任一節(jié)點;
通知所述區(qū)塊鏈中的所有節(jié)點分別對所述新區(qū)塊的合法性進行驗證,并根據(jù)驗證結(jié)果生成相應的投票信息;
對當前各個所述節(jié)點對所述新區(qū)塊的投票信息進行解析,依據(jù)預設規(guī)則,對所述新區(qū)塊的合法性進行選舉,確定所述新區(qū)塊是否為合法區(qū)塊,并對所述新區(qū)塊進行業(yè)務處理。
優(yōu)選的,所述當目標節(jié)點的運行狀態(tài)滿足預設條件時,控制所述目標節(jié)點在公共存儲空間生成新區(qū)塊,包括:
當所述目標節(jié)點接收到的業(yè)務數(shù)據(jù)的數(shù)量超過預設值,和/或所述目標節(jié)點未生成新區(qū)塊的時間超過預設時間時,通過所述目標節(jié)點的節(jié)點信息對所述業(yè)務數(shù)據(jù)進行簽名,得到數(shù)據(jù)簽名;
基于所述節(jié)點信息、所述業(yè)務數(shù)據(jù)和所述數(shù)據(jù)簽名生成區(qū)塊數(shù)據(jù),并將所述區(qū)塊數(shù)據(jù)存儲在公共存儲空間,生成相應的新區(qū)塊。
優(yōu)選的,所述對當前各個所述節(jié)點的投票信息進行解析,依據(jù)預設規(guī)則,對所述新區(qū)塊的合法性進行選舉,確定所述新區(qū)塊是否為合法區(qū)塊,包括:
對當前各個所述節(jié)點對所述新區(qū)塊的投票信息進行解析,得到當前合法票數(shù)和非合法票數(shù);所述投票信息包含所述新區(qū)塊合法信息或所述新區(qū)塊非合法信息;
當所述當前合法票數(shù)或非合法票數(shù)大于所述節(jié)點數(shù)量的一半時,對所述新區(qū)塊的合法性進行選舉,具體為:當所述當前合法票數(shù)大于所述節(jié)點數(shù)量的一半時,確定所述新區(qū)塊為合法區(qū)塊;當所述當前非合法票數(shù)大于所述節(jié)點數(shù)量的一半時,確定所述新區(qū)塊為非合法區(qū)塊。
優(yōu)選的,所述方法還包括:
將各個所述節(jié)點對所述新區(qū)塊的投票信息寫入所述公共存儲空間,生成對所述新區(qū)塊的投票數(shù)據(jù);
將各個所述節(jié)點對所述新區(qū)塊的投票數(shù)據(jù)鏈接到對所述新區(qū)塊的上一個區(qū)塊的投票數(shù)據(jù)上,形成所述目標節(jié)點的投票鏈。
優(yōu)選的,所述方法還包括:
查詢所述目標節(jié)點的最新投票數(shù)據(jù),得到最新生成的所述新區(qū)塊;
從對所述新區(qū)塊的投票數(shù)據(jù)開始遍歷所述目標節(jié)點的投票鏈,根據(jù)所述目標節(jié)點的投票鏈上對每一個區(qū)塊的投票數(shù)據(jù),確定各個所述區(qū)塊是否為合法區(qū)塊,并將合法區(qū)塊加入隊列,直到創(chuàng)世區(qū)塊,得到所述目標節(jié)點上所有的合法區(qū)塊。
一種區(qū)塊鏈,所述區(qū)塊鏈包括:
生成單元,用于當目標節(jié)點的運行狀態(tài)滿足預設條件時,控制所述目標節(jié)點在公共存儲空間生成新區(qū)塊,所述目標節(jié)點為所述區(qū)塊鏈中的任一節(jié)點;
驗證單元,用于通知所述區(qū)塊鏈中的所有節(jié)點分別對所述新區(qū)塊的合法性進行驗證,并根據(jù)驗證結(jié)果生成相應的投票信息;
選舉單元,用于對當前各個所述節(jié)點對所述新區(qū)塊的投票信息進行解析,依據(jù)預設規(guī)則,對所述新區(qū)塊的合法性進行選舉,確定所述新區(qū)塊是否為合法區(qū)塊,并對所述新區(qū)塊進行業(yè)務處理。
優(yōu)選的,所述生成單元包括:
簽名子單元,用于當所述目標節(jié)點接收到的業(yè)務數(shù)據(jù)的數(shù)量超過預設值,和/或所述目標節(jié)點未生成新區(qū)塊的時間超過預設時間時,通過所述目標節(jié)點的節(jié)點信息對所述業(yè)務數(shù)據(jù)進行簽名,得到數(shù)據(jù)簽名;
生成子單元,用于基于所述節(jié)點信息、所述業(yè)務數(shù)據(jù)和所述數(shù)據(jù)簽名生成區(qū)塊數(shù)據(jù),并將所述區(qū)塊數(shù)據(jù)存儲在公共存儲空間,生成相應的新區(qū)塊。
優(yōu)選的,所述選舉單元包括:
解析子單元,用于對當前各個所述節(jié)點對所述新區(qū)塊的投票信息進行解析,得到當前合法票數(shù)和非合法票數(shù);所述投票信息包含所述新區(qū)塊合法信息或所述新區(qū)塊非合法信息;
選舉子單元,用于當所述當前合法票數(shù)或非合法票數(shù)大于所述節(jié)點數(shù)量的一半時,對所述新區(qū)塊的合法性進行選舉,具體為:當所述當前合法票數(shù)大于所述節(jié)點數(shù)量的一半時,確定所述新區(qū)塊為合法區(qū)塊;當所述當前非合法票數(shù)大于所述節(jié)點數(shù)量的一半時,確定所述新區(qū)塊為非合法區(qū)塊。
優(yōu)選的,所述區(qū)塊鏈還包括:
寫入單元,用于將各個所述節(jié)點對所述新區(qū)塊的投票信息寫入所述公共存儲空間,生成對所述新區(qū)塊的投票數(shù)據(jù);將各個所述節(jié)點對所述新區(qū)塊的投票數(shù)據(jù)鏈接到對所述新區(qū)塊的上一個區(qū)塊的投票數(shù)據(jù)上,形成所述目標節(jié)點的投票鏈。
優(yōu)選的,所述區(qū)塊鏈還包括:
查詢單元,用于查詢所述目標節(jié)點的最新投票數(shù)據(jù),得到最新生成的所述新區(qū)塊;從對所述新區(qū)塊的投票數(shù)據(jù)開始遍歷所述目標節(jié)點的投票鏈,根據(jù)所述目標節(jié)點的投票鏈上對每一個區(qū)塊的投票數(shù)據(jù),確定各個所述區(qū)塊是否為合法區(qū)塊,并將合法區(qū)塊加入隊列,直到創(chuàng)世區(qū)塊,得到所述目標節(jié)點上所有的合法區(qū)塊。
相對于現(xiàn)有技術(shù),本發(fā)明的有益效果如下:
本發(fā)明公開的一種區(qū)塊鏈中新區(qū)塊的生成方法及區(qū)塊鏈,當目標節(jié)點的運行狀態(tài)滿足預設條件時,控制所述目標節(jié)點在公共存儲空間生成新區(qū)塊,再通知區(qū)塊鏈中的所有節(jié)點分別對所述新區(qū)塊的合法性進行驗證,并根據(jù)驗證結(jié)果生成相應的投票信息;對當前各個所述節(jié)點對所述新區(qū)塊的投票信息進行解析,依據(jù)預設規(guī)則,對所述新區(qū)塊的合法性進行選舉,確定所述新區(qū)塊是否為合法區(qū)塊,并對所述新區(qū)塊進行業(yè)務處理。本發(fā)明解決了區(qū)塊鏈生成新區(qū)塊需要其他節(jié)點的確認才能生成的問題,提高了區(qū)塊鏈中新區(qū)塊的生成速度,進而提高了區(qū)塊鏈的整體處理效率與吞吐量。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本發(fā)明實施例公開的一種區(qū)塊鏈中新區(qū)塊的生成方法流程圖;
圖2為本發(fā)明實施例公開的一種區(qū)塊鏈中新區(qū)塊的生成方法又一方法流程圖;
圖3為本發(fā)明實施例公開的一種區(qū)塊鏈中新區(qū)塊的生成方法又一方法流程圖;
圖4為本發(fā)明實施例公開的一種區(qū)塊鏈的結(jié)構(gòu)示意圖;
圖5為本發(fā)明實施例公開的一種區(qū)塊鏈的結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
請參閱圖1,本實施例公開了一種區(qū)塊鏈中新區(qū)塊的生成方法,應用于區(qū)塊鏈,所述區(qū)塊鏈包含多個節(jié)點,所述方法具體包括以下步驟:
步驟S101:當目標節(jié)點的運行狀態(tài)滿足預設條件時,控制所述目標節(jié)點在公共存儲空間生成新區(qū)塊,所述目標節(jié)點為所述區(qū)塊鏈中的任一節(jié)點;
具體的,所述步驟S101的具體執(zhí)行過程如下:
當所述目標節(jié)點接收到的業(yè)務數(shù)據(jù)的數(shù)量超過預設值,和/或所述目標節(jié)點未生成新區(qū)塊的時間超過預設時間時,通過所述目標節(jié)點的節(jié)點信息對所述業(yè)務數(shù)據(jù)進行簽名,得到數(shù)據(jù)簽名;
基于所述節(jié)點信息、所述業(yè)務數(shù)據(jù)和所述數(shù)據(jù)簽名生成區(qū)塊數(shù)據(jù),并將所述區(qū)塊數(shù)據(jù)存儲在公共存儲空間,生成相應的新區(qū)塊。
需要說明的是,所述預設條件為:所述目標節(jié)點接收到的業(yè)務數(shù)據(jù)的數(shù)量超過預設值,和/或所述目標節(jié)點未生成新區(qū)塊的時間超過預設時間。所述預設值和預設時間可以根據(jù)實際需要進行預先設定,例如:所述預設值可以為1000,預設時間可以為1分鐘。
還需要說明的是,簽名的目的是保證數(shù)據(jù)不被篡改,簽名后的業(yè)務數(shù)據(jù)沒有任何變化,只會多一個數(shù)據(jù)簽名。若對數(shù)據(jù)進行修改后,對應的數(shù)據(jù)簽名會發(fā)生改變,通過對數(shù)據(jù)進行簽名校驗就可以知道數(shù)據(jù)是否被篡改。所述區(qū)塊數(shù)據(jù)包括:節(jié)點信息、業(yè)務數(shù)據(jù)和數(shù)據(jù)簽名,所述節(jié)點信息為節(jié)點在區(qū)塊鏈中的位置信息。
步驟S102:通知所述區(qū)塊鏈中的所有節(jié)點分別對所述新區(qū)塊的合法性進行驗證,并根據(jù)驗證結(jié)果生成相應的投票信息;
可以理解的是,目標節(jié)點通知區(qū)塊鏈中的所有節(jié)點分別對所述新區(qū)塊的合法性進行驗證,區(qū)塊鏈中的所有節(jié)點都會分別對所述新區(qū)塊的合法性進行驗證,并分別生成一個與各自驗證結(jié)果相對應的投票信息。
具體的,對所述新區(qū)塊的合法性驗證的手段可以有多種,其中對數(shù)據(jù)簽名的驗證為其中可選的一種手段。
所述投票信息包含所述新區(qū)塊合法信息或所述新區(qū)塊非合法信息。
步驟S103:對當前各個所述節(jié)點對所述新區(qū)塊的投票信息進行解析,依據(jù)預設規(guī)則,對所述新區(qū)塊的合法性進行選舉,確定所述新區(qū)塊是否為合法區(qū)塊,并對所述新區(qū)塊進行業(yè)務處理。
具體的,請參閱圖2,步驟S103的具體執(zhí)行過程如下:
步驟S201:對當前各個所述節(jié)點對所述新區(qū)塊的投票信息進行解析,得到當前合法票數(shù)和非合法票數(shù);所述投票信息包含所述新區(qū)塊合法信息或所述新區(qū)塊非合法信息;
可以理解的是,若投票信息為所述新區(qū)塊合法,則所述投票信息對應的是合法票;若投票信息為所述新區(qū)塊非合法,則所述投票信息對應的是非合法票。區(qū)塊鏈中每一個節(jié)點都生成一個對所述新區(qū)塊的投票信息,并對應一個和發(fā)票或非合法票。對當前各個所述節(jié)點對所述新區(qū)塊的投票信息進行解析,就能得到當前合法票數(shù)和非合法票數(shù)。
步驟S202:當所述當前合法票數(shù)或非合法票數(shù)大于所述節(jié)點數(shù)量的一半時,對所述新區(qū)塊的合法性進行選舉,具體為:當所述當前合法票數(shù)大于所述節(jié)點數(shù)量的一半時,確定所述新區(qū)塊為合法區(qū)塊;當所述當前非合法票數(shù)大于所述節(jié)點數(shù)量的一半時,確定所述新區(qū)塊為非合法區(qū)塊。
需要說明的是,若當前合法票數(shù)與非合法票數(shù)均未大于節(jié)點數(shù)量的一半,則等待其他節(jié)點的投票,直到所述當前合法票數(shù)或非合法票數(shù)大于所述節(jié)點數(shù)量的一半。
還需要說明的是,所述新區(qū)塊不論是合法區(qū)塊還是非合法區(qū)塊都可能需要對其進行相應的業(yè)務處理。
本實施例公開的一種區(qū)塊鏈中新區(qū)塊的生成方法,當目標節(jié)點的運行狀態(tài)滿足預設條件時,控制所述目標節(jié)點在公共存儲空間生成新區(qū)塊,再通知區(qū)塊鏈中的所有節(jié)點分別對所述新區(qū)塊的合法性進行驗證,并根據(jù)驗證結(jié)果生成相應的投票信息;對當前各個所述節(jié)點對所述新區(qū)塊的投票信息進行解析,依據(jù)預設規(guī)則,對所述新區(qū)塊的合法性進行選舉,確定所述新區(qū)塊是否為合法區(qū)塊,并對所述新區(qū)塊進行業(yè)務處理。
本實施例解決了現(xiàn)有技術(shù)中區(qū)塊鏈生成新區(qū)塊需要其他節(jié)點的確認才能生成,且由于節(jié)點間的網(wǎng)絡通信因素,以及各個節(jié)點處理效率的差異,每個節(jié)點生成投票信息的速度不同,造成的新區(qū)塊生成速度慢的問題,提高了區(qū)塊鏈中新區(qū)塊的生成速度,進而提高了區(qū)塊鏈的整體處理效率與吞吐量。
請參閱圖3,所述方法還包括:
步驟S104:將各個所述節(jié)點對所述新區(qū)塊的投票信息寫入所述公共存儲空間,生成對所述新區(qū)塊的投票數(shù)據(jù);將各個所述節(jié)點對所述新區(qū)塊的投票數(shù)據(jù)鏈接到對所述新區(qū)塊的上一個區(qū)塊的投票數(shù)據(jù)上,形成所述目標節(jié)點的投票鏈。
具體的,所述投票數(shù)據(jù)包括:投票的當前區(qū)塊和區(qū)塊的合法性。
需要說明的是,在公共存儲空間內(nèi),區(qū)塊數(shù)據(jù)和投票數(shù)據(jù)分開獨立存儲,進而新區(qū)塊的生成和對該新區(qū)塊的投票能夠通過不同的進程進行獨立處理,不需要等待其他節(jié)點的投票結(jié)果,就能直接先生成新區(qū)塊,提高了區(qū)塊鏈中區(qū)塊的生成速度。
一份區(qū)塊數(shù)據(jù)對應多份投票數(shù)據(jù),每個節(jié)點獨立維護自己的投票鏈,投票鏈的起點為創(chuàng)世區(qū)塊。
可以理解的是,每一個區(qū)塊的投票數(shù)據(jù)都與上一個區(qū)塊的投票數(shù)據(jù)進行鏈接,從而形成了一個投票鏈。
步驟S105:查詢所述目標節(jié)點的最新投票數(shù)據(jù),得到最新生成的所述新區(qū)塊;從對所述新區(qū)塊的投票數(shù)據(jù)開始遍歷所述目標節(jié)點的投票鏈,根據(jù)所述目標節(jié)點的投票鏈上對每一個區(qū)塊的投票數(shù)據(jù),確定各個所述區(qū)塊是否為合法區(qū)塊,并將合法區(qū)塊加入隊列,直到創(chuàng)世區(qū)塊,得到所述目標節(jié)點上所有的合法區(qū)塊。
需要說明的是,在服務器初始化時生成創(chuàng)世區(qū)塊,創(chuàng)世區(qū)塊是區(qū)塊鏈的源頭,從創(chuàng)世區(qū)塊開始生成一個又一個相互鏈接的區(qū)塊。
區(qū)塊鏈的查詢功能是一項很重要的功能,查詢目標節(jié)點的最新投票數(shù)據(jù),得到最新生成的所述新區(qū)塊,從對所述新區(qū)塊的投票數(shù)據(jù)開始遍歷所述目標節(jié)點的投票鏈,根據(jù)所述目標節(jié)點的投票鏈上對每一個區(qū)塊的投票數(shù)據(jù),確定各個所述區(qū)塊是否為合法區(qū)塊,將合法區(qū)塊加入隊列,直到創(chuàng)世區(qū)塊,得到所述目標節(jié)點上所有的合法區(qū)塊。由于區(qū)塊鏈中不僅存在合法區(qū)塊還存在非合法區(qū)塊,從投票鏈進行遍歷,可以避免非合法區(qū)塊的干擾,得到全部合法區(qū)塊,實現(xiàn)了區(qū)塊數(shù)據(jù)的可追溯性。
還需要說明的是,查詢也可以從創(chuàng)世區(qū)塊開始往后查詢,一直到最新生成的所述新區(qū)塊。
還需要說明的是,區(qū)塊鏈由公共存儲空間和區(qū)塊鏈節(jié)點程序構(gòu)成,區(qū)塊鏈節(jié)點程序的功能采用獨立的進程實現(xiàn),能夠分別獨立完成生成新區(qū)塊、對新區(qū)塊進行投票、對新區(qū)塊進行選舉,以及查詢功能,進程間使用滿足單一消費者模型的隊列實現(xiàn)通信。
請參閱圖4,基于上述實施例公開的一種區(qū)塊鏈中新區(qū)塊的生成方法,本實施例對應公開了一種區(qū)塊鏈,具體包括:
生成單元101,用于當目標節(jié)點的運行狀態(tài)滿足預設條件時,控制所述目標節(jié)點在公共存儲空間生成新區(qū)塊,所述目標節(jié)點為所述區(qū)塊鏈中的任一節(jié)點;
驗證單元102,用于通知所述區(qū)塊鏈中的所有節(jié)點分別對所述新區(qū)塊的合法性進行驗證,并根據(jù)驗證結(jié)果生成相應的投票信息;
選舉單元103,用于對當前各個所述節(jié)點對所述新區(qū)塊的投票信息進行解析,依據(jù)預設規(guī)則,對所述新區(qū)塊的合法性進行選舉,確定所述新區(qū)塊是否為合法區(qū)塊,并對所述新區(qū)塊進行業(yè)務處理。
本實施例公開的區(qū)塊鏈,在生成單元101中,當目標節(jié)點的運行狀態(tài)滿足預設條件時,不需要其他節(jié)點的投票,就能先生成新區(qū)塊,解決了區(qū)塊鏈生成新區(qū)塊需要其他節(jié)點的確認才能生成的問題,提高了區(qū)塊鏈中新區(qū)塊的生成速度,進而提高了區(qū)塊鏈的整體處理效率與吞吐量。
請參閱圖5,所述生成單元101包括:
簽名子單元106,用于當所述目標節(jié)點接收到的業(yè)務數(shù)據(jù)的數(shù)量超過預設值,和/或所述目標節(jié)點未生成新區(qū)塊的時間超過預設時間時,通過所述目標節(jié)點的節(jié)點信息對所述業(yè)務數(shù)據(jù)進行簽名,得到數(shù)據(jù)簽名;
生成子單元107,用于基于所述節(jié)點信息、所述業(yè)務數(shù)據(jù)和所述數(shù)據(jù)簽名生成區(qū)塊數(shù)據(jù),并將所述區(qū)塊數(shù)據(jù)存儲在公共存儲空間,生成相應的新區(qū)塊。
所述選舉單元103包括:
解析子單元108,用于對當前各個所述節(jié)點對所述新區(qū)塊的投票信息進行解析,得到當前合法票數(shù)和非合法票數(shù);所述投票信息包含所述新區(qū)塊合法信息或所述新區(qū)塊非合法信息;
選舉子單元109,用于當所述當前合法票數(shù)或非合法票數(shù)大于所述節(jié)點數(shù)量的一半時,對所述新區(qū)塊的合法性進行選舉,具體為:當所述當前合法票數(shù)大于所述節(jié)點數(shù)量的一半時,確定所述新區(qū)塊為合法區(qū)塊;當所述當前非合法票數(shù)大于所述節(jié)點數(shù)量的一半時,確定所述新區(qū)塊為非合法區(qū)塊。
所述區(qū)塊鏈還包括:
寫入單元104,用于將各個所述節(jié)點對所述新區(qū)塊的投票信息寫入所述公共存儲空間,生成對所述新區(qū)塊的投票數(shù)據(jù);將各個所述節(jié)點對所述新區(qū)塊的投票數(shù)據(jù)鏈接到對所述新區(qū)塊的上一個區(qū)塊的投票數(shù)據(jù)上,形成所述目標節(jié)點的投票鏈。
查詢單元105,用于查詢所述目標節(jié)點的最新投票數(shù)據(jù),得到最新生成的所述新區(qū)塊;從對所述新區(qū)塊的投票數(shù)據(jù)開始遍歷所述目標節(jié)點的投票鏈,根據(jù)所述目標節(jié)點的投票鏈上對每一個區(qū)塊的投票數(shù)據(jù),確定各個所述區(qū)塊是否為合法區(qū)塊,并將合法區(qū)塊加入隊列,直到創(chuàng)世區(qū)塊,得到所述目標節(jié)點上所有的合法區(qū)塊。
需要說明的是,查詢單元105,也可以從創(chuàng)世區(qū)塊開始往后查詢,一直到最新生成的所述新區(qū)塊。
查詢單元105中遍歷投票鏈,使區(qū)塊鏈實現(xiàn)了區(qū)塊數(shù)據(jù)的完整性,即無需刪除非合法區(qū)塊,只需使用區(qū)塊鏈的查詢單元105就能得到所述區(qū)塊鏈上所有的合法區(qū)塊;同時,本實施例公開的區(qū)塊鏈實現(xiàn)了區(qū)塊數(shù)據(jù)的不可篡改性和可追溯性。
對所公開的實施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。