日韩成人黄色,透逼一级毛片,狠狠躁天天躁中文字幕,久久久久久亚洲精品不卡,在线看国产美女毛片2019,黄片www.www,一级黄色毛a视频直播

基于區(qū)塊鏈的數(shù)據(jù)處理方法、裝置、設(shè)備及可讀存儲介質(zhì)與流程

文檔序號:39713201發(fā)布日期:2024-10-22 12:59閱讀:1來源:國知局
基于區(qū)塊鏈的數(shù)據(jù)處理方法、裝置、設(shè)備及可讀存儲介質(zhì)與流程

本技術(shù)涉及計算機(jī),尤其涉及一種基于區(qū)塊鏈的數(shù)據(jù)處理方法、裝置、設(shè)備及可讀存儲介質(zhì)。


背景技術(shù):

1、隨著區(qū)塊鏈技術(shù)的發(fā)展,基于區(qū)塊鏈的應(yīng)用逐漸落地,越來越多的數(shù)據(jù)被放置到區(qū)塊鏈中,以保證數(shù)據(jù)的不可篡改性。

2、現(xiàn)有的基于區(qū)塊鏈的去中心化應(yīng)用及其對應(yīng)的智能合約,在將第一對象的對象屬性數(shù)據(jù)存儲至區(qū)塊鏈網(wǎng)絡(luò)中時,通常是將第一對象對應(yīng)的某個唯一的特定信息作為key(鍵),例如,將第一對象的對象標(biāo)識作為key,然后將第一對象對應(yīng)的對象屬性數(shù)據(jù)作為value(值),以key-value的方式將其存儲至區(qū)塊鏈網(wǎng)絡(luò)對應(yīng)的狀態(tài)數(shù)據(jù)庫中。但是,將數(shù)據(jù)存儲進(jìn)區(qū)塊鏈的狀態(tài)數(shù)據(jù)庫中,所需工作量較大,相應(yīng)需要付出的資源就較多。而且,不管第一對象是新增對象屬性數(shù)據(jù)還是更改部分之前存儲的對象屬性數(shù)據(jù)時,均需要將所有對象屬性數(shù)據(jù)作為新的value,重新進(jìn)行存儲,因此,每次存儲第一對象均需要消耗較多的資源。此外,當(dāng)?shù)谝粚ο笮枰鎯Φ膶ο髮傩詳?shù)據(jù)逐漸增多時,第一對象存儲對象屬性數(shù)據(jù)所需要消耗的資源會越多。


技術(shù)實(shí)現(xiàn)思路

1、本技術(shù)實(shí)施例提供了一種基于區(qū)塊鏈的數(shù)據(jù)處理方法、裝置、設(shè)備及可讀存儲介質(zhì),可以降低區(qū)塊鏈中存儲對象屬性數(shù)據(jù)的資源消耗。

2、本技術(shù)實(shí)施例一方面提供了一種基于區(qū)塊鏈的數(shù)據(jù)處理方法,包括:

3、執(zhí)行第一區(qū)塊中與第一對象相關(guān)的業(yè)務(wù)數(shù)據(jù),得到針對第一對象的業(yè)務(wù)執(zhí)行結(jié)果;業(yè)務(wù)執(zhí)行結(jié)果包含針對第一對象的一個或多個對象屬性,以及每個對象屬性對應(yīng)的對象屬性數(shù)據(jù);

4、調(diào)用對象數(shù)據(jù)存儲合約,若通過對象數(shù)據(jù)存儲合約確定狀態(tài)數(shù)據(jù)庫中已存儲有第一對象相關(guān)聯(lián)的區(qū)塊號,則獲取最大區(qū)塊號以及歷史相鄰區(qū)塊號;最大區(qū)塊號為第一區(qū)塊對應(yīng)的區(qū)塊號;歷史相鄰區(qū)塊號為第二區(qū)塊對應(yīng)的區(qū)塊號;第二區(qū)塊是指與第一對象相關(guān)聯(lián)的剩余區(qū)塊中,區(qū)塊高度最大的區(qū)塊;剩余區(qū)塊包括第一對象相關(guān)聯(lián)的區(qū)塊中除了第一區(qū)塊以外的區(qū)塊;

