本技術(shù)屬于區(qū)塊鏈,尤其涉及一種區(qū)塊鏈交易的并行執(zhí)行方法、裝置、電子設(shè)備及程序產(chǎn)品。
背景技術(shù):
1、目前,各個(gè)區(qū)塊鏈節(jié)點(diǎn)在執(zhí)行區(qū)塊中的各個(gè)區(qū)塊鏈交易時(shí),為了保證執(zhí)行結(jié)果的一致性,通常是采用串行執(zhí)行的方式。然而,串行執(zhí)行各個(gè)區(qū)塊鏈交易的效率較低,降低了區(qū)塊鏈的性能。
2、為了提高執(zhí)行區(qū)塊鏈交易的效率,一個(gè)常用的方法是通過靜態(tài)分析確定各個(gè)區(qū)塊鏈交易之間的依賴關(guān)系,然后并行執(zhí)行不存在依賴關(guān)系的各個(gè)區(qū)塊鏈交易。然而,靜態(tài)分析確定各個(gè)區(qū)塊鏈交易之間的依賴關(guān)系的方法的準(zhǔn)確性較低,難以有效提高區(qū)塊鏈的性能。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本技術(shù)實(shí)施例提供了一種區(qū)塊鏈交易的并行執(zhí)行方法、裝置、電子設(shè)備及程序產(chǎn)品,以解決現(xiàn)有的區(qū)塊鏈性能較低的技術(shù)問題。
2、第一方面,本技術(shù)實(shí)施例提供一種區(qū)塊鏈交易的并行執(zhí)行方法,包括:
3、在接收到第一區(qū)塊后,根據(jù)已訓(xùn)練的各個(gè)依賴關(guān)系預(yù)測模型在當(dāng)前時(shí)刻的性能參數(shù),從所述各個(gè)依賴關(guān)系預(yù)測模型中選取目標(biāo)依賴關(guān)系預(yù)測模型;
4、通過所述目標(biāo)依賴關(guān)系預(yù)測模型對所述第一區(qū)塊包含的所有交易進(jìn)行依賴關(guān)系預(yù)測處理,得到每個(gè)所述交易的依賴關(guān)系預(yù)測結(jié)果;
5、根據(jù)每個(gè)所述交易的依賴關(guān)系預(yù)測結(jié)果,并行執(zhí)行所述所有交易中不存在依賴關(guān)系的各個(gè)交易。
6、可選的,各個(gè)所述依賴關(guān)系預(yù)測模型通過以下方式訓(xùn)練得到:
7、獲取若干個(gè)第二區(qū)塊;
8、針對每個(gè)所述第二區(qū)塊,重新執(zhí)行該第二區(qū)塊,根據(jù)執(zhí)行結(jié)果確定該第二區(qū)塊包含的各個(gè)交易的交易信息和依賴關(guān)系信息,并根據(jù)所述各個(gè)交易的交易信息和依賴關(guān)系信息,構(gòu)建該第二區(qū)塊對應(yīng)的訓(xùn)練集;
9、根據(jù)各個(gè)所述第二區(qū)塊各自對應(yīng)的所述訓(xùn)練集,對各個(gè)所述依賴關(guān)系預(yù)測模型進(jìn)行訓(xùn)練。
10、可選的,各個(gè)所述依賴關(guān)系預(yù)測模型包括第一依賴關(guān)系預(yù)測模型、第二依賴關(guān)系預(yù)測模型和第三依賴關(guān)系預(yù)測模型;所述根據(jù)各個(gè)所述第二區(qū)塊各自對應(yīng)的所述訓(xùn)練集,對各個(gè)所述依賴關(guān)系預(yù)測模型進(jìn)行訓(xùn)練,包括:
11、通過各個(gè)所述第二區(qū)塊各自對應(yīng)的所述訓(xùn)練集,對若干個(gè)不同的初始依賴關(guān)系預(yù)測模型進(jìn)行訓(xùn)練,得到若干個(gè)通用的所述第一依賴關(guān)系預(yù)測模型;
12、通過屬于預(yù)設(shè)合約類型的所述第二區(qū)塊對應(yīng)的所述訓(xùn)練集,對若干個(gè)不同的初始依賴關(guān)系預(yù)測模型進(jìn)行訓(xùn)練,得到若干個(gè)所述第二依賴關(guān)系預(yù)測模型,所述第二依賴關(guān)系預(yù)測模型用于預(yù)測屬于所述預(yù)設(shè)合約類型的任意兩個(gè)交易之間的依賴關(guān)系信息;
13、通過在預(yù)設(shè)時(shí)間范圍內(nèi)生成的所述第二區(qū)塊對應(yīng)的所述訓(xùn)練集,對若干個(gè)不同的初始依賴關(guān)系預(yù)測模型進(jìn)行訓(xùn)練,得到若干個(gè)所述第三依賴關(guān)系預(yù)測模型;所述第三依賴關(guān)系預(yù)測模型用于預(yù)測在所述預(yù)設(shè)時(shí)間范圍內(nèi)生成的任意兩個(gè)交易之間的依賴關(guān)系信息。
14、可選的,所述各個(gè)依賴關(guān)系預(yù)測模型在當(dāng)前時(shí)刻的性能參數(shù),通過以下方式確定:
15、獲取在所述當(dāng)前時(shí)刻之前接收到的若干個(gè)第三區(qū)塊;
16、針對每個(gè)所述第三區(qū)塊,重新執(zhí)行該第三區(qū)塊,根據(jù)執(zhí)行結(jié)果確定該第三區(qū)塊包含的各個(gè)交易的交易信息和依賴關(guān)系信息,并根據(jù)所述各個(gè)交易的交易信息和依賴關(guān)系信息,構(gòu)建該第三區(qū)塊對應(yīng)的測試集;
17、針對每個(gè)所述依賴關(guān)系預(yù)測模型,根據(jù)各個(gè)所述第三區(qū)塊各自對應(yīng)的所述測試集,對該依賴關(guān)系預(yù)測模型進(jìn)行測試,并根據(jù)測試結(jié)果確定該依賴關(guān)系預(yù)測模型在所述當(dāng)前時(shí)刻的性能參數(shù)。
18、可選的,所述通過所述目標(biāo)依賴關(guān)系預(yù)測模型對所述第一區(qū)塊包含的所有交易進(jìn)行依賴關(guān)系預(yù)測處理,得到每個(gè)所述交易的依賴關(guān)系預(yù)測結(jié)果,包括:
19、將所述所有交易劃分為多個(gè)第一交易組合,每個(gè)所述第一交易組合包含二個(gè)交易;
20、針對每個(gè)所述第一交易組合,將該第一交易組合包含的二個(gè)交易的發(fā)起者信息、調(diào)用合約地址信息、調(diào)用合約方法信息、方法入?yún)⑿畔⒁约笆澜鐮顟B(tài)信息輸入至所述目標(biāo)依賴關(guān)系預(yù)測模型進(jìn)行依賴關(guān)系預(yù)測處理,得到該第一交易組合包含的二個(gè)交易的依賴關(guān)系預(yù)測結(jié)果;
21、根據(jù)各個(gè)所述第一交易組合的依賴關(guān)系預(yù)測結(jié)果,得到每個(gè)所述交易的依賴關(guān)系預(yù)測結(jié)果。
22、可選的,所述根據(jù)每個(gè)所述交易的依賴關(guān)系預(yù)測結(jié)果,并行執(zhí)行所述所有交易中不存在依賴關(guān)系的各個(gè)交易,包括:
23、根據(jù)每個(gè)所述交易的依賴關(guān)系預(yù)測結(jié)果,將所述所有交易劃分為多個(gè)第二交易組合;每個(gè)所述第二交易組合包含至少一個(gè)交易,不同的所述第二交易組合包含的交易之間不存在依賴關(guān)系;
24、并行執(zhí)行各個(gè)所述第二交易組合的交易。
25、可選的,在所述根據(jù)每個(gè)所述交易的依賴關(guān)系預(yù)測結(jié)果,并行執(zhí)行所述所有交易中不存在依賴關(guān)系的各個(gè)交易之后,還包括:
26、確定已執(zhí)行的所述各個(gè)交易中,被誤判為不存在依賴關(guān)系的各個(gè)誤判交易;
27、重新串行執(zhí)行所述各個(gè)誤判交易,并合并所述并行執(zhí)行與所述串行執(zhí)行的交易執(zhí)行結(jié)果。
28、第二方面,本技術(shù)實(shí)施例提供一種區(qū)塊鏈交易的并行執(zhí)行裝置,包括:
29、模型選取單元,用于在接收到第一區(qū)塊后,根據(jù)已訓(xùn)練的各個(gè)依賴關(guān)系預(yù)測模型在當(dāng)前時(shí)刻的性能參數(shù),從所述各個(gè)依賴關(guān)系預(yù)測模型中選取目標(biāo)依賴關(guān)系預(yù)測模型;
30、依賴關(guān)系預(yù)測單元,用于通過所述目標(biāo)依賴關(guān)系預(yù)測模型對所述第一區(qū)塊包含的所有交易進(jìn)行依賴關(guān)系預(yù)測處理,得到每個(gè)所述交易的依賴關(guān)系預(yù)測結(jié)果;
31、并行執(zhí)行單元,用于根據(jù)每個(gè)所述交易的依賴關(guān)系預(yù)測結(jié)果,并行執(zhí)行所述所有交易中不存在依賴關(guān)系的各個(gè)交易。
32、第三方面,本技術(shù)實(shí)施例提供一種電子設(shè)備,包括存儲器、處理器以及存儲在所述存儲器中并可在所述處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)如第一方面所述的區(qū)塊鏈交易的并行執(zhí)行方法的各步驟。
33、第四方面,本技術(shù)實(shí)施例提供一種計(jì)算機(jī)可讀存儲介質(zhì)所述計(jì)算機(jī)可讀存儲介質(zhì)存儲有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上述第一方面所述的區(qū)塊鏈交易的并行執(zhí)行方法的各步驟。
34、第五方面,本技術(shù)實(shí)施例提供一種計(jì)算機(jī)程序,當(dāng)計(jì)算機(jī)程序在電子設(shè)備上運(yùn)行時(shí),使得電子設(shè)備執(zhí)行如上述第一方面所述的區(qū)塊鏈交易的并行執(zhí)行方法的各步驟。
35、本技術(shù)實(shí)施例提供的區(qū)塊鏈交易的并行執(zhí)行方法、裝置、電子設(shè)備及程序產(chǎn)品具有以下有益效果:
36、本技術(shù)實(shí)施例提供的區(qū)塊鏈交易的并行執(zhí)行方法,首先在接收到第一區(qū)塊后,根據(jù)已訓(xùn)練的各個(gè)依賴關(guān)系預(yù)測模型在當(dāng)前時(shí)刻的性能參數(shù),從各個(gè)依賴關(guān)系預(yù)測模型中選取目標(biāo)依賴關(guān)系預(yù)測模型,再通過目標(biāo)依賴關(guān)系預(yù)測模型對第一區(qū)塊包含的所有交易進(jìn)行依賴關(guān)系預(yù)測處理,得到每個(gè)交易的依賴關(guān)系預(yù)測結(jié)果,最后根據(jù)每個(gè)交易的依賴關(guān)系預(yù)測結(jié)果,并行執(zhí)行所有交易中不存在依賴關(guān)系的各個(gè)交易。通過本技術(shù)的方法,能夠?qū)崟r(shí)選取性能參數(shù)最好的依賴關(guān)系預(yù)測模型對區(qū)塊包含的交易進(jìn)行依賴關(guān)系預(yù)測處理,因此能夠提高預(yù)測交易依賴關(guān)系的準(zhǔn)確率,進(jìn)而提高了區(qū)塊鏈的性能。