[發明專利]一種智能合約執行方法、智能合約執行裝置及節點設備在審
| 申請號: | 202011395356.1 | 申請日: | 2020-12-03 |
| 公開(公告)號: | CN112765676A | 公開(公告)日: | 2021-05-07 |
| 發明(設計)人: | 邱煒偉;李偉;黃方蕾;張珂杰;胡麥芳 | 申請(專利權)人: | 杭州趣鏈科技有限公司 |
| 主分類號: | G06F21/64 | 分類號: | G06F21/64;G06Q10/10;G06Q50/18 |
| 代理公司: | 深圳中一聯合知識產權代理有限公司 44414 | 代理人: | 肖遙 |
| 地址: | 310000 浙江省杭州市*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 智能 合約 執行 方法 裝置 節點 設備 | ||
本申請適用于計算機技術領域,提供了一種智能合約執行方法、智能合約執行裝置及節點設備,所述方法包括:接收用于調用智能合約的調用請求,獲取所述智能合約對應的字節碼文件;若所述智能合約對應的字節碼文件為增強字節碼文件,則將所述智能合約的持久化字段標記為第一狀態,所述持久化字段為對應的值存儲在區塊鏈賬本中的字段,所述增強字節碼文件為包含增強字節碼指令的字節碼文件,所述增強字節碼指令用于從所述區塊鏈賬本讀取處于第一狀態的持久化字段的值;使用虛擬機執行所述智能合約對應的字節碼文件以完成對所述調用請求的響應。通過上述方法,可以使Java虛擬機實現通過單條字節碼指令從區塊鏈賬本中讀取智能合約的持久化字段的值。
技術領域
本申請屬于計算機技術領域,尤其涉及一種智能合約執行方法、智能合約執行裝置、節點設備及計算機可讀存儲介質。
背景技術
智能合約是一種旨在以信息化方式傳播、驗證和/或執行合同的計算機協議。目前,智能合約的執行引擎包括以太坊虛擬機和Java虛擬機。這兩種虛擬機均在內部實現了各自專屬的虛擬機指令集,智能合約經過編譯器編譯后產生的字節碼可以在虛擬機上執行。其中,以太坊虛擬機是以太坊針對solidity智能合約開發的虛擬機,以太坊虛擬機的虛擬機指令集中存在一種sload指令,能夠直接讀取區塊鏈賬本中保存的智能合約的狀態變量的值,而Java虛擬機的虛擬機指令集中不存在類似的指令。
發明內容
有鑒于此,本申請提供了一種智能合約執行方法、智能合約執行裝置、節點設備及計算機可讀存儲介質,可以使Java虛擬機實現通過單條字節碼指令從區塊鏈賬本中讀取智能合約的持久化字段的值。
第一方面,本申請提供了一種智能合約執行方法,包括:
接收用于調用智能合約的調用請求,獲取上述智能合約對應的字節碼文件;
若上述智能合約對應的字節碼文件為增強字節碼文件,則將上述智能合約的持久化字段標記為第一狀態,上述持久化字段為對應的值存儲在區塊鏈賬本中的字段,上述增強字節碼文件為包含增強字節碼指令的字節碼文件,上述增強字節碼指令用于從上述區塊鏈賬本讀取處于第一狀態的持久化字段的值;
使用虛擬機執行上述智能合約對應的字節碼文件以完成對上述調用請求的響應。
第二方面,本申請提供了一種智能合約執行裝置,包括:
獲取單元,用于接收用于調用智能合約的調用請求,獲取上述智能合約對應的字節碼文件;
處理單元,用于若上述智能合約對應的字節碼文件為增強字節碼文件,則將上述智能合約的持久化字段標記為第一狀態,上述持久化字段為對應的值存儲在區塊鏈賬本中的字段,上述增強字節碼文件為包含增強字節碼指令的字節碼文件,上述增強字節碼指令用于從上述區塊鏈賬本讀取處于第一狀態的持久化字段的值;
執行單元,用于使用虛擬機執行上述智能合約對應的字節碼文件以完成對上述調用請求的響應。
第三方面,本申請提供了一種節點設備,包括存儲器、處理器以及存儲在上述存儲器中并可在上述處理器上運行的計算機程序,上述處理器執行上述計算機程序時實現如上述第一方面所提供的方法。
第四方面,本申請提供了一種計算機可讀存儲介質,上述計算機可讀存儲介質存儲有計算機程序,上述計算機程序被處理器執行時實現如第一方面所提供的方法。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于杭州趣鏈科技有限公司,未經杭州趣鏈科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011395356.1/2.html,轉載請聲明來源鉆瓜專利網。





