欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

在區(qū)塊鏈系統(tǒng)中執(zhí)行智能合約的方法及區(qū)塊鏈節(jié)點與流程

文檔序號:40599601發(fā)布日期:2025-01-07 20:40閱讀:8來源:國知局
在區(qū)塊鏈系統(tǒng)中執(zhí)行智能合約的方法及區(qū)塊鏈節(jié)點與流程

本說明書實施例屬于區(qū)塊鏈,尤其涉及一種在區(qū)塊鏈系統(tǒng)中執(zhí)行智能合約的方法及區(qū)塊鏈節(jié)點。


背景技術:

1、區(qū)塊鏈(blockchain)系統(tǒng)是分布式數(shù)據(jù)存儲、點對點傳輸、共識機制、加密算法等計算機技術的新型應用模式。區(qū)塊鏈系統(tǒng)中按照時間順序?qū)?shù)據(jù)區(qū)塊以順序相連的方式組合成鏈式數(shù)據(jù)結(jié)構(gòu),并以密碼學方式保證的不可篡改和不可偽造的分布式賬本。由于區(qū)塊鏈系統(tǒng)具有去中心化、信息不可篡改、自治性等特性,區(qū)塊鏈系統(tǒng)受到人們越來越多的重視和應用。

2、部署在區(qū)塊鏈系統(tǒng)中的智能合約,可能因修復缺陷、改進功能、優(yōu)化業(yè)務實現(xiàn)過程等目標,需要對其進行升級。在升級智能合約時,可能對合約代碼聲明的狀態(tài)變量進行修改,如增加狀態(tài)變量、刪除狀態(tài)變量或修改已有狀態(tài)變量的數(shù)據(jù)結(jié)構(gòu)。其中修改已有狀態(tài)變量的數(shù)據(jù)結(jié)構(gòu),可能導致智能合約的合約狀態(tài)出現(xiàn)不兼容的問題,例如升級后的合約代碼無法有效解碼原有的合約狀態(tài)中被修改的狀態(tài)變量的值,甚至導致錯誤的狀態(tài)數(shù)據(jù)被寫入合約狀態(tài)中。


技術實現(xiàn)思路

1、本發(fā)明的目的在于提供一種在區(qū)塊鏈系統(tǒng)中執(zhí)行智能合約的方法及區(qū)塊鏈節(jié)點。

2、第一方面,提供了一種在區(qū)塊鏈系統(tǒng)中執(zhí)行智能合約的方法,所述智能合約的合約代碼中包括與第一狀態(tài)變量對應的第一結(jié)構(gòu)體的第一版本,以及所述第一狀態(tài)變量涉及的多個子變量各自對應的升級信息,所述升級信息用于指示對應的子變量的修改類型和修改版本,所述修改版本不大于所述第一版本,所述方法通過執(zhí)行所述合約代碼實現(xiàn),所述方法包括:從所述智能合約的合約狀態(tài)中,讀取所述第一狀態(tài)變量的值;對所述第一狀態(tài)變量的值進行解碼操作,其中所述解碼操作包括:從所述第一狀態(tài)變量的值中解碼出第二版本,所述第二版本為編碼得到所述第一狀態(tài)變量的值時,所使用第二結(jié)構(gòu)體的歷史版本,所述第一版本不小于所述第二版本;對于所述多個子變量中的任意子變量,根據(jù)所述子變量對應的升級信息和/或所述第二版本,對所述子變量執(zhí)行對應的解碼子操作。

3、第二方面,提供了一種區(qū)塊鏈系統(tǒng)中的區(qū)塊鏈節(jié)點,所述區(qū)塊鏈系統(tǒng)中部署有智能合約,所述智能合約的合約代碼中包括與第一狀態(tài)變量對應的第一結(jié)構(gòu)體的第一版本,以及所述第一狀態(tài)變量涉及的多個子變量各自對應的升級信息,所述升級信息用于指示其對應的子變量的修改類型和修改版本,所述修改版本不大于所述第一版本,所述區(qū)塊鏈節(jié)點用于執(zhí)行所述合約代碼,實現(xiàn):從所述智能合約的合約狀態(tài)中,讀取所述第一狀態(tài)變量的值;對所述第一狀態(tài)變量的值進行解碼操作,其中所述解碼操作包括:從所述第一狀態(tài)變量的值中解碼出第二版本,所述第二版本為編碼得到所述第一狀態(tài)變量的值時,所使用第二結(jié)構(gòu)體的歷史版本,所述第一版本不小于所述第二版本;對于所述多個子變量中的任意子變量,根據(jù)所述子變量對應的升級信息和/或所述第二版本,對所述子變量執(zhí)行對應的解碼子操作。