5、將第一對象對應(yīng)的第一對象標(biāo)識與最大區(qū)塊號存儲至狀態(tài)數(shù)據(jù)庫中,將第一對象標(biāo)識、業(yè)務(wù)執(zhí)行結(jié)果以及歷史相鄰區(qū)塊號存儲至第一區(qū)塊對應(yīng)的區(qū)塊日志中。

6、本技術(shù)實(shí)施例一方面提供了一種基于區(qū)塊鏈的數(shù)據(jù)處理裝置,包括:

7、執(zhí)行模塊,用于執(zhí)行第一區(qū)塊中與第一對象相關(guān)的業(yè)務(wù)數(shù)據(jù),得到針對第一對象的業(yè)務(wù)執(zhí)行結(jié)果;業(yè)務(wù)執(zhí)行結(jié)果包含針對第一對象的一個或多個對象屬性,以及每個對象屬性對應(yīng)的對象屬性數(shù)據(jù);

8、第一獲取模塊,用于調(diào)用對象數(shù)據(jù)存儲合約,若通過對象數(shù)據(jù)存儲合約確定狀態(tài)數(shù)據(jù)庫中已存儲有第一對象相關(guān)聯(lián)的區(qū)塊號,則獲取最大區(qū)塊號以及歷史相鄰區(qū)塊號;最大區(qū)塊號為第一區(qū)塊對應(yīng)的區(qū)塊號;歷史相鄰區(qū)塊號為第二區(qū)塊對應(yīng)的區(qū)塊號;第二區(qū)塊是指與第一對象相關(guān)聯(lián)的剩余區(qū)塊中,區(qū)塊高度最大的區(qū)塊;剩余區(qū)塊包括第一對象相關(guān)聯(lián)的區(qū)塊中除了第一區(qū)塊以外的區(qū)塊;

9、第一存儲模塊,用于將第一對象對應(yīng)的第一對象標(biāo)識與最大區(qū)塊號存儲至狀態(tài)數(shù)據(jù)庫中,將第一對象標(biāo)識、業(yè)務(wù)執(zhí)行結(jié)果以及歷史相鄰區(qū)塊號存儲至第一區(qū)塊對應(yīng)的區(qū)塊日志中。

10、其中,第一存儲模塊,包括:

11、第一存儲單元,用于調(diào)用對象數(shù)據(jù)存儲合約中的狀態(tài)數(shù)據(jù)庫更新函數(shù),通過狀態(tài)數(shù)據(jù)庫更新函數(shù)將第一對象對應(yīng)的第一對象標(biāo)識與最大區(qū)塊號存儲至狀態(tài)數(shù)據(jù)庫中;

12、第二存儲單元,用于調(diào)用對象數(shù)據(jù)存儲合約中的對象屬性更新事件,通過對象屬性更新事件,將第一對象標(biāo)識、業(yè)務(wù)執(zhí)行結(jié)果以及歷史相鄰區(qū)塊號存儲至第一區(qū)塊對應(yīng)的區(qū)塊日志中。

13、其中,第一存儲模塊,包括:

14、第三存儲單元,用于將第一對象對應(yīng)的第一對象標(biāo)識與最大區(qū)塊號存儲至狀態(tài)數(shù)據(jù)庫中;

15、格式轉(zhuǎn)換單元,用于對業(yè)務(wù)執(zhí)行結(jié)果進(jìn)行數(shù)據(jù)格式轉(zhuǎn)換處理,得到具有數(shù)據(jù)解析格式的業(yè)務(wù)執(zhí)行數(shù)據(jù);具有數(shù)據(jù)解析格式的業(yè)務(wù)執(zhí)行數(shù)據(jù)包含一個或多個對象屬性組;一個對象屬性組包含一個對象屬性,以及一個對象屬性數(shù)據(jù);

