本技術(shù)涉及區(qū)塊鏈,特別是涉及一種業(yè)務(wù)辦理方法、裝置、計算機設(shè)備、可讀存儲介質(zhì)和程序產(chǎn)品。
背景技術(shù):
1、區(qū)塊鏈?zhǔn)且环N塊鏈?zhǔn)酱鎯?、不可篡改、安全可信的去中心化分布式賬本。隨著區(qū)塊鏈技術(shù)的快速發(fā)展,越來越多的業(yè)務(wù)逐漸轉(zhuǎn)移到區(qū)塊鏈上進(jìn)行,實現(xiàn)透明化的業(yè)務(wù)辦理,提高業(yè)務(wù)辦理的安全性。
2、然而,不同業(yè)務(wù)存在不同的業(yè)務(wù)辦理需求和業(yè)務(wù)辦理流程,正是因為業(yè)務(wù)辦理需求的多樣性和業(yè)務(wù)辦理流程的復(fù)雜性,使得大部分業(yè)務(wù)會存在多個相關(guān)聯(lián)的業(yè)務(wù)系統(tǒng)。在這一背景下,如何保證區(qū)塊鏈系統(tǒng)與關(guān)聯(lián)業(yè)務(wù)系統(tǒng)之間的數(shù)據(jù)一致性,成為了行業(yè)內(nèi)重點關(guān)注的問題。
技術(shù)實現(xiàn)思路
1、基于此,有必要針對上述技術(shù)問題,提供一種能夠保證區(qū)塊鏈系統(tǒng)與業(yè)務(wù)系統(tǒng)之間的數(shù)據(jù)一致性的業(yè)務(wù)辦理方法、裝置、計算機設(shè)備、計算機可讀存儲介質(zhì)和計算機程序產(chǎn)品。
2、第一方面,本技術(shù)提供了一種業(yè)務(wù)辦理方法,包括:在接收到針對目標(biāo)業(yè)務(wù)的辦理指令時,獲取目標(biāo)業(yè)務(wù)的全局事務(wù);分別通過辦理目標(biāo)業(yè)務(wù)的區(qū)塊鏈系統(tǒng)、以及與目標(biāo)業(yè)務(wù)存在關(guān)聯(lián)關(guān)系的鏈外業(yè)務(wù)系統(tǒng),執(zhí)行全局事務(wù),得到區(qū)塊鏈系統(tǒng)的第一事務(wù)執(zhí)行結(jié)果、以及鏈外業(yè)務(wù)系統(tǒng)的第二事務(wù)執(zhí)行結(jié)果;在第一事務(wù)執(zhí)行結(jié)果和/或第二事務(wù)執(zhí)行結(jié)果表示執(zhí)行失敗時,分別通過區(qū)塊鏈系統(tǒng)和鏈外業(yè)務(wù)系統(tǒng),基于事務(wù)回滾機制,進(jìn)行事務(wù)回滾,得到區(qū)塊鏈系統(tǒng)的第一事務(wù)回滾結(jié)果、以及鏈外業(yè)務(wù)系統(tǒng)的第二事務(wù)回滾結(jié)果;事務(wù)回滾機制包括基于內(nèi)存堆棧的同步回滾機制、以及基于數(shù)據(jù)庫堆棧的異步回滾機制;數(shù)據(jù)庫堆棧是指將內(nèi)存堆棧轉(zhuǎn)存至數(shù)據(jù)庫中所得到的堆棧;在第一事務(wù)回滾結(jié)果和第二事務(wù)回滾結(jié)果均表示回滾成功時,生成針對目標(biāo)業(yè)務(wù)的異常辦理結(jié)果。
3、在其中一個實施例中,方法還包括:基于第一事務(wù)執(zhí)行結(jié)果和/或第二事務(wù)執(zhí)行結(jié)果,更新全局事務(wù),得到更新后的全局事務(wù);分別通過辦理目標(biāo)業(yè)務(wù)的區(qū)塊鏈系統(tǒng)、以及與目標(biāo)業(yè)務(wù)存在關(guān)聯(lián)關(guān)系的鏈外業(yè)務(wù)系統(tǒng),執(zhí)行更新后的全局事務(wù),得到區(qū)塊鏈系統(tǒng)的第一更新執(zhí)行結(jié)果和鏈外業(yè)務(wù)系統(tǒng)的第二更新執(zhí)行結(jié)果;在第一更新執(zhí)行結(jié)果和第二更新執(zhí)行結(jié)果均表示執(zhí)行成功的情況下,生成針對目標(biāo)業(yè)務(wù)的正常辦理結(jié)果。
4、在其中一個實施例中,第一事務(wù)回滾結(jié)果包括第一事務(wù)同步回滾結(jié)果和第一事務(wù)異步回滾結(jié)果;第二事務(wù)回滾結(jié)果包括第二事務(wù)同步回滾結(jié)果和第二事務(wù)異步回滾結(jié)果;分別通過區(qū)塊鏈系統(tǒng)和鏈外業(yè)務(wù)系統(tǒng),基于事務(wù)回滾機制,進(jìn)行事務(wù)回滾,得到區(qū)塊鏈系統(tǒng)的第一事務(wù)回滾結(jié)果、以及鏈外業(yè)務(wù)系統(tǒng)的第二事務(wù)回滾結(jié)果,包括:分別通過區(qū)塊鏈系統(tǒng)和鏈外業(yè)務(wù)系統(tǒng),基于同步回滾機制,進(jìn)行事務(wù)回滾,得到區(qū)塊鏈系統(tǒng)的第一事務(wù)同步回滾結(jié)果、以及鏈外業(yè)務(wù)系統(tǒng)的第二事務(wù)同步回滾結(jié)果;在第一事務(wù)同步回滾結(jié)果和/或第二事務(wù)同步回滾結(jié)果表示回滾失敗時,分別通過區(qū)塊鏈系統(tǒng)和鏈外業(yè)務(wù)系統(tǒng),基于異步回滾機制,進(jìn)行事務(wù)回滾,得到區(qū)塊鏈系統(tǒng)的第一事務(wù)異步回滾結(jié)果、以及鏈外業(yè)務(wù)系統(tǒng)的第二事務(wù)異步回滾結(jié)果。
5、在其中一個實施例中,方法還包括:獲取業(yè)務(wù)負(fù)載信息,基于業(yè)務(wù)負(fù)載信息,確定與業(yè)務(wù)負(fù)載信息相匹配的事務(wù)掃描頻率;分別通過區(qū)塊鏈系統(tǒng)和鏈外業(yè)務(wù)系統(tǒng),基于異步回滾機制,進(jìn)行事務(wù)回滾,包括:分別通過區(qū)塊鏈系統(tǒng)和鏈外業(yè)務(wù)系統(tǒng),基于異步回滾機制和事務(wù)掃描頻率,進(jìn)行事務(wù)回滾。
6、在其中一個實施例中,方法還包括:獲取全局事務(wù)的事務(wù)標(biāo)識、以及目標(biāo)業(yè)務(wù)的辦理場景標(biāo)識;基于事務(wù)標(biāo)識和辦理場景標(biāo)識,調(diào)用回調(diào)函數(shù),對目標(biāo)業(yè)務(wù)進(jìn)行業(yè)務(wù)狀態(tài)更新。
7、在其中一個實施例中,全局事務(wù)包括針對區(qū)塊鏈系統(tǒng)的第一分支事務(wù)、以及針對鏈外業(yè)務(wù)系統(tǒng)的第二分支事務(wù);分別通過辦理目標(biāo)業(yè)務(wù)的區(qū)塊鏈系統(tǒng)、以及與目標(biāo)業(yè)務(wù)存在關(guān)聯(lián)關(guān)系的鏈外業(yè)務(wù)系統(tǒng),執(zhí)行全局事務(wù),得到區(qū)塊鏈系統(tǒng)的第一事務(wù)執(zhí)行結(jié)果、以及鏈外業(yè)務(wù)系統(tǒng)的第二事務(wù)執(zhí)行結(jié)果,包括:通過區(qū)塊鏈系統(tǒng),執(zhí)行第一分支事務(wù),得到區(qū)塊鏈系統(tǒng)的第一事務(wù)執(zhí)行結(jié)果;通過鏈外業(yè)務(wù)系統(tǒng),執(zhí)行第二分支事務(wù),得到鏈外業(yè)務(wù)系統(tǒng)的第二事務(wù)執(zhí)行結(jié)果。
8、第二方面,本技術(shù)還提供了一種業(yè)務(wù)辦理裝置,包括:事務(wù)生成模塊,用于在接收到針對目標(biāo)業(yè)務(wù)的辦理指令時,獲取目標(biāo)業(yè)務(wù)的全局事務(wù);事務(wù)執(zhí)行模塊,用于分別通過辦理目標(biāo)業(yè)務(wù)的區(qū)塊鏈系統(tǒng)、以及與目標(biāo)業(yè)務(wù)存在關(guān)聯(lián)關(guān)系的鏈外業(yè)務(wù)系統(tǒng),執(zhí)行全局事務(wù),得到區(qū)塊鏈系統(tǒng)的第一事務(wù)執(zhí)行結(jié)果、以及鏈外業(yè)務(wù)系統(tǒng)的第二事務(wù)執(zhí)行結(jié)果;事務(wù)回滾模塊,用于在第一事務(wù)執(zhí)行結(jié)果和/或第二事務(wù)執(zhí)行結(jié)果表示執(zhí)行失敗時,分別通過區(qū)塊鏈系統(tǒng)和鏈外業(yè)務(wù)系統(tǒng),基于事務(wù)回滾機制,進(jìn)行事務(wù)回滾,得到區(qū)塊鏈系統(tǒng)的第一事務(wù)回滾結(jié)果、以及鏈外業(yè)務(wù)系統(tǒng)的第二事務(wù)回滾結(jié)果;事務(wù)回滾機制包括基于內(nèi)存堆棧的同步回滾機制、以及基于數(shù)據(jù)庫堆棧的異步回滾機制;數(shù)據(jù)庫堆棧是指將內(nèi)存堆棧轉(zhuǎn)存至數(shù)據(jù)庫中所得到的堆棧;辦理結(jié)果生成模塊,用于在第一事務(wù)回滾結(jié)果和第二事務(wù)回滾結(jié)果均表示回滾成功時,生成針對目標(biāo)業(yè)務(wù)的異常辦理結(jié)果。
9、在其中一個實施例中,裝置還用于:基于第一事務(wù)執(zhí)行結(jié)果和/或第二事務(wù)執(zhí)行結(jié)果,更新全局事務(wù),得到更新后的全局事務(wù);分別通過辦理目標(biāo)業(yè)務(wù)的區(qū)塊鏈系統(tǒng)、以及與目標(biāo)業(yè)務(wù)存在關(guān)聯(lián)關(guān)系的鏈外業(yè)務(wù)系統(tǒng),執(zhí)行更新后的全局事務(wù),得到區(qū)塊鏈系統(tǒng)的第一更新執(zhí)行結(jié)果和鏈外業(yè)務(wù)系統(tǒng)的第二更新執(zhí)行結(jié)果;在第一更新執(zhí)行結(jié)果和第二更新執(zhí)行結(jié)果均表示執(zhí)行成功的情況下,生成針對目標(biāo)業(yè)務(wù)的正常辦理結(jié)果。
10、在其中一個實施例中,第一事務(wù)回滾結(jié)果包括第一事務(wù)同步回滾結(jié)果和第一事務(wù)異步回滾結(jié)果;第二事務(wù)回滾結(jié)果包括第二事務(wù)同步回滾結(jié)果和第二事務(wù)異步回滾結(jié)果;事務(wù)回滾模塊還包括:同步回滾單元,用于分別通過區(qū)塊鏈系統(tǒng)和鏈外業(yè)務(wù)系統(tǒng),基于同步回滾機制,進(jìn)行事務(wù)回滾,得到區(qū)塊鏈系統(tǒng)的第一事務(wù)同步回滾結(jié)果、以及鏈外業(yè)務(wù)系統(tǒng)的第二事務(wù)同步回滾結(jié)果;異步回滾單元,用于在第一事務(wù)同步回滾結(jié)果和/或第二事務(wù)同步回滾結(jié)果表示回滾失敗時,分別通過區(qū)塊鏈系統(tǒng)和鏈外業(yè)務(wù)系統(tǒng),基于異步回滾機制,進(jìn)行事務(wù)回滾,得到區(qū)塊鏈系統(tǒng)的第一事務(wù)異步回滾結(jié)果、以及鏈外業(yè)務(wù)系統(tǒng)的第二事務(wù)異步回滾結(jié)果。
11、在其中一個實施例中,裝置還用于:獲取業(yè)務(wù)負(fù)載信息,基于業(yè)務(wù)負(fù)載信息,確定與業(yè)務(wù)負(fù)載信息相匹配的事務(wù)掃描頻率;異步回滾單元還用于:分別通過區(qū)塊鏈系統(tǒng)和鏈外業(yè)務(wù)系統(tǒng),基于異步回滾機制和事務(wù)掃描頻率,進(jìn)行事務(wù)回滾。
12、在其中一個實施例中,裝置還用于:獲取全局事務(wù)的事務(wù)標(biāo)識、以及目標(biāo)業(yè)務(wù)的辦理場景標(biāo)識;基于事務(wù)標(biāo)識和辦理場景標(biāo)識,調(diào)用回調(diào)函數(shù),對目標(biāo)業(yè)務(wù)進(jìn)行業(yè)務(wù)狀態(tài)更新。
13、在其中一個實施例中,全局事務(wù)包括針對區(qū)塊鏈系統(tǒng)的第一分支事務(wù)、以及針對鏈外業(yè)務(wù)系統(tǒng)的第二分支事務(wù);事務(wù)執(zhí)行模塊還用于:通過區(qū)塊鏈系統(tǒng),執(zhí)行第一分支事務(wù),得到區(qū)塊鏈系統(tǒng)的第一事務(wù)執(zhí)行結(jié)果;通過鏈外業(yè)務(wù)系統(tǒng),執(zhí)行第二分支事務(wù),得到鏈外業(yè)務(wù)系統(tǒng)的第二事務(wù)執(zhí)行結(jié)果。
14、第三方面,本技術(shù)還提供了一種計算機設(shè)備,包括存儲器和處理器,存儲器存儲有計算機程序,處理器執(zhí)行計算機程序時實現(xiàn)以下步驟:在接收到針對目標(biāo)業(yè)務(wù)的辦理指令時,獲取目標(biāo)業(yè)務(wù)的全局事務(wù);分別通過辦理目標(biāo)業(yè)務(wù)的區(qū)塊鏈系統(tǒng)、以及與目標(biāo)業(yè)務(wù)存在關(guān)聯(lián)關(guān)系的鏈外業(yè)務(wù)系統(tǒng),執(zhí)行全局事務(wù),得到區(qū)塊鏈系統(tǒng)的第一事務(wù)執(zhí)行結(jié)果、以及鏈外業(yè)務(wù)系統(tǒng)的第二事務(wù)執(zhí)行結(jié)果;在第一事務(wù)執(zhí)行結(jié)果和/或第二事務(wù)執(zhí)行結(jié)果表示執(zhí)行失敗時,分別通過區(qū)塊鏈系統(tǒng)和鏈外業(yè)務(wù)系統(tǒng),基于事務(wù)回滾機制,進(jìn)行事務(wù)回滾,得到區(qū)塊鏈系統(tǒng)的第一事務(wù)回滾結(jié)果、以及鏈外業(yè)務(wù)系統(tǒng)的第二事務(wù)回滾結(jié)果;事務(wù)回滾機制包括基于內(nèi)存堆棧的同步回滾機制、以及基于數(shù)據(jù)庫堆棧的異步回滾機制;數(shù)據(jù)庫堆棧是指將內(nèi)存堆棧轉(zhuǎn)存至數(shù)據(jù)庫中所得到的堆棧;在第一事務(wù)回滾結(jié)果和第二事務(wù)回滾結(jié)果均表示回滾成功時,生成針對目標(biāo)業(yè)務(wù)的異常辦理結(jié)果。
15、第四方面,本技術(shù)還提供了一種計算機可讀存儲介質(zhì),其上存儲有計算機程序,計算機程序被處理器執(zhí)行時實現(xiàn)以下步驟:在接收到針對目標(biāo)業(yè)務(wù)的辦理指令時,獲取目標(biāo)業(yè)務(wù)的全局事務(wù);分別通過辦理目標(biāo)業(yè)務(wù)的區(qū)塊鏈系統(tǒng)、以及與目標(biāo)業(yè)務(wù)存在關(guān)聯(lián)關(guān)系的鏈外業(yè)務(wù)系統(tǒng),執(zhí)行全局事務(wù),得到區(qū)塊鏈系統(tǒng)的第一事務(wù)執(zhí)行結(jié)果、以及鏈外業(yè)務(wù)系統(tǒng)的第二事務(wù)執(zhí)行結(jié)果;在第一事務(wù)執(zhí)行結(jié)果和/或第二事務(wù)執(zhí)行結(jié)果表示執(zhí)行失敗時,分別通過區(qū)塊鏈系統(tǒng)和鏈外業(yè)務(wù)系統(tǒng),基于事務(wù)回滾機制,進(jìn)行事務(wù)回滾,得到區(qū)塊鏈系統(tǒng)的第一事務(wù)回滾結(jié)果、以及鏈外業(yè)務(wù)系統(tǒng)的第二事務(wù)回滾結(jié)果;事務(wù)回滾機制包括基于內(nèi)存堆棧的同步回滾機制、以及基于數(shù)據(jù)庫堆棧的異步回滾機制;數(shù)據(jù)庫堆棧是指將內(nèi)存堆棧轉(zhuǎn)存至數(shù)據(jù)庫中所得到的堆棧;在第一事務(wù)回滾結(jié)果和第二事務(wù)回滾結(jié)果均表示回滾成功時,生成針對目標(biāo)業(yè)務(wù)的異常辦理結(jié)果。
16、第五方面,本技術(shù)還提供了一種計算機程序產(chǎn)品,包括計算機程序,該計算機程序被處理器執(zhí)行時實現(xiàn)以下步驟:在接收到針對目標(biāo)業(yè)務(wù)的辦理指令時,獲取目標(biāo)業(yè)務(wù)的全局事務(wù);分別通過辦理目標(biāo)業(yè)務(wù)的區(qū)塊鏈系統(tǒng)、以及與目標(biāo)業(yè)務(wù)存在關(guān)聯(lián)關(guān)系的鏈外業(yè)務(wù)系統(tǒng),執(zhí)行全局事務(wù),得到區(qū)塊鏈系統(tǒng)的第一事務(wù)執(zhí)行結(jié)果、以及鏈外業(yè)務(wù)系統(tǒng)的第二事務(wù)執(zhí)行結(jié)果;在第一事務(wù)執(zhí)行結(jié)果和/或第二事務(wù)執(zhí)行結(jié)果表示執(zhí)行失敗時,分別通過區(qū)塊鏈系統(tǒng)和鏈外業(yè)務(wù)系統(tǒng),基于事務(wù)回滾機制,進(jìn)行事務(wù)回滾,得到區(qū)塊鏈系統(tǒng)的第一事務(wù)回滾結(jié)果、以及鏈外業(yè)務(wù)系統(tǒng)的第二事務(wù)回滾結(jié)果;事務(wù)回滾機制包括基于內(nèi)存堆棧的同步回滾機制、以及基于數(shù)據(jù)庫堆棧的異步回滾機制;數(shù)據(jù)庫堆棧是指將內(nèi)存堆棧轉(zhuǎn)存至數(shù)據(jù)庫中所得到的堆棧;在第一事務(wù)回滾結(jié)果和第二事務(wù)回滾結(jié)果均表示回滾成功時,生成針對目標(biāo)業(yè)務(wù)的異常辦理結(jié)果。
17、上述業(yè)務(wù)辦理方法、裝置、計算機設(shè)備、計算機可讀存儲介質(zhì)和計算機程序產(chǎn)品,在接收到針對目標(biāo)業(yè)務(wù)的辦理指令時,首先獲取目標(biāo)業(yè)務(wù)的全局事務(wù)。從而分別通過辦理目標(biāo)業(yè)務(wù)的區(qū)塊鏈系統(tǒng)、以及與目標(biāo)業(yè)務(wù)存在關(guān)聯(lián)關(guān)系的鏈外業(yè)務(wù)系統(tǒng),執(zhí)行全局事務(wù),得到區(qū)塊鏈系統(tǒng)的第一事務(wù)執(zhí)行結(jié)果、以及鏈外業(yè)務(wù)系統(tǒng)的第二事務(wù)執(zhí)行結(jié)果。在第一事務(wù)執(zhí)行結(jié)果和/或第二事務(wù)執(zhí)行結(jié)果表示執(zhí)行失敗時,分別通過區(qū)塊鏈系統(tǒng)和鏈外業(yè)務(wù)系統(tǒng),基于事務(wù)回滾機制,進(jìn)行事務(wù)回滾,得到區(qū)塊鏈系統(tǒng)的第一事務(wù)回滾結(jié)果、以及鏈外業(yè)務(wù)系統(tǒng)的第二事務(wù)回滾結(jié)果,并在第一事務(wù)回滾結(jié)果和第二事務(wù)回滾結(jié)果均表示回滾成功時,生成針對目標(biāo)業(yè)務(wù)的異常辦理結(jié)果??梢岳斫獾氖?,事務(wù)回滾是指將事務(wù)回滾到開始之前的狀態(tài),從而防止數(shù)據(jù)不一致的情況發(fā)生。也就是說,本技術(shù)在區(qū)塊鏈系統(tǒng)和/或鏈外業(yè)務(wù)系統(tǒng)執(zhí)行事務(wù)失敗的情況下,通過事務(wù)回滾,以此來確保區(qū)塊鏈系統(tǒng)和鏈外業(yè)務(wù)系統(tǒng)之間的數(shù)據(jù)一致性。另外,本技術(shù)中的事務(wù)回滾機制包括基于內(nèi)存堆棧的同步回滾機制、以及基于數(shù)據(jù)庫堆棧的異步回滾機制,數(shù)據(jù)庫堆棧是指將內(nèi)存堆棧轉(zhuǎn)存至數(shù)據(jù)庫中所得到的堆棧。可以理解的是,由于針對內(nèi)存堆棧的訪問速度較快,因此基于內(nèi)存堆棧的同步?jīng)_正具有較高的實時性。系統(tǒng)可以在檢測到錯誤后迅速進(jìn)行回滾。而數(shù)據(jù)庫可以持久化存儲內(nèi)存堆棧,因此系統(tǒng)可以從數(shù)據(jù)庫中讀取對應(yīng)的內(nèi)存堆棧,并進(jìn)行異步?jīng)_正操作。也即,本技術(shù)通過配置不同的事務(wù)回滾機制,來進(jìn)行事務(wù)回滾,提高了事務(wù)回滾的準(zhǔn)確性,進(jìn)一步確保了區(qū)塊鏈系統(tǒng)和鏈外業(yè)務(wù)系統(tǒng)之間的數(shù)據(jù)一致性。