4、第三方面,提供了一種計算機可讀存儲介質(zhì),其上存儲有計算機程序,當所述計算機程序在計算設備中執(zhí)行時,計算設備執(zhí)行第一方面中所述的方法。

5、本說明書實施例提供的技術方案中,智能合約的合約代碼中包括與第一狀態(tài)變量對應的第一結(jié)構(gòu)體的第一版本,以及第一狀態(tài)變量涉及的多個子變量各自對應的升級信息,升級信息用于指示其對應的子變量的修改類型和修改版本,修改版本不大于第一版本;當執(zhí)行合約代碼的過程中需要對第一狀態(tài)變量的值進行解碼時,可以首先從智能合約的合約狀態(tài)中讀取第一狀態(tài)變量的值,并對第一狀態(tài)變量的值進行解碼操作,其中該解碼操作包括:從第一狀態(tài)變量的值中解碼出第二版本,第二版本為編碼得到第一狀態(tài)變量的值時,所使用第二結(jié)構(gòu)體的歷史版本,第一版本不小于第二版本;對于多個子變量中的任意子變量,根據(jù)子變量對應的升級信息和/或第二版本,對子變量執(zhí)行對應的解碼子操作。如此,當升級智能合約的過程中,通過新的合約代碼修改了智能合約的合約狀態(tài)中已有狀態(tài)變量的數(shù)據(jù)結(jié)構(gòu)時,可以實現(xiàn)在無需跟蹤并更新該智能合約的合約狀態(tài)中已有狀態(tài)變量的值的情況下,確保新的合約代碼能夠?qū)σ延袪顟B(tài)變量的值進行準確解碼。



技術特征:

1.一種在區(qū)塊鏈系統(tǒng)中執(zhí)行智能合約的方法,所述智能合約的合約代碼中包括與第一狀態(tài)變量對應的第一結(jié)構(gòu)體的第一版本,以及所述第一狀態(tài)變量涉及的多個子變量各自對應的升級信息,所述升級信息用于指示其對應的子變量的修改類型和修改版本,所述修改版本不大于所述第一版本,所述方法通過執(zhí)行所述合約代碼實現(xiàn),所述方法包括:

2.根據(jù)權利要求1所述的方法,所述合約代碼中還包括基于所述第一結(jié)構(gòu)體生成的解碼函數(shù),所述解碼操作通過執(zhí)行所述解碼函數(shù)實現(xiàn)。

3.根據(jù)權利要求1所述的方法,所述根據(jù)所述子變量對應的升級信息和/或所述第二版本,對所述子變量執(zhí)行對應的解碼子操作,包括:

4.根據(jù)權利要求3所述的方法,所述根據(jù)所述子變量對應的升級信息和/或所述第二版本,對所述子變量執(zhí)行對應的解碼子操作,還包括:當所述第二版本小于所述子變量的修改版本的情況下,在所述第一狀態(tài)變量的解碼結(jié)果中將所述子變量的值設置為預設數(shù)值。

5.根據(jù)權利要求1所述的方法,所述根據(jù)所述子變量對應的升級信息和/或所述第二版本,對所述子變量執(zhí)行對應的解碼子操作,包括:

6.根據(jù)權利要求5所述的方法,所述方法還包括:當所述第二版本不大于所述子變量的修改版本的情況下,從所述第一狀態(tài)變量的值中解碼出所述子變量的值并舍棄。

7.根據(jù)權利要求1所述的方法,所述根據(jù)所述子變量對應的升級信息和/或所述第二版本,對所述子變量執(zhí)行對應的解碼子操作,包括:當所述子變量的修改類型指示所述子變量為未進行修改的子變量的情況下,從所述第一狀態(tài)變量的值中解碼出所述子變量的值,并將所述子變量的值加入所述第一狀態(tài)變量的解碼結(jié)果。

