本發(fā)明涉及區(qū)塊鏈,尤其涉及一種基于區(qū)塊鏈的智能合約處理方法、裝置、設(shè)備及介質(zhì)。
背景技術(shù):
1、隨著區(qū)塊鏈技術(shù)的快速發(fā)展,智能合約作為一種自動(dòng)化執(zhí)行合約的工具,已在金融、供應(yīng)鏈、存證防偽等領(lǐng)域得到廣泛應(yīng)用。然而,現(xiàn)有智能合約通常依賴專用虛擬機(jī)(如evm),這些虛擬機(jī)存在以下主要問題:1.開發(fā)門檻高:現(xiàn)有智能合約語(yǔ)言(如solidity)需要開發(fā)者掌握全新的語(yǔ)法和工具鏈,學(xué)習(xí)成本較高。2.生態(tài)孤立性:缺乏豐富的類庫(kù)支持,開發(fā)者往往需要從零開始構(gòu)建復(fù)雜功能。3.工具鏈不完善:現(xiàn)有智能合約開發(fā)環(huán)境缺乏完整的調(diào)試器,性能分析工具和測(cè)試框架,難以高效調(diào)試和優(yōu)化復(fù)雜合約。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明提供了一種基于區(qū)塊鏈的智能合約處理方法、裝置、設(shè)備及介質(zhì),以現(xiàn)有智能合約開發(fā)中的開發(fā)門檻高、生態(tài)孤立性和工具鏈不足等問題。
2、根據(jù)本發(fā)明的一方面,提供了一種基于區(qū)塊鏈的智能合約處理方法,應(yīng)用于合約虛擬機(jī),該方法包括:
3、獲取區(qū)塊鏈發(fā)送的智能合約的初始合約字節(jié)碼;所述初始合約字節(jié)碼包括合約類字節(jié)碼和工具類字節(jié)碼;
4、確定所述初始合約字節(jié)碼的代碼塊的需耗手續(xù)費(fèi),并根據(jù)所述需耗手續(xù)費(fèi)對(duì)所述初始合約字節(jié)碼進(jìn)行更新,得到新合約字節(jié)碼;
5、分別對(duì)所述新合約字節(jié)碼進(jìn)行浮點(diǎn)數(shù)檢查和非白名單類庫(kù)檢查,得到目標(biāo)合約字節(jié)碼;
6、根據(jù)所述需耗手續(xù)費(fèi)和所述目標(biāo)合約字節(jié)碼對(duì)所述智能合約進(jìn)行部署。
7、根據(jù)本發(fā)明的另一方面,提供了一種基于區(qū)塊鏈的智能合約處理方法,應(yīng)用于區(qū)塊鏈,該方法包括:
8、獲取區(qū)塊鏈客戶端發(fā)起的合約部署請(qǐng)求,并對(duì)合約部署請(qǐng)求進(jìn)行解碼,得到智能合約的初始合約字節(jié)碼;所述初始合約字節(jié)碼包括合約類字節(jié)碼和工具類字節(jié)碼;
9、將所述初始合約字節(jié)碼發(fā)送至合約虛擬機(jī),以使所述合約虛擬機(jī)根據(jù)所述初始合約字節(jié)碼對(duì)所述智能合約進(jìn)行部署。
10、根據(jù)本發(fā)明的另一方面,提供了一種基于區(qū)塊鏈的智能合約處理裝置,配置于合約虛擬機(jī),該裝置包括:
11、第一合約字節(jié)碼獲取模塊,用于獲取區(qū)塊鏈發(fā)送的智能合約的初始合約字節(jié)碼;所述初始合約字節(jié)碼包括合約類字節(jié)碼和工具類字節(jié)碼;
12、合約字節(jié)碼更新模塊,用于確定所述初始合約字節(jié)碼的代碼塊的需耗手續(xù)費(fèi),并根據(jù)所述需耗手續(xù)費(fèi)對(duì)所述初始合約字節(jié)碼進(jìn)行更新,得到新合約字節(jié)碼;
13、合約字節(jié)碼檢查模塊,用于分別對(duì)所述新合約字節(jié)碼進(jìn)行浮點(diǎn)數(shù)檢查和非白名單類庫(kù)檢查,得到目標(biāo)合約字節(jié)碼;
14、合約部署模塊,用于根據(jù)所述需耗手續(xù)費(fèi)和所述目標(biāo)合約字節(jié)碼對(duì)所述智能合約進(jìn)行部署。
15、根據(jù)本發(fā)明的另一方面,提供了一種基于區(qū)塊鏈的智能合約處理裝置,配置于區(qū)塊鏈,該裝置包括:
16、第二合約字節(jié)碼獲取模塊,用于獲取區(qū)塊鏈客戶端發(fā)起的合約部署請(qǐng)求,并對(duì)合約部署請(qǐng)求進(jìn)行解碼,得到智能合約的初始合約字節(jié)碼;所述初始合約字節(jié)碼包括合約類字節(jié)碼和工具類字節(jié)碼;
17、合約部署模塊,用于將所述初始合約字節(jié)碼發(fā)送至合約虛擬機(jī),以使所述合約虛擬機(jī)根據(jù)所述初始合約字節(jié)碼對(duì)所述智能合約進(jìn)行部署。
18、根據(jù)本發(fā)明的另一方面,提供了一種電子設(shè)備,所述電子設(shè)備包括:
19、至少一個(gè)處理器;以及
20、與所述至少一個(gè)處理器通信連接的存儲(chǔ)器;其中,
21、所述存儲(chǔ)器存儲(chǔ)有可被所述至少一個(gè)處理器執(zhí)行的計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被所述至少一個(gè)處理器執(zhí)行,以使所述至少一個(gè)處理器能夠執(zhí)行本發(fā)明任一實(shí)施例所述的基于區(qū)塊鏈的智能合約處理方法。
22、根據(jù)本發(fā)明的另一方面,提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)指令,所述計(jì)算機(jī)指令用于使處理器執(zhí)行時(shí)實(shí)現(xiàn)本發(fā)明任一實(shí)施例所述的基于區(qū)塊鏈的智能合約處理方法。
23、本發(fā)明實(shí)施例的技術(shù)方案,通過獲取區(qū)塊鏈發(fā)送的智能合約的初始合約字節(jié)碼;初始合約字節(jié)碼包括合約類字節(jié)碼和工具類字節(jié)碼;確定初始合約字節(jié)碼的代碼塊的需耗手續(xù)費(fèi),并根據(jù)需耗手續(xù)費(fèi)對(duì)初始合約字節(jié)碼進(jìn)行更新,得到新合約字節(jié)碼;分別對(duì)新合約字節(jié)碼進(jìn)行浮點(diǎn)數(shù)檢查和非白名單類庫(kù)檢查,得到目標(biāo)合約字節(jié)碼;根據(jù)需耗手續(xù)費(fèi)和目標(biāo)合約字節(jié)碼對(duì)智能合約進(jìn)行部署。上述技術(shù)方案,能夠?qū)⒅悄芎霞s安全部署至區(qū)塊鏈中,從而使得智能合約可以安全、文檔、高效地運(yùn)行于區(qū)塊鏈環(huán)境中。
24、應(yīng)當(dāng)理解,本部分所描述的內(nèi)容并非旨在標(biāo)識(shí)本發(fā)明的實(shí)施例的關(guān)鍵或重要特征,也不用于限制本發(fā)明的范圍。本發(fā)明的其它特征將通過以下的說明書而變得容易理解。
1.一種基于區(qū)塊鏈的智能合約處理方法,其特征在于,應(yīng)用于合約虛擬機(jī),所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,分別對(duì)所述新合約字節(jié)碼進(jìn)行浮點(diǎn)數(shù)檢查和非白名單類庫(kù)檢查,得到目標(biāo)合約字節(jié)碼,包括:
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)所述需耗手續(xù)費(fèi)和所述目標(biāo)合約字節(jié)碼對(duì)所述智能合約進(jìn)行部署,包括:
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)所述需耗手續(xù)費(fèi)和所述目標(biāo)合約字節(jié)碼對(duì)所述智能合約進(jìn)行部署之后,還包括:
5.一種基于區(qū)塊鏈的智能合約處理方法,其特征在于,應(yīng)用于區(qū)塊鏈,所述方法包括:
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,將所述初始合約字節(jié)碼發(fā)送至合約虛擬機(jī),以使所述合約虛擬機(jī)根據(jù)所述初始合約字節(jié)碼對(duì)所述智能合約進(jìn)行部署之后,還包括:
7.一種基于區(qū)塊鏈的智能合約處理裝置,其特征在于,配置于合約虛擬機(jī),所述裝置包括:
8.一種基于區(qū)塊鏈的智能合約處理裝置,其特征在于,配置于區(qū)塊鏈,所述裝置包括:
9.一種電子設(shè)備,其特征在于,所述電子設(shè)備包括:
10.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)指令,所述計(jì)算機(jī)指令用于使處理器執(zhí)行時(shí)實(shí)現(xiàn)權(quán)利要求1-4或權(quán)利要求5-6中任一項(xiàng)所述的基于區(qū)塊鏈的智能合約處理方法。