波卡生態(tài) | Plasm 介紹 Shiden 網(wǎng)絡(luò)上的 X-VM!
加入 PolkaWorld 社區(qū),共建 Web 3.0!

https://shiden.plasmnet.io
今天,我們很高興的跟大家介紹我們新提出的核心功能 X-VM(跨虛擬機(jī))。我們對(duì) X-VM 的愿景是建立一個(gè)抽象層,允許智能合約在同一個(gè)區(qū)塊鏈中從不同的合約引擎(虛擬機(jī))和語(yǔ)言(例如,與用 ink! 編寫的 Solidity dApp 交互!反之亦然)執(zhí)行調(diào)用和讀取存儲(chǔ)數(shù)據(jù)。
6 月 3 日,Hoon Kim 將在 Parity & Friends 上介紹 X-VM,點(diǎn)擊這里參加活動(dòng):https://www.crowdcast.io/e/parity--friends-pos-
正如 Gavin Wood 博士之前提到的,使用 WebAssembly 作為智能合約是未來,但以太坊虛擬機(jī)現(xiàn)在很重要。《Gavin Wood:Wasm 是智能合約的未來,EVM 只是當(dāng)下》
WebAssembly 無疑在智能合約執(zhí)行方面更勝一籌?;?WASM 的引擎是有前景的,因?yàn)橄?Patract Lab 這樣的許多偉大的公司正在讓 WebAssembly 變得更容易讓開發(fā)者在 Polkadot 上使用。
然而,我們?nèi)匀豢吹搅?EVM 的價(jià)值,因?yàn)槲覀冋诿芮嘘P(guān)注以太坊的 layer2 解決方案的最新發(fā)展,如 Optimistic Rollups 和 ZK Rollups。在 Web3 基金會(huì)資助計(jì)劃的支持下,我們已經(jīng)開始在 Plasm 生態(tài)系統(tǒng)中實(shí)施 Rollups。
除此之外,大多數(shù)新開發(fā)人員將從學(xué)習(xí)以太坊開始。已建立的項(xiàng)目將希望在以太坊上保持其當(dāng)前的工作流程,而主流將通過以太坊上的 dApp 接觸到區(qū)塊鏈?zhǔn)澜?。考慮到以太坊成熟的生態(tài)系統(tǒng)及其對(duì)新人的可訪問性,今天的 EVM 將在未來過時(shí),但生態(tài)系統(tǒng)不會(huì)消失。相反,它將成為通往未來的門戶。類似于 Internet Explorer,它是下載更好瀏覽器的門戶。
我們相信,在異構(gòu)區(qū)塊鏈?zhǔn)澜缰?,“EVM”不僅指智能合約引擎的特定架構(gòu),而且會(huì)被視為“類似以太坊的開發(fā)環(huán)境”。
我們平等對(duì)待所有 dApp。因此,我們的目標(biāo)是在 Plasm & Shiden Network 都支持 WebAssembly 和 Ethereum 虛擬機(jī)并使它們可以交互。我們看到一個(gè) EVM 可以被視為另一個(gè)框架,用于與 ink!、HyperLedger、Fabric、EOSIO 和未來的虛擬機(jī)一起開發(fā) dApp 的未來!
隨著支持橋、XCMP 或其他交換通道的區(qū)塊鏈數(shù)量的增加,區(qū)塊鏈不再是一個(gè)單一的網(wǎng)絡(luò)。開發(fā)人員將不得不添加層和抽象層以跟上這種變化。我們認(rèn)為,區(qū)塊鏈生態(tài)系統(tǒng)的發(fā)展需要增加對(duì)跨虛擬機(jī)通信的支持。這就是 X-VM 的用武之地。
除此之外,由于以太坊兼容性是由 Parity Technologies 開發(fā)的,我們認(rèn)為支持 EVM 和 Solidify 合約不會(huì)成為差異化因素。即使在今天,所有的平行鏈都可以輕松支持它們。
X-VM 怎么幫助開發(fā)者?
由于 Polkadot 和 Kusama 原生支持 WebAssembly,因此越來越多的項(xiàng)目將使用 WebAssembly 作為首選的主要智能合約引擎。不難想象許多智能合約會(huì)在他們自己的沙盒環(huán)境中工作。
我們預(yù)計(jì)最大的問題是用于編寫合約的語(yǔ)言和開發(fā)人員需要與之交互的不同客戶端庫(kù)的差異。
例如,如果 ink! 合約在 Polkadot 生態(tài)中比較流行,從 Solidity 編寫的合約中調(diào)用 ink! 合約的能力是至關(guān)重要的。希望充分利用 Substrate 的原生模塊、XCMP 和其他平行鏈功能的項(xiàng)目必須從 Solidity 切換到ink!。與從以太坊 1.0 到以太坊 2.0 的漫長(zhǎng)過渡類似,我們明白在保持向后兼容性的同時(shí)遷移到新環(huán)境并非易事。
由于 Plasm 和 Shiden 旨在成為 Polkadot 生態(tài)系統(tǒng)中 dApp 的中心,我們認(rèn)為需要為基于 WASM 的合約和基于 EVM 的合約添加語(yǔ)法和功能支持。
Plasm 和 Shiden 的架構(gòu)
Plasm/Shiden 是 Polkadot/Kusama 上的可擴(kuò)展多鏈智能合約中心,原生支持 EVM 和 WASM。即使在今天,開發(fā)人員也可以在 Plasm Network 的測(cè)試網(wǎng) Dusty 上部署 Solidity 智能合約和 ink! 智能合約!
許多人已經(jīng)熟悉 EVM 及其發(fā)展。因此,在下一部分,我將詳細(xì)說明為什么 WASM 作為智能合約引擎是可行的。
為什么是 WASM?

