成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

不用 WASM,我們從頭造輪子!采用 RISC-V 設(shè)計的區(qū)塊鏈虛擬機 CKB-VM 誕生記

joywek / 2262人閱讀

摘要:在區(qū)塊鏈上,虛擬機就是智能合約的運行環(huán)境,是一個可以完全對外隔離的完整計算機體系。區(qū)塊鏈通過虛擬機來調(diào)用和執(zhí)行智能合約,并要求所有節(jié)點都達成一致。

秘猿科技使命是用技術(shù)創(chuàng)造信任,為價值網(wǎng)絡(luò)提供基礎(chǔ)設(shè)施和服務(wù)。為了實現(xiàn)這個使命,我們?nèi)陙韴猿殖跣?,步步為營打造加密經(jīng)濟網(wǎng)絡(luò)。我們想要讓互聯(lián)網(wǎng)回歸到本源,用區(qū)塊鏈技術(shù),去構(gòu)造更美好的社會,因此我們設(shè)計了 CKB 底層公鏈。我們自己造輪子,開創(chuàng)性設(shè)計了獨一無二的 CKB 模型,以及用 RISC-V 打造的 CKB-VM 虛擬機。本文就將談?wù)?CKB-VM 虛擬機的誕生。

秘猿科技區(qū)塊鏈小課堂第 22 期


區(qū)塊鏈的出現(xiàn)使得智能合約得到了更好的實現(xiàn)和發(fā)展,而區(qū)塊鏈和智能合約之間,還存在著一個重要的角色: 虛擬機(Virtual Machine) 。

虛擬機的概念在上個世紀六十年代就被提出來,而到九十年代才開始流行。當(dāng)時的網(wǎng)絡(luò)跨越了眾多不同的操作系統(tǒng)、瀏覽器,如果開發(fā)者想要制作一個應(yīng)用,就需要去適配所有不同的操作系統(tǒng)。大家知道現(xiàn)在 App 開發(fā)就分為安卓和蘋果系統(tǒng),而當(dāng)時局面更加復(fù)雜。恰好 Java 程序語言開始流行,Java 構(gòu)建的虛擬機能夠讓程序只需要寫一次,依托 Java 虛擬機就能夠在多個平臺上運行,所以當(dāng)時提出的口號就是: 一處編譯、到處運行 。

我們知道比特幣是沒有虛擬機的,因為比特幣就是把一段數(shù)字(也就是「比特幣」)從地址 A 轉(zhuǎn)移到地址 B,而以太坊則提出,區(qū)塊鏈上執(zhí)行的為什么不能是一套代碼,能夠?qū)崿F(xiàn)更多復(fù)雜多樣的東西?這就是我們所說的智能合約平臺,所有節(jié)點運行一樣的合約代碼得到完全一樣的結(jié)果。

在區(qū)塊鏈上,虛擬機就是智能合約的運行環(huán)境,是一個可以完全對外隔離的完整計算機體系。區(qū)塊鏈通過虛擬機來調(diào)用和執(zhí)行智能合約,并要求所有節(jié)點都達成一致。而節(jié)點用的是不同的系統(tǒng),有些機器是 64 位的,有些是 32 位的,傳統(tǒng)的 Java 虛擬機容忍計算結(jié)果有少量的差異,但是在區(qū)塊鏈上所有結(jié)果必須一樣,因此,一個新的、適用于區(qū)塊鏈的虛擬機是必不可少的。

理想中的區(qū)塊鏈虛擬機

每個區(qū)塊鏈項目的虛擬機設(shè)計,都會有自身的藝術(shù)追求,在追求眾多的特性同時做不同層次上的取舍。在做了大量的研究之后,我們認為理想中的區(qū)塊鏈虛擬機應(yīng)該是這樣的:

運行時有足夠的 確定性 ,在調(diào)用同樣的智能合約輸入時,應(yīng)該返回相同的輸出結(jié)果,輸出結(jié)果不依賴于時間、運行環(huán)境等外部的條件;

運行時有足夠的 安全性 ,虛擬機的執(zhí)行不會對平臺本身帶來負面影響;

