本申請涉及信息,尤其涉及一種去中心化存儲計算方法及系統(tǒng)。
背景技術(shù):
1、在去中心化計算和存儲領(lǐng)域,常見的技術(shù)方案包括通過ipfs(inter?planetaryfile?system,星際文件系統(tǒng))等外部存儲系統(tǒng)獲取數(shù)據(jù),或者將數(shù)據(jù)存儲在區(qū)塊鏈的狀態(tài)數(shù)據(jù)中。這些技術(shù)通過去中心化網(wǎng)絡(luò)來實現(xiàn)數(shù)據(jù)存儲和訪問,但存在一些局限性。
2、例如,ipfs等外部存儲系統(tǒng)雖然提供了去中心化的存儲,但由于缺乏激勵機制,存在數(shù)據(jù)丟失、存儲效率低等問題。尤其是在涉及大規(guī)模數(shù)據(jù)存儲時,ipfs的訪問速度和可靠性成為瓶頸。
3、還如,對于區(qū)塊鏈狀態(tài)存儲的方案,將數(shù)據(jù)存儲在區(qū)塊鏈狀態(tài)上可以提供較高的可靠性和不可篡改性,但由于區(qū)塊鏈的狀態(tài)數(shù)據(jù)是每個節(jié)點都持有一份完成的拷貝,所以用作存儲的成本非常昂貴,無法承載大規(guī)模數(shù)據(jù),存儲量受限,并且會引起區(qū)塊鏈狀態(tài)的膨脹問題。
4、由此可知,現(xiàn)有的去中心化存儲計算方案中,主要存在可靠性不足以及數(shù)據(jù)膨脹導(dǎo)致成本高昂的問題。
技術(shù)實現(xiàn)思路
1、本申請的一個目的是提供一種去中心化存儲計算方法及系統(tǒng),用以解決現(xiàn)有技術(shù)中可靠性不足以及數(shù)據(jù)膨脹導(dǎo)致成本高昂的問題。
2、為實現(xiàn)上述目的,本申請實施例提供了一種去中心化存儲計算方法,所述方法包括:
3、將需要存儲的第一數(shù)據(jù)構(gòu)建成數(shù)據(jù)存儲交易,并提交到區(qū)塊鏈的交易池中,在執(zhí)行所述數(shù)據(jù)存儲交易時,生成所述第一數(shù)據(jù)的索引信息,將所述第一數(shù)據(jù)的索引信息存儲至所述區(qū)塊鏈的狀態(tài)數(shù)據(jù)中,并將所述第一數(shù)據(jù)存儲至所述區(qū)塊鏈的存儲池中;
4、將計算任務(wù)構(gòu)建成計算任務(wù)交易,并提交到區(qū)塊鏈的交易池中,在執(zhí)行所述計算任務(wù)交易時,根據(jù)所述計算任務(wù)所需要的第二數(shù)據(jù)的索引信息向區(qū)塊鏈網(wǎng)絡(luò)的所有節(jié)點請求獲取所述第二數(shù)據(jù),采用異步的方式根據(jù)所述第二數(shù)據(jù)進行計算,獲取計算結(jié)果;
5、將所述計算結(jié)果構(gòu)建成計算結(jié)果交易,并提交到區(qū)塊鏈的交易池中,在執(zhí)行所述計算結(jié)果交易時,生成所述計算結(jié)果的索引信息,將所述計算結(jié)果的索引信息存儲至所述區(qū)塊鏈的狀態(tài)數(shù)據(jù)中,并將所述計算結(jié)果發(fā)布至所述區(qū)塊鏈中;
6、在所述計算結(jié)果發(fā)布之后,在驗證周期內(nèi)鎖定相應(yīng)計算任務(wù)的獎勵,并在驗證通過后向計算節(jié)點發(fā)放本次計算任務(wù)的獎勵,所述獎勵包括數(shù)據(jù)檢索激勵費用,所述數(shù)據(jù)檢索激勵費用與計算任務(wù)需要的第二數(shù)據(jù)的數(shù)據(jù)量成正比。
7、進一步地,在執(zhí)行所述計算任務(wù)交易時,根據(jù)所述計算任務(wù)所需要的第二數(shù)據(jù)的索引信息向區(qū)塊鏈網(wǎng)絡(luò)的所有節(jié)點請求獲取所述第二數(shù)據(jù),包括:
8、在執(zhí)行所述計算任務(wù)交易時,根據(jù)所述計算任務(wù)所需要的第二數(shù)據(jù)的索引信息與存儲有所述第二數(shù)據(jù)的節(jié)點建立連接,并采用bitswap協(xié)議向所述節(jié)點請求獲取所述第二數(shù)據(jù)。
9、進一步地,在采用異步的方式根據(jù)所述第二數(shù)據(jù)進行計算之前,還包括:
10、對獲取到的所述第二數(shù)據(jù)進行校驗,確認所述第二數(shù)據(jù)與所述第二數(shù)據(jù)的索引信息匹配。
11、進一步地,所述方法還包括:
12、將所述計算結(jié)果存儲至所述區(qū)塊鏈的存儲池中。
13、進一步地,所述方法還包括:
14、在所述驗證周期內(nèi),由所述區(qū)塊鏈的其它節(jié)點根據(jù)所述計算任務(wù),驗證所述計算結(jié)果的正確性。
15、進一步地,所述方法還包括:
16、在驗證未通過時,罰沒向所述計算節(jié)點發(fā)放的關(guān)于本次計算任務(wù)的獎勵,并將所述獎勵和所述計算節(jié)點的質(zhì)押發(fā)放給發(fā)起驗證的節(jié)點。
17、進一步地,將所述第一數(shù)據(jù)存儲至所述區(qū)塊鏈的存儲池中,包括:
18、基于容量證明協(xié)議,將所述第一數(shù)據(jù)將通過多個副本或分片方式分布存儲在所述區(qū)塊鏈的各個節(jié)點的存儲設(shè)備中。
19、進一步地,在執(zhí)行所述計算任務(wù)交易時,根據(jù)所述計算任務(wù)所需要的第二數(shù)據(jù)的索引信息向區(qū)塊鏈網(wǎng)絡(luò)的所有節(jié)點請求獲取所述第二數(shù)據(jù),采用異步的方式根據(jù)所述第二數(shù)據(jù)進行計算,獲取計算結(jié)果,包括:
20、計算節(jié)點獲取計算權(quán)后,在交易池內(nèi)尋找還未被執(zhí)行的計算任務(wù)交易,并基于所述計算任務(wù)交易的標(biāo)識和計算權(quán)證明打包為聚合交易,用于聲明所述計算任務(wù)交易已被鎖定;
21、所述計算節(jié)點在出塊節(jié)點打包所述聚合交易并廣播后,執(zhí)行根據(jù)所述計算任務(wù)所需要的第二數(shù)據(jù)的索引信息向區(qū)塊鏈網(wǎng)絡(luò)的所有節(jié)點請求獲取所述第二數(shù)據(jù),采用異步的方式根據(jù)所述第二數(shù)據(jù)進行計算,獲取計算結(jié)果,將所述計算結(jié)果和與所述聚合交易的索引打包為新的交易,發(fā)布到區(qū)塊鏈的交易池中。
22、基于本申請的另一方面,還提供了一種去中心化存儲計算系統(tǒng),該系統(tǒng)包括用于存儲計算機程序指令的存儲器和用于執(zhí)行計算機程序指令的處理器,其中,當(dāng)該計算機程序指令被該處理器執(zhí)行時,觸發(fā)所述系統(tǒng)執(zhí)行所述去中心化存儲計算方法。
23、本申請實施例還提供了一種計算機可讀介質(zhì),其上存儲有計算機程序指令,所述計算機程序指令可被處理器執(zhí)行以實現(xiàn)所述去中心化存儲計算方法。
24、本申請實施例提供的一種去中心化存儲計算方案中,在存儲數(shù)據(jù)時,將需要存儲的第一數(shù)據(jù)構(gòu)建成數(shù)據(jù)存儲交易,并提交到區(qū)塊鏈的交易池中,在執(zhí)行所述數(shù)據(jù)存儲交易時,生成所述第一數(shù)據(jù)的索引信息,將所述第一數(shù)據(jù)的索引信息存儲至所述區(qū)塊鏈的狀態(tài)數(shù)據(jù)中,并將所述第一數(shù)據(jù)存儲至所述區(qū)塊鏈的存儲池中;在進行計算時,將計算任務(wù)構(gòu)建成計算任務(wù)交易,并提交到區(qū)塊鏈的交易池中,在執(zhí)行所述計算任務(wù)交易時,根據(jù)所述計算任務(wù)所需要的第二數(shù)據(jù)的索引信息向區(qū)塊鏈網(wǎng)絡(luò)的所有節(jié)點請求獲取所述第二數(shù)據(jù),采用異步的方式根據(jù)所述第二數(shù)據(jù)進行計算,獲取計算結(jié)果;而后將所述計算結(jié)果構(gòu)建成計算結(jié)果交易,并提交到區(qū)塊鏈的交易池中,在執(zhí)行所述計算結(jié)果交易時,生成所述計算結(jié)果的索引信息,將所述計算結(jié)果的索引信息存儲至所述區(qū)塊鏈的狀態(tài)數(shù)據(jù)中,并將所述計算結(jié)果發(fā)布至所述區(qū)塊鏈中;以及在所述計算結(jié)果發(fā)布之后,在驗證周期內(nèi)鎖定相應(yīng)計算任務(wù)的獎勵,并在驗證通過后向計算節(jié)點發(fā)放本次計算任務(wù)的獎勵,所述獎勵包括數(shù)據(jù)檢索激勵費用,所述數(shù)據(jù)檢索激勵費用與計算任務(wù)需要的第二數(shù)據(jù)的數(shù)據(jù)量相關(guān)。在上述方案中,由于數(shù)據(jù)本身不再直接存儲到區(qū)塊鏈的狀態(tài)數(shù)據(jù)中,而僅僅是將數(shù)據(jù)對應(yīng)的索引信息寫入到區(qū)塊鏈的狀態(tài)數(shù)據(jù)中,由此大大降低了需要寫入狀態(tài)數(shù)據(jù)中的數(shù)據(jù)量,可以避免區(qū)塊鏈狀態(tài)數(shù)據(jù)膨脹的問題,從而有效降低了存儲成本,同時數(shù)據(jù)本身是存儲到所述區(qū)塊鏈的存儲池中,實際是將這些數(shù)據(jù)分配到了整個區(qū)塊鏈的各個節(jié)點中進行存儲,避免了數(shù)據(jù)丟失的風(fēng)險,使得方案的可靠性更好。
1.一種去中心化存儲計算方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在執(zhí)行所述計算任務(wù)交易時,根據(jù)所述計算任務(wù)所需要的第二數(shù)據(jù)的索引信息向區(qū)塊鏈網(wǎng)絡(luò)的所有節(jié)點請求獲取所述第二數(shù)據(jù),包括:
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,在采用異步的方式根據(jù)所述第二數(shù)據(jù)進行計算之前,還包括:
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,將所述第一數(shù)據(jù)存儲至所述區(qū)塊鏈的存儲池中,包括:
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,在執(zhí)行所述計算任務(wù)交易時,根據(jù)所述計算任務(wù)所需要的第二數(shù)據(jù)的索引信息向區(qū)塊鏈網(wǎng)絡(luò)的所有節(jié)點請求獲取所述第二數(shù)據(jù),采用異步的方式根據(jù)所述第二數(shù)據(jù)進行計算,獲取計算結(jié)果,包括:
9.一種去中心化存儲計算的系統(tǒng),其特征在于,該系統(tǒng)包括用于存儲計算機程序指令的存儲器和用于執(zhí)行計算機程序指令的處理器,其中,當(dāng)該計算機程序指令被該處理器執(zhí)行時,觸發(fā)所述系統(tǒng)執(zhí)行權(quán)利要求1至8中任一項所述的方法。
10.一種計算機可讀介質(zhì),其上存儲有計算機程序指令,所述計算機程序指令可被處理器執(zhí)行以實現(xiàn)如權(quán)利要求1至8中任一項所述的方法。