為什么開發(fā)者要選擇 WASM 作為智能合約:
WASM 的性能非常高。該語(yǔ)言被構(gòu)建為盡可能接近本地機(jī)器代碼,同時(shí)仍然是獨(dú)立的。
由于使用了小二進(jìn)制文件,WASM 大大減少了瀏覽器的處理時(shí)間。這為想要使用區(qū)塊鏈技術(shù)的潛在互聯(lián)網(wǎng)連接提供了極大的可擴(kuò)展性。
WASM 的開發(fā)目的是使代碼可以部署在任何瀏覽器中并獲得相同的結(jié)果。與 EVM 不同,它不是針對(duì)非常具體的用例開發(fā)的。這樣做的好處是有很多工具可用,并且大公司投入大量資源來促進(jìn) WASM 的發(fā)展。
WASM 將語(yǔ)言的使用擴(kuò)展到智能合約開發(fā)人員,包括 Rust、C/C++、C#、Typescript、Haxe 和 Kotlin。這意味著開發(fā)人員可以使用他們熟悉的任何語(yǔ)言編寫智能合約。
因?yàn)?ink! 是一種用于在 Substrate 中開發(fā)智能合約的領(lǐng)域特定語(yǔ)言(DSL),開發(fā)環(huán)境與大多數(shù)在 Rust 中制作的項(xiàng)目相同。它與 Polkadot 生態(tài)系統(tǒng)完美匹配,因?yàn)樗怯猛环N語(yǔ)言編寫的。那么為什么 Polkadot 選擇 Rust 做所有事情呢?歡迎查看 Parity Blog:https://www.parity.io/why-rust/
這給我們帶來了另一個(gè)問題。為什么我們要在智能合約中使用 Rust?
Rust 生態(tài)系統(tǒng)和社區(qū):Rust 文檔非常擴(kuò)展,擁有非常強(qiáng)大的開發(fā)人員社區(qū)。所有的知識(shí)都是在互聯(lián)網(wǎng)上共享的。語(yǔ)言不斷發(fā)展,ink! 將自動(dòng)繼續(xù)關(guān)注這些發(fā)展。所有這些新特性和功能都將改善你未來編寫智能合約的方式。
我們相信 Rust 是一種理想的智能合約語(yǔ)言:它是類型安全的、內(nèi)存安全的并且沒有未定義的行為。通過編譯器標(biāo)志,Rust 可以自動(dòng)防止整數(shù)溢出。
Rust 為 WebAssembly 提供了一流的支持。
ink! 遵循 Rust 標(biāo)準(zhǔn),像 rustfmt、clippy 和 rust-analyzer 這樣的工具已經(jīng)開箱即用。大多數(shù)現(xiàn)代文本編輯器中的代碼格式和語(yǔ)法突出顯示也是如此。此外,Rust 有一個(gè)集成的測(cè)試和基準(zhǔn)運(yùn)行程序。
小代碼意味著更快的頁(yè)面加載。Rust 生成的 .wasm 不包含額外的膨脹,就像垃圾收集器一樣。高級(jí)優(yōu)化和 tree shaking 去除死代碼。在空間受限的區(qū)塊鏈?zhǔn)澜缰校笮『苤匾?。Rust 編譯器是一個(gè)很大的幫助,因?yàn)樗匦屡判蚪Y(jié)構(gòu)字段以使每種類型盡可能小。
我們的起點(diǎn)
我們將 X-VM 視為一個(gè)長(zhǎng)期項(xiàng)目,可以在我們今天擁有的高度分散的智能合約開發(fā)環(huán)境中簡(jiǎn)化開發(fā)。
首先,我們計(jì)劃將 Substrate 合約模塊調(diào)用的概念證明版本實(shí)現(xiàn)為 Substrate 中 Frontier 庫(kù)的 EVM 預(yù)編譯合約。這將啟用從 EVM 到 ink! 的單向合約調(diào)用。目前,將 Substrate 合約模塊作為 EVM 上的預(yù)編譯合約調(diào)用將在功能上受到限制。盡管如此,我們還是希望以此 PoC 實(shí)現(xiàn)作為開始,將 X-VM 開發(fā)為一個(gè)可以統(tǒng)一各種合約引擎的原生模塊,例如 OVM 如何統(tǒng)一 Layer2 協(xié)議。
未來,我們計(jì)劃開發(fā)一個(gè)標(biāo)準(zhǔn)的合約開發(fā)環(huán)境工具,如 Truffle 或 Hardhat,用于在 Plasm Network 上進(jìn)行開發(fā)。
關(guān)于 Plasm
Plasm Network 是 Polkadot 上的 dApps 中心,支持以太坊和 ZK Rollups 等 Layer2 解決方案。Plasm 旨在成為一個(gè)多鏈智能合約平臺(tái),將支持多個(gè)區(qū)塊鏈和虛擬機(jī),如 EVM 和 WASM。
原文鏈接:https://medium.com/plasm-network/introducing-x-vm-on-shiden-network-d74368fbd07c
翻譯:波卡第一中文社區(qū) PolkaWorld
歡迎學(xué)習(xí) Substrate:
https://substrate.dev/
關(guān)注 Substrate 進(jìn)展:
https://github.com/paritytech/substrate
關(guān)注 Polkadot 進(jìn)展:
https://github.com/paritytech/polkadot

更多內(nèi)容:
5 月波卡生態(tài)月報(bào) | 多個(gè)生態(tài)項(xiàng)目已準(zhǔn)備好競(jìng)拍 Kusama 平行鏈
波卡周報(bào) | Kusama Runtime 已成功升級(jí) v9030,目前 Shell 運(yùn)行穩(wěn)定!
Karura 的目標(biāo)是贏得第一場(chǎng) Kusama 平行鏈拍賣
掃碼關(guān)注公眾號(hào),回復(fù) “1” 加入波卡群
關(guān)注 PolkaWorld
發(fā)現(xiàn) Web 3.0 時(shí)代新機(jī)遇
點(diǎn)個(gè) “在看” 再走吧!