對更新足夠的 靈活 ,讓區(qū)塊鏈不用通過硬分叉,就可以實現(xiàn)加密算法的升級或新增(回想一下以太坊硬分叉升級的痛苦);

信息足夠的透明,可以讓虛擬機上運行的智能合約充分發(fā)揮虛擬機的潛力;

費用機制足夠的 合理 ,能夠確保虛擬機運行時資源消耗的計算方式更加合理準確;

可以 支持不同的語言編譯 ,讓開發(fā)者能夠自由地開發(fā),將最新的科技運用其中。

在設(shè)計 Nervos CKB 虛擬機之前,我們發(fā)現(xiàn)很多區(qū)塊鏈項目都不是用真實的 CPU 指令集來構(gòu)造自己的虛擬機的,他們更多的是選擇了 WASM 來構(gòu)造自己的虛擬機。

而我們更傾向于采用真實的 CPU 指令集來構(gòu)造自己的虛擬機,因為在任何精巧復(fù)雜的虛擬機的最底層,都需要將操作轉(zhuǎn)變?yōu)樵嫉膮R編指令來執(zhí)行對 CPU 的操作。另外,采用真實 CPU 指令集就不會在設(shè)計層面引入一些語義約束,束縛虛擬機的靈活性。

做一個不恰當(dāng)?shù)谋扔?,操?CPU 需要有一套語言體系,使用真實的 CPU 指令集就如同能直接用這套語言體系和 CPU「說話」,那就非常方便。否則,就好像先說中文,再轉(zhuǎn)換為英文,不論多完美的翻譯水平,都會有一定的偏差和束縛。

通過真實的 CPU 指令集,虛擬機可以根據(jù)需要增加任意類型的數(shù)據(jù)結(jié)構(gòu)或算法,可以最大限度的讓開發(fā)者寫出任何滿足要求的合約。于是我們決定大膽的嘗試使用真實的 CPU 指令集來構(gòu)造自己的虛擬機 CKB-VM。

在 CPU 指令集的選擇中,我們選擇了精簡的開源指令集 RISC-V。RISC-V 可以滿足從低功耗小型微處理器,到高性能數(shù)據(jù)中心(DC)處理器的實現(xiàn)要求,并且有著透明性、精簡性、模塊化、支持的廣泛性和成熟性的特點。這些特性都和 CKB-VM 的設(shè)計需求完美契合。那么 RISC-V 又是什么呢?

RISC-V

RISC-V 是一個清晰、簡約、開源的 CPU 指令集架構(gòu),誕生于美國加州大學(xué)伯克利分校。

2010 年,由于其他商業(yè)閉源指令集的局限性,該校的一個研究團隊在啟動一個新項目時,從零開始設(shè)計了一套全新的開源指令集。這套全新的指令集有著大量的寄存器和透明的指令執(zhí)行速度,能夠幫助編譯器和匯編語言程序員將實際的重要問題轉(zhuǎn)換為適當(dāng)、高效的代碼,并且只包含了不到 50 條指令 。這套指令集就是 RISC-V。

架構(gòu)師們在設(shè)計 RISC-V 時,就是希望 RISC-V 在所有的計算設(shè)備上都能夠有效工作。自 2010 年被發(fā)明以來,RISC-V 簡潔的設(shè)計贏得了業(yè)界和學(xué)界的廣泛支持,并且獲得了社區(qū)的喜愛。

RISC-V 基金會

RISC-V 指令集的發(fā)展主要由 RISC-V 基金會以及社區(qū)推動。RISC-V 基金會創(chuàng)立于 2015 年,是一家非營利組織,也是首個開放、協(xié)作的軟硬件創(chuàng)新者社區(qū)。

RISC-V 基金會目前已經(jīng)有超過 235 家成員,包括谷歌、高通、蘋果、IBM、特斯拉、華為等企業(yè)。成員可以參與制定并使用 RISC-V 指令集規(guī)范,并且參與相關(guān)軟、硬件生態(tài)系統(tǒng)的發(fā)展。