8.根據(jù)權利要求1所述的方法,所述方法還包括:

9.根據(jù)權利要求1所述的方法,所述合約代碼通過編譯器對所述智能合約的源代碼進行編譯得到,所述合約源代碼中定義了所述第一結(jié)構(gòu)體以及其對應的結(jié)構(gòu)體注解,所述第一結(jié)構(gòu)體中包括字段注解,所述結(jié)構(gòu)體注解用于指示所述第一結(jié)構(gòu)體的版本為所述第一版本,所述字段注解用于指示所述多個子變量各自對應的升級信息。

10.根據(jù)權利要求1-9中任一項所述的方法,所述第一狀態(tài)變量的值為ssz編碼。

11.一種區(qū)塊鏈系統(tǒng)中的區(qū)塊鏈節(jié)點,所述區(qū)塊鏈系統(tǒng)中部署有智能合約,所述智能合約的合約代碼中包括與第一狀態(tài)變量對應的第一結(jié)構(gòu)體的第一版本,以及所述第一狀態(tài)變量涉及的多個子變量各自對應的升級信息,所述升級信息用于指示其對應的子變量的修改類型和修改版本,所述修改版本不大于所述第一版本,所述區(qū)塊鏈節(jié)點用于執(zhí)行所述合約代碼,實現(xiàn):從所述智能合約的合約狀態(tài)中,讀取所述第一狀態(tài)變量的值;對所述第一狀態(tài)變量的值進行解碼操作,其中所述解碼操作包括:從所述第一狀態(tài)變量的值中解碼出第二版本,所述第二版本為編碼得到所述第一狀態(tài)變量的值時,所使用第二結(jié)構(gòu)體的歷史版本,所述第一版本不小于所述第二版本;對于所述多個子變量中的任意子變量,根據(jù)所述子變量對應的升級信息和/或所述第二版本,對所述子變量執(zhí)行對應的解碼子操作。

12.一種計算機可讀存儲介質(zhì),其上存儲有計算機程序,當所述計算機程序在計算設備中執(zhí)行時,計算設備執(zhí)行權利要求1-10中任一項所述的方法。


技術總結(jié)
一種在區(qū)塊鏈系統(tǒng)中執(zhí)行智能合約的方法及區(qū)塊鏈節(jié)點,智能合約的合約代碼中包括與第一狀態(tài)變量對應的第一結(jié)構(gòu)體的第一版本,以及第一狀態(tài)變量涉及的多個子變量各自的升級信息,升級信息用于指示其對應的子變量的修改類型和修改版本,修改版本不大于第一版本,該方法通過執(zhí)行合約代碼實現(xiàn),該方法包括:從智能合約的合約狀態(tài)中,讀取第一狀態(tài)變量的值;對第一狀態(tài)變量的值進行解碼操作,其中該解碼操作包括:從第一狀態(tài)變量的值中解碼出第二版本,第二版本為編碼得到第一狀態(tài)變量的值時,所使用第二結(jié)構(gòu)體的歷史版本,第一版本不小于第二版本;對于多個子變量中的任意子變量,根據(jù)子變量對應的升級信息和第二版本,對子變量執(zhí)行對應的解碼子操作。

技術研發(fā)人員:周維,李育文
受保護的技術使用者:螞蟻區(qū)塊鏈科技(上海)有限公司
技術研發(fā)日:
技術公布日:2025/1/6
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
阳朔县| 台南县| 兴文县| 和平区| 大余县| 甘南县| 嵊泗县| 宝丰县| 平湖市| 山东| 永吉县| 青冈县| 南和县| 万安县| 司法| 余江县| 昂仁县| 永昌县| 德保县| 克山县| 大埔区| 芒康县| 土默特左旗| 海林市| 伽师县| 西青区| 特克斯县| 屏南县| 松原市| 青冈县| 河北省| 铁力市| 东兰县| 泗洪县| 江北区| 石屏县| 肥东县| 寿阳县| 舟曲县| 东明县| 环江|