BTC
ETH
HTX
SOL
BNB
查看行情
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

區塊鏈虛擬機,WASM 和RISC-V 哪個更合適?

Nervos
特邀专栏作者
2018-12-28 05:55
本文約2723字,閱讀全文需要約4分鐘
一場關於區塊鏈虛擬機的知識碰撞
AI總結
展開
一場關於區塊鏈虛擬機的知識碰撞

背景知識

背景知識

背景知識

首先,介紹一下本次討論的兩大主題——WebAssembly 和RISC-V:

WebAssembly(WASM)是一種新的編碼方式,可以在現代的網絡瀏覽器中運行,它是一種低級的類彙編語言,具有緊湊的二進制格式,可以接近原生的性能運行,並為諸如C/ C++/ Rust 等語言提供一個編譯目標,以便它們可以在Web 上運行。 WebAssembly 的開發團隊分別來自Mozilla、Google、Microsoft、Apple 等公司,標準由W3C 組織製定,目前WebAssembly 在以太坊下一代虛擬機(EWASM)以及EOS、Dfinity 項目中被使用。

RISC-V 指令集是基於精簡指令集計算(RISC)原理建立的開放指令集架構(ISA),該項目始於2010 年,由加州大學伯克利分校的David Patterson 教授帶領,目前已經獲得社區大力支持, RISC-V 是在指令集不斷發展和成熟的基礎上建立的全新指令。 RISC-V 指令集完全開源,設計簡單,易於移植Unix 系統,模塊化設計,完整工具鏈,同時有大量的開源實現和流片案例。

在x86 和ARM 壟斷的當下,RISC-V 為新興市場帶來了一些曙光,許多國家的芯片設計、製造公司紛紛加入其基金會,參與到相關的生態建設中。作為在CPU 上驗證過的指令集架構,RISC-V 在區塊鏈領域的確是一個大膽的嘗試,因為它在區塊鏈項目上打造的是虛擬機,而非處理器硬件。

發帖者Zaki Mania 是區塊鏈領域的早期投資人。他本人是Trusted IoT 聯盟(該機構致力於PoS 的安全研究)的執行董事、Cosmos的項目顧問、除此之外,他還是Restore The 4th! 董事成員。

參與討論的@defmacro,是Nervos 項目的核心工程師肖雪潔,也是CKB-VM 的主要實現者,關於他實現的Nervos 的虛擬機介紹請詳見文章《An Introduction to Nervos CKB-VM》[1]。

,SolanaLabs 的Georgios Konstantopoulos,SolanaLabs 的 CEO Anatoly Yakovenko,Qtum 開發者Jordan Earls,Nervos 項目聯合創始人二級標題二級標題

二級標題



內容摘要

Zaki Mania 首先提出疑問:對虛擬機用RISC-V 比WASM 更好表示嚴重懷疑。

隨後有Loom 首席研究員Georgios Konstantopoulos 跟帖,希望他詳細評估下二者的優缺點。

Zaki Mania 補充說:RISC-V 是面向Silicon(意指芯片)/ FPGA 設計的規範。在x86,ARM,PowerPC 上進行高效仿真不是目標。而WASM 是一種獨立於ISA(開放指令集架構)的規範,可以在各種CPU 上進行高效實現。 WASM 本身,是為編譯而專門設計的,因此在編譯x86 或ARM 機器代碼時,結果幾乎與原生編譯相同。但是RISC-V 不是為了編譯為x86 和ARM 而設計出來的。

肖雪潔對此提出不同看法:他質疑WASM 哪些功能比RISC-V 更容易實現。 WASM 相比JS 更容易實現,但與RISC-V 相比,看不到優勢。因為和構建有效的實現沒有任何關係,這是生態系統。我同意LLVM 對WASM 的支持更好,但有兩點需要指出——(1)RISC-V 支持GCC,(2)RISC-V 的LLVM 也僅僅需要再加幾次補丁。

仿真RISC-V 的運行方式,正是WASM 作為抽象虛擬機運行的方式,它們並無二致。

至於對方說的WASM 是如何「專門設計」來應對這一目標的?他在規範中看到,可以像WASM 一樣實現RISC-V 實現。 JIT 不僅僅適用於WASM。

隨後附文:《rv8:從RISC-V 到x86 的高性能二進制轉換器》[2]。


經過數輪激烈討論,不少人加入了爭論:Tarun Chitra 覺得二者不在討論範圍:RISC-V 的軟件絕不會與WASM 開發中的資源競爭。

SolanaLabs 的CEO Anatoly Yakovenko 反問Zaki Mania:你能否想像一條區塊鏈去運行一個網站?或者說一百萬個獨立節點同時運行?對Nervos 做出的巨大推動表示讚賞,他們沒有隨大流。

Qtum 開發者Jordan Earls 評論道:聽起來它缺乏WASM 的所有好處(超過任何隨機CPU 架構),同時也沒有獲得x86 的生態系統優勢,因為RISC-V 非常模糊。看到原生的智能合約硬件,感覺很有趣。

Nervos 聯合創始人謝晗劍說:在我看來,(RISC-V)針對硬件是一大益處。 Layer 1 區塊鍊是類似硬件的軟件,很難去升級。針對硬件設計的指令集恰好也有同樣的屬性。

Zaki Mania 總結:我是RISC-V 的忠實粉絲,只是原因不在於共識層運行的代碼。編譯器工具鏈將是一流的,(以RISC-V 架構實現的) 硬件會廣泛存在,但沒有其他依賴於高性能和可靠的x86 / ARM JIT 的用例

肖雪潔最後總結道:實現RISC-V 和實現WASM 時的差異要小得多,我們甚至認為能更輕易地在RISC-V 中打造更高效的實現。沒錯,在一個或兩個細節上,這裡的一種技術(WASM 或RISC-V)可能比另一種(RISC-V 或WASM)更容易做實現,(但總體上講)實際實現時它們並沒有非常明顯的難度差異,它們在實施時確實沒那麼大不同。

與此同時,選擇區塊鏈虛擬機時並不是只需要考慮高性能實現的難度。使用RISC-V,我們可以得到如下(WASM難以匹配)的好處:

1.真實硬件來保證穩定的實現,而不是由瀏覽器供應商商定的版本位保證;

2.穩定的上游GNU 工具鏈以及正在進行的LLVM 支持,而不是人員配置不足的Emscripten;
   
3.具有尖端技術的規範,目前不限於JS 引擎架構,例如V 擴展;

4.一個合理的運行時模型,一個更加自然,更能面向未來的運行時開銷模型;

5.使用協處理器大大加速事務驗證的潛力。

期待今後能看到更多像這樣精彩的知識碰撞!

[1]https://medium.com/nervosnetwork/an-introduction-to-ckb-vm-9d95678a7757

[2]https://carrv.github.io/2017/papers/clark-rv8-carrv2017.pdf


歡迎加入Odaily官方社群