由于精簡、開源的設(shè)計,RISC-V 在一些學(xué)術(shù)機構(gòu)中大受歡迎,如加州大學(xué)伯克利分校、麻省理工學(xué)院、普林斯頓大學(xué)、中科院計算所等。除此之外,一些政府機構(gòu),如印度政府、上海市經(jīng)濟信息委等,也大力支持基于 RISC-V 的項目開發(fā)。

現(xiàn)有的指令集

RISC-V 是一個非常年輕的指令集,那么在此之前,主要的指令集都有哪些呢?

在 PC 時代,x86 是不可動搖的霸主,x86 是 CISC(Complex Instruction Set Computer,復(fù)雜指令集),和 RISC(Reduced Instruction Set Computer,精簡指令集)不同,CISC 指令集會隨著發(fā)展不斷增多。這樣會使得成本不斷上升,性能和功耗也會受到影響。而且,CISC 指令集長度、執(zhí)行時間都不固定,很難找出一條高效率的通用設(shè)計道路來完成指令的執(zhí)行。

智能手機普及之后,ARM 成了移動端的寵兒。ARM 是精簡指令集(RISC)有著低功耗和低成本的特性,但是,因為要保持向后兼容性,ARM 需要保留許多過時的定義,導(dǎo)致指令集冗余嚴重,這使得 ARM 架構(gòu)文檔的復(fù)雜度越來越高。

在 x86 和 ARM 壟斷的當(dāng)下,RISC-V 為市場帶來了新的生機:

精簡

經(jīng)過幾十年的發(fā)展,x86 與 ARM 的架構(gòu)文檔已經(jīng)長達數(shù)千頁,幾乎需要花掉一個工程師近一個月的閱讀時間,而閱讀 RISC-V 文檔只需要花費 1-2 天的時間。

這是因為 RISC-V 只將那些最常使用的指令集挑選出來,然后為其進行專門優(yōu)化,至于不常用的指令,則可以用幾個基礎(chǔ)指令組合的方式完成,這樣就可以大大提高效率。

舉個例子,如果我們用的是 x86,那么就必須買下一整個超市,才能享受自身需的物品;而 RISC-V 是一家可以單買的超市,顧客們只需要挑選自己所需的物品,并為此付費即可。

開源

ARM 和 x86 都是閉源項目,且授權(quán)條款極其苛刻:英特爾不允許除 AMD 和 VIA 之外的任何一家公司使用 x86 指令集;想要獲得 ARM 指令集的授權(quán)可能需要花費上千萬美元的授權(quán)費,并且會受到而且授權(quán)到期后,需要重新談判授權(quán)事宜。

RISC-V 是一個真正意義上的開源項目,被稱為硬件領(lǐng)域的 Linux。事實上,發(fā)明 RISC-V 的 David Patterson 教授、Krste Asanovic 教授、Andrew Waterman 和 Yunsup Lee 的初衷就是希望 「 Instruction Sets Want to be Free 」,全世界任何公司、大學(xué)、研究機構(gòu)與個人都可以開發(fā)兼容 RISC-V 指令集的處理器,都可以融入到基于 RISC-V 構(gòu)建的軟硬件生態(tài)系統(tǒng)。

RISC-V 使用的是 BSD License 開源協(xié)議,BSD 開源協(xié)議允許使用者修改和重新發(fā)布開源代碼,也允許基于開源代碼開發(fā)商業(yè)軟件發(fā)布和銷售。

當(dāng)區(qū)塊鏈遇見 RISC-V

RISC-V 在很多科技領(lǐng)域都得到了運用,目前,也開始在區(qū)塊鏈領(lǐng)域逐漸的得以發(fā)展。作為僅在 CPU 上驗證過的指令集架構(gòu), 將 RISC-V 應(yīng)用在區(qū)塊鏈領(lǐng)域的確是一個大膽的嘗試 ,因為它在區(qū)塊鏈項目上打造的是虛擬機,而非處理器硬件。

