本技術(shù)涉及通信,特別是指一種區(qū)塊鏈處理方法、裝置、設(shè)備存儲(chǔ)介質(zhì)及程序產(chǎn)品。
背景技術(shù):
1、區(qū)塊鏈(blockchain)是一種新型信息處理和存儲(chǔ)技術(shù),采用去中心化組網(wǎng)結(jié)構(gòu),進(jìn)行分布式的賬本管理和維護(hù);利用共識(shí)機(jī)制保證賬本數(shù)據(jù)公正和不可篡改,支持中立地執(zhí)行合約(多方認(rèn)可的代碼),解決了合作方之間信息不透明、信任不足、協(xié)作不通暢等問題。
2、但是,在區(qū)塊鏈系統(tǒng)中,使用各節(jié)點(diǎn)存儲(chǔ)各自數(shù)據(jù)的分布式記賬方式,通過賬本數(shù)據(jù)的鏈?zhǔn)浇Y(jié)構(gòu)結(jié)合密碼算法保證數(shù)據(jù)的時(shí)序關(guān)系及信息自洽;并通過相關(guān)節(jié)點(diǎn)統(tǒng)一簽名認(rèn)可的代碼(智能合約)在安全環(huán)境中運(yùn)行,保證信息處理過程的中立、可信。因此,區(qū)塊鏈在存儲(chǔ)、通信、計(jì)算上需要大量的冗余處理和交叉驗(yàn)證過程,導(dǎo)致區(qū)塊鏈的資源開銷的增加和處理性能的降低。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)的目的是提供一種區(qū)塊鏈處理方法、裝置、設(shè)備存儲(chǔ)介質(zhì)及程序產(chǎn)品,以避免因區(qū)塊鏈在存儲(chǔ)、通信、計(jì)算上需要大量的冗余處理和交叉驗(yàn)證過程,導(dǎo)致的區(qū)塊鏈的資源開銷的增加和處理性能的降低的問題。
2、為達(dá)到上述目的,本技術(shù)的實(shí)施例提供一種區(qū)塊鏈處理方法,由第一節(jié)點(diǎn)執(zhí)行,包括:
3、在接收到第一區(qū)塊的寫入通知的情況下,向第二節(jié)點(diǎn)發(fā)送第一請(qǐng)求;其中,所述第二節(jié)點(diǎn)包括一個(gè)或多個(gè)存儲(chǔ)介質(zhì),所述第一請(qǐng)求用于申請(qǐng)存儲(chǔ)介質(zhì)分配;
4、接收所述第二節(jié)點(diǎn)響應(yīng)于所述第一請(qǐng)求發(fā)送的訪問令牌;
5、向所述第二節(jié)點(diǎn)發(fā)送第二請(qǐng)求,所述第二請(qǐng)求攜帶所述訪問令牌和所述第一區(qū)塊待存儲(chǔ)的區(qū)塊對(duì)象,所述第二請(qǐng)求用于申請(qǐng)將所述區(qū)塊對(duì)象存儲(chǔ)在分配的存儲(chǔ)介質(zhì);
6、接收所述第二節(jié)點(diǎn)響應(yīng)于所述第二請(qǐng)求返回的應(yīng)答消息;
7、根據(jù)所述應(yīng)答消息得到所述第一區(qū)塊的區(qū)塊體元數(shù)據(jù),并將所述區(qū)塊體元數(shù)據(jù)存儲(chǔ)在本地。
8、進(jìn)一步地,所述區(qū)塊體元數(shù)據(jù)包括:
9、所述區(qū)塊對(duì)象的哈希值;
10、所述區(qū)塊對(duì)象的訪問地址列表;
11、進(jìn)一步地,所述區(qū)塊體元數(shù)據(jù)還包括:
12、所述區(qū)塊對(duì)象的加解密密鑰標(biāo)識(shí);
13、所述區(qū)塊對(duì)象的加解密算法標(biāo)識(shí)。
14、進(jìn)一步地,所述方法還包括:
15、在接收到所述第一區(qū)塊的讀取通知的情況下,獲取所述第一區(qū)塊在本地存儲(chǔ)的區(qū)塊體元數(shù)據(jù);
16、根據(jù)所述區(qū)塊體元數(shù)據(jù)向所述第二節(jié)點(diǎn)發(fā)送第三請(qǐng)求,所述第三請(qǐng)求用于申請(qǐng)讀取所述第一區(qū)塊的區(qū)塊對(duì)象;
17、接收所述第二節(jié)點(diǎn)響應(yīng)于所述第三請(qǐng)求發(fā)送的所述區(qū)塊對(duì)象。
18、進(jìn)一步地,接收所述第二節(jié)點(diǎn)響應(yīng)于所述第三請(qǐng)求發(fā)送的所述區(qū)塊對(duì)象之后,還包括:
19、根據(jù)所述區(qū)塊體元數(shù)據(jù)校驗(yàn)所述區(qū)塊對(duì)象的完整性。
20、進(jìn)一步地,所述根據(jù)所述應(yīng)答消息得到所述第一區(qū)塊的區(qū)塊體元數(shù)據(jù),包括:
21、若所述第一區(qū)塊位于遷移目標(biāo)區(qū)塊鏈上,基于所述應(yīng)答消息中所述區(qū)塊對(duì)象的訪問地址列表,更新所述第一區(qū)塊的區(qū)塊體元數(shù)據(jù)。
22、進(jìn)一步地,向第二節(jié)點(diǎn)發(fā)送第一請(qǐng)求之前,還包括:
23、接收第三節(jié)點(diǎn)發(fā)送的第一配置信息,所述第一配置信息包括用于指示所述第二節(jié)點(diǎn)的信息,以及,申請(qǐng)存儲(chǔ)介質(zhì)所使用的相關(guān)信息;
24、根據(jù)所述第一配置信息確定所述第二節(jié)點(diǎn)以及所述第一請(qǐng)求。
25、進(jìn)一步地,所述讀取通知是由區(qū)塊鏈遷移觸發(fā)的。
26、進(jìn)一步地,所述寫入通知是由區(qū)塊鏈遷移觸發(fā)的;
27、在接收所述第二節(jié)點(diǎn)發(fā)送的所述區(qū)塊對(duì)象之后,所述方法還包括:
28、根據(jù)區(qū)塊鏈遷移目標(biāo),確定更新的第二節(jié)點(diǎn);
29、向更新的第二節(jié)點(diǎn)發(fā)送所述第一請(qǐng)求。
30、進(jìn)一步地,所述第一請(qǐng)求中攜帶:
31、區(qū)塊的鏈標(biāo)識(shí);
32、區(qū)塊的通道標(biāo)識(shí);
33、區(qū)塊高度;
34、區(qū)塊體哈希值。
35、進(jìn)一步地,所述第三請(qǐng)求中攜帶:
36、區(qū)塊的鏈標(biāo)識(shí);
37、區(qū)塊的通道標(biāo)識(shí);
38、區(qū)塊高度;
39、區(qū)塊體哈希值;
40、區(qū)塊的訪問地址列表。
41、為達(dá)到上述目的,本技術(shù)的實(shí)施例提供一種區(qū)塊鏈處理方法,由第二節(jié)點(diǎn)執(zhí)行,所述第二節(jié)點(diǎn)包括一個(gè)或多個(gè)存儲(chǔ)介質(zhì),所述方法包括:
42、接收第一節(jié)點(diǎn)發(fā)送的第一請(qǐng)求;
43、根據(jù)所述第一請(qǐng)求為第一區(qū)塊分配存儲(chǔ)介質(zhì),并向所述第一節(jié)點(diǎn)發(fā)送與分配的存儲(chǔ)介質(zhì)對(duì)應(yīng)的訪問令牌;
44、接收所述第一節(jié)點(diǎn)發(fā)送的第二請(qǐng)求,所述第二請(qǐng)求攜帶所述訪問令牌和所述第一區(qū)塊待存儲(chǔ)的區(qū)塊對(duì)象;
45、根據(jù)所述第二請(qǐng)求將所述區(qū)塊對(duì)象存儲(chǔ)在分配的存儲(chǔ)介質(zhì),并返回應(yīng)答消息。
46、進(jìn)一步地,所述根據(jù)所述第一請(qǐng)求為第一區(qū)塊分配存儲(chǔ)介質(zhì),包括:
47、基于所述第一請(qǐng)求攜帶的信息,查詢存儲(chǔ)介質(zhì)是否已存儲(chǔ)所述第一區(qū)塊的區(qū)塊對(duì)象;
48、在查詢結(jié)果表示存儲(chǔ)介質(zhì)未存儲(chǔ)所述第一區(qū)塊的區(qū)塊對(duì)象的情況下,確定分配的存儲(chǔ)介質(zhì)和訪問令牌。
49、進(jìn)一步地,所述根據(jù)所述第二請(qǐng)求將所述區(qū)塊對(duì)象存儲(chǔ)在配的存儲(chǔ)介質(zhì),并返回應(yīng)答消息,包括:
50、基于存儲(chǔ)介質(zhì)的屬性,將所述區(qū)塊對(duì)象進(jìn)行分片;
51、基于所述訪問令牌,將各個(gè)分片上傳到對(duì)應(yīng)的存儲(chǔ)介質(zhì)進(jìn)行存儲(chǔ);
52、基于各個(gè)分片的存儲(chǔ)位置生成包括所述區(qū)塊對(duì)象的訪問地址列表的應(yīng)答消息;
53、將所述應(yīng)答消息發(fā)送至所述第一節(jié)點(diǎn)。
54、進(jìn)一步地,所述基于所述訪問令牌,將各個(gè)分片上傳到對(duì)應(yīng)的存儲(chǔ)介質(zhì)進(jìn)行存儲(chǔ)之后,還包括:
55、將所述區(qū)塊對(duì)象進(jìn)行緩存。
56、進(jìn)一步地,所述方法還包括:
57、接收所述第一節(jié)點(diǎn)發(fā)送的第三請(qǐng)求,所述第三請(qǐng)求用于申請(qǐng)讀取所述第一區(qū)塊的區(qū)塊對(duì)象;
58、根據(jù)所述第三請(qǐng)求發(fā)送所述區(qū)塊對(duì)象。
59、進(jìn)一步地,所述根據(jù)所述第三請(qǐng)求發(fā)送所述區(qū)塊對(duì)象,包括:
60、基于所述第三請(qǐng)求查詢是否緩存所述區(qū)塊對(duì)象;
61、若緩存所述區(qū)塊對(duì)象,則直接發(fā)送所述區(qū)塊對(duì)象;
62、若未緩存所述區(qū)塊對(duì)象,則基于所述區(qū)塊對(duì)象的訪問地址列表,在存儲(chǔ)介質(zhì)讀取各個(gè)分片,并拼接所述分片得到并發(fā)送所述區(qū)塊對(duì)象。
63、進(jìn)一步地,接收第一節(jié)點(diǎn)發(fā)送的第一請(qǐng)求之前,還包括:
64、接收第三節(jié)點(diǎn)發(fā)送的第二配置信息;
65、根據(jù)所述第二配置信息,設(shè)置所述一個(gè)或多個(gè)存儲(chǔ)介質(zhì)。
66、為達(dá)到上述目的,本技術(shù)的實(shí)施例提供一種區(qū)塊鏈處理方法,由第三節(jié)點(diǎn)執(zhí)行,包括:
67、在滿足第一條件的情況下,向第一節(jié)點(diǎn)發(fā)送寫入通知;其中,所述第一條件包括以下至少一項(xiàng):
68、區(qū)塊鏈或區(qū)塊鏈通道創(chuàng)建成功;
69、所述第一節(jié)點(diǎn)加入到區(qū)塊鏈或區(qū)塊鏈通道。
70、進(jìn)一步地,所述方法還包括:
71、在滿足所述第一條件的情況下,
72、向所述第一節(jié)點(diǎn)發(fā)送第一配置信息,所述第一配置信息包括用于指示所述第二節(jié)點(diǎn)的信息,以及,申請(qǐng)存儲(chǔ)介質(zhì)所使用的相關(guān)信息;以及,
73、向第二節(jié)點(diǎn)發(fā)送第二配置信息,所述第二配置信息用于設(shè)置所述第二節(jié)點(diǎn)包括的一個(gè)或多個(gè)存儲(chǔ)介質(zhì)。
74、進(jìn)一步地,所述方法還包括:
75、向第二節(jié)點(diǎn)發(fā)送讀取通知。
76、進(jìn)一步地,所述方法還包括:
77、在發(fā)生區(qū)塊鏈遷移的情況下,生成所述寫入通知和所述讀取通知。
78、為達(dá)到上述目的,本技術(shù)的實(shí)施例提供一種區(qū)塊鏈處理裝置,應(yīng)用于第一節(jié)點(diǎn),包括:
79、第一發(fā)送模塊,用于在接收到第一區(qū)塊的寫入通知的情況下,向第二節(jié)點(diǎn)發(fā)送第一請(qǐng)求;其中,所述第二節(jié)點(diǎn)包括一個(gè)或多個(gè)存儲(chǔ)介質(zhì),所述第一請(qǐng)求用于申請(qǐng)存儲(chǔ)介質(zhì)分配;
80、第一接收模塊,用于接收所述第二節(jié)點(diǎn)響應(yīng)于所述第一請(qǐng)求發(fā)送的訪問令牌;
81、第二發(fā)送模塊,用于向所述第二節(jié)點(diǎn)發(fā)送第二請(qǐng)求,所述第二請(qǐng)求攜帶所述訪問令牌和所述第一區(qū)塊待存儲(chǔ)的區(qū)塊對(duì)象,所述第二請(qǐng)求用于申請(qǐng)將所述區(qū)塊對(duì)象存儲(chǔ)在分配的存儲(chǔ)介質(zhì);
82、第二接收模塊,用于接收所述第二節(jié)點(diǎn)響應(yīng)于所述第二請(qǐng)求返回的應(yīng)答消息;
83、第一處理模塊,用于根據(jù)所述應(yīng)答消息得到所述第一區(qū)塊的區(qū)塊體元數(shù)據(jù),并將所述區(qū)塊體元數(shù)據(jù)存儲(chǔ)在本地。
84、為達(dá)到上述目的,本技術(shù)的實(shí)施例提供一種區(qū)塊鏈處理裝置,應(yīng)用于第二節(jié)點(diǎn),所述第二節(jié)點(diǎn)包括一個(gè)或多個(gè)存儲(chǔ)介質(zhì),包括:
85、第三接收模塊,用于接收第一節(jié)點(diǎn)發(fā)送的第一請(qǐng)求;
86、第二處理模塊,用于根據(jù)所述第一請(qǐng)求為第一區(qū)塊分配存儲(chǔ)介質(zhì),并向所述第一節(jié)點(diǎn)發(fā)送與分配的存儲(chǔ)介質(zhì)對(duì)應(yīng)的訪問令牌;
87、第四接收模塊,用于接收所述第一節(jié)點(diǎn)發(fā)送第二請(qǐng)求,所述第二請(qǐng)求攜帶所述訪問令牌和所述第一區(qū)塊待存儲(chǔ)的區(qū)塊對(duì)象;
88、第三發(fā)送模塊,用于根據(jù)所述第二請(qǐng)求將所述區(qū)塊對(duì)象存儲(chǔ)在分配的存儲(chǔ)介質(zhì),并返回應(yīng)答消息。
89、為達(dá)到上述目的,本技術(shù)的實(shí)施例提供一種區(qū)塊鏈處理裝置,應(yīng)用于第三節(jié)點(diǎn),包括:
90、第四發(fā)送模塊,用于在滿足第一條件的情況下,向第一節(jié)點(diǎn)發(fā)送寫入通知;其中,所述第一條件包括以下至少一項(xiàng):
91、區(qū)塊鏈或區(qū)塊鏈通道創(chuàng)建成功;
92、所述第一節(jié)點(diǎn)加入到區(qū)塊鏈或區(qū)塊鏈通道。
93、為達(dá)到上述目的,本技術(shù)的實(shí)施例提供一種區(qū)塊鏈處理設(shè)備,包括:收發(fā)器、處理器、存儲(chǔ)器及存儲(chǔ)在所述存儲(chǔ)器上并可在所述處理器上運(yùn)行的程序或指令;所述處理器執(zhí)行所述程序或指令時(shí)實(shí)現(xiàn)如上所述的區(qū)塊鏈處理方法。
94、為達(dá)到上述目的,本技術(shù)的實(shí)施例提供一種可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有程序或指令,所述程序或指令被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上所述的區(qū)塊鏈處理方法中的步驟。
95、為達(dá)到上述目的,本技術(shù)的實(shí)施例提供一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)指令,所述計(jì)算機(jī)指令被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上所述的區(qū)塊鏈處理方法的步驟。
96、本技術(shù)的上述技術(shù)方案的有益效果如下:
97、本技術(shù)實(shí)施例的區(qū)塊鏈處理方法,在接收到第一區(qū)塊的寫入通知的情況下,向第二節(jié)點(diǎn)發(fā)送第一請(qǐng)求,使得第二節(jié)點(diǎn)給所述第一區(qū)塊的分配存儲(chǔ)介質(zhì),并向第一節(jié)點(diǎn)反饋與分配的存儲(chǔ)介質(zhì)對(duì)應(yīng)的訪問令牌;通過第一節(jié)點(diǎn)向第二節(jié)點(diǎn)發(fā)送訪問令牌和第一區(qū)塊的待存儲(chǔ)區(qū)塊對(duì)象,使得所述第二節(jié)點(diǎn)對(duì)待存儲(chǔ)區(qū)塊對(duì)象進(jìn)行存儲(chǔ);第一節(jié)點(diǎn)根據(jù)第二節(jié)點(diǎn)返回的應(yīng)答消息得到并存儲(chǔ)第一區(qū)塊的區(qū)塊體元數(shù)據(jù)。本技術(shù)實(shí)施例的區(qū)塊鏈處理方法,通過將區(qū)塊頭和區(qū)塊體進(jìn)行分別存儲(chǔ),并將至少一個(gè)節(jié)點(diǎn)的多個(gè)區(qū)塊的區(qū)塊體數(shù)據(jù)保存于同一個(gè)存儲(chǔ)節(jié)點(diǎn),降低了區(qū)塊鏈系統(tǒng)總體存儲(chǔ)開銷和節(jié)點(diǎn)存儲(chǔ)開銷,突破限制整個(gè)系統(tǒng)賬本、交易規(guī)模以及區(qū)塊鏈節(jié)點(diǎn)存儲(chǔ)容量的瓶頸。