16、第四存儲單元,用于將第一對象標(biāo)識、具有數(shù)據(jù)解析格式的業(yè)務(wù)執(zhí)行數(shù)據(jù)以及歷史相鄰區(qū)塊號存儲至第一區(qū)塊對應(yīng)的區(qū)塊日志中。

17、其中,上述數(shù)據(jù)處理裝置,還包括:

18、識別模塊,用于通過對象數(shù)據(jù)存儲合約,獲取第一對象對應(yīng)的第一對象標(biāo)識;

19、識別模塊,還用于在狀態(tài)數(shù)據(jù)庫中獲取第一對象標(biāo)識關(guān)聯(lián)的存儲數(shù)據(jù),對存儲數(shù)據(jù)進(jìn)行區(qū)塊號識別,得到區(qū)塊號識別結(jié)果;

20、識別模塊,還用于若區(qū)塊號識別結(jié)果為區(qū)塊號有效結(jié)果,則確定狀態(tài)數(shù)據(jù)庫中已存儲有第一對象相關(guān)聯(lián)的區(qū)塊號;

21、識別模塊,還用于若區(qū)塊號識別結(jié)果為區(qū)塊號無效結(jié)果,則確定狀態(tài)數(shù)據(jù)庫中未存儲有第一對象相關(guān)聯(lián)的區(qū)塊號。

22、其中,上述數(shù)據(jù)處理裝置,還包括:

23、第二獲取模塊,用于若通過對象數(shù)據(jù)存儲合約確定狀態(tài)數(shù)據(jù)庫中未存儲有第一對象相關(guān)聯(lián)的區(qū)塊號,則獲取最大區(qū)塊號以及初始化區(qū)塊號;初始化區(qū)塊號為無效區(qū)塊號;

24、第二存儲模塊,用于將第一對象對應(yīng)的第一對象標(biāo)識與最大區(qū)塊號存儲至狀態(tài)數(shù)據(jù)庫中,將第一對象標(biāo)識、業(yè)務(wù)執(zhí)行結(jié)果以及初始化區(qū)塊號存儲至第一區(qū)塊對應(yīng)的區(qū)塊日志中。

25、其中,上述數(shù)據(jù)處理裝置,還包括:

26、第三獲取模塊,用于獲取針對第一對象的對象屬性讀取請求;對象屬性讀取請求包括第一對象標(biāo)識;

27、第四獲取模塊,用于根據(jù)對象屬性讀取請求在狀態(tài)數(shù)據(jù)庫中獲取與第一對象標(biāo)識關(guān)聯(lián)的最大區(qū)塊號;

28、數(shù)據(jù)讀取模塊,用于從具有最大區(qū)塊號的第一區(qū)塊對應(yīng)的區(qū)塊日志開始遍歷與第一對象相關(guān)聯(lián)的區(qū)塊日志,獲取遍歷到的區(qū)塊日志中的業(yè)務(wù)執(zhí)行數(shù)據(jù),根據(jù)所獲取到的業(yè)務(wù)執(zhí)行數(shù)據(jù)生成用于響應(yīng)對象屬性讀取請求的完整對象屬性數(shù)據(jù)集;所遍歷到的最后一個區(qū)塊日志包含無效區(qū)塊號。

29、其中,數(shù)據(jù)讀取模塊,包括:

30、日志獲取單元,用于將具有最大區(qū)塊號的第一區(qū)塊對應(yīng)的區(qū)塊日志,作為查詢區(qū)塊日志;

31、數(shù)據(jù)獲取單元,用于獲取查詢區(qū)塊日志中與第一對象標(biāo)識關(guān)聯(lián)的業(yè)務(wù)執(zhí)行數(shù)據(jù);

32、數(shù)據(jù)集生成單元,用于根據(jù)查詢區(qū)塊日志中與第一對象標(biāo)識關(guān)聯(lián)的業(yè)務(wù)執(zhí)行數(shù)據(jù)對應(yīng)的業(yè)務(wù)執(zhí)行順序,生成針對第一對象的中間對象屬性數(shù)據(jù)集;

33、區(qū)塊號獲取單元,用于在查詢區(qū)塊日志中獲取與第一對象標(biāo)識對應(yīng)的關(guān)聯(lián)區(qū)塊號信息;

