本技術(shù)涉及區(qū)塊鏈,尤其涉及一種區(qū)塊鏈通信方法、相關(guān)設(shè)備、存儲(chǔ)介質(zhì)及計(jì)算機(jī)程序產(chǎn)品。
背景技術(shù):
1、區(qū)塊鏈(blockchain)是一種新型信息處理和存儲(chǔ)技術(shù),采用去中心化組網(wǎng)結(jié)構(gòu),進(jìn)行分布式的賬本管理和維護(hù);利用共識(shí)機(jī)制保證賬本數(shù)據(jù)公正和不可篡改,支持中立地執(zhí)行合約(多方認(rèn)可的計(jì)算機(jī)程序代碼),解決了合作方之間信息不透明、信任不足、協(xié)作不通暢等問(wèn)題。而在企業(yè)應(yīng)用場(chǎng)景下,多個(gè)企業(yè)可以組成聯(lián)盟,使用聯(lián)盟鏈開(kāi)展業(yè)務(wù)合作,為了保證數(shù)據(jù)存儲(chǔ)的一致性、數(shù)據(jù)處理過(guò)程的共識(shí)性,普遍采用“背書(shū)-排序-驗(yàn)證”處理模型的區(qū)塊鏈引擎,該處理模型中的區(qū)塊/賬本數(shù)據(jù)分發(fā)過(guò)程中,通常是排序節(jié)點(diǎn)向記賬節(jié)點(diǎn)發(fā)送區(qū)塊,記賬節(jié)點(diǎn)之間以對(duì)等網(wǎng)絡(luò)(peer?to?peer,p2p)方式向其他記賬節(jié)點(diǎn)傳播區(qū)塊/賬本數(shù)據(jù)。
2、然而,記賬節(jié)點(diǎn)之間以p2p方式向其他記賬節(jié)點(diǎn)傳播區(qū)塊/賬本數(shù)據(jù)時(shí),這個(gè)過(guò)程可能需要一定的時(shí)間,并且無(wú)法保證每個(gè)記賬節(jié)點(diǎn)收到且僅收到一次消息,在處理時(shí)延、系統(tǒng)容量以及吞吐量上受到制約,從而導(dǎo)致區(qū)塊鏈業(yè)務(wù)部署和運(yùn)營(yíng)成本增高。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)實(shí)施法例提供了一種區(qū)塊鏈通信方法、相關(guān)設(shè)備、存儲(chǔ)介質(zhì)及計(jì)算機(jī)程序產(chǎn)品,能夠降低網(wǎng)絡(luò)通信帶寬開(kāi)銷(xiāo)和通信時(shí)延,進(jìn)而降低了區(qū)塊鏈業(yè)務(wù)部署和運(yùn)營(yíng)成本。
2、本技術(shù)實(shí)施例的技術(shù)方案是這樣實(shí)現(xiàn)的:
3、第一方面,本技術(shù)實(shí)施例提供了一種區(qū)塊鏈通信方法,所述方法應(yīng)用于第一節(jié)點(diǎn),所述方法包括:
4、接收第二節(jié)點(diǎn)發(fā)送的第一信息;其中,所述第一信息包括第一ip多播地址,所述第一ip多播地址包含第一鏈標(biāo)識(shí)和所述第一鏈標(biāo)識(shí)下的第一通道標(biāo)識(shí)對(duì)應(yīng)的ip多播地址,所述第二節(jié)點(diǎn)至少用于對(duì)至少一個(gè)鏈標(biāo)識(shí)和所述鏈標(biāo)識(shí)下的通道標(biāo)識(shí)對(duì)應(yīng)的記賬節(jié)點(diǎn)組地址和ip多播地址進(jìn)行管理;
5、接收到第一排序節(jié)點(diǎn)發(fā)送的第一區(qū)塊后,將所述第一區(qū)塊轉(zhuǎn)化為第二區(qū)塊;其中,所述第一排序節(jié)點(diǎn)至少用于對(duì)區(qū)塊進(jìn)行打包處理,并按照打包規(guī)則順序生成區(qū)塊;
6、將所述第二區(qū)塊通過(guò)第一預(yù)設(shè)方式發(fā)送到所述第一ip多播地址對(duì)應(yīng)的多播樹(shù)中的所有第一記賬節(jié)點(diǎn);其中,所述第一預(yù)設(shè)方式包括ip多播方式。
7、第二方面,本技術(shù)實(shí)施例提供了一種區(qū)塊鏈通信方法,所述方法應(yīng)用于第一記賬節(jié)點(diǎn),所述方法包括:
8、接收第一節(jié)點(diǎn)通過(guò)第一預(yù)設(shè)方式發(fā)送的第二區(qū)塊;其中,所述第一預(yù)設(shè)方式包括ip多播方式,所述第二區(qū)塊包含基于第一加密信息對(duì)第一區(qū)塊進(jìn)行加密后的區(qū)塊,所述第一區(qū)塊包含第一鏈標(biāo)識(shí)和所述第一鏈標(biāo)識(shí)下的第一通道標(biāo)識(shí)對(duì)應(yīng)的區(qū)塊;
9、基于所述第一鏈標(biāo)識(shí)、所述第一通道標(biāo)識(shí)以及所述第二區(qū)塊判斷當(dāng)前是否存在丟失區(qū)塊的情況;
10、在判定存在丟失區(qū)塊的情況下,基于通信補(bǔ)償機(jī)制獲取丟失區(qū)塊。
11、第三方面,本技術(shù)實(shí)施例提供了一種區(qū)塊鏈通信方法,所述方法應(yīng)用于第二節(jié)點(diǎn),所述方法包括:
12、接收鏈管理集群發(fā)送的第三請(qǐng)求;其中,所述第三請(qǐng)求攜帶至少一個(gè)鏈標(biāo)識(shí)和所述鏈標(biāo)識(shí)下的通道標(biāo)識(shí);
13、基于多播地址庫(kù)獲取所述至少一個(gè)鏈標(biāo)識(shí)和所述鏈標(biāo)識(shí)下的通道標(biāo)識(shí)對(duì)應(yīng)的第二ip多播地址,并為所述至少一個(gè)鏈標(biāo)識(shí)和所述鏈標(biāo)識(shí)下的通道標(biāo)識(shí)分配對(duì)應(yīng)的第三節(jié)點(diǎn)地址;
14、向第一節(jié)點(diǎn)發(fā)送第一信息;其中,所述第一信息包括第一ip多播地址,所述第三節(jié)點(diǎn)地址包括第一節(jié)點(diǎn)地址,所述第二ip多播地址包括所述第一ip多播地址。
15、第四方面,本技術(shù)實(shí)施例提供了一種第一節(jié)點(diǎn),所述第一節(jié)點(diǎn)包括:第一接收單元、轉(zhuǎn)化單元以及第一發(fā)送單元;其中,
16、第一接收單元,用于接收第二節(jié)點(diǎn)發(fā)送的第一信息;其中,所述第一信息包括第一ip多播地址,所述第一ip多播地址包含第一鏈標(biāo)識(shí)和所述第一鏈標(biāo)識(shí)下的第一通道標(biāo)識(shí)對(duì)應(yīng)的ip多播地址,所述第二節(jié)點(diǎn)至少用于對(duì)至少一個(gè)鏈標(biāo)識(shí)和所述鏈標(biāo)識(shí)下的通道標(biāo)識(shí)對(duì)應(yīng)的記賬節(jié)點(diǎn)組地址和ip多播地址進(jìn)行管理;
17、所述轉(zhuǎn)化單元,用于接收到第一排序節(jié)點(diǎn)發(fā)送的第一區(qū)塊后,將所述第一區(qū)塊轉(zhuǎn)化為第二區(qū)塊;其中,所述第一排序節(jié)點(diǎn)至少用于對(duì)區(qū)塊進(jìn)行打包處理,并按照打包規(guī)則順序生成區(qū)塊;
18、所述第一發(fā)送單元,用于將所述第二區(qū)塊通過(guò)第一預(yù)設(shè)方式發(fā)送到所述第一ip多播地址對(duì)應(yīng)的多播樹(shù)中的所有第一記賬節(jié)點(diǎn);其中,所述第一預(yù)設(shè)方式包括ip多播方式。
19、第五方面,本技術(shù)實(shí)施例提供了一種第一節(jié)點(diǎn),所述第一節(jié)點(diǎn)包括:第一處理器和第一存儲(chǔ)器;其中,
20、所述第一存儲(chǔ)器,用于存儲(chǔ)能夠在所述處理器上運(yùn)行的計(jì)算機(jī)程序;
21、所述第一處理器,用于在運(yùn)行所述計(jì)算機(jī)程序時(shí),執(zhí)行如上所述的區(qū)塊鏈通信方法。
22、第六方面,本技術(shù)實(shí)施例提供了一種第一記賬節(jié)點(diǎn),所述第一記賬節(jié)點(diǎn)包括:第二接收單元、判斷單元以及第一獲取單元;其中,
23、所述第二接收單元,用于接收第一節(jié)點(diǎn)通過(guò)第一預(yù)設(shè)方式發(fā)送的第二區(qū)塊;其中,所述第一預(yù)設(shè)方式包括ip多播方式,所述第二區(qū)塊包含基于第一加密信息對(duì)第一區(qū)塊進(jìn)行加密后的區(qū)塊,所述第一區(qū)塊包含第一鏈標(biāo)識(shí)和所述第一鏈標(biāo)識(shí)下的第一通道標(biāo)識(shí)對(duì)應(yīng)的區(qū)塊;
24、所述判斷單元,用于基于所述第一鏈標(biāo)識(shí)、所述第一通道標(biāo)識(shí)以及所述第二區(qū)塊判斷當(dāng)前是否存在丟失區(qū)塊的情況;
25、所述第一獲取單元,用于在判定存在丟失區(qū)塊的情況下,基于通信補(bǔ)償機(jī)制獲取丟失區(qū)塊。
26、第七方面,本技術(shù)實(shí)施例提供了一種第一記賬節(jié)點(diǎn),所述第一記賬節(jié)點(diǎn)包括:第二處理器和第二存儲(chǔ)器;其中,
27、所述第二存儲(chǔ)器,用于存儲(chǔ)能夠在所述處理器上運(yùn)行的計(jì)算機(jī)程序;
28、所述第二處理器,用于在運(yùn)行所述計(jì)算機(jī)程序時(shí),執(zhí)行如上所述的區(qū)塊鏈通信方法。
29、第八方面,本技術(shù)實(shí)施例提供了一種第二節(jié)點(diǎn),所述第二節(jié)點(diǎn)包括:第三接收單元、第二獲取單元、分配單元以及第二發(fā)送單元;其中,
30、所述第三接收單元,用于接收鏈管理集群發(fā)送的第三請(qǐng)求;其中,所述第三請(qǐng)求攜帶至少一個(gè)鏈標(biāo)識(shí)和所述鏈標(biāo)識(shí)下的通道標(biāo)識(shí);
31、所述第二獲取單元,用于基于多播地址庫(kù)獲取所述至少一個(gè)鏈標(biāo)識(shí)和所述鏈標(biāo)識(shí)下的通道標(biāo)識(shí)對(duì)應(yīng)的第二ip多播地址;
32、所述分配單元,用于為所述至少一個(gè)鏈標(biāo)識(shí)和所述鏈標(biāo)識(shí)下的通道標(biāo)識(shí)分配對(duì)應(yīng)的第三節(jié)點(diǎn)地址;
33、所述第二發(fā)送單元,用于向第一節(jié)點(diǎn)發(fā)送第一信息;其中,所述第一信息包括第一ip多播地址,所述第三節(jié)點(diǎn)地址包括第一節(jié)點(diǎn)地址,所述第二ip多播地址包括所述第一ip多播地址。
34、第九方面,本技術(shù)實(shí)施例提供了一種第二節(jié)點(diǎn),所述第二節(jié)點(diǎn)包括:第三處理器和第三存儲(chǔ)器;其中,
35、所述第三存儲(chǔ)器,用于存儲(chǔ)能夠在所述處理器上運(yùn)行的計(jì)算機(jī)程序;
36、所述第三處理器,用于在運(yùn)行所述計(jì)算機(jī)程序時(shí),執(zhí)行如上所述的區(qū)塊鏈通信方法。
37、第十方面,本技術(shù)實(shí)施例提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述存儲(chǔ)介質(zhì)上存儲(chǔ)有計(jì)算機(jī)程序代碼,當(dāng)所述計(jì)算機(jī)程序代碼被計(jì)算機(jī)執(zhí)行時(shí),實(shí)現(xiàn)如上所述的區(qū)塊鏈通信方法。
38、第十一方面,本技術(shù)實(shí)施例提供了一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,所述計(jì)算機(jī)程序在被處理器執(zhí)行時(shí),實(shí)現(xiàn)如上所述的區(qū)塊鏈通信方法。
39、本技術(shù)實(shí)施例提供了一種區(qū)塊鏈通信方法、相關(guān)設(shè)備、存儲(chǔ)介質(zhì)及計(jì)算機(jī)程序產(chǎn)品,第一節(jié)點(diǎn)接收第二節(jié)點(diǎn)發(fā)送的第一信息,第一信息包括第一ip多播地址;其中,第二節(jié)點(diǎn)至少用于對(duì)至少一個(gè)鏈標(biāo)識(shí)和鏈標(biāo)識(shí)下的通道標(biāo)識(shí)對(duì)應(yīng)的記賬節(jié)點(diǎn)組地址和ip多播地址進(jìn)行管理;接收到第一排序節(jié)點(diǎn)發(fā)送的第一區(qū)塊后,將第一區(qū)塊轉(zhuǎn)化為第二區(qū)塊;其中,第一排序節(jié)點(diǎn)至少用于對(duì)區(qū)塊進(jìn)行打包處理,并按照打包規(guī)則順序生成區(qū)塊;將第二區(qū)塊通過(guò)第一預(yù)設(shè)方式發(fā)送到第一ip多播地址對(duì)應(yīng)的多播樹(shù)中的所有第一記賬節(jié)點(diǎn);其中,第一預(yù)設(shè)方式包括ip多播方式;第一記賬節(jié)點(diǎn)基于第一鏈標(biāo)識(shí)、第一通道標(biāo)識(shí)以及第二區(qū)塊判斷當(dāng)前是否存在丟失區(qū)塊的情況;在判定存在丟失區(qū)塊的情況下,基于通信補(bǔ)償機(jī)制獲取丟失區(qū)塊;第二節(jié)點(diǎn)接收鏈管理集群發(fā)送的第三請(qǐng)求;其中,第三請(qǐng)求攜帶至少一個(gè)鏈標(biāo)識(shí)和鏈標(biāo)識(shí)下的通道標(biāo)識(shí);基于多播地址庫(kù)獲取至少一個(gè)鏈標(biāo)識(shí)和鏈標(biāo)識(shí)下的通道標(biāo)識(shí)對(duì)應(yīng)的第二ip多播地址,并為至少一個(gè)鏈標(biāo)識(shí)和鏈標(biāo)識(shí)下的通道標(biāo)識(shí)分配對(duì)應(yīng)的第三節(jié)點(diǎn)地址;向第一節(jié)點(diǎn)發(fā)送第一信息;其中,第三節(jié)點(diǎn)地址包括第一節(jié)點(diǎn)地址,第二ip多播地址包括第一ip多播地址。由此可見(jiàn),第二節(jié)點(diǎn)在接收鏈管理集群發(fā)送的第三請(qǐng)求之后,可以基于多播地址庫(kù)獲取至少一個(gè)鏈標(biāo)識(shí)和鏈標(biāo)識(shí)下的通道標(biāo)識(shí)對(duì)應(yīng)的第二ip多播地址,并為至少一個(gè)鏈標(biāo)識(shí)和鏈標(biāo)識(shí)下的通道標(biāo)識(shí)分配對(duì)應(yīng)的第三節(jié)點(diǎn)地址,然后第二節(jié)點(diǎn)可以向第一節(jié)點(diǎn)發(fā)送第一信息,第一信息攜帶第一鏈標(biāo)識(shí)和第一鏈標(biāo)識(shí)下的第一通道標(biāo)識(shí)對(duì)應(yīng)的第一ip多播地址,使得第一節(jié)點(diǎn)接收到第一排序節(jié)點(diǎn)發(fā)送的第一區(qū)塊后,可以將第一區(qū)塊轉(zhuǎn)化后的第二區(qū)塊通過(guò)ip多播方式發(fā)送到第一ip多播地址對(duì)應(yīng)的多播樹(shù)中的所有第一記賬節(jié)點(diǎn),即第一節(jié)點(diǎn)僅需要發(fā)送一次第二區(qū)塊,所有的相關(guān)記賬節(jié)點(diǎn)在一個(gè)通信周期內(nèi)均可收到,從而可以降低網(wǎng)絡(luò)通信帶寬開(kāi)銷(xiāo)和通信時(shí)延,進(jìn)而降低了區(qū)塊鏈業(yè)務(wù)部署和運(yùn)營(yíng)成本;第一記賬節(jié)點(diǎn)可以基于第一鏈標(biāo)識(shí)、第一通道標(biāo)識(shí)以及第二區(qū)塊判斷當(dāng)前是否存在丟失區(qū)塊的情況;在判定存在丟失區(qū)塊的情況下,可以基于通信補(bǔ)償機(jī)制獲取丟失區(qū)塊,該通信補(bǔ)償機(jī)制不僅適用于偶發(fā)性多播丟包場(chǎng)景,也適用于記賬節(jié)點(diǎn)長(zhǎng)時(shí)間離線或斷網(wǎng)后恢復(fù)工作的場(chǎng)景,可快速補(bǔ)償離線期間的區(qū)塊丟失。