PDX Utopia區(qū)塊鏈協(xié)議棧已正式支持eWASM智能合約

PDX Utopia區(qū)塊鏈協(xié)議棧产场,正式支持eWASM智能合約舱呻。具體請(qǐng)見:

https://github.com/PDXbaap/ewasm-rust-demo/blob/master/README.md

來源:PDX

ewasm (Ethereum)

ewasm 不是一個(gè)智能合約開發(fā)語言胯甩,而是一個(gè)編譯器的生成目標(biāo)往产,它允許以太坊開發(fā)者使用其他語言(例如 Rust呵萨、C++等)開發(fā)智能合約并編譯為以太坊接受的WebAssembly溺蕉。

ewasm 是 WebAssembly 的一個(gè)安全子集伶丐,它是 web 平臺(tái)上相對(duì)新出現(xiàn)的編譯目標(biāo)。方便的是疯特,wams(以及 ewasm) 模塊可以在任何 JavaScript 項(xiàng)目中使用哗魂。對(duì)于大多數(shù)區(qū)塊鏈代碼來說,通常 75% 以上的代碼根本都不是智能合約 —— 而是使用JavaScript 與智能合約進(jìn)行通信的代碼漓雅。ewasm 和 JavaScript 使用同樣的綁定和模塊支持機(jī)制录别。

什么是WebAssembly

wasm是可以在stack-based虛擬機(jī)上運(yùn)行的一種二進(jìn)制指令格式,設(shè)計(jì)的首要目標(biāo)是性能故硅,很適合用在區(qū)塊鏈項(xiàng)目中庶灿。

WebAssembly二進(jìn)制代碼(wasm格式)可以轉(zhuǎn)換成一種中間表示,一種可讀的AST(抽象語法樹吃衅,wast格式)往踢,這種可讀的中間表示方便了編寫和調(diào)試。

對(duì)擴(kuò)展性的改進(jìn):wasm支持module import/export功能徘层,可以將擴(kuò)展部分做成module峻呕,在項(xiàng)目中導(dǎo)入。

WebAssembly的優(yōu)勢(shì)

1.可擴(kuò)展性好

2.32/64位的操作符

3.支持更多的高級(jí)語言(C趣效,Rust瘦癌,Go等)

4.由W3C領(lǐng)導(dǎo),Google跷敬,Apple讯私,MicroSoft等大公司支持,更廣闊的社區(qū)

主流瀏覽器支持,已有項(xiàng)目支持在非瀏覽器環(huán)境運(yùn)行(wabt斤寇,wavm等)

EVM2.0對(duì)比EVM1.0的優(yōu)勢(shì)

1.性能更好

2.可擴(kuò)展性好

3.開發(fā)合約更容易桶癣,支持更多語言和工具

4.合約開發(fā)規(guī)范

ewasm 合約接口規(guī)范由以太坊定制,指定模塊結(jié)構(gòu)等信息娘锁,PDX Utopia 嚴(yán)格遵循此規(guī)范牙寞,具體如下

1.數(shù)據(jù)類型

2.禁止使用浮點(diǎn)數(shù),兼容 evm 中規(guī)定的數(shù)據(jù)類型莫秆,例如:

bytes : 不定長(zhǎng)字節(jié)數(shù)組

address : 160 bit 數(shù)字间雀,在內(nèi)存中以 20字節(jié) 小字節(jié)無符號(hào)整型表示

u128 : 128 bit 數(shù)字,在內(nèi)存中以 16字節(jié) 小字節(jié)無符號(hào)整型表示

u256 : 256 bit 數(shù)字镊屎,在內(nèi)存中以 32字節(jié) 小字節(jié)無符號(hào)整型表示

格式

每個(gè)合約必須存儲(chǔ)為 wasm 字節(jié)碼

導(dǎo)入模塊

規(guī)定合約 import 的范圍僅限于 EEI 提供的模塊惹挟,ethereum 名稱空間以外的包只允許使用 debug ,在生產(chǎn)環(huán)境中 debug 也應(yīng)被禁止使用

導(dǎo)出函數(shù)

每個(gè)合約必須導(dǎo)出兩個(gè)函數(shù)(只能導(dǎo)出兩個(gè)函數(shù))

memory : 可供 EEI 寫入的共享內(nèi)存

main : 一個(gè)入口函數(shù)缝驳,沒有參數(shù)也沒有返回值匪煌,將被 VM 執(zhí)行

要關(guān)閉 wasm 的 start function 功能,開啟它會(huì)影響 ewasm 在啟動(dòng)前獲取合約內(nèi)存地址指針的功能

關(guān)于 ABI

