[發明專利]合約數據處理方法、相關設備及介質有效
| 申請號: | 201910901891.0 | 申請日: | 2019-09-21 |
| 公開(公告)號: | CN110599343B | 公開(公告)日: | 2021-04-13 |
| 發明(設計)人: | 李茂材;王宗友;劉區城;孔利;藍虎;楊常青;周開班;時一防;張勁松;朱耿良;劉攀;陳秋平;黃煥坤 | 申請(專利權)人: | 騰訊科技(深圳)有限公司 |
| 主分類號: | G06Q40/04 | 分類號: | G06Q40/04;G06F21/62 |
| 代理公司: | 廣州三環專利商標代理有限公司 44202 | 代理人: | 郝傳鑫;熊永強 |
| 地址: | 518057 廣東省深圳*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 合約 數據處理 方法 相關 設備 介質 | ||
本申請實施例公開了一種合約數據處理方法、相關設備及介質,其中,方法包括:在虛擬機中構建用于執行數據處理任務的智能合約,并為所述智能合約分配初始運行資產量;所述智能合約包含至少一個合約函數;根據所述初始運行資產量在所述虛擬機上運行所述智能合約,確定每個合約函數對應的資產消耗信息;基于所述每個合約函數對應的資產消耗信息,確定待處理資產消耗量;根據所述待處理資產消耗量與所述待處理資產消耗量對應的歷史峰值資產消耗量,確定用于成功運行所述智能合約的目標峰值資產消耗量。本申請實施例可以提高數據計算的準確性,并可以確保合約執行的成功率。
技術領域
本申請涉及互聯網技術領域,具體涉及合約數據處理方法、相關設備及一種計算機存儲介質。
背景技術
在一些合約調用的應用場景中,可以通過累加資產消耗量的方式得到合約執行后所最終消耗的資產量(即gas used的值)。但是在合約執行過程中,執行合約中的相應操作而真實消耗的資產量卻并不一定是一直累加的。
比如,對于用于修改存儲內容的方法而言,其操作碼會消耗固定的gas數量,所以在使用該方法對存儲數據所占用空間進行修改的過程中,會將原存儲數據所占用空間和用于進行修改的存儲數據所占用的空間進行計算,以退還多消耗(即重復消耗)的gas數量。所以,通過實際累加消耗的方式所計算得到的gas used的值可能存在不等于gas limit的值(即調用合約所愿意支付的gas數量)的現象,此時,若直接將累計所得到的gas used的值作為gas limit的值,則必然會降低了數據計算的準確性。
此外,在以太坊平臺上,若直接將實際消耗的gas數量作為調用合約時所需要的gas limit的值,還可能會導致該gaslimit的值不足以完成合約的調用,進而導致合約執行失敗,以至于難以確保合約執行的成功率。
本申請實施例提供了一種合約數據處理方法、相關設備及介質,可以提高數據計算的準確性,并可以確保合約執行的成功率。
本申請一方面提供了一種合約數據處理方法,所述方法包括:
在虛擬機中構建用于執行數據處理任務的智能合約,并為所述智能合約分配初始運行資產量;所述智能合約包含至少一個合約函數;
根據所述初始運行資產量在所述虛擬機上運行所述智能合約,確定每個合約函數對應的資產消耗信息;
基于所述每個合約函數對應的資產消耗信息,確定待處理資產消耗量;
根據所述待處理資產消耗量與所述待處理資產消耗量對應的歷史峰值資產消耗量,確定用于成功運行所述智能合約的目標峰值資產消耗量。
其中,所述根據所述初始運行資產量在所述虛擬機上運行所述智能合約,確定每個合約函數對應的資產消耗信息,包括:
在獲取到針對所述智能合約的測試指令時,對所述智能合約進行解析,得到所述智能合約的每個合約函數;
識別所述每個合約函數對應的業務場景;
若識別到所述每個合約函數對應的業務場景均為第一業務場景,則從所述每個合約函數對應的合約代碼信息中獲取操作數和操作碼;
根據所述每個合約函數所對應的操作碼和操作數,確定所述每個合約函數對應的資產消耗信息。
其中,所述根據所述每個合約函數所對應的操作碼和操作數,確定所述每個合約函數對應的資產消耗信息,包括:
識別所述每個合約函數中的M個操作碼以及所述M個操作碼的分類類型,從識別到的M個操作碼中獲取操作碼Si,將所述操作碼Si的分類類型作為目標分類類型;i為小于等于M的正整數;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于騰訊科技(深圳)有限公司,未經騰訊科技(深圳)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910901891.0/2.html,轉載請聲明來源鉆瓜專利網。





