本發(fā)明實(shí)施例屬于區(qū)塊鏈技術(shù)領(lǐng)域,尤其涉及一種沿空間維度拓展的區(qū)塊鏈的生成方法及系統(tǒng)。
背景技術(shù):
隨著互聯(lián)網(wǎng)的不斷發(fā)展,區(qū)塊鏈技術(shù)應(yīng)運(yùn)而生,它是一種互聯(lián)網(wǎng)數(shù)據(jù)庫(kù)技術(shù),具有去中心化、公開透明的特點(diǎn)。具體地,區(qū)塊鏈技術(shù)的本質(zhì)是去中心化且寓于分布式結(jié)構(gòu)的數(shù)據(jù)存儲(chǔ)、傳輸和證明的方法,用數(shù)據(jù)區(qū)塊取代目前互聯(lián)網(wǎng)對(duì)中心服務(wù)器的依賴,使得所有數(shù)據(jù)的變更或者交易項(xiàng)目都被記錄在一個(gè)云系統(tǒng)之上。由于沒(méi)有中央控制點(diǎn)的分布式對(duì)等網(wǎng)絡(luò),并且使用分布式集體運(yùn)作的方法,可以說(shuō),區(qū)塊鏈?zhǔn)蔷W(wǎng)絡(luò)上的“公開大賬本”。它存在許多節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)都可以觀察到整個(gè)賬本,并且共同參與維護(hù),其收益則是獲得記賬的權(quán)利,并且可以復(fù)制一份完整的數(shù)據(jù)庫(kù),單個(gè)節(jié)點(diǎn)無(wú)法修改數(shù)據(jù)庫(kù),從而保證了賬本數(shù)據(jù)的安全可靠。
當(dāng)下,采用區(qū)塊鏈技術(shù)進(jìn)行數(shù)據(jù)的組織和管理已經(jīng)被廣泛的應(yīng)用到了各種商業(yè)領(lǐng)域。
發(fā)明人在實(shí)現(xiàn)本發(fā)明的過(guò)程中,發(fā)現(xiàn)現(xiàn)有技術(shù)存在如下缺陷:
現(xiàn)有的區(qū)塊鏈只是單純沿著區(qū)塊鏈的延展方向,依次生成新的區(qū)塊,鏈條的生成方式單一,并且從區(qū)塊鏈中,不能清楚體現(xiàn)出各區(qū)塊的生成地所在的空間區(qū)域的相關(guān)信息,例如,各區(qū)塊是在哪個(gè)國(guó)家、哪個(gè)地區(qū)、甚至是哪個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)生成的。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種沿空間維度拓展的區(qū)塊鏈的生成方法及系統(tǒng),旨在現(xiàn)有區(qū)塊鏈的基礎(chǔ)上,以區(qū)塊鏈的形式,記錄各區(qū)塊的生成地,從而使得用戶通過(guò)查看區(qū)塊鏈的形態(tài)結(jié)構(gòu),就可以清楚分辨出各區(qū)塊被挖掘的原始位置。
為達(dá)到上述目的,本發(fā)明實(shí)施例提供了一種沿空間維度拓展的區(qū)塊鏈的生成方法,包括:所述區(qū)塊鏈包括至少兩條與空間區(qū)域?qū)?yīng)的子區(qū)塊鏈,各所述子區(qū)塊鏈之間并行延展,各所述子區(qū)塊鏈的整體延展形態(tài)相同,所述區(qū)塊鏈的生成方法包括:獲取新區(qū)塊生成權(quán)的區(qū)塊處理節(jié)點(diǎn),在與該區(qū)塊處理節(jié)點(diǎn)所在的空間區(qū)域所對(duì)應(yīng)的第一子區(qū)塊鏈上,生成第一新區(qū)塊;在所述第一子區(qū)塊鏈以外的第二子區(qū)塊鏈上,生成第二新區(qū)塊,其中,所述第二新區(qū)塊與所述第一新區(qū)塊的區(qū)塊體的數(shù)據(jù)內(nèi)容相同,且所述第一新區(qū)塊為所述第二新區(qū)塊的父區(qū)塊之一。
本發(fā)明實(shí)施例提供了一種沿空間維度拓展的區(qū)塊鏈的生成系統(tǒng),所述區(qū)塊鏈包括至少兩條與空間區(qū)域?qū)?yīng)的子區(qū)塊鏈,各所述子區(qū)塊鏈之間并行延展,各所述子區(qū)塊鏈的整體延展形態(tài)相同,所述區(qū)塊鏈的生成系統(tǒng)包括:多個(gè)區(qū)塊處理節(jié)點(diǎn),且每個(gè)所述區(qū)塊處理節(jié)點(diǎn)包括:第一區(qū)塊生成模塊,用于獲取新區(qū)塊生成權(quán)的所述區(qū)塊處理節(jié)點(diǎn),在與該區(qū)塊處理節(jié)點(diǎn)所在的空間區(qū)域所對(duì)應(yīng)的第一子區(qū)塊鏈上,生成第一新區(qū)塊;第二區(qū)塊生成模塊,用于在所述第一子區(qū)塊鏈以外的第二子區(qū)塊鏈上,生成第二新區(qū)塊,其中,所述第二新區(qū)塊與所述第一新區(qū)塊的區(qū)塊體的數(shù)據(jù)內(nèi)容相同,且所述第一新區(qū)塊為所述第二新區(qū)塊的父區(qū)塊之一。
本發(fā)明實(shí)施例的沿空間維度拓展的區(qū)塊鏈的生成方法及系統(tǒng),在包括至少兩條與空間區(qū)域?qū)?yīng)的子區(qū)塊鏈的區(qū)塊鏈上,通過(guò)在獲取新區(qū)塊生成權(quán)的區(qū)塊處理節(jié)點(diǎn)所在的空間區(qū)域所對(duì)應(yīng)的第一子區(qū)塊鏈上,生成第一新區(qū)塊,在第一子區(qū)塊鏈以外的第二子區(qū)塊鏈上,生成第二新區(qū)塊,其中,第二新區(qū)塊與第一新區(qū)塊的區(qū)塊體的數(shù)據(jù)內(nèi)容相同,且第一新區(qū)塊為第二新區(qū)塊的父區(qū)塊之一,從而保證各子區(qū)塊鏈以整體延展形態(tài)相同的情況下并行延展,并且在區(qū)塊鏈上保留了各區(qū)塊生成地的信息。
上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說(shuō)明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。
附圖說(shuō)明
圖1為本發(fā)明實(shí)施例提供的區(qū)塊鏈的形態(tài)圖一;
圖2為本發(fā)明實(shí)施例提供的區(qū)塊鏈的形態(tài)圖二;
圖3為本發(fā)明實(shí)施例提供的區(qū)塊鏈的形態(tài)圖三;
圖4為本發(fā)明實(shí)施例提供的沿空間維度拓展的區(qū)塊鏈的生成方法流程圖一;
圖5為本發(fā)明實(shí)施例提供的區(qū)塊鏈的形態(tài)圖四;
圖6為本發(fā)明實(shí)施例提供的區(qū)塊鏈的形態(tài)圖五;
圖7為本發(fā)明實(shí)施例提供的沿空間維度拓展的區(qū)塊鏈的生成方法流程圖二;
圖8為本發(fā)明實(shí)施例提供的區(qū)塊鏈的形態(tài)圖六;
圖9為本發(fā)明實(shí)施例提供的區(qū)塊鏈的形態(tài)圖七;
圖10為本發(fā)明實(shí)施例提供的區(qū)塊鏈的形態(tài)圖八;
圖11為本發(fā)明實(shí)施例提供的沿空間維度拓展的區(qū)塊鏈的生成系統(tǒng)的結(jié)構(gòu)示意圖;
圖12為本發(fā)明實(shí)施例提供的區(qū)塊處理節(jié)點(diǎn)的結(jié)構(gòu)示意圖;
圖13為本發(fā)明實(shí)施例提供的第二區(qū)塊生成模塊的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
首先需要說(shuō)明的是,本發(fā)明實(shí)施例將提供一種沿空間維度拓展的區(qū)塊鏈的生成方法,通過(guò)對(duì)區(qū)塊鏈中并行延展的各子區(qū)塊鏈增加新區(qū)塊,即在獲取新區(qū)塊生成權(quán)的區(qū)塊處理節(jié)所在的空間區(qū)域所對(duì)應(yīng)的第一子區(qū)塊鏈上,生成第一新區(qū)塊,在第一子區(qū)塊鏈以外的第二子區(qū)塊鏈上生成第二新區(qū)塊,其中第一新區(qū)塊與第二新區(qū)塊中的區(qū)塊體數(shù)據(jù)對(duì)應(yīng)相同,并將第一新區(qū)塊作為第二新區(qū)塊的父區(qū)塊之一,進(jìn)行新區(qū)塊的拓展,且拓展后的區(qū)塊鏈中,各子區(qū)塊鏈的整體延展形態(tài)相同,同時(shí)在區(qū)塊鏈中標(biāo)注了本次生成的新區(qū)塊的生成地,即第一子區(qū)塊鏈對(duì)應(yīng)的空間區(qū)域。這里所述的區(qū)塊體數(shù)據(jù)可理解為作為實(shí)際交易數(shù)據(jù)的信息,區(qū)塊頭數(shù)據(jù)中包含由當(dāng)前區(qū)塊的父區(qū)塊的所有數(shù)據(jù)經(jīng)不可逆算法生成的固定長(zhǎng)度的字符串即散列值,以及與當(dāng)前區(qū)塊相關(guān)的控制信息,區(qū)塊體數(shù)據(jù)和區(qū)塊頭數(shù)據(jù)構(gòu)成一個(gè)區(qū)塊的完整數(shù)據(jù)。
其次需要說(shuō)明的是,本發(fā)明實(shí)施例中的區(qū)塊鏈中各區(qū)塊的區(qū)塊體數(shù)據(jù)記載的交易信息不局限于商業(yè)中的“賬本”或“金融交易”的信息,也可以廣義的理解為是需要通過(guò)區(qū)塊鏈這種數(shù)據(jù)組織形式管理的多樣化的對(duì)象數(shù)據(jù),如針對(duì)企業(yè)進(jìn)行管理的企業(yè)管理數(shù)據(jù),針對(duì)項(xiàng)目進(jìn)行進(jìn)展跟蹤的項(xiàng)目進(jìn)程管理數(shù)據(jù)等。本發(fā)明實(shí)施例中,對(duì)各子區(qū)塊鏈本身的形態(tài)及延展形態(tài)方向不做限定。例如,各子區(qū)塊鏈的形態(tài)可以為如圖1所示的傳統(tǒng)的單鏈條的區(qū)塊鏈,也可以是如圖2所示的整體上呈樹形結(jié)構(gòu)的區(qū)塊鏈(該區(qū)塊鏈中每個(gè)區(qū)塊只有一個(gè)父區(qū)塊,并有一個(gè)或多個(gè)子區(qū)塊),還可以是如圖3所示的具有有向無(wú)環(huán)圖型結(jié)構(gòu)的區(qū)塊鏈(該區(qū)塊鏈中存在至少一個(gè)區(qū)塊具有一個(gè)或多個(gè)父區(qū)塊)。
以下將對(duì)本發(fā)明實(shí)施例的沿多維拓展的區(qū)塊鏈的生成方法進(jìn)行詳細(xì)闡述。
實(shí)施例一
圖4為本發(fā)明實(shí)施例提供的沿空間維度拓展的區(qū)塊鏈的生成方法流程圖一。本實(shí)施例中涉及的區(qū)塊鏈不論是拓展之前,還是拓展之后都具有如下的結(jié)構(gòu)形態(tài),即區(qū)塊鏈整體包括至少兩條與空間區(qū)域?qū)?yīng)的子區(qū)塊鏈,各子區(qū)塊鏈之間并行延展,各子區(qū)塊鏈的整體延展形態(tài)相同。這里所謂的整體延展形態(tài)相同包括:各子區(qū)塊鏈包含的區(qū)塊的個(gè)數(shù)、各區(qū)塊中區(qū)塊體數(shù)據(jù)以及各區(qū)塊之間的鏈接關(guān)系對(duì)應(yīng)相同,各區(qū)塊中區(qū)塊頭數(shù)據(jù)是否相同不做限定。如圖4所示,該區(qū)塊鏈的生成方法包括如下步驟:
S410,獲取新區(qū)塊生成權(quán)的區(qū)塊處理節(jié)點(diǎn),在與該區(qū)塊處理節(jié)點(diǎn)所在的空間區(qū)域所對(duì)應(yīng)的第一子區(qū)塊鏈上,生成第一新區(qū)塊;
其中,所述的空間區(qū)域可以是真實(shí)的空間區(qū)域,如國(guó)家、地區(qū)、城鎮(zhèn)等對(duì)應(yīng)的空間區(qū)域,也可以是虛擬的空間區(qū)域,如由不同的區(qū)塊處理節(jié)點(diǎn)構(gòu)成的節(jié)點(diǎn)區(qū)域。每個(gè)區(qū)塊處理節(jié)點(diǎn),按上述劃分空間區(qū)域的方法都可以對(duì)應(yīng)到一個(gè)現(xiàn)實(shí)或虛擬的空間區(qū)域內(nèi)。同時(shí),當(dāng)前待拓展的區(qū)塊鏈上也包括至少兩條與這些空間區(qū)域?qū)?yīng)的子區(qū)塊鏈。
例如,圖5示出了本實(shí)施例中的區(qū)塊鏈中各子區(qū)塊鏈與空間區(qū)域中的真實(shí)空間區(qū)域之間的一種具體對(duì)應(yīng)關(guān)系。在圖5中,當(dāng)前待拓展的區(qū)塊鏈包含了分別與“美國(guó)”、“中國(guó)”、“歐洲”這三個(gè)空間區(qū)域?qū)?yīng)的子區(qū)塊鏈。這三個(gè)子區(qū)塊鏈之間可以存在鏈接關(guān)系,也可以不存在鏈接關(guān)系。
具體地,在確定了本次獲取到新區(qū)塊生成權(quán)的區(qū)塊處理節(jié)點(diǎn)后,可由該區(qū)塊處理節(jié)點(diǎn)作為執(zhí)行主體,在與該區(qū)塊處理節(jié)點(diǎn)所在的空間區(qū)域所對(duì)應(yīng)的第一子區(qū)塊鏈上,生成第一新區(qū)塊。
其中,所述的第一子區(qū)塊鏈,是指針對(duì)本次獲取到新區(qū)塊生成權(quán)的區(qū)塊處理節(jié)點(diǎn)所在的空間區(qū)域所對(duì)應(yīng)的子區(qū)塊鏈;相對(duì)應(yīng)的,第一新區(qū)塊,是指在第一子區(qū)塊鏈上生成的新區(qū)塊。
例如,在圖5中,當(dāng)本次獲取到新區(qū)塊生成權(quán)的區(qū)塊處理節(jié)點(diǎn)所在的空間區(qū)域?yàn)椤爸袊?guó)”時(shí),可將“中國(guó)”對(duì)應(yīng)的子區(qū)塊鏈確定為第一子區(qū)塊鏈,相對(duì)應(yīng)的,獲取到新區(qū)塊生成權(quán)的區(qū)塊處理節(jié)點(diǎn),在第一子區(qū)塊鏈上生成的新區(qū)塊記為第一新區(qū)塊。
S420,在第一子區(qū)塊鏈以外的第二子區(qū)塊鏈上,生成第二新區(qū)塊,其中,第二新區(qū)塊與第一新區(qū)塊的區(qū)塊體的數(shù)據(jù)內(nèi)容相同,且第一新區(qū)塊為第二新區(qū)塊的父區(qū)塊之一。
其中,所述的第二子區(qū)塊鏈,是指當(dāng)前區(qū)塊中除了已確定的第一子區(qū)塊鏈以外的其他各子區(qū)塊鏈,這些子區(qū)塊鏈中每個(gè)子區(qū)塊鏈均稱為一個(gè)第二子區(qū)塊鏈;相對(duì)應(yīng)的,第二新區(qū)塊,是指在各第二子區(qū)塊鏈上生成的新區(qū)塊。
例如,在圖5中,當(dāng)本次獲取到新區(qū)塊生成權(quán)的區(qū)塊處理節(jié)點(diǎn)所在的空間區(qū)域?yàn)椤爸袊?guó)”時(shí),可將除“中國(guó)”對(duì)應(yīng)的子區(qū)塊鏈以外的,如“美國(guó)”、“歐洲”對(duì)應(yīng)的子區(qū)塊鏈確定為第二子區(qū)塊鏈,相對(duì)應(yīng)的,獲取到新區(qū)塊生成權(quán)的區(qū)塊處理節(jié)點(diǎn),在第二子區(qū)塊鏈上生成的新區(qū)塊記為第二新區(qū)塊。
其中,第二新區(qū)塊與第一新區(qū)塊的數(shù)據(jù)內(nèi)容相同,這里的數(shù)據(jù)內(nèi)容包括:區(qū)塊的區(qū)塊體數(shù)據(jù)以及新區(qū)塊與其所在的子區(qū)塊鏈上的其他區(qū)塊之間鏈接關(guān)系(該鏈接關(guān)系也可示意為新區(qū)塊在其所在子區(qū)塊鏈內(nèi)部的鏈接關(guān)系)。同時(shí),將第一新區(qū)塊作為第二新區(qū)塊的父區(qū)塊之一,從而形成了如圖6所示的區(qū)塊鏈形態(tài)。
在圖6中,各空間區(qū)域:“中國(guó)”、“美國(guó)”、“歐洲”各自對(duì)應(yīng)的增加了新區(qū)塊后的子區(qū)塊鏈仍滿足以相同的整體延展形態(tài)并行延展。且“美國(guó)”與“歐洲”對(duì)應(yīng)的第二子區(qū)塊鏈上新增的第二新區(qū)塊除了包含與第一新區(qū)塊有相同的鏈接關(guān)系外,還與第一新區(qū)塊本身存在父子關(guān)系。如此,根據(jù)各子區(qū)塊鏈上各對(duì)應(yīng)的新區(qū)塊之間的父子關(guān)系,就可以清楚的知道新區(qū)塊中原始區(qū)塊的生成地所對(duì)應(yīng)的空間區(qū)域,即相對(duì)應(yīng)的新區(qū)塊中,作為父區(qū)塊的區(qū)塊所在的子區(qū)塊鏈所對(duì)應(yīng)的空間區(qū)域。
本發(fā)明實(shí)施例的沿空間維度拓展的區(qū)塊鏈的生成方法,在包括至少兩條與空間區(qū)域?qū)?yīng)的子區(qū)塊鏈的區(qū)塊鏈上,通過(guò)在獲取新區(qū)塊生成權(quán)的區(qū)塊處理節(jié)點(diǎn)所在的空間區(qū)域所對(duì)應(yīng)的第一子區(qū)塊鏈上,生成第一新區(qū)塊,在第一子區(qū)塊鏈以外的第二子區(qū)塊鏈上,生成第二新區(qū)塊,其中,第二新區(qū)塊與第一新區(qū)塊的區(qū)塊體的數(shù)據(jù)內(nèi)容相同,且第一新區(qū)塊為第二新區(qū)塊的父區(qū)塊之一,從而保證各子區(qū)塊鏈以整體延展形態(tài)相同的情況下并行延展,并且在區(qū)塊鏈上保留了各區(qū)塊生成地的信息。
實(shí)施例二
圖7為本發(fā)明實(shí)施例提供的沿空間維度拓展的區(qū)塊鏈的生成方法流程圖二,該方法實(shí)施例可視為圖4所示方法實(shí)施例的細(xì)化方法。如圖7所示,該區(qū)塊鏈的生成方法包括如下步驟:
S710,獲取新區(qū)塊生成權(quán)的區(qū)塊處理節(jié)點(diǎn),在與該區(qū)塊處理節(jié)點(diǎn)所在的空間區(qū)域所對(duì)應(yīng)的第一子區(qū)塊鏈上,生成第一新區(qū)塊;步驟S710與步驟S410的內(nèi)容相同。
S720,對(duì)第一新區(qū)塊的區(qū)塊體數(shù)據(jù)以及第一新區(qū)塊在第一子區(qū)塊鏈中的第一鏈接關(guān)系進(jìn)行復(fù)制,并根據(jù)復(fù)制內(nèi)容在第二子區(qū)塊鏈上生成副本區(qū)塊,所述副本區(qū)塊在第二子區(qū)塊鏈上的鏈接關(guān)系與第一鏈接關(guān)系對(duì)應(yīng)相同;
其中,所述鏈接關(guān)系,是指各區(qū)塊之間存在的父子關(guān)系,該父子關(guān)系不要求必須通過(guò)區(qū)塊中區(qū)塊頭數(shù)據(jù)中的散列值進(jìn)行一致性驗(yàn)證。換言之,本實(shí)施例中的鏈接關(guān)系只是表達(dá)區(qū)塊之間鏈接框架,而不作為規(guī)定區(qū)塊之間一致性驗(yàn)證的定義范疇。所述第一鏈接關(guān)系,是指一個(gè)區(qū)塊與其所在的子區(qū)塊鏈中其他區(qū)塊之間的鏈接關(guān)系。
例如,以圖8中所示的區(qū)塊B作為第一新區(qū)塊,區(qū)塊B所在的子區(qū)塊鏈(對(duì)應(yīng)“中國(guó)”的第一子區(qū)塊鏈)作為第一子區(qū)塊鏈,對(duì)區(qū)塊B的區(qū)塊體數(shù)據(jù)以及區(qū)塊B在第一子區(qū)塊鏈中與其他區(qū)塊的第一鏈接關(guān)系進(jìn)行復(fù)制,并根據(jù)復(fù)制內(nèi)容在第二子區(qū)塊鏈上(“美國(guó)“和”歐洲”對(duì)應(yīng)的第二子區(qū)塊鏈)生成副本區(qū)塊B1和區(qū)塊B2,所述副本區(qū)塊B1和副本區(qū)塊B2中的區(qū)塊體數(shù)據(jù)與區(qū)塊B中的區(qū)塊體數(shù)據(jù)對(duì)應(yīng)相同,所述副本區(qū)塊B1和副本區(qū)塊B2在第二子區(qū)塊鏈上的鏈接關(guān)系與第一鏈接關(guān)系對(duì)應(yīng)相同,即區(qū)塊B1與區(qū)塊A之間具有第一鏈接關(guān)系,區(qū)塊B2與區(qū)塊A2之間具有第一鏈接關(guān)系,其中,區(qū)塊A、區(qū)塊A1、區(qū)塊A2為相互對(duì)應(yīng)的區(qū)塊,它們的區(qū)塊體數(shù)據(jù)對(duì)應(yīng)相同。這時(shí),副本區(qū)塊B1和區(qū)塊B2的區(qū)塊頭數(shù)據(jù)為空(圖中顯示為“區(qū)塊頭數(shù)據(jù)?”)。
S730,以第一新區(qū)塊作為父區(qū)塊,以各副本區(qū)塊作為子區(qū)塊,將第一新區(qū)塊與副本區(qū)塊進(jìn)行組合鏈接,形成第二鏈接關(guān)系;
其中,所述第二鏈接關(guān)系指各子區(qū)塊鏈中,相互對(duì)應(yīng)的區(qū)塊之間的鏈接關(guān)系。
以圖8中所示的區(qū)塊B作為第一新區(qū)塊,區(qū)塊B1、區(qū)塊B2作為副本區(qū)塊為例,以區(qū)塊B作為父區(qū)塊,以各區(qū)塊B1、區(qū)塊B2作為子區(qū)塊形成第二鏈接關(guān)系,該第二連接關(guān)系可視為對(duì)應(yīng)的各新區(qū)塊之間的鏈接關(guān)系。
S740,按照第一鏈接關(guān)系和第二鏈接關(guān)系,生成各副本區(qū)塊的散列值,并寫入到對(duì)應(yīng)的各個(gè)區(qū)塊的區(qū)塊頭中,以形成第二新區(qū)塊。
例如,以圖8中示出的區(qū)塊鏈形態(tài)為例,按區(qū)塊B1與區(qū)塊A之間的第一鏈接關(guān)系和區(qū)塊B1與區(qū)塊B之間的第二鏈接關(guān)系生成區(qū)塊B1的散列值,并寫入?yún)^(qū)塊B1的區(qū)塊頭數(shù)據(jù)中,生成如圖9所示的區(qū)塊頭數(shù)據(jù)b3,從而形成第二新區(qū)塊B1’;按區(qū)塊B2與區(qū)塊A2之間的第一鏈接關(guān)系和區(qū)塊B2與區(qū)塊B之間的第二鏈接關(guān)系生成區(qū)塊B2的散列值,并寫入?yún)^(qū)塊B2的區(qū)塊頭數(shù)據(jù)中,生成如圖9所示的區(qū)塊頭數(shù)據(jù)b4,從而形成第二新區(qū)塊B2’。
其中,各第二新區(qū)塊的散列值,為針對(duì)每個(gè)副本區(qū)塊,將副本區(qū)塊的各父區(qū)塊的區(qū)塊頭數(shù)據(jù)和區(qū)塊體數(shù)據(jù)分別經(jīng)不可逆算法生成固定長(zhǎng)度的字符串作為散列值,添加到副本區(qū)塊的區(qū)塊頭中。
具體地,如圖8所示,分別將副本區(qū)塊B1的父區(qū)塊A的中的全部數(shù)據(jù),(區(qū)塊頭數(shù)據(jù)a1和區(qū)塊體數(shù)據(jù)a2)和父區(qū)塊B的全部數(shù)據(jù)(區(qū)塊頭數(shù)據(jù)b1和區(qū)塊體數(shù)據(jù)b2)分別經(jīng)不可逆算法生成固定長(zhǎng)度的字符串作為散列值,添加到副本區(qū)塊B1的區(qū)塊頭中;分別將副本區(qū)塊B2的父區(qū)塊A2的中的全部數(shù)據(jù),(區(qū)塊頭數(shù)據(jù)a4和區(qū)塊體數(shù)據(jù)a2)和父區(qū)塊B的全部數(shù)據(jù)(區(qū)塊頭數(shù)據(jù)b1和區(qū)塊體數(shù)據(jù)b2)分別經(jīng)不可逆算法生成固定長(zhǎng)度的字符串作為散列值,添加到副本區(qū)塊B1的區(qū)塊頭中。
其中,上述的不可逆算法可以為定長(zhǎng)計(jì)算(哈希(Hash))算法,相應(yīng)的,經(jīng)不可逆算法得到的字符串可以為哈希值。
上述步驟S720~S740可視為步驟S420的細(xì)化過(guò)程。
進(jìn)一步地,在形成各副本區(qū)塊之后,還可向各副本區(qū)塊的區(qū)塊頭中添加針對(duì)本次復(fù)制操作的標(biāo)簽信息,該標(biāo)簽信息其中可以包括針對(duì)本次復(fù)制操作的時(shí)間信息、區(qū)塊的存儲(chǔ)位置信息,以及第一新區(qū)塊的信息等。
S750,獲取新區(qū)塊生成權(quán)的區(qū)塊處理節(jié)點(diǎn)將區(qū)塊鏈的新增數(shù)據(jù)廣播到其他區(qū)塊處理節(jié)點(diǎn)。
本實(shí)施例中,沿空間維度拓展的區(qū)塊鏈的生成過(guò)程,是在各個(gè)區(qū)塊處理節(jié)點(diǎn)上同步執(zhí)行的,且生成的區(qū)塊鏈的形態(tài)完全相同,只是生成過(guò)程略有不同。
以圖10為例,在網(wǎng)絡(luò)中的各區(qū)塊處理節(jié)點(diǎn)上都會(huì)同步存儲(chǔ)如圖10所示的相同的區(qū)塊鏈形態(tài)圖,該圖中包含了“美國(guó)”、“中國(guó)”和“歐洲”三個(gè)空間區(qū)域?qū)?yīng)的子區(qū)塊鏈,且這三個(gè)子區(qū)塊鏈以整體延展形態(tài)相同的趨勢(shì)并行延展,且每次的新增的新區(qū)塊,其區(qū)塊體數(shù)據(jù)對(duì)應(yīng)相同,新區(qū)塊與其所在的子區(qū)塊鏈上的他區(qū)塊之間的第一鏈接關(guān)系對(duì)應(yīng)相同,同時(shí)各新區(qū)塊之間,還存在以第一新區(qū)塊作為父區(qū)塊,以第二新區(qū)塊作為子區(qū)塊的第二鏈接關(guān)系。
具體地,在T1時(shí)刻的切面中,在“中國(guó)”空間區(qū)域內(nèi)的區(qū)塊處理節(jié)點(diǎn)生成了第一新區(qū)塊A、第二新區(qū)塊A1和第二新區(qū)塊A2,并在第一新區(qū)塊A與第二新區(qū)塊A1、第二新區(qū)塊A2之間建立第二鏈接關(guān)系(在生成各子區(qū)塊鏈的首端第一個(gè)區(qū)塊時(shí),該首端區(qū)塊沒(méi)有對(duì)應(yīng)的第一鏈接關(guān)系),然后,在“中國(guó)”空間區(qū)域內(nèi)的區(qū)塊處理節(jié)點(diǎn)會(huì)將區(qū)塊鏈中新增的數(shù)據(jù)包括新增的區(qū)塊中的數(shù)據(jù),以及新增區(qū)塊與當(dāng)前已形成的區(qū)塊鏈中各區(qū)塊的鏈接關(guān)系,廣播到其他區(qū)塊處理節(jié)點(diǎn)(如“美國(guó)”和“歐洲”空間區(qū)域內(nèi)的區(qū)塊處理節(jié)點(diǎn)),從而讓其他區(qū)塊處理節(jié)點(diǎn)更新本區(qū)塊處理節(jié)點(diǎn)上存儲(chǔ)的區(qū)塊鏈,以保持與當(dāng)前區(qū)塊處理節(jié)上的區(qū)塊鏈相同。
在T2時(shí)刻的切面中,在“美國(guó)”空間區(qū)域內(nèi)的區(qū)塊處理節(jié)點(diǎn)生成了第一新區(qū)塊B、第二新區(qū)塊B1和第二新區(qū)塊B2,并在第一新區(qū)塊B與第二新區(qū)塊B1、第二新區(qū)塊B2之間建立第二鏈接關(guān)系(各新區(qū)塊與其所在子區(qū)塊鏈上的其他區(qū)塊的第一鏈接關(guān)系對(duì)應(yīng)相同),然后,在“美國(guó)”空間區(qū)域內(nèi)的區(qū)塊處理節(jié)點(diǎn)會(huì)將區(qū)塊鏈中新增的數(shù)據(jù)包括新增的區(qū)塊中的數(shù)據(jù),以及新增區(qū)塊與當(dāng)前已形成的區(qū)塊鏈中各區(qū)塊的鏈接關(guān)系,廣播到其他區(qū)塊處理節(jié)點(diǎn)(如“中國(guó)”和“歐洲”空間區(qū)域內(nèi)的區(qū)塊處理節(jié)點(diǎn)),從而讓其他區(qū)塊處理節(jié)點(diǎn)更新本區(qū)塊處理節(jié)點(diǎn)上存儲(chǔ)的區(qū)塊鏈,以保持與當(dāng)前區(qū)塊處理節(jié)上的區(qū)塊鏈相同。
在T3時(shí)刻的切面中,在“歐洲”空間區(qū)域內(nèi)的區(qū)塊處理節(jié)點(diǎn)生成了第一新區(qū)塊C、第一新區(qū)塊D、第二新區(qū)塊C1、第二新區(qū)塊D1和第二新區(qū)塊C2、第二新區(qū)塊D2,并在第一新區(qū)塊C與第二新區(qū)塊C1、第二新區(qū)塊C2之間、第一新區(qū)塊D與第二新區(qū)塊D1、第二新區(qū)塊D2之間分別建立第二鏈接關(guān)系(各新區(qū)塊與其所在子區(qū)塊鏈上的其他區(qū)塊的第一鏈接關(guān)系對(duì)應(yīng)相同),然后,在“歐洲”空間區(qū)域內(nèi)的區(qū)塊處理節(jié)點(diǎn)會(huì)將區(qū)塊鏈中新增的數(shù)據(jù)包括新增的區(qū)塊中的數(shù)據(jù),以及新增區(qū)塊與當(dāng)前已形成的區(qū)塊鏈中各區(qū)塊的鏈接關(guān)系,廣播到其他區(qū)塊處理節(jié)點(diǎn)(如“中國(guó)”和“美國(guó)”空間區(qū)域內(nèi)的區(qū)塊處理節(jié)點(diǎn)),從而讓其他區(qū)塊處理節(jié)點(diǎn)更新本區(qū)塊處理節(jié)點(diǎn)上存儲(chǔ)的區(qū)塊鏈,以保持與當(dāng)前區(qū)塊處理節(jié)上的區(qū)塊鏈相同。
另外,在圖10中,獲取新區(qū)塊生成權(quán)的區(qū)塊處理節(jié)點(diǎn),還將各時(shí)刻的切面對(duì)應(yīng)的區(qū)塊鏈順次鏈接在前一時(shí)刻的切面對(duì)應(yīng)的區(qū)塊鏈上,從而保留了各時(shí)刻下的區(qū)塊鏈的整體形態(tài)圖。
本發(fā)明實(shí)施例中的沿空間維度拓展的區(qū)塊鏈的生成方法,在實(shí)施例一的基礎(chǔ)上,對(duì)第二新區(qū)塊的生成過(guò)程,進(jìn)行了詳細(xì)說(shuō)明;其次,在各第二新區(qū)塊中增加了標(biāo)簽信息以體現(xiàn)第二新區(qū)塊的增加意義,最后,還闡述了各區(qū)塊處理節(jié)點(diǎn)同步形成區(qū)塊鏈的處理過(guò)程,以實(shí)現(xiàn)區(qū)塊鏈在進(jìn)行區(qū)塊拓展過(guò)程中,在區(qū)塊鏈上保留各新生區(qū)塊生成地的區(qū)塊組織需求。
實(shí)施例三
圖11為本發(fā)明實(shí)施例提供的沿空間維度拓展的區(qū)塊鏈的生成系統(tǒng)示意圖一,所述區(qū)塊鏈包括至少兩條與空間區(qū)域?qū)?yīng)的子區(qū)塊鏈,各子區(qū)塊鏈之間并行延展,各子區(qū)塊鏈的整體延展形態(tài)相同,區(qū)塊鏈的生成系統(tǒng)包括:多個(gè)區(qū)塊處理節(jié)點(diǎn),如區(qū)塊處理節(jié)點(diǎn)1、區(qū)塊處理節(jié)點(diǎn)2,……,區(qū)塊處理節(jié)點(diǎn)N(N為大于0的整數(shù)),每個(gè)區(qū)塊處理節(jié)點(diǎn)具體可執(zhí)行如圖4所示的方法步驟。如圖11所示,每個(gè)區(qū)塊處理節(jié)點(diǎn)包括:
第一區(qū)塊生成模塊111,用于獲取新區(qū)塊生成權(quán)的區(qū)塊處理節(jié)點(diǎn),在與該區(qū)塊處理節(jié)點(diǎn)所在的空間區(qū)域所對(duì)應(yīng)的第一子區(qū)塊鏈上,生成第一新區(qū)塊;
第二區(qū)塊生成模塊112,用于在第一子區(qū)塊鏈以外的第二子區(qū)塊鏈上,生成第二新區(qū)塊,其中,第二新區(qū)塊與第一新區(qū)塊的區(qū)塊體的數(shù)據(jù)內(nèi)容相同,且第一新區(qū)塊為第二新區(qū)塊的父區(qū)塊之一。
本發(fā)明實(shí)施例的沿空間維度拓展的區(qū)塊鏈的生成系統(tǒng),在包括至少兩條與空間區(qū)域?qū)?yīng)的子區(qū)塊鏈的區(qū)塊鏈上,通過(guò)在獲取新區(qū)塊生成權(quán)的區(qū)塊處理節(jié)點(diǎn)所在的空間區(qū)域所對(duì)應(yīng)的第一子區(qū)塊鏈上,生成第一新區(qū)塊,在第一子區(qū)塊鏈以外的第二子區(qū)塊鏈上,生成第二新區(qū)塊,其中,第二新區(qū)塊與第一新區(qū)塊的區(qū)塊體的數(shù)據(jù)內(nèi)容相同,且第一新區(qū)塊為第二新區(qū)塊的父區(qū)塊之一,從而保證各子區(qū)塊鏈以整體延展形態(tài)相同的情況下并行延展,并且在區(qū)塊鏈上保留了各區(qū)塊生成地的信息。
實(shí)施例四
本發(fā)明實(shí)施例對(duì)圖11所示系統(tǒng)實(shí)施例進(jìn)行了結(jié)構(gòu)和功能的細(xì)化,細(xì)化后的結(jié)構(gòu)可用于執(zhí)行如圖7所示的方法步驟。具體地,在圖11所示結(jié)構(gòu)的基礎(chǔ)上:
如圖12所示,每個(gè)區(qū)塊處理節(jié)點(diǎn)中還可包括:
數(shù)據(jù)廣播模塊113,用于獲取新區(qū)塊生成權(quán)的區(qū)塊處理節(jié)點(diǎn)將區(qū)塊鏈的新增數(shù)據(jù)廣播到其他區(qū)塊處理節(jié)點(diǎn)。
進(jìn)一步地,如圖13所示,上述第二區(qū)塊生成模塊112中可具體包括:
復(fù)制生成單元131,用于對(duì)第一新區(qū)塊的區(qū)塊體數(shù)據(jù)以及第一新區(qū)塊在第一子區(qū)塊鏈中的第一鏈接關(guān)系進(jìn)行復(fù)制,并根據(jù)復(fù)制內(nèi)容在第二子區(qū)塊鏈上生成副本區(qū)塊,副本區(qū)塊在第二子區(qū)塊鏈上的鏈接關(guān)系與第一鏈接關(guān)系對(duì)應(yīng)相同;關(guān)系鏈接單元132,用于以第一新區(qū)塊作為父區(qū)塊,以各副本區(qū)塊作為子區(qū)塊,將第一新區(qū)塊與副本區(qū)塊進(jìn)行組合鏈接,形成第二鏈接關(guān)系;散列值寫入單元133,用于按照第一鏈接關(guān)系和第二鏈接關(guān)系,生成各副本區(qū)塊的散列值,并寫入到對(duì)應(yīng)的各個(gè)區(qū)塊的區(qū)塊頭中,以形成第二新區(qū)塊。
進(jìn)一步地,上述散列值寫入單元133具體用于,針對(duì)每個(gè)副本區(qū)塊,將副本區(qū)塊的各父區(qū)塊的區(qū)塊頭數(shù)據(jù)和區(qū)塊體數(shù)據(jù)分別經(jīng)不可逆算法生成固定長(zhǎng)度的字符串作為散列值,添加到副本區(qū)塊的區(qū)塊頭中。
進(jìn)一步地,在圖13所示的第二區(qū)塊生成模塊中,還可包括:
信息添加單元134,用于向各副本區(qū)塊的區(qū)塊頭中添加針對(duì)本次復(fù)制操作的標(biāo)簽信息。
本發(fā)明實(shí)施例的沿空間維度拓展的區(qū)塊鏈的生成系統(tǒng),在實(shí)施例三所示系統(tǒng)的基礎(chǔ)上,首先,對(duì)第二區(qū)塊生成模塊結(jié)構(gòu)和功能進(jìn)行了詳細(xì)說(shuō)明;其次,增加了在各第二新區(qū)塊中增加了標(biāo)簽信息的結(jié)構(gòu)單元,以體現(xiàn)第二新區(qū)塊的增加意義,最后,還增加了數(shù)據(jù)廣播模塊,闡述了各區(qū)塊處理節(jié)點(diǎn)同步形成區(qū)塊鏈的處理過(guò)程,以實(shí)現(xiàn)區(qū)塊鏈在進(jìn)行區(qū)塊拓展過(guò)程中,在區(qū)塊鏈上保留各新生區(qū)塊生成地的區(qū)塊組織需求。
通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實(shí)施方式可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件?;谶@樣的理解,上述技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。
最后應(yīng)說(shuō)明的是:以上各實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。