[發(fā)明專利]基于EVM與Wasm虛擬機(jī)的多語(yǔ)言智能合約兼容方法及系統(tǒng)在審
| 申請(qǐng)?zhí)枺?/td> | 202011533338.5 | 申請(qǐng)日: | 2020-12-22 |
| 公開(kāi)(公告)號(hào): | CN112527466A | 公開(kāi)(公告)日: | 2021-03-19 |
| 發(fā)明(設(shè)計(jì))人: | 湯勇 | 申請(qǐng)(專利權(quán))人: | 上海萬(wàn)向區(qū)塊鏈股份公司 |
| 主分類號(hào): | G06F9/455 | 分類號(hào): | G06F9/455 |
| 代理公司: | 上海段和段律師事務(wù)所 31334 | 代理人: | 李佳俊;郭國(guó)中 |
| 地址: | 200086 上海*** | 國(guó)省代碼: | 上海;31 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 evm wasm 虛擬機(jī) 語(yǔ)言 智能 合約 兼容 方法 系統(tǒng) | ||
本發(fā)明提供了一種基于EVM與Wasm虛擬機(jī)的多語(yǔ)言智能合約兼容方法及系統(tǒng),包括:底層協(xié)議通過(guò)預(yù)設(shè)配置開(kāi)啟協(xié)議所支持的虛擬機(jī)類型,當(dāng)虛擬機(jī)類型為兼容模式時(shí),則在合約層根據(jù)預(yù)設(shè)規(guī)范編寫多虛擬機(jī)語(yǔ)言合約互調(diào)用的代碼;在虛擬機(jī)支持的相應(yīng)合約中,通過(guò)call方法對(duì)除虛擬機(jī)支持的相應(yīng)合約外的目標(biāo)合約發(fā)起調(diào)用;在底層鏈中解析調(diào)用參數(shù),得到被調(diào)用的目標(biāo)合約地址和目標(biāo)合約信息;根據(jù)目標(biāo)合約地址獲得目標(biāo)合約的字節(jié)碼,根據(jù)目標(biāo)合約字節(jié)碼判斷目標(biāo)合約的類型;根據(jù)目標(biāo)合約的類型,底層鏈切換虛擬機(jī)類型,執(zhí)行相應(yīng)合約,得到執(zhí)行完后的返回值;對(duì)執(zhí)行完后的返回值進(jìn)行編碼轉(zhuǎn)換,得到發(fā)起方合約能夠識(shí)別的編碼類型。
技術(shù)領(lǐng)域
本發(fā)明涉及區(qū)塊鏈技術(shù)領(lǐng)域,具體地,涉及基于EVM與Wasm虛擬機(jī)的多語(yǔ)言智能合約兼容方法及系統(tǒng),更為具體地,涉及一種基于EVM與Wasm虛擬機(jī)的多語(yǔ)言智能合約兼容方案。
背景技術(shù)
結(jié)合區(qū)塊鏈技術(shù)的行業(yè)應(yīng)用往往以DAPP的形式呈現(xiàn),而DAPP需要建立在區(qū)塊鏈之上。以聯(lián)盟鏈的場(chǎng)景為例,合約開(kāi)發(fā)者需要在此聯(lián)盟鏈之上建立DAPP應(yīng)用,現(xiàn)有的絕大部分區(qū)塊鏈底層協(xié)議只支持EVM或者只支持Wasm的智能合約,合約開(kāi)發(fā)者往往需要學(xué)習(xí)此聯(lián)盟鏈支持的智能合約語(yǔ)言,才能進(jìn)行后續(xù)的DAPP開(kāi)發(fā),這需要花費(fèi)一定的語(yǔ)言學(xué)習(xí)成本,同時(shí)也需要了解此聯(lián)盟鏈的合約生態(tài)工具,而這往往對(duì)大部分開(kāi)發(fā)者照成了一定的阻礙,同時(shí)也不利于聯(lián)盟鏈的靈活使用場(chǎng)景。當(dāng)此聯(lián)盟鏈同時(shí)兼容EVM和Wasm虛擬機(jī)之后,則此問(wèn)題迎刃而解,合約開(kāi)發(fā)者無(wú)需花費(fèi)額外的學(xué)習(xí)成本,從而極大提高合約編碼的友好度,同時(shí)融合solidity與Wasm合約開(kāi)發(fā)者生態(tài)。
本發(fā)明解決了EVM與Wasm合約開(kāi)發(fā)者生態(tài)分裂的問(wèn)題。EVM合約開(kāi)發(fā)者熟悉Solidity語(yǔ)言智能合約,以及Solidity開(kāi)發(fā)組件,而Wasm合約開(kāi)發(fā)者則熟悉C++、Rust等語(yǔ)言的智能合約,以及對(duì)應(yīng)Wasm合約開(kāi)發(fā)組件。由于現(xiàn)有的區(qū)塊鏈協(xié)議往往只支持EVM或者只支持Wasm,所以很難同時(shí)吸引兩方開(kāi)發(fā)者在其協(xié)議之上進(jìn)行開(kāi)發(fā),為其協(xié)議完善應(yīng)用生態(tài)。
本發(fā)明打通了Solidity與C++、Rust等Wasm虛擬機(jī)智能合約互調(diào)用的壁壘,實(shí)現(xiàn)不同虛擬機(jī)所支持的合約語(yǔ)言可以同時(shí)運(yùn)行在一個(gè)區(qū)塊鏈底層協(xié)議之上,并且以開(kāi)發(fā)者極為友好的方式實(shí)現(xiàn)多語(yǔ)言合約相互兼容和調(diào)用。克服的難點(diǎn)包括:Solidity代表的EVM智能合約與C++、Rust等Wasm智能合約執(zhí)行需要不同虛擬機(jī)解釋器進(jìn)行運(yùn)行,難點(diǎn)在于如何自動(dòng)化完成不同虛擬機(jī)之間的切換。如何在實(shí)現(xiàn)不同虛擬機(jī)多語(yǔ)言合約互調(diào)用的功能上,盡可能的降低合約開(kāi)發(fā)者的學(xué)習(xí)以及遷移成本。本方案對(duì)于合約開(kāi)發(fā)者來(lái)說(shuō),沒(méi)有額外的學(xué)習(xí)和適應(yīng)成本,也并未改變Solidity與C++等合約原生接口,合約開(kāi)發(fā)者可以無(wú)縫遷移。
專利文獻(xiàn)CN111736954A(申請(qǐng)?zhí)枺?02010589506.6)公開(kāi)了一種多智能合約虛擬機(jī)實(shí)現(xiàn)方法、多智能合約虛擬機(jī)及系統(tǒng)。該多智能合約虛擬機(jī)實(shí)現(xiàn)方法包括:獲取智能合約及與智能合約相關(guān)的參數(shù);根據(jù)智能合約及與智能合約相關(guān)的參數(shù)確定智能合約對(duì)接的虛擬機(jī)控制器;將智能合約輸入至與智能合約對(duì)接的虛擬機(jī)控制器,并監(jiān)控智能合約的執(zhí)行狀態(tài);編譯智能合約,輸出與智能合約相應(yīng)的中間字節(jié)碼文件;根據(jù)中間字節(jié)碼文件按照預(yù)設(shè)指令標(biāo)準(zhǔn)生成機(jī)器碼。
發(fā)明內(nèi)容
針對(duì)現(xiàn)有技術(shù)中的缺陷,本發(fā)明的目的是提供一種基于EVM與Wasm虛擬機(jī)的多語(yǔ)言智能合約兼容方法及系統(tǒng)。
根據(jù)本發(fā)明提供的一種基于EVM與Wasm虛擬機(jī)的多語(yǔ)言智能合約兼容方法,包括:
步驟M1:底層協(xié)議通過(guò)預(yù)設(shè)配置開(kāi)啟協(xié)議所支持的虛擬機(jī)類型,當(dāng)虛擬機(jī)類型為兼容模式時(shí),則在合約層根據(jù)預(yù)設(shè)規(guī)范編寫多虛擬機(jī)語(yǔ)言合約互調(diào)用的代碼;
步驟M2:在虛擬機(jī)支持的相應(yīng)合約中,對(duì)除虛擬機(jī)支持的相應(yīng)合約外的目標(biāo)合約發(fā)起調(diào)用;
步驟M3:在底層鏈中解析調(diào)用參數(shù),得到被調(diào)用的目標(biāo)合約地址和目標(biāo)合約信息;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于上海萬(wàn)向區(qū)塊鏈股份公司,未經(jīng)上海萬(wàn)向區(qū)塊鏈股份公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011533338.5/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 一種3G終端的射頻一致性測(cè)試方法
- 在MIMO系統(tǒng)中選擇MCS
- 用于數(shù)字與多入多出通訊系統(tǒng)錯(cuò)誤向量量測(cè)的裝置與方法
- 一種自適應(yīng)調(diào)整門限的峰平比控制方法
- 校正極坐標(biāo)發(fā)射機(jī)時(shí)延差的方法、裝置與通信系統(tǒng)
- 一種EVM膠料在制備汽車回油管中的應(yīng)用
- 一種汽車回油管EVM膠料及其制備方法
- 一種基于OFDM體制衛(wèi)星轉(zhuǎn)發(fā)器的EVM測(cè)試優(yōu)化方法
- 一種基于高斯白噪聲的可調(diào)EVM矢量信號(hào)產(chǎn)生方法
- 發(fā)射機(jī)性能對(duì)比方法、裝置及設(shè)備
- 算法模塊生成方法和線狀符號(hào)繪制方法
- 一種區(qū)塊鏈合約的數(shù)據(jù)處理方法及服務(wù)器
- 一種在虛擬機(jī)中執(zhí)行功能模塊的方法和裝置
- 緩存和執(zhí)行智能合約的方法和裝置
- 一種在虛擬機(jī)中執(zhí)行功能模塊的方法和裝置
- 一種處理視音頻的方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 基于WebAssembly的瀏覽器深度學(xué)習(xí)方法及系統(tǒng)
- 一種數(shù)據(jù)處理方法、裝置及電子設(shè)備和存儲(chǔ)介質(zhì)
- 權(quán)限分級(jí)管理方法、裝置、電子設(shè)備和可讀存儲(chǔ)介質(zhì)
- 一種WebAssembly加載方法、裝置及存儲(chǔ)介質(zhì)
- 一種可信虛擬機(jī)平臺(tái)
- 虛擬機(jī)參數(shù)遷移的方法、設(shè)備和虛擬機(jī)服務(wù)器
- 一種虛擬機(jī)系統(tǒng)及其安全控制方法
- 一種云計(jì)算系統(tǒng)動(dòng)態(tài)分配虛擬機(jī)的方法
- 一種恢復(fù)、升級(jí)虛擬機(jī)的方法及裝置
- 虛擬機(jī)切換系統(tǒng)及切換方法
- 處理虛擬機(jī)集群的方法和計(jì)算機(jī)系統(tǒng)
- 虛擬機(jī)故障檢測(cè)、恢復(fù)系統(tǒng)及虛擬機(jī)檢測(cè)、恢復(fù)、啟動(dòng)方法
- 一種虛擬機(jī)遷移方法和系統(tǒng)
- 一種虛擬機(jī)容錯(cuò)系統(tǒng)及其容錯(cuò)方法





