[發(fā)明專利]一種智能合約執(zhí)行方法、智能合約執(zhí)行裝置及節(jié)點(diǎn)設(shè)備在審
| 申請?zhí)枺?/td> | 202011395356.1 | 申請日: | 2020-12-03 |
| 公開(公告)號: | CN112765676A | 公開(公告)日: | 2021-05-07 |
| 發(fā)明(設(shè)計(jì))人: | 邱煒偉;李偉;黃方蕾;張珂杰;胡麥芳 | 申請(專利權(quán))人: | 杭州趣鏈科技有限公司 |
| 主分類號: | G06F21/64 | 分類號: | G06F21/64;G06Q10/10;G06Q50/18 |
| 代理公司: | 深圳中一聯(lián)合知識產(chǎn)權(quán)代理有限公司 44414 | 代理人: | 肖遙 |
| 地址: | 310000 浙江省杭州市*** | 國省代碼: | 浙江;33 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 智能 合約 執(zhí)行 方法 裝置 節(jié)點(diǎn) 設(shè)備 | ||
1.一種智能合約執(zhí)行方法,其特征在于,包括:
接收用于調(diào)用智能合約的調(diào)用請求,獲取所述智能合約對應(yīng)的字節(jié)碼文件;
若所述智能合約對應(yīng)的字節(jié)碼文件為增強(qiáng)字節(jié)碼文件,則將所述智能合約的持久化字段標(biāo)記為第一狀態(tài),所述持久化字段為對應(yīng)的值存儲(chǔ)在區(qū)塊鏈賬本中的字段,所述增強(qiáng)字節(jié)碼文件為包含增強(qiáng)字節(jié)碼指令的字節(jié)碼文件,所述增強(qiáng)字節(jié)碼指令用于從所述區(qū)塊鏈賬本讀取處于第一狀態(tài)的持久化字段的值;
使用虛擬機(jī)執(zhí)行所述智能合約對應(yīng)的字節(jié)碼文件以完成對所述調(diào)用請求的響應(yīng)。
2.根據(jù)權(quán)利要求1所述的智能合約執(zhí)行方法,其特征在于,在所述獲取所述智能合約對應(yīng)的字節(jié)碼文件之后,所述智能合約執(zhí)行方法還包括:
檢測所述智能合約對應(yīng)的字節(jié)碼文件的常量池中是否包含增強(qiáng)標(biāo)識;
若所述常量池中包含增強(qiáng)標(biāo)識,則確定所述智能合約對應(yīng)的字節(jié)碼文件為所述增強(qiáng)字節(jié)碼文件。
3.根據(jù)權(quán)利要求1所述的智能合約執(zhí)行方法,其特征在于,所述若所述智能合約對應(yīng)的字節(jié)碼文件為增強(qiáng)字節(jié)碼文件,則將所述智能合約的持久化字段標(biāo)記為第一狀態(tài),包括:
若所述智能合約對應(yīng)的字節(jié)碼文件為增強(qiáng)字節(jié)碼文件,則所述虛擬機(jī)通過所述智能合約對應(yīng)的字節(jié)碼文件構(gòu)造所述智能合約的合約對象;
利用反射機(jī)制獲得所述合約對象的所有字段;
初始化所有字段中的非持久化字段的值,所述非持久化字段為所有字段中除持久化字段之外的字段;
將所有字段中的持久化字段標(biāo)記為第一狀態(tài)。
4.根據(jù)權(quán)利要求3所述的智能合約執(zhí)行方法,其特征在于,在所述利用反射機(jī)制獲得所述合約對象的所有字段之后,所述智能合約執(zhí)行方法還包括:
遍歷所有字段;
若當(dāng)前遍歷到的字段對應(yīng)存在預(yù)設(shè)的持久化注解,則將當(dāng)前遍歷到的字段確定為持久化字段。
5.根據(jù)權(quán)利要求1所述的智能合約執(zhí)行方法,其特征在于,所述增強(qiáng)字節(jié)碼指令還用于從內(nèi)存中讀取處于第二狀態(tài)的持久化字段的值,在所述接收到用于調(diào)用智能合約的調(diào)用請求之前,所述智能合約執(zhí)行方法還包括:
在接收到用于部署所述智能合約的部署請求時(shí),獲取所述智能合約對應(yīng)的字節(jié)碼文件;
若所述智能合約對應(yīng)的字節(jié)碼文件為所述增強(qiáng)字節(jié)碼文件,則將所述智能合約的持久化字段標(biāo)記為第二狀態(tài);
使用所述虛擬機(jī)執(zhí)行所述智能合約對應(yīng)的字節(jié)碼文件以完成對所述部署請求的響應(yīng)。
6.根據(jù)權(quán)利要求5所述的智能合約執(zhí)行方法,其特征在于,所述若所述智能合約對應(yīng)的字節(jié)碼文件為所述增強(qiáng)字節(jié)碼文件,則將所述智能合約的持久化字段標(biāo)記為第二狀態(tài),包括:
若所述智能合約對應(yīng)的字節(jié)碼文件為增強(qiáng)字節(jié)碼文件,則所述虛擬機(jī)通過所述智能合約對應(yīng)的字節(jié)碼文件構(gòu)造所述智能合約的合約對象;
利用反射機(jī)制獲得所述合約對象的所有字段;
初始化所有字段的值;
將所有字段中的持久化字段標(biāo)記為第二狀態(tài)。
7.根據(jù)權(quán)利要求1-6任意一項(xiàng)所述的智能合約執(zhí)行方法,其特征在于,生成所述增強(qiáng)字節(jié)碼文件的方式包括:
對待增強(qiáng)的智能合約進(jìn)行編譯,得到所述待增強(qiáng)的智能合約對應(yīng)的待增強(qiáng)字節(jié)碼文件;
向所述待增強(qiáng)字節(jié)碼文件的常量池中添加增強(qiáng)標(biāo)識;
在添加增強(qiáng)標(biāo)識后的待增強(qiáng)字節(jié)碼文件中,查找待替換字節(jié)碼指令,所述待替換字節(jié)碼指令為所述虛擬機(jī)的虛擬機(jī)指令集中的指令,且所述待替換字節(jié)碼指令用于獲取所述智能合約的持久化字段的值;
將添加增強(qiáng)標(biāo)識后的待增強(qiáng)字節(jié)碼文件中的待替換字節(jié)碼指令替換為所述增強(qiáng)字節(jié)碼指令,得到已增強(qiáng)的智能合約對應(yīng)的增強(qiáng)字節(jié)碼文件。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于杭州趣鏈科技有限公司,未經(jīng)杭州趣鏈科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011395356.1/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F21-00 防止未授權(quán)行為的保護(hù)計(jì)算機(jī)或計(jì)算機(jī)系統(tǒng)的安全裝置
G06F21-02 .通過保護(hù)計(jì)算機(jī)的特定內(nèi)部部件
G06F21-04 .通過保護(hù)特定的外圍設(shè)備,如鍵盤或顯示器
G06F21-06 .通過感知越權(quán)操作或外圍侵?jǐn)_
G06F21-20 .通過限制訪問計(jì)算機(jī)系統(tǒng)或計(jì)算機(jī)網(wǎng)絡(luò)中的節(jié)點(diǎn)
G06F21-22 .通過限制訪問或處理程序或過程
- 合約轉(zhuǎn)賬方法、設(shè)備和存儲(chǔ)介質(zhì)
- 區(qū)塊鏈合約升級方法、裝置、計(jì)算機(jī)設(shè)備及可讀存儲(chǔ)介質(zhì)
- 智能合約測試方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 智能合約生成方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 實(shí)現(xiàn)可更新智能合約的系統(tǒng)和方法
- 一種管理區(qū)塊鏈系統(tǒng)合約的方法和裝置
- 合約簽署方法、裝置、電子設(shè)備及可讀存儲(chǔ)介質(zhì)
- 基于加密貨幣的智能合約生成方法、相關(guān)設(shè)備及存儲(chǔ)介質(zhì)
- 智能合約的自動(dòng)測試方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 智能合約執(zhí)行方法、裝置、系統(tǒng)、存儲(chǔ)介質(zhì)及電子設(shè)備
- 以注射方式執(zhí)行死刑的自動(dòng)執(zhí)行車的執(zhí)行床
- 過程執(zhí)行裝置、過程執(zhí)行方法以及過程執(zhí)行程序
- 用以執(zhí)行跳舞電子游戲的執(zhí)行系統(tǒng)及其執(zhí)行方法
- 策略執(zhí)行系統(tǒng)及其執(zhí)行方法
- 腳本執(zhí)行系統(tǒng)和腳本執(zhí)行方法
- 命令執(zhí)行設(shè)備、命令執(zhí)行系統(tǒng)、命令執(zhí)行方法以及命令執(zhí)行程序
- 程序執(zhí)行裝置、程序執(zhí)行系統(tǒng)以及程序執(zhí)行方法
- 處理執(zhí)行設(shè)備和由該處理執(zhí)行設(shè)備執(zhí)行的方法
- 有序任務(wù)的執(zhí)行方法、執(zhí)行裝置和執(zhí)行系統(tǒng)
- 執(zhí)行器(閥門執(zhí)行器)
- 一種數(shù)據(jù)庫讀寫分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測試終端的測試方法
- 一種服裝用人體測量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





