本發(fā)明實施例屬于區(qū)塊鏈技術領域,尤其涉及一種中心型多維拓展的區(qū)塊鏈的生成方法及系統(tǒng)。
背景技術:
隨著互聯(lián)網的不斷發(fā)展,區(qū)塊鏈技術應運而生,它是一種互聯(lián)網數據庫技術,具有去中心化、公開透明的特點。具體地,區(qū)塊鏈技術的本質是去中心化且寓于分布式結構的數據存儲、傳輸和證明的方法,用數據區(qū)塊取代目前互聯(lián)網對中心服務器的依賴,使得所有數據的變更或者交易項目都被記錄在一個云系統(tǒng)之上。由于沒有中央控制點的分布式對等網絡,并且使用分布式集體運作的方法,可以說,區(qū)塊鏈是網絡上的“公開大賬本”。它存在許多節(jié)點,每個節(jié)點都可以觀察到整個賬本,并且共同參與維護,其收益則是獲得記賬的權利,并且可以復制一份完整的數據庫,單個節(jié)點無法修改數據庫,從而保證了賬本數據的安全可靠。
當下,采用區(qū)塊鏈技術進行數據的組織和管理已經被廣泛的應用到了各種商業(yè)領域。
發(fā)明人在實現(xiàn)本發(fā)明的過程中,發(fā)現(xiàn)現(xiàn)有技術存在如下缺陷:
現(xiàn)有的區(qū)塊鏈只是單純沿著區(qū)塊鏈的延展方向,依次生成新的區(qū)塊,鏈條的生成方式單一,并且僅在一維范圍內延展,延展形式簡單,不能滿足對多樣化的數據的進行組織和管理的需求。
技術實現(xiàn)要素:
本發(fā)明實施例提供一種中心型多維拓展的區(qū)塊鏈的生成方法及系統(tǒng),旨在現(xiàn)有區(qū)塊鏈的基礎上,對區(qū)塊鏈進行多維拓展,從而豐富區(qū)塊鏈的拓展形式,以適應對多樣化的數據的進行組織和管理的需求。
為達到上述目的,本發(fā)明實施例提供了一種中心型多維拓展的區(qū)塊鏈的生成方法,包括:對當前已形成的第n維空間區(qū)塊鏈進行數據快照,生成所述第n維空間區(qū)塊鏈對應的一個或多個第n維空間快照結果區(qū)塊鏈,原所述第n維空間區(qū)塊鏈記為第n維空間快照對象區(qū)塊鏈,所述第n維空間快照結果區(qū)塊鏈與所述第n維空間快照對象區(qū)塊鏈中各區(qū)塊間的第一鏈接關系,以及區(qū)塊中區(qū)塊體數據的內容對應相同;所述第n維空間區(qū)塊鏈包括多個具有鏈接關系的第n-1維空間區(qū)塊鏈;以所述第n維空間快照對象區(qū)塊鏈中的各區(qū)塊作為父區(qū)塊,以所述第n維空間快照結果區(qū)塊鏈中與各所述父區(qū)塊對應的各區(qū)塊作為子區(qū)塊,將所述第n維空間快照對象區(qū)塊鏈與所述第n維空間快照結果區(qū)塊鏈進行組合鏈接,形成第二鏈接關系;按照所述第一鏈接關系和所述第二鏈接關系,依次生成所述一個或多個第n維空間維快照結果區(qū)塊鏈中的各個區(qū)塊的散列值,并寫入到對應的各個區(qū)塊的區(qū)塊頭中,以形成第n+1維空間區(qū)塊鏈,其中,所述一個或多個第n維空間維快照結果區(qū)塊鏈和所述第n維空間快照對象區(qū)塊鏈分別作為所述第n+1維空間區(qū)塊鏈中的各個第n維空間區(qū)塊鏈。
本發(fā)明實施例提供了一種中心型多維拓展的區(qū)塊鏈的生成系統(tǒng),包括:數據快照模塊,用于對當前已形成的第n維空間區(qū)塊鏈進行數據快照,生成所述第n維空間區(qū)塊鏈對應的一個或多個第n維空間快照結果區(qū)塊鏈,原所述第n維空間區(qū)塊鏈記為第n維空間快照對象區(qū)塊鏈,所述第n維空間快照結果區(qū)塊鏈與所述第n維空間快照對象區(qū)塊鏈中各區(qū)塊間的第一鏈接關系,以及區(qū)塊中區(qū)塊體數據的內容對應相同;所述第n維空間區(qū)塊鏈包括多個具有鏈接關系的第n-1維空間區(qū)塊鏈;組合鏈接模塊,用于以所述第n維空間快照對象區(qū)塊鏈中的各區(qū)塊作為父區(qū)塊,以所述第n維空間快照結果區(qū)塊鏈中與各所述父區(qū)塊對應的各區(qū)塊作為子區(qū)塊,將所述第n維空間快照對象區(qū)塊鏈與所述第n維空間快照結果區(qū)塊鏈進行組合鏈接,形成第二鏈接關系;區(qū)塊鏈生成模塊,用于按照所述第一鏈接關系和所述第二鏈接關系,依次生成所述一個或多個第n維空間維快照結果區(qū)塊鏈中的各個區(qū)塊的散列值,并寫入到對應的各個區(qū)塊的區(qū)塊頭中,以形成第n+1維空間區(qū)塊鏈,其中,所述一個或多個第n維空間維快照結果區(qū)塊鏈和所述第n維空間快照對象區(qū)塊鏈分別作為所述第n+1維空間區(qū)塊鏈中的各個第n維空間區(qū)塊鏈。
本發(fā)明實施例的中心型多維拓展的區(qū)塊鏈的生成方法及系統(tǒng),以第n維空間區(qū)塊鏈到第n+1維空間區(qū)塊鏈的拓展過程闡述區(qū)塊鏈中關于區(qū)塊鏈維度的概念,以及沿維度拓展的區(qū)塊鏈的生成方法,通過對當前已形成的第n維空間區(qū)塊鏈進行數據快照,生成一個或多個第n維空間快照結果區(qū)塊鏈,原第n維空間區(qū)塊鏈記為第n維空間快照對象區(qū)塊鏈,第n維空間快照結果區(qū)塊鏈與第n維空間快照對象區(qū)塊鏈中各區(qū)塊間的第一鏈接關系,以及區(qū)塊中區(qū)塊體數據的內容對應相同;第n維空間區(qū)塊鏈包括多個具有鏈接關系的第n-1維空間區(qū)塊鏈;以第n維空間快照對象區(qū)塊鏈中的各區(qū)塊作為父區(qū)塊,以第n維空間快照結果區(qū)塊鏈中與各父區(qū)塊對應的各區(qū)塊作為子區(qū)塊,將第n維空間快照對象區(qū)塊鏈與第n維空間快照結果區(qū)塊鏈進行組合鏈接,形成第二鏈接關系;按照第一鏈接關系和第二鏈接關系,依次生成所述一個或多個第n維空間維快照結果區(qū)塊鏈中的各個區(qū)塊的散列值,并寫入到對應的各個區(qū)塊的區(qū)塊頭中,以形成第n+1維空間區(qū)塊鏈,其中,所述一個或多個第n維空間維快照結果區(qū)塊鏈和第n維空間快照對象區(qū)塊鏈分別作為第n+1維空間區(qū)塊鏈中的各個第n維空間區(qū)塊鏈,從而完成一次從第n維空間區(qū)塊鏈到第n+1維空間區(qū)塊鏈的拓展過程。拓展后的第n+1維空間區(qū)塊鏈可以滿足對多樣化的數據進行組織和管理的需求。
上述說明僅是本發(fā)明技術方案的概述,為了能夠更清楚了解本發(fā)明的技術手段,而可依照說明書的內容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式。
附圖說明
圖1為本發(fā)明實施例提供的區(qū)塊鏈的形態(tài)圖一;
圖2為本發(fā)明實施例提供的區(qū)塊鏈的形態(tài)圖二;
圖3為本發(fā)明實施例提供的區(qū)塊鏈的形態(tài)圖三;
圖4為本發(fā)明實施例提供的中心型多維拓展的區(qū)塊鏈的生成方法流程圖一;
圖5為本發(fā)明實施例提供的區(qū)塊鏈的形態(tài)圖三;
圖6為本發(fā)明實施例提供的區(qū)塊鏈的形態(tài)圖四;
圖7為本發(fā)明實施例提供的區(qū)塊鏈的形態(tài)圖五;
圖8為本發(fā)明實施例提供的中心型多維拓展的區(qū)塊鏈的生成方法流程圖二;
圖9為本發(fā)明實施例提供的數據快照方法流程圖;
圖10為本發(fā)明實施例提供的區(qū)塊鏈的形態(tài)圖六;
圖11為本發(fā)明實施例提供的修改區(qū)塊體數據的方法示意圖;
圖12為本發(fā)明實施例提供的修改區(qū)塊間鏈接關系的方法示意圖一;
圖13為本發(fā)明實施例提供的修改區(qū)塊間鏈接關系的方法示意圖二;
圖14為本發(fā)明實施例提供的區(qū)塊鏈的維度延展和維度拓展的綜合形態(tài)圖;
圖15為本發(fā)明實施例提供的中心型多維拓展的區(qū)塊鏈的生成系統(tǒng)示意圖一;
圖16為本發(fā)明實施例提供的數據快照模塊示意圖;
圖17為本發(fā)明實施例提供的中心型多維拓展的區(qū)塊鏈的生成系統(tǒng)示意圖二。
具體實施方式
下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現(xiàn)本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠將本公開的范圍完整的傳達給本領域的技術人員。
在介紹本發(fā)明實施例的內容之前,先對以下名詞進行解釋:
數據快照:與數據復制不完全相同,數據快照后的結果與被執(zhí)行快照的原數據之間存在部分數據相同,具體可以是:①快照后的數據與原數據完全相同,②快照后的全部數據與原數據的部分數據相同,③快照后的數據中的部分數據與原數據中的全部或部分數據相同;
第n維空間區(qū)塊鏈:包括多個具有鏈接關系的第n-1維空間區(qū)塊鏈,其中,所謂的兩個區(qū)塊鏈之間具有鏈接關系,是指兩個區(qū)塊鏈之間,至少存在兩個區(qū)塊彼此作為父子而形成的鏈接關系,所謂的多個具有鏈接關系的第n-1維空間區(qū)塊鏈,是指這多個第n-1維空間區(qū)塊鏈之間彼此存在鏈接關系,而形成一個整體上相互鏈接的區(qū)塊鏈。
第n維空間快照對象區(qū)塊鏈:被執(zhí)行數據快照操作的第n維空間區(qū)塊鏈,被記為當次快照對應的第n維空間快照對象區(qū)塊鏈;
第n維空間快照結果區(qū)塊鏈:對第n維空間區(qū)塊鏈進行快照操作后,產生的相對于第n維空間快照對象區(qū)塊鏈的結果區(qū)塊鏈。
維度拓展,指基于當前形成的某維度空間的區(qū)塊鏈進行整體的維度升級,如將第n維空間區(qū)塊鏈整體升級為第n+1維空間區(qū)塊鏈,維度拓展前后,區(qū)塊鏈維度增加;
維度延展,指基于當前形成的某維度空間的區(qū)塊鏈,在該維度下進行區(qū)塊延展來增加區(qū)塊,如在第n維空間區(qū)塊鏈中包含的一個或多個第n-1維空間區(qū)塊鏈上增加新的區(qū)塊,維度延展前后,區(qū)塊鏈維度不變。在n+1維空間中,可以分別對各第n維空間區(qū)塊鏈按不同維度參量,如時間、區(qū)塊規(guī)模等維度參量進行區(qū)塊延展,每個維度參量對應特定的區(qū)塊延展規(guī)則,例如:時間維度參量對應的延展規(guī)則可以是,每隔固定時長,對當前形成的第n+1維空間區(qū)塊鏈中的一個第n維空間區(qū)塊鏈進行數據快照,并將快照后產生的區(qū)塊鏈鏈接到該第n維空間區(qū)塊鏈上;又例如,區(qū)塊規(guī)模維度參量對應的延展規(guī)則可以是,針對當前形成的第n+1維空間區(qū)塊鏈中的一個第n維空間區(qū)塊鏈,每增加固定個數的區(qū)塊后,對該第n維空間區(qū)塊鏈進行數據快照,并將快照后產生的區(qū)塊鏈鏈接到該第n維空間區(qū)塊鏈上;這也可稱之為是,針對第n+1維空間區(qū)塊鏈按不同維度參量進行維度內的維度延展。
首先需要說明的是,本發(fā)明實施例將提供一種中心型多維拓展的區(qū)塊鏈的生成方法,每次維度拓展前后,區(qū)塊鏈的維度增加一個維度。通過對當前已形成的第n維空間區(qū)塊鏈進行數據快照,生成第n維空間區(qū)塊鏈對應的一個或多個第n維空間快照結果區(qū)塊鏈,該第n維空間快照結果區(qū)塊鏈與第n維空間快照對象區(qū)塊鏈中各區(qū)塊間的第一鏈接關系,以及區(qū)塊中區(qū)塊體數據的內容對應相同,原第n維空間區(qū)塊鏈記為第n維空間快照對象區(qū)塊鏈;以第n維空間快照對象區(qū)塊鏈中的各區(qū)塊作為父區(qū)塊,以第n維空間快照結果區(qū)塊鏈中與各父區(qū)塊對應的各區(qū)塊作為子區(qū)塊,將第n維空間快照對象區(qū)塊鏈與第n維空間快照結果區(qū)塊鏈進行組合鏈接,形成第二鏈接關系;按照第一鏈接關系和第二鏈接關系,依次生成上述一個或多個第n維空間維快照結果區(qū)塊鏈中的各個區(qū)塊的散列值,并寫入到對應的各個區(qū)塊中,以形成第n+1維空間區(qū)塊鏈,其中,所述一個或多個第n維空間維快照結果區(qū)塊鏈和第n維空間快照對象區(qū)塊鏈分別作為第n+1維空間區(qū)塊鏈中的各個第n維空間區(qū)塊鏈。這里所述的區(qū)塊體數據可理解為作為實際交易數據的信息,區(qū)塊頭數據中包含由當前區(qū)塊的父區(qū)塊的所有數據經不可逆算法生成的固定長度的字符串即散列值,以及與當前區(qū)塊相關的控制信息,區(qū)塊體數據和區(qū)塊頭數據構成一個區(qū)塊的完整數據。
其次需要說明的是,本發(fā)明實施例中的區(qū)塊鏈中各區(qū)塊的區(qū)塊體數據記載的交易信息不局限于商業(yè)中的“賬本”或“金融交易”的信息,也可以廣義的理解為是需要通過區(qū)塊鏈這種數據組織形式管理的多樣化的對象數據,如針對企業(yè)進行管理的企業(yè)管理數據,針對項目進行進展跟蹤的項目進程管理數據等。本發(fā)明實施例中,對各維度區(qū)塊鏈本身的形態(tài)及維度延展方向不做限定,只是在區(qū)塊鏈正常延展的過程中,通過數據快照實現(xiàn)對當前區(qū)塊鏈進行整體維度的拓展。例如,第一維度空間的區(qū)塊鏈的形態(tài)可以為如圖1所示的傳統(tǒng)的單鏈條的區(qū)塊鏈,也可以是如圖2所示的整體上呈樹形結構的區(qū)塊鏈(該區(qū)塊鏈中每個區(qū)塊只有一個父區(qū)塊,并有一個或多個子區(qū)塊),還可以是如圖3所示的具有有向無環(huán)圖型結構的區(qū)塊鏈(該區(qū)塊鏈中存在至少一個區(qū)塊具有一個或多個父區(qū)塊)。
以下將對本發(fā)明實施例的中心型多維拓展的區(qū)塊鏈的生成方法進行詳細闡述。
實施例一
圖4為本發(fā)明實施例提供的中心型多維拓展的區(qū)塊鏈的生成方法流程圖一。如圖4所示,該區(qū)塊鏈的生成方法包括如下步驟:
S410,對當前已形成的第n維空間區(qū)塊鏈進行數據快照,生成第n維空間區(qū)塊鏈對應的一個或多個第n維空間快照結果區(qū)塊鏈,原第n維空間區(qū)塊鏈記為第n維空間快照對象區(qū)塊鏈,第n維空間快照結果區(qū)塊鏈與第n維空間快照對象區(qū)塊鏈中各區(qū)塊間的第一鏈接關系,以及區(qū)塊中區(qū)塊體數據的內容對應相同;第n維空間區(qū)塊鏈包括多個具有鏈接關系的第n-1維空間區(qū)塊鏈;
其中,所述的當前已形成的第n維空間區(qū)塊鏈是指截至當前時刻,所形成的區(qū)塊鏈在整體上所呈現(xiàn)的區(qū)塊鏈形態(tài)及對應的最高維度,所述n為大于0的整數。在第n維空間區(qū)塊鏈中包括多個具有鏈接關系的第n-1維空間區(qū)塊鏈,其中,多個第n-1維空間區(qū)塊鏈之間的鏈接關系,不限定相互鏈接的是哪些區(qū)塊,以及區(qū)塊的個數和區(qū)塊間的具體鏈接關系(父子關系),只要滿足這些第n-1維空間區(qū)塊鏈彼此之間存在鏈接關系,并且通過這些鏈接關系可將這些第n-1維空間區(qū)塊鏈鏈接為一個整體區(qū)塊鏈即可。
具體地,當達到一次維度拓展的觸發(fā)條件后,對當前已形成的第n維空間區(qū)塊鏈進行數據快照,生成第n維空間區(qū)塊鏈對應的一個或多個第n維空間快照結果區(qū)塊鏈。
這里需要說明的是,本實施例中的數據快照的過程是對快照對象的內容進行部分復制和/或,整體復制和/或修改的操作。該操作僅用于,使數據快照后生成的第n維空間快照結果區(qū)塊鏈與第n維空間快照對象區(qū)塊鏈中各區(qū)塊的區(qū)塊體數據對應相同,并且各區(qū)塊間的鏈接關系對應相同。這里將第n維空間快照對象區(qū)塊鏈中各區(qū)塊間的鏈接關系整體定義為第一鏈接關系,由于數據快照后,生成的第n維空間快照結果區(qū)塊鏈與對應的第n維空間快照對象區(qū)塊鏈中各區(qū)塊間的鏈接關系相同,因此第n維空間快照結果區(qū)塊鏈中各區(qū)塊間的鏈接關系也可整體定義為第一鏈接關系。所述區(qū)塊間的鏈接關系,是指各區(qū)塊之間存在的父子關系,該父子關系不要求必須通過區(qū)塊中區(qū)塊頭數據中的散列值進行一致性驗證。換言之,本實施例中的鏈接關系只是表達區(qū)塊之間鏈接框架,而不作為規(guī)定區(qū)塊之間一致性驗證的定義范疇。
在具體應用中,上述數據快照的目的,就是使第n維空間快照結果區(qū)塊鏈與第n維空間快照對象區(qū)塊鏈在區(qū)塊鏈的整體架構上是相同的,并且各區(qū)塊中的區(qū)塊體數據也是對應相同的,而區(qū)塊頭中的數據可能相同,也可能不同,甚至在第n維空間快照結果區(qū)塊鏈中,各區(qū)塊的區(qū)塊頭中沒有實質數據,這需要根據具體需求來確定。
在中心型多維拓展的區(qū)塊鏈的生成方法過程中,為了降低后續(xù)計算各區(qū)塊散列值的復雜度,默認在通過數據快照得到的各第n維空間快照結果區(qū)塊鏈中各區(qū)塊的區(qū)塊頭數據為空。由此可以認為,數據快照后得到的第n維空間快照結果區(qū)塊鏈是一個“不完整”的區(qū)塊鏈,該區(qū)塊鏈中各區(qū)塊的區(qū)塊頭中,不包含能夠驗證區(qū)塊鏈一致性的散列值。只有在各第n維空間快照結果區(qū)塊鏈的各區(qū)塊的區(qū)塊頭中增加了散列值,且這些散列值滿足區(qū)塊鏈的一致性驗證要求,才認為是一個“完整”的區(qū)塊鏈。
例如,圖5示出了數據快照后,對應的第n維空間快照對象區(qū)塊鏈和第n維空間快照結果區(qū)塊鏈的形態(tài)圖樣例。從圖中可以看出,第n維空間快照對象區(qū)塊鏈和第n維空間快照結果區(qū)塊鏈(圖中以一個第n維空間快照結果區(qū)塊鏈為例進行說明)在整體形態(tài)架構上相同,兩個區(qū)塊鏈中的各區(qū)塊間的鏈接關系(第一鏈接關系)對應相同,且區(qū)塊中區(qū)塊體數據對應相同,區(qū)塊頭數據不一定相同,甚至第n維空間快照結果區(qū)塊鏈中各區(qū)塊的區(qū)頭數據可以為空。
S420,以第n維空間快照對象區(qū)塊鏈中的各區(qū)塊作為父區(qū)塊,以第n維空間快照結果區(qū)塊鏈中與各父區(qū)塊對應的各區(qū)塊作為子區(qū)塊,將第n維空間快照對象區(qū)塊鏈與第n維空間快照結果區(qū)塊鏈進行組合鏈接,形成第二鏈接關系;
例如,以圖5中,第n維空間快照對象區(qū)塊鏈中的區(qū)塊A、區(qū)塊B作為父區(qū)塊,以第n維空間快照結果區(qū)塊鏈中,與父區(qū)塊A對應的區(qū)塊A1作為區(qū)塊A的子區(qū)塊;與父區(qū)塊B對應的區(qū)塊B1作為區(qū)塊B的子區(qū)塊,從而將第n維空間快照對象區(qū)塊鏈與第n維空間快照結果區(qū)塊鏈進行組合鏈接,并形成第二鏈接關系。所謂第二鏈接關系即第n維空間快照對象區(qū)塊鏈與第n維空間快照結果區(qū)塊鏈之間的所有鏈接關系的總稱。如圖6所示的區(qū)塊鏈形態(tài)圖,為將第n維空間快照對象區(qū)塊鏈與第n維空間快照結果區(qū)塊鏈進行組合鏈接后的區(qū)塊鏈形態(tài)圖。需要說明的是,所謂將第n維空間快照對象區(qū)塊鏈與第n維空間快照結果區(qū)塊鏈進行組合鏈接,仍只是確定兩個區(qū)塊鏈之間的鏈接關系,而不涉及區(qū)塊鏈鏈接后的一致性驗證,因此,組合鏈接后形成的區(qū)塊鏈中,第n維空間快照結果區(qū)塊鏈中各區(qū)塊的區(qū)塊頭數據仍是不限定的。
在圖5和圖6所示的區(qū)塊鏈的形態(tài)圖中,快照結果區(qū)塊鏈中各區(qū)塊的區(qū)塊頭數據不限定,因此圖中以“區(qū)塊頭數據?”示出。
S430,按照第一鏈接關系和第二鏈接關系,依次生成第n維空間維快照結果區(qū)塊鏈中的各個區(qū)塊的散列值,并寫入到對應的各個區(qū)塊的區(qū)塊頭中,以形成第n+1維空間區(qū)塊鏈,其中,各第n維空間維快照結果區(qū)塊鏈和第n維空間快照對象區(qū)塊鏈分別作為第n+1維空間區(qū)塊鏈中的各個第n維空間區(qū)塊鏈。
例如,以圖6中示出的區(qū)塊鏈形態(tài)為例,按第n維空間快照結果區(qū)塊鏈中各區(qū)塊的第一鏈接關系,以及第n維空間快照結果區(qū)塊鏈與第n維空間快照對象區(qū)塊鏈之間的第二鏈接關系,確定相應各區(qū)塊之間的父子關系,然后根據父子關系,依次生成第n維空間維快照結果區(qū)塊鏈中的各個區(qū)塊的散列值,并寫入到對應的各個區(qū)塊的區(qū)塊頭中,以形成形態(tài)如圖7所示的第n+1維空間區(qū)塊鏈。
結合圖7所示,這里所謂的“依次生成”是指先生成區(qū)塊A1的散列值,該散列值為區(qū)塊A1的父區(qū)塊A中的所有數據經不可逆算法生成的固定長度的字符串,該散列值為明文進入區(qū)塊鏈的存證和不可篡改提供了保證。在得到區(qū)塊A1的散列值后,將其添加到區(qū)塊A1的區(qū)塊頭中,構成區(qū)塊A1的區(qū)塊頭數據a3,區(qū)塊體數據a2和區(qū)塊頭數據a3共同構成了區(qū)塊A1的完整數據;然后按區(qū)塊之間的父子關系(由第一鏈接關系和第二鏈接關系確定),計算區(qū)塊B1的散列值,該散列值包括兩個,分別為區(qū)塊B1的父區(qū)塊A1中的所有數據經不可逆算法生成的固定長度的字符串,以及區(qū)塊B1的父區(qū)塊B中的所有數據經不可逆算法生成的固定長度的字符串,將這兩個散列值分別添加到區(qū)塊B1的區(qū)塊頭中,構成區(qū)塊B1的區(qū)塊頭數據b3,區(qū)塊體數據b2和區(qū)塊頭數據b3共同構成了區(qū)塊b1的完整數據。在根據上述方法,依次計算完成所有第n維空間快照結果區(qū)塊鏈中各區(qū)塊的區(qū)塊頭數據后,所形成的整體區(qū)塊鏈記為一個第n+1維空間區(qū)塊鏈。該第n+1維空間區(qū)塊鏈中,包含了一個或多個(本示例中為一個)第n維空間維快照結果區(qū)塊鏈和一個第n維空間快照對象區(qū)塊鏈,這些區(qū)塊鏈可分別作為第n+1維空間區(qū)塊鏈中的各個第n維空間區(qū)塊鏈。
其中,上述的不可逆算法可以為定長計算(哈希(Hash))算法,相應的,經不可逆算法得到的字符串可以為哈希值。
其中,在上述形成各第n維空間快照結果區(qū)塊鏈中各區(qū)塊的區(qū)塊頭數據時,忽略了區(qū)塊頭數據中可能存在的其他控制數據,如果區(qū)塊的區(qū)塊頭中存在該控制數據,可將其與計算的散列值一起作為當前區(qū)塊的區(qū)塊頭數據。
本發(fā)明實施例提供的中心型多維拓展的區(qū)塊鏈的生成方法,通過對當前已形成的第n維空間區(qū)塊鏈進行數據快照,生成一個或多個第n維空間快照結果區(qū)塊鏈,原第n維空間區(qū)塊鏈記為第n維空間快照對象區(qū)塊鏈,第n維空間快照結果區(qū)塊鏈與第n維空間快照對象區(qū)塊鏈中各區(qū)塊間的第一鏈接關系,以及區(qū)塊中區(qū)塊體數據的內容對應相同;第n維空間區(qū)塊鏈包括多個具有鏈接關系的第n-1維空間區(qū)塊鏈;以第n維空間快照對象區(qū)塊鏈中的各區(qū)塊作為父區(qū)塊,以第n維空間快照結果區(qū)塊鏈中與各父區(qū)塊對應的各區(qū)塊作為子區(qū)塊,將第n維空間快照對象區(qū)塊鏈與第n維空間快照結果區(qū)塊鏈進行組合鏈接,形成第二鏈接關系;按照第一鏈接關系和第二鏈接關系,依次生成所述一個或多個第n維空間維快照結果區(qū)塊鏈中的各個區(qū)塊的散列值,并寫入到對應的各個區(qū)塊的區(qū)塊頭中,以形成第n+1維空間區(qū)塊鏈,其中,所述一個或多個第n維空間維快照結果區(qū)塊鏈和第n維空間快照對象區(qū)塊鏈分別作為第n+1維空間區(qū)塊鏈中的各個第n維空間區(qū)塊鏈,從而完成一次從第n維空間區(qū)塊鏈到第n+1維空間區(qū)塊鏈的拓展過程。拓展后的第n+1維空間區(qū)塊鏈可以滿足對多樣化的數據進行組織和管理的需求。
實施例二
圖8為本發(fā)明實施例提供的中心型多維拓展的區(qū)塊鏈的生成方法流程圖二,該方法實施例可視為圖4所示方法實施例的細化方法。如圖8所示,該區(qū)塊鏈的生成方法包括如下步驟:
S810,對當前已形成的第n維空間區(qū)塊鏈進行數據快照,生成第n維空間區(qū)塊鏈對應的一個或多個第n維空間快照結果區(qū)塊鏈,原第n維空間區(qū)塊鏈記為第n維空間快照對象區(qū)塊鏈,第n維空間快照結果區(qū)塊鏈與第n維空間快照對象區(qū)塊鏈中各區(qū)塊間的第一鏈接關系,以及區(qū)塊中區(qū)塊體數據的內容對應相同;第n維空間區(qū)塊鏈包括多個具有鏈接關系的第n-1維空間區(qū)塊鏈;步驟S810與步驟S410的內容相似。
具體地,圖9示出了數據快照的一種具體方法,在根據該方法生成的第n維空間快照結果區(qū)塊鏈的各區(qū)塊的區(qū)塊頭數據為空。如圖9所示,上述數據快照的方法包括如下步驟:
S910,對第n維空間快照對象區(qū)塊鏈中各區(qū)塊的區(qū)塊體數據以及各區(qū)塊之間的第一鏈接關系進行復制,并根據復制內容搭建一個或多個相同的區(qū)塊鏈架構;
例如,以圖5中所示的第n維空間快照對象區(qū)塊鏈為例,對區(qū)塊A和區(qū)塊B中的區(qū)塊體數據以及第一鏈接關系進行復制,并以復制的區(qū)塊體數據構件不包含區(qū)塊頭數據的區(qū)塊,然后將這些區(qū)塊按照第一鏈接關系搭建區(qū)塊鏈架構,這樣的區(qū)塊鏈架構可以為一個或多個,當為多個時,各區(qū)塊鏈架構之間彼此相同。
S920,向搭建好的各區(qū)塊鏈架構中各區(qū)塊的區(qū)塊頭中添加針對本次數據快照的標簽信息,以形成各第n維空間快照結果區(qū)塊鏈。
其中,上述標簽信息中可以包括針對本次數據快照的時間信息、區(qū)塊的存儲位置信息等。
如圖10中,示出了根據上述步驟搭建的兩個相同的區(qū)塊鏈架構,其中,區(qū)塊鏈架構1和區(qū)塊鏈架構2中各區(qū)塊的區(qū)塊體數據與第n維空間快照對象區(qū)塊鏈中各區(qū)塊的區(qū)塊體數據對應相同,且在區(qū)塊頭數據中添加了針對本次數據快照的標簽信息,各區(qū)塊的區(qū)塊頭中的標簽信息可以相同,也可以不同。
S820,對一個或多個第n維空間快照結果區(qū)塊鏈中區(qū)塊的區(qū)塊體數據和/或區(qū)塊之間的鏈接關系進行修改。
為了適應實際應用中,針對各第n維空間快照結果區(qū)塊鏈中區(qū)塊的區(qū)塊體數據的修改需求,以及區(qū)塊鏈中各區(qū)塊的鏈接組織形式調整的需求,可在數據快照后,對生成的一個或多個第n維空間快照結果區(qū)塊鏈中區(qū)塊的區(qū)塊體數據和/或區(qū)塊之間的鏈接關系進行修改。
具體地,對一個或多個第n維空間快照結果區(qū)塊鏈中區(qū)塊的區(qū)塊體數據進行修改包括:
對區(qū)塊體數據的內容進行增加、刪減和替換中的至少一種操作。
例如,圖11示出了對區(qū)塊體數據進行修改的操作示意圖,如將區(qū)塊體數據中的數據1進行刪除操作,將數據3添加到區(qū)塊體數據中的增加操作,以及將數據2替換為數據2’的替換操作。
具體地,對一個或多個第n維空間快照結果區(qū)塊鏈中區(qū)塊之間的鏈接關系進行修改包括:
對區(qū)塊之間的鏈接關系進行調換,
和/或,
刪除和/或增加一個或多個區(qū)塊之后,從新形成各區(qū)塊之間的鏈接關系。
其中,對區(qū)塊之間的鏈接關系進行調換,是指在不增加或刪除區(qū)塊鏈中區(qū)塊的情況下,對現(xiàn)有區(qū)塊間的鏈接關系進行調整。例如,圖12中所示的,將以區(qū)塊A作為父區(qū)塊、區(qū)塊B和區(qū)塊C作為子區(qū)塊構成的樹形鏈接關系,調整為以區(qū)塊A作為區(qū)塊B的父區(qū)塊、區(qū)塊B作為區(qū)塊C的父區(qū)塊構成的單鏈條鏈接關系。
其中,刪除和/或增加一個或多個區(qū)塊之后,從新形成各區(qū)塊之間的鏈接關系,是指在當前形成的區(qū)塊鏈中,先刪除和/或增加一個或多個區(qū)塊,然后根據需要從新形成這些區(qū)塊之間的鏈接關系。例如,圖13中所示的,將以區(qū)塊A作為父區(qū)塊、區(qū)塊B和區(qū)塊C作為子區(qū)塊構成的樹形鏈接關系的區(qū)塊鏈中,先增加一個區(qū)塊D,刪除區(qū)塊B,然后,根據需求,將區(qū)塊D鏈接在區(qū)塊A之后,從而形成新的樹形鏈接關系的區(qū)塊鏈。
S830,以第n維空間快照對象區(qū)塊鏈中的各區(qū)塊作為父區(qū)塊,以第n維空間快照結果區(qū)塊鏈中與各父區(qū)塊對應的各區(qū)塊作為子區(qū)塊,將第n維空間快照對象區(qū)塊鏈與第n維空間快照結果區(qū)塊鏈進行組合鏈接,形成第二鏈接關系;步驟S830與步驟S420的內容相似。
具體地,當對數據快照形成的一個或多個第n維空間快照結果區(qū)塊鏈中區(qū)塊的區(qū)塊體數據和/或區(qū)塊之間的鏈接關系進行修改操作后,針對第n維空間快照結果區(qū)塊鏈中各區(qū)塊有如下定義:
對區(qū)塊的區(qū)塊體數據進行修改后的區(qū)塊仍與第n維空間快照對象區(qū)塊鏈中原對應的區(qū)塊保持對應關系;
區(qū)塊之間的鏈接關系發(fā)生調換后對應的區(qū)塊仍與第n維空間快照對象區(qū)塊鏈中原對應的區(qū)塊保持對應關系;
增加的區(qū)塊在第n維空間快照對象區(qū)塊鏈中不存在對應的區(qū)塊。
S840,按照第一鏈接關系和第二鏈接關系,依次生成第n維空間維快照結果區(qū)塊鏈中的各個區(qū)塊的散列值,并寫入到對應的各個區(qū)塊的區(qū)塊頭中,以形成第n+1維空間區(qū)塊鏈,其中,各第n維空間維快照結果區(qū)塊鏈和第n維空間快照對象區(qū)塊鏈分別作為第n+1維空間區(qū)塊鏈中的各個第n維空間區(qū)塊鏈。步驟S840與步驟S430的內容相同。
S850,沿著第n+1維空間區(qū)塊鏈中的各個第n維空間區(qū)塊鏈中的一個或者多個第n維空間區(qū)塊鏈進行區(qū)塊鏈延展。
在每次對當前第n維空間區(qū)塊鏈進行維度拓展形成第n+1維空間區(qū)塊鏈后,仍可在第n+1維空間區(qū)塊鏈中,沿著第n+1維空間區(qū)塊鏈中的各個第n維空間區(qū)塊鏈中的一個或者多個第n維空間區(qū)塊鏈進行區(qū)塊鏈延展。
例如,圖14所示,為對區(qū)塊鏈進行整體維度拓展,和各整體維度下進行維度延展的綜合變化形態(tài)圖。如圖中所示,展示了4個狀態(tài)下的區(qū)塊鏈的形態(tài)圖:
第一維度空間區(qū)塊鏈狀態(tài)1:該狀態(tài)為區(qū)塊鏈的初始狀態(tài),圖中僅包括一個區(qū)塊A的區(qū)塊鏈形態(tài),當然,在第一維度空間下,可以對當前區(qū)塊鏈進行維度內的延展,延展后的區(qū)塊鏈仍處于第一維度空間;
第二維度空間區(qū)塊鏈狀態(tài)1:該狀態(tài)下,區(qū)塊鏈已從原來的一維空間升為二維空間,并且在二維空間中進行了維度內的延展;具體地,對由區(qū)塊A構成的第一維度空間區(qū)塊鏈進行數據快照,得到由區(qū)塊A1構成的快照結果區(qū)塊鏈,然后將區(qū)塊A1鏈接在區(qū)塊A上,完成區(qū)塊鏈從一維到二維的升維過程;然后,在當前第二維度空間區(qū)塊鏈上以快照對象區(qū)塊鏈為延展對象繼續(xù)進行維度內的延展,生成區(qū)塊B。
第二維度空間區(qū)塊鏈狀態(tài)2:該狀態(tài)下,區(qū)塊鏈僅在二維空間內進行了維度延展,包括對區(qū)塊A和區(qū)塊B構成的區(qū)塊鏈進行數據快照得到由區(qū)塊A2和區(qū)塊B1構成的快照結果區(qū)塊鏈,然后將該區(qū)塊鏈鏈接在其對應的快照對象區(qū)塊鏈上;然后,在當前第二維度空間區(qū)塊鏈上以該快照對象區(qū)塊鏈為延展對象繼續(xù)進行二維空間內的維度延展,生成區(qū)塊C和區(qū)塊D。
第三維度空間區(qū)塊鏈狀態(tài)1:該狀態(tài)下,區(qū)塊鏈已從原來的二維空間升為三維空間;具體地,對第二維度空間區(qū)塊鏈狀態(tài)2下的區(qū)塊鏈整體進行數據快照,得到其對應的快照結果區(qū)塊鏈,然后將該快照結果區(qū)塊鏈與快照對象區(qū)塊鏈鏈接,完成區(qū)塊鏈從二維到三維的升維過程。
第三維度空間區(qū)塊鏈狀態(tài)2:在第三維度空間區(qū)塊鏈中,以快照對象區(qū)塊鏈為延展對象繼續(xù)進行三維空間內的維度延展,生成區(qū)塊E。
這里說明,本發(fā)明實施例中關于維度空間的概念與空間幾何中的維度空間略有不同,現(xiàn)有空間幾何中的維度空間是,N維空間是由無數個N-1維空間構成的。例如,線是由無數個點構成的,面是由無數條線構成的,體是由無數個面構成的。而本實施例中的N維空間是由有限個N-1維空間構成的。例如,第二維空間區(qū)塊鏈可以由相互鏈接的多個第一維空間區(qū)塊鏈構成,第三維空間區(qū)塊鏈可以由相互鏈接的多個第二維空間區(qū)塊鏈構成,以此類推。
本發(fā)明實施例中的中心型多維拓展的區(qū)塊鏈的生成方法,在實施例一的基礎上,對第n維空間區(qū)塊鏈的數據快照過程,進行了詳細說明;在數據快照完成后,對得到的第n維空間快照結果區(qū)塊鏈的區(qū)塊的區(qū)塊體數據和/或區(qū)塊間的鏈接關系進行修改,以滿足區(qū)塊鏈在進行維度拓展過程中,需要修改的拓展需求,進而滿足更為復雜的針對區(qū)塊體數據的組織需求。
實施例三
圖15為本發(fā)明實施例提供的中心型多維拓展的區(qū)塊鏈的生成系統(tǒng)示意圖一,可以用于執(zhí)行如圖4所示的方法步驟。如圖15所示,該區(qū)塊鏈的生成系統(tǒng)包括:數據快照模塊151、組合鏈接模塊152和區(qū)塊鏈生成模塊153,其中:
數據快照模塊151,用于對當前已形成的第n維空間區(qū)塊鏈進行數據快照,生成第n維空間區(qū)塊鏈對應的一個或多個第n維空間快照結果區(qū)塊鏈,原第n維空間區(qū)塊鏈記為第n維空間快照對象區(qū)塊鏈,第n維空間快照結果區(qū)塊鏈與第n維空間快照對象區(qū)塊鏈中各區(qū)塊間的第一鏈接關系,以及區(qū)塊中區(qū)塊體數據的內容對應相同;第n維空間區(qū)塊鏈包括多個具有鏈接關系的第n-1維空間區(qū)塊鏈;組合鏈接模塊152,用于以第n維空間快照對象區(qū)塊鏈中的各區(qū)塊作為父區(qū)塊,以第n維空間快照結果區(qū)塊鏈中與各父區(qū)塊對應的各區(qū)塊作為子區(qū)塊,將第n維空間快照對象區(qū)塊鏈與第n維空間快照結果區(qū)塊鏈進行組合鏈接,形成第二鏈接關系;區(qū)塊鏈生成模塊153,用于按照第一鏈接關系和第二鏈接關系,依次生成所述一個或多個第n維空間維快照結果區(qū)塊鏈中的各個區(qū)塊的散列值,并寫入到對應的各個區(qū)塊的區(qū)塊頭中,以形成第n+1維空間區(qū)塊鏈,其中,所述一個或多個第n維空間維快照結果區(qū)塊鏈和第n維空間快照對象區(qū)塊鏈分別作為第n+1維空間區(qū)塊鏈中的各個第n維空間區(qū)塊鏈。
本發(fā)明實施例的中心型多維拓展的區(qū)塊鏈的生成系統(tǒng),通過對當前已形成的第n維空間區(qū)塊鏈進行數據快照,生成一個或多個第n維空間快照結果區(qū)塊鏈,原第n維空間區(qū)塊鏈記為第n維空間快照對象區(qū)塊鏈,第n維空間快照結果區(qū)塊鏈與第n維空間快照對象區(qū)塊鏈中各區(qū)塊間的第一鏈接關系,以及區(qū)塊中區(qū)塊體數據的內容對應相同;第n維空間區(qū)塊鏈包括多個具有鏈接關系的第n-1維空間區(qū)塊鏈;以第n維空間快照對象區(qū)塊鏈中的各區(qū)塊作為父區(qū)塊,以第n維空間快照結果區(qū)塊鏈中與各父區(qū)塊對應的各區(qū)塊作為子區(qū)塊,將第n維空間快照對象區(qū)塊鏈與第n維空間快照結果區(qū)塊鏈進行組合鏈接,形成第二鏈接關系;按照第一鏈接關系和第二鏈接關系,依次生成所述一個或多個第n維空間維快照結果區(qū)塊鏈中的各個區(qū)塊的散列值,并寫入到對應的各個區(qū)塊的區(qū)塊頭中,以形成第n+1維空間區(qū)塊鏈,其中,所述一個或多個第n維空間維快照結果區(qū)塊鏈和第n維空間快照對象區(qū)塊鏈分別作為第n+1維空間區(qū)塊鏈中的各個第n維空間區(qū)塊鏈,從而完成一次從第n維空間區(qū)塊鏈到第n+1維空間區(qū)塊鏈的拓展過程。拓展后的第n+1維空間區(qū)塊鏈可以滿足對多樣化的數據進行組織和管理的需求。
實施例四
本發(fā)明實施例對圖15所示系統(tǒng)實施例進行了結構和功能的細化,細化后的結構可用于執(zhí)行如圖8所示的方法步驟。具體地,在圖15所示結構的基礎上:
如圖16所示,上述數據快照模塊151具體可包括:
架構搭建單元161,用于對第n維空間快照對象區(qū)塊鏈中各區(qū)塊的區(qū)塊體數據以及各區(qū)塊之間的第一鏈接關系進行復制,并根據復制內容搭建一個或多個相同的區(qū)塊鏈架構;信息添加單元162,用于向搭建好的各區(qū)塊鏈架構中各區(qū)塊的區(qū)塊頭中添加針對本次數據快照的標簽信息,以形成各第n維空間快照結果區(qū)塊鏈。
上述數據快照模塊151可具體用于執(zhí)行圖9所示的方法步驟。
進一步地,在圖15所示系統(tǒng)結構的基礎上,如圖17所示,上述系統(tǒng)還可包括:
數據修改模塊154,用于對所述一個或多個第n維空間快照結果區(qū)塊鏈中區(qū)塊的區(qū)塊體數據和/或區(qū)塊之間的鏈接關系進行修改。
進一步地,上述數據修改模塊154具體可包括,數據修改單元,用于對區(qū)塊體數據的內容進行增加、刪減和替換中的至少一種操作。
進一步地,上述數據修改模塊154具體還可包括,鏈接關系修改單元,用于對所述區(qū)塊之間的鏈接關系進行調換,
和/或,
刪除和/或增加一個或多個區(qū)塊之后,從新形成各區(qū)塊之間的鏈接關系。
進一步地,圖17所示的系統(tǒng)中還可包括:區(qū)塊延展模塊155,用于沿著第n+1維空間區(qū)塊鏈中的各個第n維空間區(qū)塊鏈中的一個或者多個第n維空間區(qū)塊鏈進行區(qū)塊鏈延展。
本發(fā)明實施例的中心型多維拓展的區(qū)塊鏈的生成系統(tǒng),在實施例三所示系統(tǒng)的基礎上,首先,對數據快照模塊的結構和功能進行了詳細說明;并且增加了數據修改模塊,在數據快照完成后,對得到的第n維空間快照結果區(qū)塊鏈的區(qū)塊的區(qū)塊體數據和/或區(qū)塊間的鏈接關系進行修改,以滿足區(qū)塊鏈在進行維度拓展過程中,需要修改的拓展需求,進而滿足更為復雜的針對區(qū)塊體數據的組織需求。
通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到各實施方式可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件?;谶@樣的理解,上述技術方案本質上或者說對現(xiàn)有技術做出貢獻的部分可以以軟件產品的形式體現(xiàn)出來,該計算機軟件產品可以存儲在計算機可讀存儲介質中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執(zhí)行各個實施例或者實施例的某些部分所述的方法。
最后應說明的是:以上各實施例僅用以說明本發(fā)明的技術方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分或者全部技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發(fā)明各實施例技術方案的范圍。