[發(fā)明專(zhuān)利]緩存和執(zhí)行智能合約的方法和裝置在審
| 申請(qǐng)?zhí)枺?/td> | 202010172887.8 | 申請(qǐng)日: | 2020-03-13 |
| 公開(kāi)(公告)號(hào): | CN111045792A | 公開(kāi)(公告)日: | 2020-04-21 |
| 發(fā)明(設(shè)計(jì))人: | 郭學(xué)鵬;姚忠孝;李東威;林志平 | 申請(qǐng)(專(zhuān)利權(quán))人: | 支付寶(杭州)信息技術(shù)有限公司 |
| 主分類(lèi)號(hào): | G06F9/455 | 分類(lèi)號(hào): | G06F9/455 |
| 代理公司: | 北京億騰知識(shí)產(chǎn)權(quán)代理事務(wù)所(普通合伙) 11309 | 代理人: | 張靜娟;周良玉 |
| 地址: | 310000 浙江省杭州市*** | 國(guó)省代碼: | 浙江;33 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 緩存 執(zhí)行 智能 合約 方法 裝置 | ||
本說(shuō)明書(shū)實(shí)施例提供了一種智能合約緩存方法和裝置,所述方法由區(qū)塊鏈節(jié)點(diǎn)的虛擬機(jī)執(zhí)行第一交易時(shí)執(zhí)行,所述第一交易用于調(diào)用第一合約的第一函數(shù),所述方法包括:確定內(nèi)存中是否緩存有所述第一合約的WASM指令序列;在確定內(nèi)存中緩存了所述第一合約的WASM指令序列的情況中,從內(nèi)存中讀取所述第一合約的WASM指令序列,以獲取所述第一函數(shù)的WASM指令序列;基于所述第一交易中的數(shù)據(jù)字段解釋執(zhí)行所述第一函數(shù)的WASM指令序列。
技術(shù)領(lǐng)域
本說(shuō)明書(shū)一個(gè)或多個(gè)實(shí)施例涉及區(qū)塊鏈技術(shù)領(lǐng)域,更具體地,涉及在區(qū)塊鏈中緩存和執(zhí)行智能合約的方法和裝置。
背景技術(shù)
虛擬機(jī)(Virtual Machine)是通過(guò)軟件模擬的具有完整硬件系統(tǒng)功能的、運(yùn)行在一個(gè)完全隔離環(huán)境中的完整計(jì)算機(jī)系統(tǒng)。由于虛擬機(jī)可以隔離底層硬件平臺(tái)以及操作系統(tǒng)對(duì)上層應(yīng)用的影響,因此非常有利于上層應(yīng)用的開(kāi)發(fā)。上層應(yīng)用開(kāi)發(fā)過(guò)程中無(wú)需關(guān)注底層平臺(tái)的細(xì)節(jié),只需要關(guān)注具體的業(yè)務(wù)邏輯。開(kāi)發(fā)完成后,由虛擬機(jī)運(yùn)行上層應(yīng)用,負(fù)責(zé)將應(yīng)用的代碼轉(zhuǎn)換為適于底層平臺(tái)執(zhí)行的代碼。具體地,在許多場(chǎng)景中,上層應(yīng)用由開(kāi)發(fā)人員使用高級(jí)語(yǔ)言編寫(xiě)開(kāi)發(fā),之后通過(guò)編譯器編譯為字節(jié)碼(bytecode)。字節(jié)碼是一種執(zhí)行程序,由一序列操作碼(op碼)-數(shù)據(jù)對(duì)組成的二進(jìn)制文件,是一種中間碼。然后,虛擬機(jī)中的解釋器對(duì)字節(jié)碼代表的指令流進(jìn)行解釋和執(zhí)行。
例如,在支持智能合約的區(qū)塊鏈應(yīng)用場(chǎng)景中,可以在區(qū)塊鏈網(wǎng)絡(luò)的每個(gè)節(jié)點(diǎn)中部署虛擬機(jī)。用戶(hù)可以用高級(jí)語(yǔ)言編寫(xiě)智能合約,然后經(jīng)由編譯器編譯為字節(jié)碼之后,將該字節(jié)碼包含在創(chuàng)建智能合約的交易中,發(fā)布到區(qū)塊鏈網(wǎng)絡(luò)中,也就是部署到區(qū)塊鏈網(wǎng)絡(luò)的各個(gè)節(jié)點(diǎn)中。在需要執(zhí)行智能合約時(shí),由各個(gè)節(jié)點(diǎn)中的虛擬機(jī)對(duì)該字節(jié)碼進(jìn)行解釋執(zhí)行。
隨著WASM語(yǔ)言的出現(xiàn),越來(lái)越多的區(qū)塊鏈中使用WASM作為智能合約的編寫(xiě)語(yǔ)言,相對(duì)應(yīng)地,使用WASM虛擬機(jī)來(lái)執(zhí)行智能合約。WASM即WebAssembly,是由W3C社區(qū)組織推出的一種為棧式虛擬機(jī)設(shè)計(jì)的二進(jìn)制指令形式,是一種新的平臺(tái)無(wú)關(guān)的中間字節(jié)碼格式。WASM虛擬機(jī)為棧式虛擬機(jī),其中,將所有指令的操作數(shù)都放到棧上,即,每次操作都從棧上獲取操作數(shù),并在指令執(zhí)行結(jié)束后將結(jié)果壓入棧中。
在通過(guò)區(qū)塊鏈各個(gè)節(jié)點(diǎn)的WASM虛擬機(jī)執(zhí)行智能合約的應(yīng)用場(chǎng)景中,WASM虛擬機(jī)解釋器對(duì)合約的執(zhí)行速度對(duì)于整個(gè)系統(tǒng)的性能都至關(guān)重要。因此,希望能有改進(jìn)的方案,進(jìn)一步提高WASM虛擬機(jī)對(duì)智能合約的執(zhí)行效率。
發(fā)明內(nèi)容
本說(shuō)明書(shū)實(shí)施例旨在提供一種更有效的緩存和執(zhí)行智能合約的方案,以解決現(xiàn)有技術(shù)中的不足。
為實(shí)現(xiàn)上述目的,本說(shuō)明書(shū)一個(gè)方面提供一種智能合約執(zhí)行方法,所述方法由區(qū)塊鏈節(jié)點(diǎn)的虛擬機(jī)執(zhí)行第一交易時(shí)執(zhí)行,所述第一交易用于調(diào)用第一合約的第一函數(shù),所述方法包括:
確定內(nèi)存中是否緩存有所述第一合約的WASM指令序列;
在確定內(nèi)存中緩存了所述第一合約的WASM指令序列的情況中,從內(nèi)存中讀取所述第一合約的WASM指令序列,以獲取所述第一函數(shù)的WASM指令序列;
基于所述第一交易中的數(shù)據(jù)字段解釋執(zhí)行所述第一函數(shù)的WASM指令序列。
在一種實(shí)施方式中,所述方法還包括,
在確定內(nèi)存中沒(méi)有緩存所述第一合約的WASM指令序列的情況中,從所述節(jié)點(diǎn)本地存儲(chǔ)介質(zhì)中讀取第一合約的指令序列,以獲取所述第一合約的WASM指令序列;
將所述第一合約的WASM指令序列與所述第一合約的標(biāo)識(shí)關(guān)聯(lián)地緩存到內(nèi)存中。
在一種實(shí)施方式中,從所述節(jié)點(diǎn)本地存儲(chǔ)介質(zhì)中讀取第一合約的指令序列,以獲取所述第一合約的WASM指令序列包括,從節(jié)點(diǎn)本地存儲(chǔ)介質(zhì)中讀取第一合約的經(jīng)可變長(zhǎng)編碼的指令序列,通過(guò)對(duì)第一合約的經(jīng)可變長(zhǎng)編碼的指令序列進(jìn)行解碼,獲取所述第一合約的WASM指令序列。
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于支付寶(杭州)信息技術(shù)有限公司,未經(jīng)支付寶(杭州)信息技術(shù)有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010172887.8/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 同類(lèi)專(zhuān)利
- 專(zhuān)利分類(lèi)
- 逐出高速緩存的行的電路布置、數(shù)據(jù)處理系統(tǒng)和方法
- 共享緩存管理系統(tǒng)及方法
- 分布式緩存系統(tǒng)、數(shù)據(jù)的緩存方法及緩存數(shù)據(jù)的查詢(xún)方法
- 一種緩存替換方法;裝置和系統(tǒng)
- 加速引擎及處理器
- 一種日志緩存方法、系統(tǒng)、設(shè)備及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 緩存控制方法、裝置和計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 至少具有三個(gè)緩存級(jí)別的緩存層級(jí)的混合低級(jí)緩存包含策略
- 基于雙緩存區(qū)的緩存方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)
- 緩存預(yù)載方法、裝置、處理器芯片及服務(wù)器
- 以注射方式執(zhí)行死刑的自動(dòng)執(zhí)行車(chē)的執(zhí)行床
- 過(guò)程執(zhí)行裝置、過(guò)程執(zhí)行方法以及過(guò)程執(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í)行器(閥門(mén)執(zhí)行器)
- 合約轉(zhuǎn)賬方法、設(shè)備和存儲(chǔ)介質(zhì)
- 區(qū)塊鏈合約升級(jí)方法、裝置、計(jì)算機(jī)設(shè)備及可讀存儲(chǔ)介質(zhì)
- 智能合約測(cè)試方法、裝置、計(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)測(cè)試方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 智能合約執(zhí)行方法、裝置、系統(tǒng)、存儲(chǔ)介質(zhì)及電子設(shè)備





