[發明專利]解釋執行智能合約指令的方法及裝置有效
| 申請號: | 202010475572.0 | 申請日: | 2020-05-29 |
| 公開(公告)號: | CN111399990B | 公開(公告)日: | 2020-09-22 |
| 發明(設計)人: | 劉曉建 | 申請(專利權)人: | 支付寶(杭州)信息技術有限公司 |
| 主分類號: | G06F9/455 | 分類號: | G06F9/455 |
| 代理公司: | 北京億騰知識產權代理事務所(普通合伙) 11309 | 代理人: | 陳霽;周良玉 |
| 地址: | 310000 浙江省杭州市*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 解釋 執行 智能 合約 指令 方法 裝置 | ||
本說明書實施例提供一種解釋執行智能合約指令的方法和裝置,方法通過虛擬機執行,包括:首先確定有待執行的第一合約中第一指令的第一內存地址,所述第一內存地址位于第一內存區域,所述第一內存區域與第二內存區域存在映射關系,所述第二內存區域用于存儲第一合約的經過擴容的字節碼。如果該第一內存地址中存儲的是用于執行第一指令的第一模擬函數信息,則根據該第一模擬函數信息執行第一指令;如果第一內存地址中存儲的是預定初始值,則根據映射關系,從第二內存區域中讀取第一指令對應的第一字節碼片段,根據第一字節碼片段確定第一模擬函數信息,將其填充在第一內存地址對應的存儲空間中。
技術領域
本說明書一個或多個實施例涉及計算機領域,尤其涉及解釋執行智能合約指令的方法和裝置。
背景技術
虛擬機(Virtual Machine)是通過軟件模擬的具有完整硬件系統功能的、運行在一個完全隔離環境中的完整計算機系統。由于虛擬機可以隔離底層硬件平臺以及操作系統對上層應用的影響,因此非常有利于上層應用的開發。上層應用開發過程中無需關注底層平臺的細節,只需要關注具體的業務邏輯。開發完成后,由虛擬機運行上層應用,負責將應用的代碼轉換為適于底層平臺執行的代碼。具體地,在許多場景中,上層應用由開發人員使用高級語言編寫開發,之后通過編譯器編譯為字節碼(bytecode)。字節碼是一種包含執行程序,由一序列 op 代碼(操作碼)/數據對組成的二進制文件,是一種中間碼。然后,虛擬機中的解釋器對字節碼代表的指令流進行解釋和執行。
另一方面,目前越來越多的區塊鏈平臺開始支持智能合約,以進行更為豐富的交易。智能合約是一種計算機程序代碼實現的、可以自動執行的交易合約,需要虛擬機來執行。相應的,在支持智能合約的區塊鏈應用場景中,可以在區塊鏈網絡的每個節點中部署虛擬機。例如,在以太坊中,每個節點中部署有以太坊虛擬機EVM。用戶可以用高級語言編寫智能合約,然后經由編譯器編譯為字節碼之后,將該字節碼包含在創建智能合約的交易中,發布到區塊鏈網絡中,也就是部署到區塊鏈網絡的各個節點中。在需要執行智能合約時,由各個節點中的虛擬機EVM對該字節碼進行解釋執行。
由于智能合約往往會在各個節點的各個虛擬機中多次頻繁執行,虛擬機解釋器對智能合約字節碼的解釋執行速度,對區塊鏈平臺的整體性能來說至關重要。因此,希望能有改進的方案,進一步提高智能合約指令的執行效率。
發明內容
本說明書一個或多個實施例描述了一種解釋執行智能合約指令的方法和裝置,根據在另外分配的內存區域中填充的用于執行指令的模擬函數信息來執行指令,從而加快字節碼指令的執行效率。
根據第一方面,提供了一種解釋執行智能合約指令的方法,通過虛擬機的解釋器執行,包括:
確定有待執行的第一合約中第一指令的第一內存地址,所述第一內存地址位于第一內存區域,所述第一內存區域與第二內存區域存在特定映射關系,所述第二內存區域用于存儲所述第一合約的經過擴容的字節碼;
如果所述第一內存地址中存儲的是用于執行所述第一指令的第一模擬函數信息,則根據所述第一模擬函數信息執行該第一指令;
如果所述第一內存地址中存儲的是預定初始值,則根據所述線性映射關系,從所述第二內存區域中讀取所述第一指令對應的第一字節碼片段,根據所述第一字節碼片段確定所述第一模擬函數信息,將其填充在所述第一內存地址對應的存儲空間中。
根據一種實施方式,在確定有待執行的第一合約中第一指令的第一內存地址之前,還包括:在所述第二內存區域加載所述第一合約的經過擴容的字節碼;為所述第一合約分配與所述第二內存區域等容量的第一內存區域,并記錄所述第一內存區域和所述第二內存區域之間的線性映射關系;對所述第一內存區域進行初始化,使得其中所有存儲位置均存儲所述預定初始值。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于支付寶(杭州)信息技術有限公司,未經支付寶(杭州)信息技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010475572.0/2.html,轉載請聲明來源鉆瓜專利網。