34、追溯更新單元,用于若查詢區(qū)塊日志中的關(guān)聯(lián)區(qū)塊號信息為歷史相鄰區(qū)塊號,則將具有歷史相鄰區(qū)塊號的區(qū)塊對應(yīng)的區(qū)塊日志,作為追溯查詢區(qū)塊日志,根據(jù)追溯查詢區(qū)塊日志對中間對象屬性數(shù)據(jù)集進(jìn)行更新,得到更新對象屬性數(shù)據(jù)集;

35、數(shù)據(jù)集確定單元,用于繼續(xù)遍歷追溯查詢區(qū)塊日志,若追溯查詢區(qū)塊日志中與第一對象標(biāo)識對應(yīng)的關(guān)聯(lián)區(qū)塊號信息為無效區(qū)塊號,則將更新對象屬性數(shù)據(jù)集,確定為用于響應(yīng)對象屬性讀取請求的完整對象屬性數(shù)據(jù)集。

36、其中,查詢區(qū)塊日志包含m個業(yè)務(wù)日志;業(yè)務(wù)日志包含合約地址、事件簽名、對象標(biāo)識以及業(yè)務(wù)存儲數(shù)據(jù);

37、數(shù)據(jù)獲取單元,包括:

38、第一遍歷子單元,用于遍歷m個業(yè)務(wù)日志,順序獲取第j個業(yè)務(wù)日志;j為小于或等于m的正整數(shù);

39、關(guān)系確定子單元,用于根據(jù)第j個業(yè)務(wù)日志包含的合約地址、事件簽名以及對象標(biāo)識確定第j個業(yè)務(wù)日志與第一對象標(biāo)識的關(guān)系結(jié)果;

40、第一處理子單元,用于若第j個業(yè)務(wù)日志與第一對象標(biāo)識的關(guān)系結(jié)果為不關(guān)聯(lián)結(jié)果,則繼續(xù)獲取第j+1個業(yè)務(wù)日志;

41、第二處理子單元,用于若第j個業(yè)務(wù)日志與第一對象標(biāo)識的關(guān)系結(jié)果為關(guān)聯(lián)結(jié)果,則將第j個業(yè)務(wù)日志包含的業(yè)務(wù)存儲數(shù)據(jù),確定為與第一對象標(biāo)識關(guān)聯(lián)的子數(shù)據(jù),繼續(xù)獲取第j+1個業(yè)務(wù)日志,直至遍歷完m個業(yè)務(wù)日志,將與第一對象標(biāo)識關(guān)聯(lián)的每個子數(shù)據(jù)確定為查詢區(qū)塊日志中與第一對象標(biāo)識關(guān)聯(lián)的業(yè)務(wù)執(zhí)行數(shù)據(jù)。

42、其中,關(guān)系確定子單元,具體還用于獲取第j個業(yè)務(wù)日志包含的合約地址;若第j個業(yè)務(wù)日志包含的合約地址不等于對象數(shù)據(jù)存儲合約的合約地址,則確定第j個業(yè)務(wù)日志與第一對象標(biāo)識的關(guān)系結(jié)果為不關(guān)聯(lián)結(jié)果;若第j個業(yè)務(wù)日志包含的合約地址等于對象數(shù)據(jù)存儲合約的合約地址,則確定與第一對象標(biāo)識關(guān)聯(lián)的對象屬性更新事件對應(yīng)的事件哈希;若事件哈希不等于第j個業(yè)務(wù)日志包含的事件簽名,則確定第j個業(yè)務(wù)日志與第一對象標(biāo)識的關(guān)系結(jié)果為不關(guān)聯(lián)結(jié)果;若事件哈希等于第j個業(yè)務(wù)日志包含的事件簽名,則獲取第j個業(yè)務(wù)日志包含的對象標(biāo)識;若第j個業(yè)務(wù)日志包含的對象標(biāo)識不等于第一對象標(biāo)識,則確定第j個業(yè)務(wù)日志與第一對象標(biāo)識的關(guān)系結(jié)果為不關(guān)聯(lián)結(jié)果;若第j個業(yè)務(wù)日志包含的對象標(biāo)識等于第一對象標(biāo)識,則確定第j個業(yè)務(wù)日志與第一對象標(biāo)識的關(guān)系結(jié)果為關(guān)聯(lián)結(jié)果。

