本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,具體而言,本發(fā)明涉及一種區(qū)塊鏈數(shù)據(jù)同步的方法和裝置。
背景技術(shù):
區(qū)塊鏈?zhǔn)潜忍貛诺囊粋€(gè)重要概念,區(qū)塊鏈?zhǔn)且淮褂妹艽a學(xué)方法相關(guān)聯(lián)產(chǎn)生的數(shù)據(jù)塊,每一個(gè)數(shù)據(jù)塊中包含了一次比特幣網(wǎng)絡(luò)交易的信息,用于驗(yàn)證其信息的有效性和生成下一個(gè)區(qū)塊。
隨著數(shù)據(jù)處理技術(shù)的發(fā)展,用戶對(duì)區(qū)塊鏈數(shù)據(jù)同步速度的需求越來(lái)越高。當(dāng)區(qū)塊鏈數(shù)據(jù)中的部分?jǐn)?shù)據(jù)過(guò)大時(shí),或者是,單次區(qū)塊鏈數(shù)據(jù)添加量過(guò)大時(shí),全網(wǎng)同步區(qū)塊鏈數(shù)據(jù)將變得非常緩慢。若全網(wǎng)同步區(qū)塊鏈數(shù)據(jù)緩慢時(shí),需要消耗大量的時(shí)間,降低了數(shù)據(jù)同步的效率。同時(shí),在區(qū)塊鏈數(shù)據(jù)同步的過(guò)程發(fā)生了延時(shí)現(xiàn)象,由于延長(zhǎng)了數(shù)據(jù)同步過(guò)程中用戶等待的時(shí)間,從而降低了用戶體驗(yàn)度。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例在于提供一種區(qū)塊鏈數(shù)據(jù)同步的方法和裝置,通過(guò)在進(jìn)行數(shù)據(jù)同步的過(guò)程中,先同步區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的哈希校驗(yàn)結(jié)果,優(yōu)選完成業(yè)務(wù)交互,使得在數(shù)據(jù)量較大時(shí),能夠提高同步效率。
第一方面,本發(fā)明實(shí)施例提供了一種區(qū)塊鏈數(shù)據(jù)同步的方法,所述方法包括:
根據(jù)獲取的區(qū)塊鏈數(shù)據(jù)確定相應(yīng)的新增數(shù)據(jù)的大??;
判斷所述新增數(shù)據(jù)的大小是否達(dá)到進(jìn)行數(shù)據(jù)同步的預(yù)設(shè)值;
如果所述新增數(shù)據(jù)的大小達(dá)到進(jìn)行數(shù)據(jù)同步的預(yù)設(shè)值,隨機(jī)選取哈希算法對(duì)所述區(qū)塊鏈數(shù)據(jù)進(jìn)行運(yùn)算,獲得所述區(qū)塊鏈數(shù)據(jù)的哈希校驗(yàn)結(jié)果;
將所述區(qū)塊鏈數(shù)據(jù)的哈希校驗(yàn)結(jié)果發(fā)送至區(qū)塊鏈網(wǎng)絡(luò)內(nèi)的其余終端,使得所述其余終端基于所述區(qū)塊鏈數(shù)據(jù)的哈希校驗(yàn)結(jié)果進(jìn)行數(shù)據(jù)同步。
優(yōu)選的,所述區(qū)塊鏈數(shù)據(jù)的哈希校驗(yàn)結(jié)果包括以下一項(xiàng)或多項(xiàng):
所述區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的全量數(shù)據(jù)的哈希校驗(yàn)結(jié)果、所述區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果以及所述區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的單一哈希校驗(yàn)結(jié)果。
優(yōu)選的,所述方法還包括:對(duì)隨機(jī)選取的所述哈希算法進(jìn)行標(biāo)記,以及將標(biāo)記的所述哈希算法發(fā)送至區(qū)塊鏈網(wǎng)絡(luò)內(nèi)的其余終端,使得所述其余終端基于標(biāo)記的所述哈希算法進(jìn)行數(shù)據(jù)同步。
優(yōu)選的,所述方法還包括:將所述新增數(shù)據(jù)發(fā)送至區(qū)塊鏈網(wǎng)絡(luò)內(nèi)的其余終端,使得所述其余終端基于所述新增數(shù)據(jù)進(jìn)行數(shù)據(jù)同步以獲得同步的新增數(shù)據(jù)。
優(yōu)選的,所述方法還包括:選取標(biāo)記的所述哈希算法對(duì)所述同步的新增數(shù)據(jù)進(jìn)行運(yùn)算,獲得所述同步的新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果。
優(yōu)選的,所述方法還包括:將所述同步的新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果與任一所述區(qū)塊鏈數(shù)據(jù)的哈希校驗(yàn)結(jié)果進(jìn)行比較,若所述同步的新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果與任一所述區(qū)塊鏈數(shù)據(jù)的哈希校驗(yàn)結(jié)果一致,則驗(yàn)證所述同步的新增數(shù)據(jù)正確。
第二方面,本發(fā)明實(shí)施例提供了一種區(qū)塊鏈數(shù)據(jù)同步的裝置,所述裝置包括:
確定模塊,根據(jù)獲取的區(qū)塊鏈數(shù)據(jù)確定相應(yīng)的新增數(shù)據(jù)的大??;
判斷模塊,判斷所述新增數(shù)據(jù)的大小是否達(dá)到進(jìn)行數(shù)據(jù)同步的預(yù)設(shè)值;
運(yùn)算模塊,如果所述新增數(shù)據(jù)的大小達(dá)到進(jìn)行數(shù)據(jù)同步的預(yù)設(shè)值,隨機(jī)選取哈希算法對(duì)所述區(qū)塊鏈數(shù)據(jù)進(jìn)行運(yùn)算,獲得所述區(qū)塊鏈數(shù)據(jù)的哈希校驗(yàn)結(jié)果;
發(fā)送模塊,將所述區(qū)塊鏈數(shù)據(jù)的哈希校驗(yàn)結(jié)果發(fā)送至區(qū)塊鏈網(wǎng)絡(luò)內(nèi)的其余終端,使得所述其余終端基于所述區(qū)塊鏈數(shù)據(jù)的哈希校驗(yàn)結(jié)果進(jìn)行數(shù)據(jù)同步。
優(yōu)選的,所述運(yùn)算模塊運(yùn)算獲得的所述區(qū)塊鏈數(shù)據(jù)的哈希校驗(yàn)結(jié)果包括以下一項(xiàng)或多項(xiàng):
所述區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的全量數(shù)據(jù)的哈希校驗(yàn)結(jié)果、所述區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果以及所述區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的單一哈希校驗(yàn)結(jié)果。
優(yōu)選的,所述裝置還包括:標(biāo)記模塊,對(duì)隨機(jī)選取的所述哈希算法進(jìn)行標(biāo)記,以及將所述標(biāo)記模塊標(biāo)記的所述哈希算法通過(guò)所述發(fā)送模塊發(fā)送至區(qū)塊鏈網(wǎng)絡(luò)內(nèi)的其余終端,使得所述其余終端基于所述標(biāo)記模塊標(biāo)記的所述哈希算法進(jìn)行數(shù)據(jù)同步。
優(yōu)選的,所述發(fā)送模塊進(jìn)一步用于:將所述新增數(shù)據(jù)發(fā)送至區(qū)塊鏈網(wǎng)絡(luò)內(nèi)的其余終端,使得所述其余終端基于所述新增數(shù)據(jù)進(jìn)行數(shù)據(jù)同步以獲得同步的新增數(shù)據(jù)。
本發(fā)明通過(guò)在進(jìn)行數(shù)據(jù)同步的過(guò)程中,先同步區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的哈希校驗(yàn)結(jié)果,優(yōu)選完成業(yè)務(wù)交互,在完成交易后,網(wǎng)絡(luò)空閑時(shí),再同步大量新增數(shù)據(jù),使得在數(shù)據(jù)量較大時(shí),能夠提高同步效率,同時(shí),由于縮短了數(shù)據(jù)同步過(guò)程中用戶等待的時(shí)間,從而提高了用戶體驗(yàn)度。
附圖說(shuō)明
圖1是本發(fā)明實(shí)施例提供的一種區(qū)塊鏈數(shù)據(jù)同步的方法的流程圖;
圖2是本發(fā)明實(shí)施例提供的一種區(qū)塊鏈數(shù)據(jù)同步的裝置的結(jié)構(gòu)框圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
為便于對(duì)本發(fā)明實(shí)施例的理解,下面將結(jié)合附圖以具體實(shí)施例做進(jìn)一步的解釋說(shuō)明。
發(fā)明人發(fā)現(xiàn),在進(jìn)行數(shù)據(jù)同步的過(guò)程中,可能會(huì)產(chǎn)生因新增數(shù)據(jù)過(guò)大而造成同步新增數(shù)據(jù)需要耗費(fèi)大量時(shí)間的情況。因此,可以先同步區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的哈希校驗(yàn)結(jié)果,優(yōu)選完成業(yè)務(wù)交互,在完成交易后,網(wǎng)絡(luò)空閑時(shí),再同步大量新增數(shù)據(jù),使得在數(shù)據(jù)量較大時(shí),能夠提高同步效率。
下面結(jié)合附圖詳細(xì)說(shuō)明本發(fā)明的技術(shù)方案。
圖1是本發(fā)明實(shí)施例提供的一種區(qū)塊鏈數(shù)據(jù)同步的方法的流程圖,如圖1所示,一種區(qū)塊鏈數(shù)據(jù)同步的方法包括如下步驟:
s101:根據(jù)獲取的區(qū)塊鏈數(shù)據(jù)確定相應(yīng)的新增數(shù)據(jù)的大小。在實(shí)際應(yīng)用中,新增數(shù)據(jù)往往為幾十m的高清圖像或者是視頻對(duì)應(yīng)的數(shù)據(jù)。
s102:判斷新增數(shù)據(jù)的大小是否達(dá)到進(jìn)行數(shù)據(jù)同步的預(yù)設(shè)值。
在實(shí)際應(yīng)用中,為了提高數(shù)據(jù)同步的效率,往往需要判斷新增數(shù)據(jù)的大小是否達(dá)到進(jìn)行數(shù)據(jù)同步的預(yù)設(shè)值,如果新增數(shù)據(jù)的大小很小,只有幾十字節(jié),可以在區(qū)塊鏈網(wǎng)絡(luò)的終端直接進(jìn)行同步,同步所需的時(shí)間為秒級(jí)。只有在新增數(shù)據(jù)的大小大于或者等于進(jìn)行數(shù)據(jù)同步的預(yù)設(shè)值時(shí),才采用本發(fā)明實(shí)施例提供的方法進(jìn)行數(shù)據(jù)同步。
s103:如果新增數(shù)據(jù)的大小達(dá)到進(jìn)行數(shù)據(jù)同步的預(yù)設(shè)值,隨機(jī)選取哈希算法對(duì)區(qū)塊鏈數(shù)據(jù)進(jìn)行運(yùn)算,獲得區(qū)塊鏈數(shù)據(jù)的哈希校驗(yàn)結(jié)果。
其中,區(qū)塊鏈數(shù)據(jù)的哈希校驗(yàn)結(jié)果可以為區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的全量數(shù)據(jù)的哈希校驗(yàn)結(jié)果,也可以為區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果,或者是區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的單一哈希校驗(yàn)結(jié)果。
s104:將區(qū)塊鏈數(shù)據(jù)的哈希校驗(yàn)結(jié)果發(fā)送至區(qū)塊鏈網(wǎng)絡(luò)內(nèi)的其余終端,使得其余終端基于區(qū)塊鏈數(shù)據(jù)的哈希校驗(yàn)結(jié)果進(jìn)行數(shù)據(jù)同步以獲得同步的新增數(shù)據(jù)。
相對(duì)于現(xiàn)有技術(shù),在區(qū)塊鏈網(wǎng)絡(luò)內(nèi)的終端之間同步大量的新增數(shù)據(jù)往往需要分鐘級(jí)以上的時(shí)間。在實(shí)際應(yīng)用中,區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的哈希校驗(yàn)結(jié)果往往僅僅只有幾十個(gè)字節(jié),在區(qū)塊鏈網(wǎng)絡(luò)內(nèi)的終端之間同步區(qū)塊鏈數(shù)據(jù)的哈希校驗(yàn)結(jié)果僅僅需要幾秒。通過(guò)在進(jìn)行數(shù)據(jù)同步的過(guò)程中,先同步區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的哈希校驗(yàn)結(jié)果,優(yōu)選完成業(yè)務(wù)交互,使得在數(shù)據(jù)量較大時(shí),能夠提高同步效率。
此外,為了驗(yàn)證同步數(shù)據(jù)的準(zhǔn)確性,對(duì)隨機(jī)選取的哈希算法進(jìn)行標(biāo)記,以及將標(biāo)記的哈希算法發(fā)送至區(qū)塊鏈網(wǎng)絡(luò)內(nèi)的其余終端,使得其余終端基于標(biāo)記的哈希算法進(jìn)行數(shù)據(jù)同步。
在本發(fā)明實(shí)施例所提供的技術(shù)方案中,通過(guò)對(duì)隨機(jī)選取的哈希算法進(jìn)行標(biāo)記,避免了由于選取的哈希算法不同,可能造成相應(yīng)的哈希校驗(yàn)結(jié)果也不同情況的發(fā)生。如果該哈希校驗(yàn)結(jié)果不是唯一的數(shù)值,也就無(wú)法根據(jù)該哈希校驗(yàn)結(jié)果判斷同步的新增數(shù)據(jù)的準(zhǔn)確性。
哈希算法將任意長(zhǎng)度的二進(jìn)制值映射為固定長(zhǎng)度的較小二進(jìn)制值,這個(gè)小的二進(jìn)制值稱為哈希值。哈希值是一段數(shù)據(jù)唯一且極其緊湊的數(shù)值表示形式。如果散列一段明文而且哪怕只更改該段落的一個(gè)字母,隨后的哈希都將產(chǎn)生不同的值。要找到散列為同一個(gè)值的兩個(gè)不同的輸入,在計(jì)算上是不可能的,所以數(shù)據(jù)的哈希值可以檢驗(yàn)數(shù)據(jù)的完整性。典型的哈希算法包括md2、md4、md5和sha-1,具體的哈希算法為常規(guī)算法,在此不再贅述。
在實(shí)際應(yīng)用中,在完成交易后,網(wǎng)絡(luò)空閑時(shí),再同步大量新增數(shù)據(jù)。具體而言,在將區(qū)塊鏈數(shù)據(jù)的哈希校驗(yàn)結(jié)果發(fā)送至區(qū)塊鏈網(wǎng)絡(luò)內(nèi)的其余終端,使得其余終端基于區(qū)塊鏈數(shù)據(jù)的哈希校驗(yàn)結(jié)果進(jìn)行數(shù)據(jù)同步之后,將新增數(shù)據(jù)發(fā)送至區(qū)塊鏈網(wǎng)絡(luò)內(nèi)的其余終端,使得其余終端基于新增數(shù)據(jù)進(jìn)行數(shù)據(jù)同步以獲得同步的新增數(shù)據(jù)。
此外,在區(qū)塊鏈網(wǎng)絡(luò)內(nèi)的終端獲取到同步的新增數(shù)據(jù)之后,為了驗(yàn)證同步的新增數(shù)據(jù)的準(zhǔn)確性,選取之前標(biāo)記的哈希算法對(duì)同步的新增數(shù)據(jù)進(jìn)行運(yùn)算,獲得同步的新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果。
進(jìn)一步地,將同步的新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果與任一區(qū)塊鏈數(shù)據(jù)的哈希校驗(yàn)結(jié)果進(jìn)行比較,若同步的新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果與任一區(qū)塊鏈數(shù)據(jù)的哈希校驗(yàn)結(jié)果一致,則驗(yàn)證同步的新增數(shù)據(jù)正確。
第一種驗(yàn)證同步的新增數(shù)據(jù)正確的方法為,將同步的新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果與區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的全量數(shù)據(jù)的哈希校驗(yàn)結(jié)果進(jìn)行比較,若同步的新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果與區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的全量數(shù)據(jù)的哈希校驗(yàn)結(jié)果一致,則驗(yàn)證同步的新增數(shù)據(jù)正確。
第二種驗(yàn)證同步的新增數(shù)據(jù)正確的方法為,將同步的新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果與區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果進(jìn)行比較,若同步的新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果與區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果一致,則驗(yàn)證同步的新增數(shù)據(jù)正確。
第三種驗(yàn)證同步的新增數(shù)據(jù)正確的方法為,將同步的新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果與區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的單一哈希校驗(yàn)結(jié)果進(jìn)行比較,若同步的新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果與區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的單一哈希校驗(yàn)結(jié)果一致,則驗(yàn)證同步的新增數(shù)據(jù)正確。
除了上述驗(yàn)證同步的新增數(shù)據(jù)正確的方法之外,也可以將同步的新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果與區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的全量數(shù)據(jù)的哈希校驗(yàn)結(jié)果、區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果進(jìn)行組合對(duì)比,在此不再贅述,請(qǐng)參見前述。
反之,在將同步的新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果與任一區(qū)塊鏈數(shù)據(jù)的哈希校驗(yàn)結(jié)果進(jìn)行比較之后,若同步的新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果與任一區(qū)塊鏈數(shù)據(jù)的哈希校驗(yàn)結(jié)果均不一致,則驗(yàn)證同步的新增數(shù)據(jù)不正確。
在驗(yàn)證同步的新增數(shù)據(jù)不正確之后,重新對(duì)區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的新增數(shù)據(jù)進(jìn)行數(shù)據(jù)同步過(guò)程,至到驗(yàn)證出得到的同步的新增數(shù)據(jù)為正確數(shù)據(jù)時(shí)為止。
在區(qū)塊鏈網(wǎng)絡(luò)內(nèi)同步的新增數(shù)據(jù)為合同掃描件對(duì)應(yīng)的圖片文件的數(shù)據(jù)的一個(gè)具體應(yīng)用場(chǎng)景中,把合同掃描件對(duì)應(yīng)的圖片文件上傳到一個(gè)終端節(jié)點(diǎn)。該合同掃描件對(duì)應(yīng)的圖片文件的數(shù)據(jù)的大小為30m。
發(fā)明人發(fā)現(xiàn),如果采用現(xiàn)有的區(qū)塊鏈技術(shù)全網(wǎng)同步該新增數(shù)據(jù)至區(qū)塊鏈網(wǎng)絡(luò)內(nèi)的其余終端節(jié)點(diǎn),上述同步數(shù)據(jù)的過(guò)程往往需要很久。反之,由于新增數(shù)據(jù)對(duì)應(yīng)的哈希校驗(yàn)結(jié)果僅僅只有十幾個(gè)字節(jié),或者是幾十個(gè)字節(jié),如果本地終端運(yùn)算該新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果只需要毫秒級(jí)就可以完成整個(gè)運(yùn)算過(guò)程。然后,由于新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果僅僅只有幾十個(gè)字節(jié),因此,將得到的新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果同步至區(qū)塊鏈網(wǎng)絡(luò)內(nèi)的其余終端也就只需要幾秒鐘的時(shí)間,從而,提高了數(shù)據(jù)同步的效率。
因此,發(fā)明人考慮,在進(jìn)行數(shù)據(jù)同步的過(guò)程中,優(yōu)先同步哈希校驗(yàn)結(jié)果以快速完成業(yè)務(wù)響應(yīng)。
在區(qū)塊鏈網(wǎng)絡(luò)內(nèi)同步的新增數(shù)據(jù)為合同掃描件圖片文件的數(shù)據(jù)的一個(gè)具體應(yīng)用場(chǎng)景中,區(qū)塊鏈數(shù)據(jù)同步的步驟具體如下所述:
首先,在該應(yīng)用場(chǎng)景下,新增數(shù)據(jù)為:合同掃描件圖片文件對(duì)應(yīng)的數(shù)據(jù)。確定該新增數(shù)據(jù)的大小,該新增數(shù)據(jù)的大小為30m。
進(jìn)一步地,由于在該具體應(yīng)用場(chǎng)景下,預(yù)先設(shè)置了進(jìn)行數(shù)據(jù)同步的預(yù)設(shè)值為20m。由于新增數(shù)據(jù)的大小為30m,因此,新增數(shù)據(jù)的大小大于預(yù)先設(shè)置的進(jìn)行數(shù)據(jù)同步的預(yù)設(shè)值20m。因此,判斷出新增數(shù)據(jù)的大小達(dá)到了進(jìn)行數(shù)據(jù)同步的預(yù)設(shè)值。
進(jìn)一步地,在判斷出新增數(shù)據(jù)的大小達(dá)到了進(jìn)行數(shù)據(jù)同步的預(yù)設(shè)值之后,開始啟動(dòng)在區(qū)塊鏈網(wǎng)絡(luò)內(nèi)的終端之間對(duì)該新增數(shù)據(jù)進(jìn)行數(shù)據(jù)同步的過(guò)程。隨機(jī)選取哈希算法對(duì)區(qū)塊鏈數(shù)據(jù)進(jìn)行運(yùn)算,獲得相應(yīng)的哈希校驗(yàn)結(jié)果。
需要說(shuō)明的是,區(qū)塊鏈數(shù)據(jù)具體為區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的全量數(shù)據(jù)以及區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的新增數(shù)據(jù)。
在確定出隨機(jī)選取的哈希算法為md2之后,采用哈希算法md2對(duì)區(qū)塊鏈數(shù)據(jù)進(jìn)行哈希運(yùn)算,得到相應(yīng)的哈希校驗(yàn)結(jié)果。
具體地,區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的哈希校驗(yàn)結(jié)果可以為:區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的全量數(shù)據(jù)的哈希校驗(yàn)結(jié)果,也可以為:區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果,或者為:區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的單一哈希校驗(yàn)結(jié)果。
進(jìn)一步地,將包含區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的全量數(shù)據(jù)的哈希校驗(yàn)結(jié)果、區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果、區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的單一哈希校驗(yàn)結(jié)果發(fā)送至區(qū)塊鏈網(wǎng)絡(luò)內(nèi)的其余終端,使得其余終端基于上述哈希校驗(yàn)結(jié)果進(jìn)行數(shù)據(jù)同步。
在該應(yīng)用場(chǎng)景下,數(shù)據(jù)同步的過(guò)程中,先同步校驗(yàn)結(jié)果以快速完成業(yè)務(wù)響應(yīng)。由于新增數(shù)據(jù)對(duì)應(yīng)的哈希結(jié)果僅僅只有十幾個(gè)到幾十個(gè)字節(jié),因此,本地終端運(yùn)算該新增數(shù)據(jù)的哈希結(jié)果只需要毫秒級(jí)就可以完成,從而,使得在數(shù)據(jù)量較大時(shí),能夠提高同步效率。
在該應(yīng)用場(chǎng)景下,在完成交易后,網(wǎng)絡(luò)空閑時(shí),再同步大量新增數(shù)據(jù)。獲取到同步的新增數(shù)據(jù),以及依據(jù)之前標(biāo)記的哈希算法md2對(duì)該新增數(shù)據(jù)進(jìn)行運(yùn)算,獲得該新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果。
依據(jù)區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的單一哈希校驗(yàn)結(jié)果來(lái)判斷同步的新增數(shù)據(jù)的正確性。或者是,依據(jù)區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果和全量數(shù)據(jù)的哈希校驗(yàn)結(jié)果共同來(lái)判斷同步的新增數(shù)據(jù)的正確性。
具體地,若區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的單一哈希校驗(yàn)結(jié)果與同步的新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果一致,則驗(yàn)證出:同步的新增數(shù)據(jù)正確。
若區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果與同步的新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果一致,則驗(yàn)證出:同步的新增數(shù)據(jù)正確。
若區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的全量數(shù)據(jù)的哈希校驗(yàn)結(jié)果與同步的新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果一致,則驗(yàn)證出:同步的新增數(shù)據(jù)正確。
若區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果,以及區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的全量數(shù)據(jù)的哈希校驗(yàn)結(jié)果,與同步的新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果均一致,則驗(yàn)證出:同步的新增數(shù)據(jù)正確。
反之,若區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的單一哈希校驗(yàn)結(jié)果,區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果,以及區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的全量數(shù)據(jù)的哈希校驗(yàn)結(jié)果,與同步的新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果均不一致,則驗(yàn)證出:同步的新增數(shù)據(jù)不正確。
在驗(yàn)證出同步的新增數(shù)據(jù)不正確之后,采用標(biāo)記的算法重新對(duì)新增數(shù)據(jù)進(jìn)行同步,至到得到正確的同步新增數(shù)據(jù)為止。
綜上所述,本發(fā)明實(shí)施例提供的一種區(qū)塊鏈數(shù)據(jù)同步的方法,根據(jù)獲取的區(qū)塊鏈數(shù)據(jù)確定相應(yīng)的新增數(shù)據(jù)的大??;判斷新增數(shù)據(jù)的大小是否達(dá)到進(jìn)行數(shù)據(jù)同步的預(yù)設(shè)值;如果新增數(shù)據(jù)的大小達(dá)到進(jìn)行數(shù)據(jù)同步的預(yù)設(shè)值,隨機(jī)選取哈希算法對(duì)區(qū)塊鏈數(shù)據(jù)進(jìn)行運(yùn)算,獲得相應(yīng)的哈希校驗(yàn)結(jié)果;將該哈希校驗(yàn)結(jié)果發(fā)送至區(qū)塊鏈網(wǎng)絡(luò)內(nèi)的其余終端,使得其余終端基于該哈希校驗(yàn)結(jié)果進(jìn)行數(shù)據(jù)同步。本發(fā)明實(shí)施例中的數(shù)據(jù)同步過(guò)程,是優(yōu)先同步區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的哈希校驗(yàn)結(jié)果。因此,本發(fā)明所提供的技術(shù)方案在數(shù)據(jù)量較大時(shí),能夠提高同步效率,同時(shí),由于縮短了數(shù)據(jù)同步過(guò)程中用戶等待的時(shí)間,從而提高了用戶體驗(yàn)度。
如圖2所示,本發(fā)明實(shí)施例所提供的一種區(qū)塊鏈數(shù)據(jù)同步的裝置,包括:確定模塊201、判斷模塊202、運(yùn)算模塊203和發(fā)送模塊204。
具體而言,確定模塊,根據(jù)獲取的區(qū)塊鏈數(shù)據(jù)確定相應(yīng)的新增數(shù)據(jù)的大小;
判斷模塊,判斷新增數(shù)據(jù)的大小是否達(dá)到進(jìn)行數(shù)據(jù)同步的預(yù)設(shè)值;
運(yùn)算模塊,如果新增數(shù)據(jù)的大小達(dá)到進(jìn)行數(shù)據(jù)同步的預(yù)設(shè)值,隨機(jī)選取哈希算法對(duì)區(qū)塊鏈數(shù)據(jù)進(jìn)行運(yùn)算,獲得區(qū)塊鏈數(shù)據(jù)的哈希校驗(yàn)結(jié)果;
發(fā)送模塊,將區(qū)塊鏈數(shù)據(jù)的哈希校驗(yàn)結(jié)果發(fā)送至區(qū)塊鏈網(wǎng)絡(luò)內(nèi)的其余終端,使得其余終端基于區(qū)塊鏈數(shù)據(jù)的哈希校驗(yàn)結(jié)果進(jìn)行數(shù)據(jù)同步。
進(jìn)一步地,運(yùn)算模塊運(yùn)算獲得的區(qū)塊鏈數(shù)據(jù)的哈希校驗(yàn)結(jié)果包括以下一項(xiàng)或多項(xiàng):區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的全量數(shù)據(jù)的哈希校驗(yàn)結(jié)果、區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果以及區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的單一哈希校驗(yàn)結(jié)果。
進(jìn)一步地,為了提高對(duì)同步的新增數(shù)據(jù)校驗(yàn)的準(zhǔn)確性,準(zhǔn)確確定出與新增數(shù)據(jù)匹配的哈希算法,本發(fā)明實(shí)施例所提供的一種區(qū)塊鏈數(shù)據(jù)同步的裝置還包括標(biāo)記模塊(在圖2中未標(biāo)出)。
標(biāo)記模塊,對(duì)隨機(jī)選取的哈希算法進(jìn)行標(biāo)記,以及將標(biāo)記模塊標(biāo)記的哈希算法通過(guò)發(fā)送模塊發(fā)送至區(qū)塊鏈網(wǎng)絡(luò)內(nèi)的其余終端,使得其余終端基于標(biāo)記模塊標(biāo)記的哈希算法進(jìn)行數(shù)據(jù)同步。
進(jìn)一步地,為了提高同步效率,同時(shí)避免對(duì)存儲(chǔ)空間的浪費(fèi),僅同步新增數(shù)據(jù)。發(fā)送模塊還用于:將新增數(shù)據(jù)發(fā)送至區(qū)塊鏈網(wǎng)絡(luò)內(nèi)的其余終端,使得其余終端基于新增數(shù)據(jù)進(jìn)行數(shù)據(jù)同步以獲得同步的新增數(shù)據(jù)。
進(jìn)一步地,在準(zhǔn)確確定出與新增數(shù)據(jù)匹配的哈希算法之后,運(yùn)算模塊還用于:選取標(biāo)記的哈希算法對(duì)同步的新增數(shù)據(jù)進(jìn)行運(yùn)算,獲得同步的新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果。
進(jìn)一步地,為了驗(yàn)證同步的新增數(shù)據(jù)是否準(zhǔn)確,本發(fā)明實(shí)施例所提供的一種區(qū)塊鏈數(shù)據(jù)同步的裝置還包括驗(yàn)證模塊(在圖2中未標(biāo)出)。
驗(yàn)證模塊,將同步的新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果與任一區(qū)塊鏈數(shù)據(jù)的哈希校驗(yàn)結(jié)果進(jìn)行比較,若同步的新增數(shù)據(jù)的哈希校驗(yàn)結(jié)果與任一區(qū)塊鏈數(shù)據(jù)的哈希校驗(yàn)結(jié)果一致,則驗(yàn)證同步的新增數(shù)據(jù)正確。
本發(fā)明的技術(shù)方案中,根據(jù)獲取的區(qū)塊鏈數(shù)據(jù)確定相應(yīng)的新增數(shù)據(jù)的大?。慌袛嘈略鰯?shù)據(jù)的大小是否達(dá)到進(jìn)行數(shù)據(jù)同步的預(yù)設(shè)值;如果新增數(shù)據(jù)的大小達(dá)到進(jìn)行數(shù)據(jù)同步的預(yù)設(shè)值,隨機(jī)選取哈希算法對(duì)區(qū)塊鏈數(shù)據(jù)進(jìn)行運(yùn)算,獲得相應(yīng)的哈希校驗(yàn)結(jié)果;將該哈希校驗(yàn)結(jié)果發(fā)送至區(qū)塊鏈網(wǎng)絡(luò)內(nèi)的其余終端,使得其余終端基于該哈希校驗(yàn)結(jié)果進(jìn)行數(shù)據(jù)同步。本發(fā)明實(shí)施例中的數(shù)據(jù)同步過(guò)程,是優(yōu)先同步區(qū)塊鏈數(shù)據(jù)對(duì)應(yīng)的哈希校驗(yàn)結(jié)果。因此,本發(fā)明所提供的技術(shù)方案在數(shù)據(jù)量較大時(shí),能夠提高同步效率,同時(shí),由于縮短了數(shù)據(jù)同步過(guò)程中用戶等待的時(shí)間,從而提高了用戶體驗(yàn)度。
以上所述的具體實(shí)施方式,對(duì)本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說(shuō)明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施方式而已,并不用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。