[發(fā)明專利]緩存和執(zhí)行智能合約的方法和裝置在審
| 申請?zhí)枺?/td> | 202010172887.8 | 申請日: | 2020-03-13 |
| 公開(公告)號: | CN111045792A | 公開(公告)日: | 2020-04-21 |
| 發(fā)明(設(shè)計)人: | 郭學鵬;姚忠孝;李東威;林志平 | 申請(專利權(quán))人: | 支付寶(杭州)信息技術(shù)有限公司 |
| 主分類號: | G06F9/455 | 分類號: | G06F9/455 |
| 代理公司: | 北京億騰知識產(chǎn)權(quán)代理事務(wù)所(普通合伙) 11309 | 代理人: | 張靜娟;周良玉 |
| 地址: | 310000 浙江省杭州市*** | 國省代碼: | 浙江;33 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 緩存 執(zhí)行 智能 合約 方法 裝置 | ||
1.一種智能合約執(zhí)行方法,所述方法由區(qū)塊鏈節(jié)點的虛擬機執(zhí)行第一交易時執(zhí)行,所述第一交易用于調(diào)用第一合約的第一函數(shù),所述方法包括:
確定內(nèi)存中是否緩存有所述第一合約的WASM指令序列;
在確定內(nèi)存中緩存了所述第一合約的WASM指令序列的情況中,從內(nèi)存中讀取所述第一合約的WASM指令序列,以獲取所述第一函數(shù)的WASM指令序列;
基于所述第一交易中的數(shù)據(jù)字段解釋執(zhí)行所述第一函數(shù)的WASM指令序列。
2.根據(jù)權(quán)利要求1所述的方法,還包括,
在確定內(nèi)存中沒有緩存所述第一合約的WASM指令序列的情況中,從所述節(jié)點本地存儲介質(zhì)中讀取第一合約的指令序列,以獲取所述第一合約的WASM指令序列;
將所述第一合約的WASM指令序列與所述第一合約的標識關(guān)聯(lián)地緩存到內(nèi)存中。
3.根據(jù)權(quán)利要求2所述的方法,其中,從所述節(jié)點本地存儲介質(zhì)中讀取第一合約的指令序列,以獲取所述第一合約的WASM指令序列包括,從節(jié)點本地存儲介質(zhì)中讀取第一合約的經(jīng)可變長編碼的指令序列,通過對第一合約的經(jīng)可變長編碼的指令序列進行解碼,獲取所述第一合約的WASM指令序列。
4.根據(jù)權(quán)利要求2所述的方法,還包括,在獲取第一合約的WASM指令序列之后,對第一合約的WASM指令序列進行預處理,以獲取第一合約的經(jīng)預處理的WASM指令序列,其中,將所述第一合約的WASM指令序列與所述第一合約的標識關(guān)聯(lián)地緩存到內(nèi)存中包括,將所述第一合約的經(jīng)預處理的WASM指令序列與所述第一合約的標識關(guān)聯(lián)地緩存到內(nèi)存中。
5.根據(jù)權(quán)利要求4所述的方法,其中,對第一合約的WASM指令序列進行預處理包括,
基于所述第一合約的WASM指令序列確定全局變量標識范圍;
對于所述第一合約的WASM指令序列中的每個指令,解析該指令是否為全局變量訪問指令;
在解析出所述指令為全局變量訪問指令的情況中,檢查該指令包括的全局變量標識是否在所述全局變量標識范圍內(nèi);
在檢查所述第一合約的各個全局變量訪問指令中包括的全局變量標識都在所述全局變量標識范圍內(nèi)的情況中,獲取所述第一合約的經(jīng)全局變量越界檢查的WASM指令序列。
6.根據(jù)權(quán)利要求4所述的方法,其中,對第一合約的WASM指令序列進行預處理包括,
確定所述WASM指令序列中是否包括預定連續(xù)指令,所述預定連續(xù)指令被預設(shè)有相應的合并指令,并且所述預定連續(xù)指令與其對應的合并指令具有相同的解釋執(zhí)行結(jié)果;
在確定所述指令序列中包括至少一組預定連續(xù)指令的情況中,將所述指令序列中的各組預定連續(xù)指令分別合并為對應的合并指令,從而獲取所述第一合約的經(jīng)指令融合的WASM指令序列。
7.根據(jù)權(quán)利要求2所述的方法,還包括,在將所述第一合約的WASM指令序列與所述第一合約的標識關(guān)聯(lián)地緩存到內(nèi)存中之后,基于所述第一交易中的數(shù)據(jù)字段解釋執(zhí)行所述第一函數(shù)的WASM指令序列。
8.根據(jù)權(quán)利要求2所述的方法,其中,將所述第一合約的WASM指令序列與第一合約的標識關(guān)聯(lián)地緩存到內(nèi)存中包括,將所述第一合約的WASM指令序列在內(nèi)存中的存儲地址與第一合約的合約地址的哈希值關(guān)聯(lián)地存儲到內(nèi)存中。
9.一種智能合約執(zhí)行方法,所述方法由區(qū)塊鏈節(jié)點的虛擬機執(zhí)行第一交易時執(zhí)行,所述第一交易用于調(diào)用第一合約的第一函數(shù),所述方法包括:
確定內(nèi)存中是否緩存有所述第一函數(shù)的WASM指令序列;
在確定內(nèi)存中緩存了所述第一函數(shù)的WASM指令序列的情況中,從內(nèi)存中讀取所述第一函數(shù)的WASM指令序列;
基于所述第一交易中的數(shù)據(jù)字段解釋執(zhí)行所述第一函數(shù)的WASM指令序列。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于支付寶(杭州)信息技術(shù)有限公司,未經(jīng)支付寶(杭州)信息技術(shù)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010172887.8/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 以注射方式執(zhí)行死刑的自動執(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í)行器)
- 合約轉(zhuǎn)賬方法、設(shè)備和存儲介質(zhì)
- 區(qū)塊鏈合約升級方法、裝置、計算機設(shè)備及可讀存儲介質(zhì)
- 智能合約測試方法、裝置、計算機設(shè)備和存儲介質(zhì)
- 智能合約生成方法、裝置、計算機設(shè)備和存儲介質(zhì)
- 實現(xiàn)可更新智能合約的系統(tǒng)和方法
- 一種管理區(qū)塊鏈系統(tǒng)合約的方法和裝置
- 合約簽署方法、裝置、電子設(shè)備及可讀存儲介質(zhì)
- 基于加密貨幣的智能合約生成方法、相關(guān)設(shè)備及存儲介質(zhì)
- 智能合約的自動測試方法、裝置、計算機設(shè)備和存儲介質(zhì)
- 智能合約執(zhí)行方法、裝置、系統(tǒng)、存儲介質(zhì)及電子設(shè)備