43、其中,數(shù)據(jù)集生成單元,包括:

44、第二遍歷子單元,用于按照查詢區(qū)塊日志中與第一對象標(biāo)識關(guān)聯(lián)的業(yè)務(wù)執(zhí)行數(shù)據(jù)對應(yīng)的業(yè)務(wù)執(zhí)行順序,遍歷查詢區(qū)塊日志中與第一對象標(biāo)識關(guān)聯(lián)的業(yè)務(wù)執(zhí)行數(shù)據(jù),獲取第k個業(yè)務(wù)執(zhí)行數(shù)據(jù);k為小于或等于h的正整數(shù),h為業(yè)務(wù)執(zhí)行數(shù)據(jù)的總數(shù)量;第k個業(yè)務(wù)執(zhí)行數(shù)據(jù)對應(yīng)的業(yè)務(wù)執(zhí)行順序位于第k+1個業(yè)務(wù)執(zhí)行數(shù)據(jù)對應(yīng)的業(yè)務(wù)執(zhí)行順序之后;

45、融合更新子單元,用于根據(jù)第k個業(yè)務(wù)執(zhí)行數(shù)據(jù)對第k-1個更新對象屬性數(shù)據(jù)集進(jìn)行屬性融合更新處理,得到第k個更新對象屬性數(shù)據(jù)集;k為1時,第k-1個更新對象屬性數(shù)據(jù)集為初始化空集合;k不為1時,第k-1個更新對象屬性數(shù)據(jù)集包含已有對象屬性,和已有對象屬性對應(yīng)的對象屬性數(shù)據(jù);第k個更新對象屬性數(shù)據(jù)集包含第k-1個更新對象屬性數(shù)據(jù)集,以及新增對象屬性,和新增對象屬性對應(yīng)的對象屬性數(shù)據(jù);新增對象屬性為第k個業(yè)務(wù)執(zhí)行數(shù)據(jù)包含的業(yè)務(wù)對象屬性中,與已有對象屬性不相同的業(yè)務(wù)對象屬性;

46、確定子單元,用于當(dāng)查詢區(qū)塊日志中與第一對象標(biāo)識關(guān)聯(lián)的業(yè)務(wù)執(zhí)行數(shù)據(jù)遍歷完成,將第h個更新對象屬性數(shù)據(jù)集,確定為第一對象的中間對象屬性數(shù)據(jù)集。

47、其中,第k個業(yè)務(wù)執(zhí)行數(shù)據(jù)包含一個或多個業(yè)務(wù)對象屬性,以及每個業(yè)務(wù)對象屬性對應(yīng)的對象屬性數(shù)據(jù);

48、融合更新子單元,具體還用于若第k-1個更新對象屬性數(shù)據(jù)集為初始化空集合,則將一個或多個業(yè)務(wù)對象屬性,均確定為新增對象屬性;將新增對象屬性,以及新增對象屬性對應(yīng)的對象屬性數(shù)據(jù),添加至初始化空集合,得到第k個更新對象屬性數(shù)據(jù)集;若第k-1個更新對象屬性數(shù)據(jù)集不為初始化空集合,則將一個或多個業(yè)務(wù)對象屬性中,與第k-1個更新對象屬性數(shù)據(jù)集包含的已有對象屬性不相同的業(yè)務(wù)對象屬性,確定為新增對象屬性;將新增對象屬性,以及新增對象屬性對應(yīng)的對象屬性數(shù)據(jù),添加至初始化空集合,得到第k個更新對象屬性數(shù)據(jù)集。

49、本技術(shù)實(shí)施例一方面提供了一種計算機(jī)設(shè)備,包括:處理器、存儲器、網(wǎng)絡(luò)接口;