我們不確定這樣的嘗試能否成功,但是我們有理由相信, 基于開源的 RISC-V 打造的虛擬機,可以很好的縮短硬件和軟件行業(yè)的距離,并且?guī)砀S富的開發(fā)生態(tài)。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/24721.html

相關(guān)文章

  • 使用符合 CKB 虛擬當(dāng)前系統(tǒng)架構(gòu)真實 CPU 指令集來構(gòu)建自己虛擬

    摘要:于是我們想為什么不使用符合虛擬機當(dāng)前系統(tǒng)架構(gòu)的真實指令集來構(gòu)建自己的虛擬機這樣一來,我們不會丟失任何添加靜態(tài)驗證高級數(shù)據(jù)結(jié)構(gòu)或是加密算法的可能性,并且無論我們在中提供怎樣的數(shù)據(jù)結(jié)構(gòu)或算法,都可以最大化的靈活性。 Nervos 底層公鏈 CKB 的虛擬機(CKB-VM)是基于 RISC-V 打造的區(qū)塊鏈虛擬機。在前兩期中,我們介紹了 CKB 虛擬機的設(shè)計理念,以及基于 RISC-V 指令...

    張紅新 評論0 收藏0
  • 當(dāng)區(qū)塊遇見 RISC-V

    摘要:在區(qū)塊鏈上,虛擬機就是智能合約的運行環(huán)境,是一個可以完全對外隔離的完整計算機體系。區(qū)塊鏈通過虛擬機來調(diào)用和執(zhí)行智能合約,并要求所有節(jié)點都達成一致。當(dāng)區(qū)塊鏈遇見在很多科技領(lǐng)域都得到了運用,目前,也開始在區(qū)塊鏈領(lǐng)域逐漸的得以發(fā)展。 showImg(https://segmentfault.com/img/bVbsfi2?w=2779&h=1179); 區(qū)塊鏈的出現(xiàn)使得智能合約得到了更好的實...

    Tychio 評論0 收藏0
  • 區(qū)塊虛擬,WASMRISC-V 哪個更合適?

    摘要:的開發(fā)團隊分別來自等公司,標(biāo)準由組織制定,目前在以太坊下一代虛擬機以及項目中被使用。推特原文內(nèi)容摘要首先提出疑問對虛擬機用比更好表示嚴重懷疑。與此同時,選擇區(qū)塊鏈虛擬機時并不是只需要考慮高性能實現(xiàn)的難度。 showImg(https://segmentfault.com/img/bVblNDb?w=1882&h=802); Nervos 將在舊金山做一場主題為「Say Hello to...

    CocoaChina 評論0 收藏0
  • 追求極致設(shè)計理念!用 RISC-V 從頭設(shè)計 CKB 虛擬

    摘要:目前,比特幣使用的是來進行交易簽名,并且在共識協(xié)議中使用了哈希算法。盡管的實現(xiàn)提供的是最流行的加密算法,但我們鼓勵社區(qū)提供更優(yōu)化的加密算法實現(xiàn)以減少運行時開銷。 Nervos 底層公鏈 CKB 的虛擬機(CKB-VM)是基于 RISC-V 指令集打造的區(qū)塊鏈虛擬機。在上一堂分享中,我們簡單介紹了區(qū)塊鏈虛擬機,以及我們理想中的區(qū)塊鏈虛擬機的樣子。在本篇文章中,CKB-VM 設(shè)計者將詳細的...

    he_xd 評論0 收藏0
  • Hello CKB!

    摘要:模塊鏈的共識配置,該配置會寫入創(chuàng)世塊。主要指責(zé)是記錄和更新本地累計工作量最高的鏈,并維護鏈上數(shù)據(jù)的索引。消息使用序列化。協(xié)議是節(jié)點之間用來處理廣播和轉(zhuǎn)發(fā)新的交易。 by Nervos CKB Team 在 2017 年底,我們感到心里的一些想法,包括分層的網(wǎng)絡(luò)以及一個作為共同知識庫(Common Knowledge Base)的區(qū)塊鏈,都已經(jīng)成熟。因此 2018 年元旦一過我們就迫不及...

    Kerr1Gan 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<