8月13日,迅雷鏈正式向廣大開發(fā)者公布WASM虛擬機模塊的源代碼和代碼庫,從而幫助迅雷鏈開放平臺上的開發(fā)者們了解虛擬機的內部實現(xiàn)機制、工作原理和使用方法,便于開發(fā)者進行更多場景的區(qū)塊鏈應用開發(fā)。同時,開發(fā)者也可以和迅雷鏈技術團隊一起完善虛擬機的功能,促進區(qū)塊鏈生態(tài)的繁榮發(fā)展。
多項技術優(yōu)化,簡化區(qū)塊鏈應用構建
隨著區(qū)塊鏈應用對虛擬機以及智能合約的需求增多,區(qū)塊鏈虛擬機技術也在逐漸完善。目前,基于WASM的虛擬機在速度和性能方面都有了顯著提升,且支持C、C++等多種編程語言,開發(fā)門檻更低。為了讓區(qū)塊鏈應用開發(fā)更便捷,迅雷鏈推出了雙虛擬機引擎,同時支持WASM虛擬機和EVM虛擬機。原本在以太坊等支持EVM的主鏈上運行的區(qū)塊鏈應用,如果由于性能等原因需要使用迅雷鏈,可以輕松實現(xiàn)無縫遷移。
如上圖所示,使用Solidity/C/C++等語言編寫的智能合約,經(jīng)過編譯器編譯成字節(jié)碼,會包含對應的特征,迅雷鏈雙虛擬機引擎通過特征識別,判斷具體需要執(zhí)行哪種虛擬機。
其中,WASM字節(jié)碼具有跨平臺的能力,同時支持多種編程語言。通過clang 前端編譯器,將C/C++代碼變成 LLVM 中間代碼IR。再經(jīng)過LLVM后端編譯器,將IR指令轉換為WASM字節(jié)碼。這樣就可以輕松的支持更多語言的合約代碼,在不同平臺上面運行。
不僅如此,迅雷鏈針對WASM虛擬機還做了諸多改進,使得智能合約模塊具備更高的兼容性與性能,同時擁有更強的安全性與靈活性。
第一,支持合約原地升級,解決了開發(fā)者在以太坊上升級合約代碼時合約地址會改變的困擾,避免了繁瑣的開發(fā)工作量。此外,為兼顧合約升級的靈活性與安全性,迅雷鏈引入多重簽名信任機制。開發(fā)者必須設置受信任的多重簽名賬戶,只有收集到超過2/3的受信任賬戶的簽名,才能執(zhí)行合約升級。
第二,合約調用更便捷。不同于EOS在合約調時無法直接獲得被調用合約的執(zhí)行狀態(tài),迅雷鏈的WASM虛擬機增加了合約嵌套調用功能,可以立即獲取到調用另外一個合約方法的結果,使得合約之間的調用像函數(shù)調用一樣方便。
第三,合約執(zhí)行更安全。與EOS租用資源的方式不同,迅雷鏈為WASM虛擬機增加了Gas機制。每執(zhí)行一條合約指令,都會扣除相應的Gas,確保合約指令在執(zhí)行有限次運算后,一定可以終止執(zhí)行,有效防止代碼無限循環(huán)攻擊。
第四,迅雷鏈對WASM虛擬機內部進行諸多技術優(yōu)化,包括支持自動擴展線性內存,緩存wasm module,優(yōu)化合約的加載性能,優(yōu)化合約對宿主環(huán)境golang函數(shù)的調用等,從而極大提升了虛擬機運行性能。
第五,迅雷鏈在WASM虛擬機上層進行了豐富的庫封裝,比如TC_CallContract、TC_Require、TC_Transfer、TC_LogX、TC_Notify等EVM虛擬機中常用的API,同時擴展了TC_StorageX(基礎存儲API)、TC_BigIntX(大數(shù)運算API)、TC_JsonX(JSON支持API)等豐富的基礎API,讓虛擬機的功能更強大、開發(fā)體驗更便捷。另外,為方便開發(fā)者快速構建自己的TOKEN合約,迅雷鏈不僅提供常用的標準TOKEN合約基礎類庫,還支持C/C++等編寫智能合約所需語言的類庫。開發(fā)者也可以使用第三方維護的開源庫,彌補了EVM缺少公共庫的不足。
多種工具性解決方案 迅雷鏈全面賦能開發(fā)者
將WASM虛擬機這一核心模塊開源,凸顯了迅雷鏈賦能開發(fā)者、促進區(qū)塊鏈應用落地的決心。事實上,迅雷鏈一直致力于推動區(qū)塊鏈技術發(fā)展和行業(yè)進步,在發(fā)布開放平臺將百萬TPS等領先技術性能賦能于廣大開發(fā)者之后,還持續(xù)推出了多種工具性的解決方案,包括可以在瀏覽器直接運行的合約開發(fā)調試工具與合約SDK自動生成工具等等,從而降低開發(fā)門檻和難度,讓開發(fā)者將主要精力集中在業(yè)務拓展和創(chuàng)新上。
例如,迅雷鏈提供的合約開發(fā)調試工具catalyst集成了EVM與WASM雙虛擬機合約的開發(fā)、編譯、部署、合約接口測試等功能,方便開發(fā)者開發(fā)與測試合約。Catalyst可以直接運行在瀏覽器中,用戶開發(fā)測試合約過程中不必自己搭建區(qū)塊鏈節(jié)點,也不需要安裝復雜的合約代碼編譯環(huán)境。
此外,合約SDK自動生成工具能自動生成后端系統(tǒng)調用合約接口的代碼,同時可屏蔽調用合約時的參數(shù)編解碼細節(jié)等,幫助開發(fā)者快速集成合約業(yè)務到系統(tǒng)中,從而可以有更多精力投入到智能合約業(yè)務邏輯的開發(fā)。目前,該工具還支持自動生成Python庫和go語言庫,極大地提升了開發(fā)者的效率。
目前,迅雷區(qū)塊鏈技術已經(jīng)和中國版權保護中心、來電科技、南方新媒體、壹基金等多個政企機構合作,落地版權保護、商品溯源、公益、醫(yī)療、保險、交通、基因、供應鏈、新零售等十余個行業(yè)領域。隨著此次WASM虛擬機模塊的開源,相信區(qū)塊鏈技術將在更豐富的應用場景中,真正發(fā)揮其應有的價值。





