📜 [專欄新文章] The next generation Ethereum Virtual Machine — Ewasm VM
✍️ Peter Lai
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
The next generation Ethereum Virtual Machine — Ewasm VM
The next generation Ethereum Virtual Machine — Crosslink 2019 Taiwan
這篇文章是 Crosslink 2019 Taiwan 的一個議程紀錄:The next generation Ethereum Virtual Machine,由來自 Second State 的工程部 VP Hung-Ying Tai 分享 Ewasm VM 目前研究內容及未來的方向,內容非常精彩,包含了 EVM bytecode 、 Webassembly、Ewasm1.0 以及 Ewasm2.0 。
EVM bytecode 及 Webassembly(WASM)
以太坊的智能合約交易在執行時,例如 :轉 Token 到別的地址,我們是將 EVM bytecode 讀進以太坊的虛擬機執行,而 EVM bytecode 有以下幾點特色:
256 位元且堆疊式(staked-based)的虛擬機
很多高階的指令,例如:SSTORE, SLOAD, SHA3, EC, Call/Create contract
與實體系統架構(通常是 32/64 位元)有差異,而 256 位元則需要靠模擬來完成
較少程式語言(Vyper, Solidity, …)
Webassembly(WASM)是為了讓不同程式語言開發的套件都能在瀏覽器使用的一種二進位程式語言,WASM 有以下幾點特色:
堆疊式(staked-based)的虛擬機:有獨立的區域空間(暫存器或是記憶體),存取堆疊前 3 個物件(EVM 存取 16 個)
支持 32 / 64 位元的操作
沒有高階的指令
RISC 指令集也可以對應到 CPU ISA
較大的社群:主流的瀏覽器都支援,也有較多的程式語言(C++, Rust, GO, …)
Ewasm 1.0
接下來看看以太坊 Ewasm 的特性:
Ewasm 是 wasm 的子集合
因為不能有誤差,所以不支援浮點數運算
只能 import 以太坊的函式庫,避免 importㄒ系統函式庫
在每段指令之前插入 useGAS 來計算 GAS 的花費
Ethereum Environment Interface
EVM 裡有很多像是 SSLOAD, SHA3 的高階指令,這些指令在 Ewasm 1.0 裡,因為 WASM 可以動態讀取函式庫(模組),以太坊定義了 Ethereum Environment Interface 讓客戶端可以用不同的語言實作相對應的函示庫,而且也更容易完成 prototype 跟升級。
下圖是 Ethereum Environment Interface 定義的函數列表。
Ethereum Environment Interface Definition.
如何移除非法的指令?
Ewasm 使用 system contract 移除非法指令以及加入 useGas 的 bytecode,像是浮點數或是非法的 import,有以下兩種做法:
使用 smart contract 檢查合約的 bytecode
像目前的 precompiles 運行在客戶端上,在部署前先檢查合約
下圖是 Ewasm 1.0 的 stack,在部署合約前 Ewasm bytecode 會先經過 Sentinal 的檢查,成功部署後客戶端如果要執行合約會透過 EVM-C 跟 Heru(Wasm Engine)溝通。
Ewasm Stack
效能問題
究竟使用 Ewasm 效能真的會比較快嗎?講者分享各 EVM 執行 Sha1 以及 BN128mul 的結果,可以發現 EVM 在運行 BN128mul 時會是最快,主要是因為 WASM 支持 32 / 64 位元的操作,256 位元則需要另外模擬(1 個 256 位元的運算可以換成 25 個 64 位元的運算),所以 WASM 在跑 BN128mul 時才會比較慢。
Ewasm 2.0
Ewasm 2.0 的智能合約改叫 Execution Environments(EE),與 Ewasm 1.0 不一樣的有下列幾點
EE 全部都是 WASM 寫的
因為支援 cross shard,每個 EE 都是在一個 shard 上執行
EE 只能拿到 state root,而在合約的執行寫法也跟原來不一樣
EE 是 stateless
下圖可以看到 ERC20 Token 在 Ewasm 2.0 跟 Ewasm 1.0 storage 的比較,Ewasm 1.0 每個 data 都會有相對應的 key,而 Ewasm 2.0 只有存 state root,所以只能跟 state root 互動。
Ewasm 2.0 vs Ewasm 1.0
Phase One and Done
目前 Ewasm 2.0 到 phase one and done 的階段,也有測試的網路可以在 shard block 執行 EE,以太坊也有開源 Ewasm 2.0 的測試工具 Scout。
Hello World for Ewasm 2.0
上圖是 Eth 2 的 Hello World EE,可以看到 main 函數裡第一行讀取 pre state root,接下來驗證 block data size 是不是為 0,最後再將 state root 存回去,Eth 2 的智能合約寫起來都會像這樣。
結論
Ewasm 1.0 目前已經支援 EVM 1 大部分的功能也有測試鏈了,second state 開發一個編譯器 soll,能將 solidity 編譯成 Ewasm,想研究的人可以參考看看。
Ewasm 2.0 目前還在研究中,下圖是講者給大家分享的研究及貢獻的方向。
A MAYBE Roadmap
參考
Crosslink 簡報
webassembly.org
scout
soll
Ewasm overview and the precompile problem: Alex Beregszaszi and Casey Detrio @ Ethereum \\ Part 1 — YouTube
Ewasm overview and the precompile problem: Alex Beregszaszi and Casey Detrio @ Ethereum \\ Part 2 — YouTube
Wasm for blockchain&Eth2 execution: Paul Dworzanski,Alex Beregszaszi,Casey Detrio@Ethereum \\ Part 2 — YouTube
Ewasm for sharding
Ewasm updates
Ewasm design
wasm-intro
The next generation Ethereum Virtual Machine — Ewasm VM was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
暫存器是主記憶體嗎 在 COMPOTECHAsia電子與電腦 - 陸克文化 Facebook 的最佳解答
#半導體元件 #產品生命週期
【元件採購不是只有當下,還得「長治久安」】
一般來說,元件製造商在產品的最初和早期設計階段就已經把生命週期納入考量。對於市場變化快速的消費品而言,以下兩種元件的生命週期規劃與終端產品密切相關:對於高階半導體,產品生命週期可能與消費品類似;但對於低接腳數微控制器/記憶體或類比產品 (如運算放大或穩壓器) 等通用產品與生命週期只有幾個月的消費品相比,其產品生命週期可能相當長,可持續數年、甚至數十年之久,例如 NE555 計時器。
主要是因為這類產品具有豐富的通用功能,適用於多種終端產品類別,因此其需求量持續存在。原始設備製造商 (OEM) 設計人員應考慮其設計中所涉及的每個元件的產品生命週期;儘管大多數製造商無法提供生命週期的明確日期,但他們可以對當前需求進行預測,並提供設計人員應使用的替代方案。不過,產品的停產 (EOL) 或淘汰的命運與死亡與稅收一樣是無法避免的,因此應始終密切管理產品生命週期。
在將新元件納入採購系統時,買方應敦促其設計人員考慮到這一重要問題。發佈 EOL 通知後,OEM 可透過多種方式避免生產線停擺以確保能持續供應:
1.重新設計產品時更換 EOL 元件;
2.瞭解製造商是否可以在晶片庫中存放產品一段時間,並在需要時對所需元件進行封裝和測試;
3.透過協力廠商 (如:經銷商) 或聯繫電子製造服務 (EMS) 公司來暫存 EOL 元件以備將來使用,適用設計處於生命後期 (成熟期或衰退期) 的 OEM 客戶;
4.使用 FindChips 和 Octopart 等推薦網站尋找有庫存的經銷商;
5.尋找淘汰產品專業供應商。
在大多數情況下,如果 OEM 的最終產品未處於其自身生命週期的成熟階段,則建議客戶採用第一種方案。所有其他方案雖然可確保生產線持續運轉,但不能確保持續供應。OEM 客戶應盡可能與製造商緊密聯繫,以便獲得 EOL 最準確的相關資訊,因為製造商會發佈最後下訂日期以及相應的條件說明。大多數半導體製造商都擁有良好的產品變更通知 (PCN) 程序,會在元件即將過渡到停產狀態時通知其客戶。
延伸閱讀:
《產品淘汰和停產:該陷入恐慌嗎?》
http://compotechasia.com/a/tech_applicati…/…/0124/40956.html
(點擊內文標題即可閱讀全文)
#微芯科技Microchip #microchipDIRECT
暫存器是主記憶體嗎 在 Huen Tin Yeung 禤天揚 Facebook 的最佳貼文
Thanks for the Great Review!
RAM Hong Kong X Seoul X Tokyo
走進工廈小劇場,在簡約的舞台下,欣賞來自本港,以及日韓編舞的多個作品,這項文化交流由台灣世紀當代舞蹈團發起,旨在促進亞洲區舞蹈文化交流,擴闊藝術視角,計劃以「RAM」為起點,亦即「暫存記憶體」,主題是「啟動記憶,驅動未來」,先後在韓國及台灣舉行,香港部分由四度工作室主辦,並由旅藝團協辦,繼香港站後,團隊將前往日本繼續交流。
一連兩晚節目在位於觀塘工業大廈的派劇場上演,合共三場演出以「拼盤式」組成,「菜式」包括一個日本、一個南韓,以及四個本港舞蹈作品,每場演出都有四場舞蹈,觀眾視乎喜好揀選心水節目,其中筆者就於下午和晚上場次分別觀看了四個本港和兩個日韓作品(晚上場次另外兩個本港作品則與下午場次相同)。
交流計劃題旨為「啟動記憶,驅動未來」,不同背景的藝術家均以此為創作起點,其中三名本港編舞-招詠彤、毛維及張天穎不約而同選取一件關鍵道具貫穿整個舞作,分別為膠漿、汽球,以及泡泡。
招詠彤編舞作品名為''Reinvent'',舞者鄧哲銳甫登場時上身赤裸,塗上一層黏性甚高膠漿,乍看下以為是類似人體彩繪造型,舞者徐徐起舞,膠漿「動感」乍現,先是緩慢地流動,及後逐漸地脫落,至此舞者情緒亦見變化,肢體動作轉趨激烈,包括俯臥地下,意欲重拾剝離膠漿,然而舞者動作愈大,膠漿脫落情況則愈嚴重,力不從心,叫人惋惜。
有時記憶就如膠漿,本來一直黏附身上,一般只是靜靜存在,相安無事;但是一旦遭到攪動,她們或會脫離剝落,消失無形,至此人們往往亦欲救而無從。直至尾聲,舞者掌握散落各處膠漿「碎片」,將之揉合搓成一體,其時燈光刻意調暗,舞者猶如剪影,一口鯨吞「碎片」,編舞認為,雖然擺脫過去難免艱辛痛苦,然而人們終會有所演進,關鍵則是莫失莫忘。
編舞及舞者毛維同樣借物喻情,在作品《荊棘路》中,他選擇了汽球,整個獨舞前半部,舞者與汽球均是「共生」,不論如何舞動,兩者總是形影不離,汽球總是緊貼舞者身體各處,配合現場音樂,氣氛甚為輕鬆,而舞者和汽球的互動亦為純熟,可見舞者下過一番功夫。
舞者歡愉地與汽球共舞一會,頃刻舞台傳來巨響,汽球爆破了,現場氣氛隨之急轉,不但情緒趨向負面,肢體動作也更暴烈;一輪急劇衝擊之後,一切都靜止了,舞者目光凝聚遠方,並以笑聲告終...開心回憶如像汽球,以身體為載體,時刻與我們共舞,稍一散失,我們或會失落失常;傷心回憶也像汽球,我們以為全面操縱,偶一爆發,才會發現自己未能駕馭,情緒同時缺堤。
''Stardust''之中,編舞及舞者張天穎用上泡泡,凝視其中,記憶鋒利如刀,勾出無數破洞,面積雖小,卻足以摧毀一切;共對當中,泡泡同時映照出舞者自己的恐懼和脆弱;登場之初,舞者先利用數顆細小石塊在地上劃成一個「六星陣」,中間放置一個器皿,再注入特別液體(最終變成泡泡),繼而圍繞起舞,舉手投足帶有原始味道,甚至令人想起宗教祭祀。
至於最後一個本地作品''Private 1, Private 0'',編舞及舞者李朗軒則沒有如另外三位本地藝術家同樣選擇以物寄情,針對自身與「記憶」的交流,處理亦較抽象,在一如像浴室佈局之中,舞者做出一組組看似重複的動作,實際上不論速率、力度都有差異,相像其實相異、相似卻不相同,編舞相信,記憶零碎散落,若要連繫接達,我們各有鑰匙,你找到了那一把嗎?
生活於不同文化脈絡下,我們對世界的認知亦大有不同,細味過本港藝術家對「記憶」的詮釋,筆者同日亦有機會品嚐日韓兩地編舞及舞者以「記憶」為創作起點的作品,日本舞團off-Nibroll由視覺藝術家Keisuke Takahashi和編舞Mikuni Yanaihara組成,一直關注「身體」和「圖像」的關係,過去不少作品都在面積細小畫廊進行,旨在拉近演者與觀者的距離。
作品’’Small Island’’貫徹off-Nibroll精神,大量圖像貫穿整場舞蹈,投影風格偏數碼化,內藏時間和網路等元素,舞蹈開始時,先有一段段類似電子計時器投影,數字不斷跳動並左右遊走,其時舞者隨之起舞,快慢有致,然而隨著時間推演,「身體」和「圖像」的互動則略有不繼,縱然投影仍有變化,與舞蹈的連繫卻反而減弱,部分「圖像」甚至僅僅成為「身體」的背景,叫人可惜。
韓國編舞及舞者Soo-Hyun Hwang的作品’’Flatland’’,同樣用上大量投影,舞者登場後,以粉筆在台上劃出不同空間,動作自然而平和,其時身後投影亦有「配合」:舞台台板變成紙張,切割成為各種圖案,獨立來看,部分意義似含糊未明,慢慢拼貼卻逐漸成形,組合成山、樹、仙鶴和烏龜等景象。
韓國有一名為''Sipjangsaeng''的民俗故事,內含十個象徵「長壽」的物體,包括「太陽」和「海洋」等等,承載著人們對健康、快樂的願望,而'’Flatland’’的靈感亦是源自''Sipjangsaeng'',編舞期望透過作品反思「物體」的「意義」:「日常生活中,人類往往是意義的賦予者,然而這些意義,到底有多真實?」
整體而言,交流計劃成功連結亞洲區內編舞舞者,在同一主題「記憶」下,各人從本身文化背景中提取精華加以提煉,由肢體動作到圖像投影,以至音樂、舞台、燈光等等設計,不論演者與觀者都有機會觀摩吸收,拓闊藝術視野。
Brian Yu@Sing Tao Daily Senior Reporter
余展豪@星島日報高級記者
4º Four Degrees Dance Laboratory
Voy Arts Ensemble
@Cheung Tin Wing Jessica
@Chiu Tung Tung
@Mao Wei
@LongHin Li
Huen Tin Yeung 禤天揚