我們看到有關(guān)導(dǎo)出函數(shù)的規(guī)定與 solidity 合約中定義的 ABI 有些不一樣党巾,solidity 合約根據(jù)方法簽名來生成相應(yīng)的 ABI 以便對(duì)合約中的函數(shù)進(jìn)行調(diào)度,這在 ewasm 看來似乎行不通霜医,因?yàn)橹挥幸粋€(gè) main 函數(shù)被導(dǎo)出了齿拂, 如何使用 main 函數(shù)之外的函數(shù)呢?我們很自然就想到了使用合約的 input 來 定義目標(biāo)方法和輸入?yún)?shù)肴敛,事實(shí)上 solidity 也是這么做的署海,只是我們把這個(gè)靈活性 交還給開發(fā)者實(shí)現(xiàn),以統(tǒng)一的 main 函數(shù)作為入口医男,然后自行封裝 input 序列化方案砸狞,solidity 使用了 rlp 序列化 input , 在后面的例子中我們可以看到更加靈活的方式。

PDX Utopia區(qū)塊鏈協(xié)議棧镀梭,正式支持eWASM智能合約刀森。具體請(qǐng)見: https://github.com/PDXbaap/ewasm-rust-demo/blob/master/README.md

Ewasm能提供可執(zhí)行的二進(jìn)制格式、非常類似于傳統(tǒng)計(jì)算機(jī)的體系架構(gòu)报账、高效且支持多種編程語言及開發(fā)者工具研底,還能夠向后兼容EVM,因此Ewasm是以太坊智能合約的未來透罢。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末榜晦,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子羽圃,更是在濱河造成了極大的恐慌乾胶,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,376評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異识窿,居然都是意外死亡斩郎,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門腕扶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來孽拷,“玉大人,你說我怎么就攤上這事半抱∨。” “怎么了?”我有些...
    開封第一講書人閱讀 156,966評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵窿侈,是天一觀的道長(zhǎng)炼幔。 經(jīng)常有香客問我,道長(zhǎng)史简,這世上最難降的妖魔是什么乃秀? 我笑而不...
    開封第一講書人閱讀 56,432評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮圆兵,結(jié)果婚禮上跺讯,老公的妹妹穿的比我還像新娘。我一直安慰自己殉农,他們只是感情好刀脏,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評(píng)論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著超凳,像睡著了一般愈污。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上轮傍,一...
    開封第一講書人閱讀 49,792評(píng)論 1 290
  • 那天暂雹,我揣著相機(jī)與錄音,去河邊找鬼创夜。 笑死杭跪,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的驰吓。 我是一名探鬼主播揍魂,決...
    沈念sama閱讀 38,933評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼棚瘟!你這毒婦竟也來了现斋?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,701評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤偎蘸,失蹤者是張志新(化名)和其女友劉穎庄蹋,沒想到半個(gè)月后瞬内,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,143評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡限书,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評(píng)論 2 327
  • 正文 我和宋清朗相戀三年虫蝶,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片倦西。...
    茶點(diǎn)故事閱讀 38,626評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡能真,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出扰柠,到底是詐尸還是另有隱情粉铐,我是刑警寧澤,帶...
    沈念sama閱讀 34,292評(píng)論 4 329
  • 正文 年R本政府宣布卤档,位于F島的核電站蝙泼,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏劝枣。R本人自食惡果不足惜汤踏,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望舔腾。 院中可真熱鬧溪胶,春花似錦、人聲如沸稳诚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽采桃。三九已至,卻和暖如春丘损,著一層夾襖步出監(jiān)牢的瞬間普办,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工徘钥, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留衔蹲,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓呈础,卻偏偏與公主長(zhǎng)得像舆驶,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子而钞,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 在這個(gè)瞬息萬變的世界中沙廉,智能合約已成為所有平臺(tái)中強(qiáng)有力的服務(wù)。Solidity是一種趨勢(shì)臼节,PDX Utopia區(qū)塊...
    PDXchain閱讀 147評(píng)論 0 0
  • 天津站海河邊夜景非常漂亮撬陵,燈光搖曳珊皿,星光璀璨。很想多花費(fèi)些時(shí)間站在海河邊上欣賞巨税,甚至想過做游輪游海河蟋定。站在海河廣場(chǎng)...
    蕭蕭歸去閱讀 366評(píng)論 0 0
  • 這或許是我的暗戀 像從未開始卻又匆匆結(jié)束 像風(fēng)起了又停卻不見波漣 像歷經(jīng)千百次別離卻僅是擦肩 它悄然而起長(zhǎng)成樹開滿...
    LALILR閱讀 158評(píng)論 1 0
  • 星耀小學(xué)親子共成長(zhǎng)一一天天愛讀書四年三班周濱奧(鋼鐵是怎樣煉成的)自己讀書時(shí)常30分鐘
    2d9891ff8164閱讀 117評(píng)論 0 0
  • 陽 暖 東 露顯初山雪褪裳 見 微 光
    菩提丨木吉他閱讀 203評(píng)論 1 0