50、上述處理器與上述存儲器、上述網(wǎng)絡(luò)接口相連,其中,上述網(wǎng)絡(luò)接口用于提供數(shù)據(jù)通信網(wǎng)元,上述存儲器用于存儲計算機(jī)程序,上述處理器用于調(diào)用上述計算機(jī)程序,以執(zhí)行本技術(shù)實(shí)施例中的方法。

51、本技術(shù)實(shí)施例一方面提供了一種計算機(jī)可讀存儲介質(zhì),上述計算機(jī)可讀存儲介質(zhì)中存儲有計算機(jī)程序,上述計算機(jī)程序適于由處理器加載并執(zhí)行本技術(shù)實(shí)施例中的方法。

52、本技術(shù)實(shí)施例一方面提供了一種計算機(jī)程序產(chǎn)品或計算機(jī)程序,該計算機(jī)程序產(chǎn)品或計算機(jī)程序包括計算機(jī)指令,該計算機(jī)指令存儲在計算機(jī)可讀存儲介質(zhì)中,計算機(jī)設(shè)備的處理器從計算機(jī)可讀存儲介質(zhì)讀取該計算機(jī)指令,處理器執(zhí)行該計算機(jī)指令,使得該計算機(jī)設(shè)備執(zhí)行本技術(shù)實(shí)施例中的方法。

53、本技術(shù)實(shí)施例中,執(zhí)行第一區(qū)塊中與第一對象相關(guān)的業(yè)務(wù)數(shù)據(jù),得到針對第一對象的業(yè)務(wù)執(zhí)行結(jié)果后,可以調(diào)用對象數(shù)據(jù)存儲合約,若通過對象數(shù)據(jù)存儲合約確定狀態(tài)數(shù)據(jù)庫中已存儲有第一對象相關(guān)聯(lián)的區(qū)塊號,則獲取最大區(qū)塊號以及歷史相鄰區(qū)塊號,然后將第一對象對應(yīng)的第一對象標(biāo)識與最大區(qū)塊號存儲至狀態(tài)數(shù)據(jù)庫中,將第一對象標(biāo)識、業(yè)務(wù)執(zhí)行結(jié)果以及歷史相鄰區(qū)塊號存儲至第一區(qū)塊對應(yīng)的區(qū)塊日志中。其中,業(yè)務(wù)執(zhí)行結(jié)果包含針對所述第一對象的一個或多個對象屬性,以及每個對象屬性對應(yīng)的對象屬性數(shù)據(jù);最大區(qū)塊號為第一區(qū)塊對應(yīng)的區(qū)塊號;歷史相鄰區(qū)塊號為第二區(qū)塊對應(yīng)的區(qū)塊號;第二區(qū)塊是指與第一對象相關(guān)聯(lián)的剩余區(qū)塊中,區(qū)塊高度最大的區(qū)塊;剩余區(qū)塊包括第一對象相關(guān)聯(lián)的區(qū)塊中除了第一區(qū)塊以外的區(qū)塊。通過本技術(shù)實(shí)施例提供的方法,第一對象對應(yīng)的對象屬性數(shù)據(jù)不用寫入狀態(tài)數(shù)據(jù)庫中,而是寫入當(dāng)前區(qū)塊的區(qū)塊日志中,因?yàn)樵趨^(qū)塊日志中存儲數(shù)據(jù)所需的資源消耗遠(yuǎn)小于在狀態(tài)數(shù)據(jù)庫中存儲數(shù)據(jù)所需的資源消耗,因此可以降低存儲對象屬性數(shù)據(jù)的資源消耗;此外,通過在區(qū)塊日志中寫入歷史相鄰區(qū)塊號,可以獲取之前的區(qū)塊日志中存儲的對象屬性數(shù)據(jù),因此每次存儲第一對象對應(yīng)的對象屬性數(shù)據(jù)時,只需存儲需要更新或者新增的對象屬性數(shù)據(jù)即可,無需將所有的對象屬性數(shù)據(jù)重新進(jìn)行存儲,可以減少存儲數(shù)據(jù)量,從而進(jìn)一步降低存儲對象屬性數(shù)據(jù)的資源消耗。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1