本公開(kāi)涉及計(jì)算機(jī),尤其涉及一種區(qū)塊鏈數(shù)據(jù)共識(shí)上鏈方法、裝置。
背景技術(shù):
1、區(qū)塊鏈本質(zhì)是一個(gè)去中心化數(shù)據(jù)庫(kù),每一個(gè)區(qū)塊包含若干交易的信息,區(qū)塊之間按照時(shí)間順序組合而成的鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)。它可以在無(wú)需第三方背書(shū)情況下,實(shí)現(xiàn)數(shù)據(jù)信息的公開(kāi)透明、不可篡改、可追溯。然而,相關(guān)技術(shù)中,區(qū)塊鏈的數(shù)據(jù)共識(shí)上鏈效率低,導(dǎo)致系統(tǒng)每秒事務(wù)數(shù)(transactions?per?second,tps)很低,從而導(dǎo)致區(qū)塊鏈無(wú)法滿足對(duì)實(shí)時(shí)性要求高的場(chǎng)景,制約著區(qū)塊鏈技術(shù)發(fā)展。
技術(shù)實(shí)現(xiàn)思路
1、本公開(kāi)旨在至少在一定程度上解決相關(guān)技術(shù)中的技術(shù)問(wèn)題之一。
2、為此,本公開(kāi)的第一個(gè)目的在于提出一種區(qū)塊鏈數(shù)據(jù)共識(shí)上鏈方法,以提高數(shù)據(jù)共識(shí)上鏈效率。
3、本公開(kāi)的第二個(gè)目的在于提出一種區(qū)塊鏈數(shù)據(jù)共識(shí)上鏈裝置。
4、本公開(kāi)的第三個(gè)目的在于提出一種電子設(shè)備。
5、本公開(kāi)的第四個(gè)目的在于提出一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。
6、本公開(kāi)的第五個(gè)目的在于提出一種計(jì)算機(jī)程序產(chǎn)品。
7、為達(dá)上述目的,本公開(kāi)第一方面實(shí)施例提出了一種區(qū)塊鏈數(shù)據(jù)共識(shí)上鏈方法,包括:
8、響應(yīng)于接收到數(shù)據(jù)上鏈請(qǐng)求,采用第一節(jié)點(diǎn)子集對(duì)所述數(shù)據(jù)上鏈請(qǐng)求進(jìn)行共識(shí),得到第一共識(shí)結(jié)果,其中,所述第一節(jié)點(diǎn)子集中包括起點(diǎn)節(jié)點(diǎn)、終點(diǎn)節(jié)點(diǎn)以及至少一個(gè)中間節(jié)點(diǎn),所述起點(diǎn)節(jié)點(diǎn)和所述終點(diǎn)節(jié)點(diǎn)為區(qū)塊鏈節(jié)點(diǎn)集合中共識(shí)結(jié)果差異最大的兩個(gè)節(jié)點(diǎn),所述中間節(jié)點(diǎn)為所述區(qū)塊鏈節(jié)點(diǎn)集合中所述起點(diǎn)節(jié)點(diǎn)和所述終點(diǎn)節(jié)點(diǎn)之間最優(yōu)游走路線上的節(jié)點(diǎn);
9、若所述第一共識(shí)結(jié)果為共識(shí)通過(guò),則將所述數(shù)據(jù)上鏈請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)添加至區(qū)塊鏈。
10、可選地,所述方法還包括:
11、若所述第一共識(shí)結(jié)果為共識(shí)未通過(guò),則采用所述第一節(jié)點(diǎn)子集和所述區(qū)塊鏈節(jié)點(diǎn)集合中的第二節(jié)點(diǎn)子集對(duì)所述數(shù)據(jù)上鏈請(qǐng)求進(jìn)行共識(shí),得到第二共識(shí)結(jié)果,其中,所述第二節(jié)點(diǎn)子集中任一第二節(jié)點(diǎn)與所述任一第二節(jié)點(diǎn)對(duì)應(yīng)的第一節(jié)點(diǎn)之間的共識(shí)結(jié)果差異小于差異閾值,所述任一第二節(jié)點(diǎn)對(duì)應(yīng)的第一節(jié)點(diǎn)為所述第一節(jié)點(diǎn)子集中與所述任一第二節(jié)點(diǎn)之間共識(shí)結(jié)果差異最小的節(jié)點(diǎn);
12、若所述第二共識(shí)結(jié)果為共識(shí)通過(guò),則將所述數(shù)據(jù)上鏈請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)添加至區(qū)塊鏈;
13、若所述第二共識(shí)結(jié)果為共識(shí)未通過(guò),則采用所述區(qū)塊鏈節(jié)點(diǎn)集合中的所有節(jié)點(diǎn)對(duì)所述數(shù)據(jù)上鏈請(qǐng)求進(jìn)行共識(shí),得到第三共識(shí)結(jié)果;
14、若所述第三共識(shí)結(jié)果為共識(shí)通過(guò),則將所述數(shù)據(jù)上鏈請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)添加至區(qū)塊鏈。
15、可選地,在所述采用第一節(jié)點(diǎn)子集對(duì)所述數(shù)據(jù)上鏈請(qǐng)求進(jìn)行共識(shí)之前,所述方法還包括:
16、根據(jù)區(qū)塊鏈節(jié)點(diǎn)集合對(duì)應(yīng)的歷史共識(shí)結(jié)果構(gòu)建空間共識(shí)向量集合,其中,所述空間共識(shí)向量集合中的空間共識(shí)向量與所述區(qū)塊鏈節(jié)點(diǎn)集合中的節(jié)點(diǎn)一一對(duì)應(yīng);
17、從所述區(qū)塊鏈節(jié)點(diǎn)集合中選取空間共識(shí)向量距離最大的兩個(gè)節(jié)點(diǎn)分別作為起點(diǎn)節(jié)點(diǎn)、終點(diǎn)節(jié)點(diǎn);
18、從所述區(qū)塊鏈節(jié)點(diǎn)集合中確定所述起點(diǎn)節(jié)點(diǎn)與所述終點(diǎn)節(jié)點(diǎn)之間的最優(yōu)游走路線,并將所述最優(yōu)游走路線中的節(jié)點(diǎn)、所述起點(diǎn)節(jié)點(diǎn)以及所述終點(diǎn)節(jié)點(diǎn)放入第一節(jié)點(diǎn)子集。
19、可選地,所述從所述區(qū)塊鏈節(jié)點(diǎn)集合中確定所述起點(diǎn)節(jié)點(diǎn)與所述終點(diǎn)節(jié)點(diǎn)之間的最優(yōu)游走路線,包括:
20、確定所述起點(diǎn)節(jié)點(diǎn)與所述終點(diǎn)節(jié)點(diǎn)之間的第一空間共識(shí)向量方向、探測(cè)半徑以及第一探測(cè)游走步長(zhǎng);
21、令所述起點(diǎn)節(jié)點(diǎn)按照所述第一空間共識(shí)向量方向以及所述第一探測(cè)游走步長(zhǎng)游走至目標(biāo)位置,并以所述目標(biāo)位置為中心按照所述探測(cè)半徑進(jìn)行節(jié)點(diǎn)掃描,得到掃描結(jié)果;
22、若所述掃描結(jié)果為不存在所述區(qū)塊鏈節(jié)點(diǎn)集合中的節(jié)點(diǎn),則令所述起點(diǎn)節(jié)點(diǎn)按照所述向量方向以及所述第一探測(cè)游走步長(zhǎng)由所述目標(biāo)位置繼續(xù)游走,直至掃描結(jié)果為存在所述區(qū)塊鏈節(jié)點(diǎn)集合中的節(jié)點(diǎn);
23、將所述掃描結(jié)果對(duì)應(yīng)的節(jié)點(diǎn)作為起點(diǎn)節(jié)點(diǎn)繼續(xù)進(jìn)行游走,直至游走至所述終點(diǎn)節(jié)點(diǎn),得到最優(yōu)游走路線。
24、可選地,所述確定所述起點(diǎn)節(jié)點(diǎn)與所述終點(diǎn)節(jié)點(diǎn)之間的探測(cè)半徑以及第一探測(cè)游走步長(zhǎng),包括:
25、對(duì)所述第一空間共識(shí)向量方向進(jìn)行歸一化處理,得到歸一化向量方向;
26、確定所述空間共識(shí)向量集合對(duì)應(yīng)的最小空間共識(shí)向量距離,并將所述最小空間共識(shí)向量距離作為探測(cè)半徑;
27、根據(jù)所述歸一化向量方向以及所述探測(cè)半徑,確定第一探測(cè)游走步長(zhǎng)。
28、可選地,在所述采用所述第一節(jié)點(diǎn)子集和所述區(qū)塊鏈節(jié)點(diǎn)集合中的第二節(jié)點(diǎn)子集對(duì)所述數(shù)據(jù)上鏈請(qǐng)求進(jìn)行共識(shí)之前,所述方法還包括:
29、從所述區(qū)塊鏈節(jié)點(diǎn)集合中確定第二節(jié)點(diǎn)子集,其中,所述第二節(jié)點(diǎn)子集中任一第二節(jié)點(diǎn)的空間共識(shí)向量以及所述任一第二節(jié)點(diǎn)對(duì)應(yīng)的第一節(jié)點(diǎn)的空間共識(shí)向量之間的距離小于距離閾值,所述任一第二節(jié)點(diǎn)對(duì)應(yīng)的第一節(jié)點(diǎn)為所述第一節(jié)點(diǎn)子集中空間共識(shí)向量與所述任一第二節(jié)點(diǎn)的空間共識(shí)向量之間距離最小的節(jié)點(diǎn)。
30、可選地,所述從所述區(qū)塊鏈節(jié)點(diǎn)集合中確定第二節(jié)點(diǎn)子集,包括:
31、從所述區(qū)塊鏈節(jié)點(diǎn)集合中選取第三節(jié)點(diǎn),并確定所述第一節(jié)點(diǎn)子集中空間共識(shí)向量與所述第三節(jié)點(diǎn)的空間共識(shí)向量之間距離最小的節(jié)點(diǎn),得到所述第三節(jié)點(diǎn)對(duì)應(yīng)的第一節(jié)點(diǎn),其中,所述第三節(jié)點(diǎn)為所述區(qū)塊鏈節(jié)點(diǎn)集合中除所述第一節(jié)點(diǎn)子集以及所述第二節(jié)點(diǎn)子集之外的任一節(jié)點(diǎn);
32、確定所述第三節(jié)點(diǎn)與所述第三節(jié)點(diǎn)對(duì)應(yīng)的第一節(jié)點(diǎn)之間的第二空間共識(shí)向量方向以及第二探測(cè)游走步長(zhǎng);
33、令所述第三節(jié)點(diǎn)按照所述第二空間共識(shí)向量方向以及所述第二探測(cè)游走步長(zhǎng)進(jìn)行游走,直至游走至空間共識(shí)向量與所述任一節(jié)點(diǎn)對(duì)應(yīng)的第一節(jié)點(diǎn)的空間共識(shí)向量之間的距離小于所述距離閾值,得到并將游走后的第三節(jié)點(diǎn)放入第二節(jié)點(diǎn)子集;
34、在所述第二節(jié)點(diǎn)子集對(duì)應(yīng)的節(jié)點(diǎn)數(shù)量滿足選取要求的情況下,停止從所述區(qū)塊鏈節(jié)點(diǎn)集合中選取第三節(jié)點(diǎn),得到第二節(jié)點(diǎn)子集。
35、可選地,所述將所述數(shù)據(jù)上鏈請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)添加至區(qū)塊鏈,包括:
36、通過(guò)狀態(tài)機(jī)將所述數(shù)據(jù)上鏈請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)異步上鏈至區(qū)塊鏈。
37、可選地,所述方法還包括:
38、確定所述第一共識(shí)結(jié)果對(duì)應(yīng)的共識(shí)結(jié)果通過(guò)率,其中,所述第一共識(shí)結(jié)果包括所述第一節(jié)點(diǎn)子集中任一第一節(jié)點(diǎn)對(duì)應(yīng)的共識(shí)結(jié)果;
39、若所述共識(shí)結(jié)果通過(guò)率大于共識(shí)結(jié)果通過(guò)率閾值,則所述第一共識(shí)結(jié)果為共識(shí)通過(guò);
40、若所述共識(shí)結(jié)果通過(guò)率不大于所述共識(shí)結(jié)果通過(guò)率閾值,則所述第一共識(shí)結(jié)果為共識(shí)未通過(guò)。
41、為達(dá)上述目的,本公開(kāi)第二方面實(shí)施例提出了一種區(qū)塊鏈數(shù)據(jù)共識(shí)上鏈裝置,包括:
42、數(shù)據(jù)共識(shí)單元,用于響應(yīng)于接收到數(shù)據(jù)上鏈請(qǐng)求,采用第一節(jié)點(diǎn)子集對(duì)所述數(shù)據(jù)上鏈請(qǐng)求進(jìn)行共識(shí),得到第一共識(shí)結(jié)果,其中,所述第一節(jié)點(diǎn)子集中包括起點(diǎn)節(jié)點(diǎn)、終點(diǎn)節(jié)點(diǎn)以及至少一個(gè)中間節(jié)點(diǎn),所述起點(diǎn)節(jié)點(diǎn)和所述終點(diǎn)節(jié)點(diǎn)為區(qū)塊鏈節(jié)點(diǎn)集合中共識(shí)結(jié)果差異最大的兩個(gè)節(jié)點(diǎn),所述中間節(jié)點(diǎn)為所述區(qū)塊鏈節(jié)點(diǎn)集合中所述起點(diǎn)節(jié)點(diǎn)和所述終點(diǎn)節(jié)點(diǎn)之間最優(yōu)游走路線上的節(jié)點(diǎn);
43、數(shù)據(jù)上鏈單元,用于若所述第一共識(shí)結(jié)果為共識(shí)通過(guò),則將所述數(shù)據(jù)上鏈請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)添加至區(qū)塊鏈。
44、為達(dá)上述目的,本公開(kāi)第三方面實(shí)施例提出了一種電子設(shè)備,包括:處理器,以及與處理器通信連接的存儲(chǔ)器;
45、存儲(chǔ)器存儲(chǔ)計(jì)算機(jī)執(zhí)行指令;
46、處理器執(zhí)行存儲(chǔ)器存儲(chǔ)的計(jì)算機(jī)執(zhí)行指令,以實(shí)現(xiàn)前述第一方面中任一項(xiàng)所示的方法。
47、為達(dá)上述目的,本公開(kāi)第四方面實(shí)施例提出了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中存儲(chǔ)有計(jì)算機(jī)執(zhí)行指令,計(jì)算機(jī)執(zhí)行指令被處理器執(zhí)行時(shí)用于實(shí)現(xiàn)前述第一方面中任一項(xiàng)所示的方法。
48、為達(dá)上述目的,本公開(kāi)第五方面實(shí)施例提出了一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,該計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)前述第一方面中任一項(xiàng)所示的方法。
49、綜上,本公開(kāi)提供的方法、裝置、設(shè)備及存儲(chǔ)介質(zhì),通過(guò)采用區(qū)塊鏈節(jié)點(diǎn)集合中的第一節(jié)點(diǎn)子集對(duì)數(shù)據(jù)上鏈請(qǐng)求進(jìn)行共識(shí),由于第一節(jié)點(diǎn)子集中包括區(qū)塊鏈節(jié)點(diǎn)集合中共識(shí)結(jié)果差異最大的兩個(gè)節(jié)點(diǎn),以及這兩個(gè)節(jié)點(diǎn)之間最優(yōu)游走路線上的節(jié)點(diǎn),因此,第一節(jié)點(diǎn)子集中的節(jié)點(diǎn)之間共識(shí)結(jié)果差異相對(duì)較大,可以包括區(qū)塊鏈節(jié)點(diǎn)共識(shí)的大部分情況,從而可以達(dá)到以第一節(jié)點(diǎn)子集代替區(qū)塊鏈節(jié)點(diǎn)集合進(jìn)行共識(shí)的效果,可以提升數(shù)據(jù)共識(shí)上鏈效率。
50、本公開(kāi)附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過(guò)本公開(kāi)的實(shí)踐了解到。