本技術(shù)涉及區(qū)塊鏈,尤其涉及一種區(qū)塊鏈數(shù)據(jù)處理方法、裝置及存儲介質(zhì)。
背景技術(shù):
1、在目前的區(qū)塊鏈系統(tǒng)中,當(dāng)提案節(jié)點生成一個新區(qū)塊之后,該提案節(jié)點會將該新區(qū)塊在區(qū)塊鏈中進行廣播,使得區(qū)塊鏈中的共識節(jié)點采用例如拜占庭共識算法等對這個新區(qū)塊進行共識處理,當(dāng)區(qū)塊鏈中的共識節(jié)點達成對該新區(qū)塊的共識,該提案節(jié)點可以將該新區(qū)塊添加到區(qū)塊鏈中。但是,在采用拜占庭共識算法對該新區(qū)塊進行共識處理時,區(qū)塊鏈中的共識節(jié)點需要經(jīng)過多輪的信息廣播以對該新區(qū)塊進行共識處理。當(dāng)該新區(qū)塊中包括大量的交易信息時,在進行多輪信息廣播的過程中,會有大量的交易信息在網(wǎng)絡(luò)中傳播,因此容易導(dǎo)致出現(xiàn)網(wǎng)絡(luò)擁堵的情況,從而會降低共識處理的速度與效率,進而會降低區(qū)塊鏈的吞吐量。
技術(shù)實現(xiàn)思路
1、以下是對本文詳細描述的主題的概述。本概述并非是為了限制權(quán)利要求的保護范圍。
2、本技術(shù)實施例提供了一種區(qū)塊鏈數(shù)據(jù)處理方法、裝置及存儲介質(zhì),能夠降低出現(xiàn)網(wǎng)絡(luò)擁堵的概率,從而能夠提高共識處理的速度與效率,進而能夠提高區(qū)塊鏈的吞吐量。
3、一方面,本技術(shù)實施例提供了一種區(qū)塊鏈數(shù)據(jù)處理方法,包括以下步驟:
4、執(zhí)行數(shù)據(jù)廣播操作,其中,所述數(shù)據(jù)廣播操作包括獲取目標(biāo)交易的操作、生成所述目標(biāo)交易的元數(shù)據(jù)的操作,以及將所述目標(biāo)交易和所述元數(shù)據(jù)在區(qū)塊鏈中進行廣播的操作;
5、當(dāng)所述目標(biāo)交易和所述元數(shù)據(jù)被所述區(qū)塊鏈中預(yù)設(shè)數(shù)量的共識節(jié)點保存,根據(jù)所述元數(shù)據(jù)生成待共識的目標(biāo)區(qū)塊,將所述目標(biāo)區(qū)塊廣播給多個所述共識節(jié)點進行共識處理;
6、當(dāng)多個所述共識節(jié)點達成對所述目標(biāo)區(qū)塊的共識,將所述目標(biāo)區(qū)塊添加到所述區(qū)塊鏈;
7、響應(yīng)于通過所述區(qū)塊鏈對所述目標(biāo)交易進行查詢,讀取所述目標(biāo)區(qū)塊中的所述元數(shù)據(jù);
8、根據(jù)所述元數(shù)據(jù)在本地對所述目標(biāo)交易進行查詢。
9、另一方面,本技術(shù)實施例還提供了一種區(qū)塊鏈數(shù)據(jù)處理裝置,包括:
10、操作執(zhí)行單元,用于執(zhí)行數(shù)據(jù)廣播操作,其中,所述數(shù)據(jù)廣播操作包括獲取目標(biāo)交易的操作、生成所述目標(biāo)交易的元數(shù)據(jù)的操作,以及將所述目標(biāo)交易和所述元數(shù)據(jù)在區(qū)塊鏈中進行廣播的操作;
11、區(qū)塊共識單元,用于當(dāng)所述目標(biāo)交易和所述元數(shù)據(jù)被所述區(qū)塊鏈中預(yù)設(shè)數(shù)量的共識節(jié)點保存,根據(jù)所述元數(shù)據(jù)生成待共識的目標(biāo)區(qū)塊,將所述目標(biāo)區(qū)塊廣播給多個所述共識節(jié)點進行共識處理;
12、區(qū)塊上鏈單元,用于當(dāng)多個所述共識節(jié)點達成對所述目標(biāo)區(qū)塊的共識,將所述目標(biāo)區(qū)塊添加到所述區(qū)塊鏈;
13、數(shù)據(jù)讀取單元,用于響應(yīng)于通過所述區(qū)塊鏈對所述目標(biāo)交易進行查詢,讀取所述目標(biāo)區(qū)塊中的所述元數(shù)據(jù);
14、交易查詢單元,用于根據(jù)所述元數(shù)據(jù)在本地對所述目標(biāo)交易進行查詢。
15、可選地,所述操作執(zhí)行單元還用于:
16、啟用多個工作線程;
17、采用多個所述工作線程執(zhí)行所述數(shù)據(jù)廣播操作。
18、可選地,所述操作執(zhí)行單元還用于:
19、采用多個所述工作線程中的每一個,執(zhí)行以下步驟:
20、獲取所述目標(biāo)交易;
21、生成所述目標(biāo)交易的所述元數(shù)據(jù);
22、將所述目標(biāo)交易和所述元數(shù)據(jù)在所述區(qū)塊鏈中進行廣播。
23、可選地,多個所述工作線程包括第一工作線程、第二工作線程和第三工作線程,所述操作執(zhí)行單元還用于:
24、采用所述第一工作線程獲取所述目標(biāo)交易,并通過所述第一工作線程將所述目標(biāo)交易發(fā)送給所述第二工作線程;
25、采用所述第二工作線程生成所述目標(biāo)交易的所述元數(shù)據(jù),并通過所述第二工作線程將所述目標(biāo)交易和所述元數(shù)據(jù)發(fā)送給所述第三工作線程;
26、采用所述第三工作線程將所述目標(biāo)交易和所述元數(shù)據(jù)在所述區(qū)塊鏈中進行廣播。
27、可選地,所述操作執(zhí)行單元還用于:
28、采用所述第三工作線程將所述目標(biāo)交易和所述元數(shù)據(jù)在所述區(qū)塊鏈中進行同步廣播或者依次廣播。
29、可選地,所述操作執(zhí)行單元還用于:
30、采用所述第一工作線程獲取新的目標(biāo)交易;
31、通過所述第一工作線程將所述新的目標(biāo)交易發(fā)送給所述第二工作線程。
32、可選地,所述操作執(zhí)行單元還用于:
33、采用所述第二工作線程生成所述新的目標(biāo)交易的元數(shù)據(jù);
34、通過所述第二工作線程將所述新的目標(biāo)交易和所述新的目標(biāo)交易的元數(shù)據(jù)發(fā)送給所述第三工作線程。
35、可選地,所述操作執(zhí)行單元還用于:
36、采用所述第三工作線程將所述新的目標(biāo)交易和所述新的目標(biāo)交易的元數(shù)據(jù)在所述區(qū)塊鏈中進行廣播。
37、可選地,所述區(qū)塊共識單元還用于:
38、啟用共識線程;
39、采用所述共識線程根據(jù)所述元數(shù)據(jù)生成待共識的目標(biāo)區(qū)塊,并通過所述共識線程將所述目標(biāo)區(qū)塊廣播給多個所述共識節(jié)點進行共識處理;
40、其中,所述共識線程與所述工作線程互不影響。
41、可選地,所述操作執(zhí)行單元還用于:
42、檢測所述目標(biāo)交易的數(shù)量是否達到預(yù)設(shè)數(shù)量值,或者所述目標(biāo)交易的獲取時間是否達到預(yù)設(shè)時間值;
43、當(dāng)所述目標(biāo)交易的數(shù)量達到所述預(yù)設(shè)數(shù)量值,或者所述目標(biāo)交易的獲取時間達到所述預(yù)設(shè)時間值,將已獲取到的所述目標(biāo)交易作為目標(biāo)交易集合;
44、生成所述目標(biāo)交易集合的元數(shù)據(jù)。
45、可選地,所述區(qū)塊鏈數(shù)據(jù)處理裝置還包括:
46、信息接收單元,用于接收所述共識節(jié)點根據(jù)所述目標(biāo)交易發(fā)送的交易確認信息,以及根據(jù)所述元數(shù)據(jù)發(fā)送的元數(shù)據(jù)確認信息;
47、第一確定單元,用于當(dāng)接收到的所述交易確認信息達到所述預(yù)設(shè)數(shù)量,確定所述目標(biāo)交易被所述預(yù)設(shè)數(shù)量的所述共識節(jié)點保存;
48、第二確定單元,用于當(dāng)接收到的所述元數(shù)據(jù)確認信息達到所述預(yù)設(shè)數(shù)量,確定所述元數(shù)據(jù)被所述預(yù)設(shè)數(shù)量的所述共識節(jié)點保存。
49、另一方面,本技術(shù)實施例還提供了一種電子設(shè)備,包括:
50、至少一個處理器;
51、至少一個存儲器,用于存儲至少一個程序;
52、當(dāng)至少一個所述程序被至少一個所述處理器執(zhí)行時實現(xiàn)如前面所述的區(qū)塊鏈數(shù)據(jù)處理方法。
53、另一方面,本技術(shù)實施例還提供了一種計算機可讀存儲介質(zhì),其中存儲有處理器可執(zhí)行的計算機程序,所述處理器可執(zhí)行的計算機程序被處理器執(zhí)行時用于實現(xiàn)如前面所述的區(qū)塊鏈數(shù)據(jù)處理方法。
54、另一方面,本技術(shù)實施例還提供了一種計算機程序產(chǎn)品,包括計算機程序或計算機指令,所述計算機程序或所述計算機指令存儲在計算機可讀存儲介質(zhì)中,電子設(shè)備的處理器從所述計算機可讀存儲介質(zhì)讀取所述計算機程序或所述計算機指令,所述處理器執(zhí)行所述計算機程序或所述計算機指令,使得所述電子設(shè)備執(zhí)行如前面的區(qū)塊鏈數(shù)據(jù)處理方法。
55、本技術(shù)實施例至少包括以下有益效果:在生成待共識的目標(biāo)區(qū)塊之前,先執(zhí)行數(shù)據(jù)廣播操作,其中,數(shù)據(jù)廣播操作包括獲取目標(biāo)交易的操作、生成目標(biāo)交易的元數(shù)據(jù)的操作,以及將目標(biāo)交易和元數(shù)據(jù)在區(qū)塊鏈中進行廣播的操作,這樣,可以使得區(qū)塊鏈中的節(jié)點能夠預(yù)先保存目標(biāo)交易和目標(biāo)交易的元數(shù)據(jù);當(dāng)目標(biāo)交易和元數(shù)據(jù)都被區(qū)塊鏈中預(yù)設(shè)數(shù)量的共識節(jié)點保存,可以認為目標(biāo)交易和元數(shù)據(jù)經(jīng)過了可靠廣播,也就是說,可以認為目標(biāo)交易和元數(shù)據(jù)都已經(jīng)被所有誠實節(jié)點成功接收,此時,再根據(jù)目標(biāo)交易的元數(shù)據(jù)生成待共識的目標(biāo)區(qū)塊,然后將目標(biāo)區(qū)塊廣播給多個共識節(jié)點進行共識處理,當(dāng)多個共識節(jié)點達成對目標(biāo)區(qū)塊的共識,可以將目標(biāo)區(qū)塊添加到區(qū)塊鏈,從而完成對目標(biāo)交易的上鏈操作。由于目標(biāo)區(qū)塊是根據(jù)目標(biāo)交易的元數(shù)據(jù)生成的,并不包含目標(biāo)交易的完整內(nèi)容,因此能夠降低目標(biāo)區(qū)塊的數(shù)據(jù)量,使得共識過程中在網(wǎng)絡(luò)中傳播的信息量能夠大幅下降,從而能夠降低出現(xiàn)網(wǎng)絡(luò)擁堵的概率,提高共識處理的速度與效率,進而能夠提高區(qū)塊鏈的吞吐量。另外,雖然目標(biāo)區(qū)塊中包含的是目標(biāo)交易的元數(shù)據(jù),但由于已經(jīng)先將目標(biāo)交易和目標(biāo)交易的元數(shù)據(jù)在區(qū)塊鏈中進行廣播使得區(qū)塊鏈中的節(jié)點能夠預(yù)先保存目標(biāo)交易和目標(biāo)交易的元數(shù)據(jù),所以當(dāng)通過區(qū)塊鏈查詢目標(biāo)交易時,通過讀取目標(biāo)區(qū)塊中的元數(shù)據(jù),就可以根據(jù)讀取到的元數(shù)據(jù)在本地對目標(biāo)交易進行查詢,因此不會影響區(qū)塊鏈的正常使用。此外,由于先將目標(biāo)交易和目標(biāo)交易的元數(shù)據(jù)在區(qū)塊鏈中進行廣播,然后再根據(jù)目標(biāo)交易的元數(shù)據(jù)生成目標(biāo)區(qū)塊并對目標(biāo)區(qū)塊進行共識處理,因此可以使得交易信息的廣播過程和區(qū)塊的共識過程能夠解耦,以便于可以對共識算法進行更新,從而能夠優(yōu)化區(qū)塊鏈系統(tǒng)的處理能力。
56、本技術(shù)的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本技術(shù)而了解。本技術(shù)的目的和其他優(yōu)點可通過在說明書以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。