www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 物聯(lián)網(wǎng) > 區(qū)塊鏈
[導(dǎo)讀] EOS-VM是EOS.IO成為通用區(qū)塊鏈協(xié)議的重要基石,同時(shí)超越了EOS.IO自身,將會(huì)成為事實(shí)上的區(qū)塊鏈虛擬機(jī)技術(shù)標(biāo)準(zhǔn),甚至?xí)⒁蕴缓筒ㄉ性谄鸩诫A段的虛擬機(jī)開(kāi)發(fā)扼殺在襁褓中。 0、

EOS-VM是EOS.IO成為通用區(qū)塊鏈協(xié)議的重要基石,同時(shí)超越了EOS.IO自身,將會(huì)成為事實(shí)上的區(qū)塊鏈虛擬機(jī)技術(shù)標(biāo)準(zhǔn),甚至?xí)⒁蕴缓筒ㄉ性谄鸩诫A段的虛擬機(jī)開(kāi)發(fā)扼殺在襁褓中。

0、前言

EOS.IO開(kāi)發(fā)團(tuán)隊(duì) Block.One于2019年6月1日發(fā)布了全新的EOS-VM。

EOS原力團(tuán)隊(duì)在經(jīng)過(guò)大規(guī)模測(cè)試后認(rèn)為,EOS-VM 將成為區(qū)塊鏈行業(yè)使用率最高的 VM,也將率先成為區(qū)塊鏈行業(yè) VM 的事實(shí)標(biāo)準(zhǔn)。

我們?cè)凇禘OS.IO 將迎來(lái)史上最復(fù)雜硬分叉升級(jí)》一文中曾經(jīng)講過(guò),多個(gè)重要的分支都在積極開(kāi)發(fā)中,而 EOS-VM 就是一個(gè)重要性不亞于 1.8.0 的分支。該分支從 2018 年 7 月份就開(kāi)始了,從提交記錄上來(lái)看,早期的 EOS-VM 并沒(méi)有特別緊湊的開(kāi)發(fā)計(jì)劃。然而從 2019 年開(kāi)始,經(jīng)過(guò)了一系列密集的開(kāi)發(fā),初步完成了今天我們所看到的 EOS-VM 項(xiàng)目。

如果說(shuō) EOSIO1.8.0 版本讓我們看到了 Block.one 在 EOS.IO 上的決心,那么 EOS-VM 可以讓我們一窺 Block.one 在區(qū)塊鏈行業(yè)的野心。

1、什么是VM

VM全稱為Virtual Machine,在區(qū)塊鏈語(yǔ)境下可以理解為智能合約的運(yùn)行環(huán)境。

我們可以將智能合約類比于互聯(lián)網(wǎng)中的 HTML,區(qū)塊鏈系統(tǒng)可以看作操作系統(tǒng),那么 VM 則是瀏覽器,各種基于智能合約的 DAPP 就是互聯(lián)網(wǎng)中的各種網(wǎng)站。

以太坊完成了區(qū)塊鏈系統(tǒng)中首個(gè)系統(tǒng)的智能合約支持,其 EVM 虛擬機(jī)也是早期智能合約開(kāi)發(fā)者的主流開(kāi)發(fā)環(huán)境,同時(shí)有非常多的項(xiàng)目都借鑒了以太坊的 VM,如 TRX 的 TVM。

但是 EVM 有其局限性,虛擬機(jī)效率相對(duì)成熟的虛擬機(jī)系統(tǒng)來(lái)說(shuō)極其低下,難以支持更加復(fù)雜的應(yīng)用和環(huán)境。

成熟的虛擬機(jī)系統(tǒng)是一個(gè)由一系列龐大的項(xiàng)目構(gòu)成的體系,事實(shí)上,在目前的環(huán)境下,從零開(kāi)始實(shí)現(xiàn)一個(gè)完整成熟的虛擬機(jī)系統(tǒng)是非常困難的,同時(shí)也是沒(méi)有必要的,因?yàn)閷?duì)于這樣一個(gè)龐大的工程項(xiàng)目,從零開(kāi)始意味著開(kāi)發(fā)者和社區(qū)要承受大量的兼容和學(xué)習(xí)成本,最好的方式是基于現(xiàn)有成熟的虛擬機(jī)標(biāo)準(zhǔn)來(lái)開(kāi)發(fā)適用于區(qū)塊鏈項(xiàng)目的虛擬機(jī)實(shí)現(xiàn)。

因此,大多數(shù)區(qū)塊鏈項(xiàng)目都選擇使用現(xiàn)有成熟的虛擬機(jī)實(shí)現(xiàn),目前可以說(shuō)最適合的莫過(guò)于 WebAssembly 虛擬機(jī),除了 EOS.IO 之外,polkadot 也選擇基于 WebAssembly,而以太坊也在開(kāi)發(fā)基于 WebAssembly 的 ewasm 項(xiàng)目。

對(duì)于區(qū)塊鏈領(lǐng)域來(lái)說(shuō) , 無(wú)論是不是「The Lesser Evil」,WebAssembly 已經(jīng)成為非常重要的一部分了。

作為一個(gè)高性能的去中心化智能合約平臺(tái),EOSIO 中所使用的虛擬機(jī)實(shí)現(xiàn)是整個(gè)項(xiàng)目中非常重要的一部分,在閱讀早期的 EOSIO 實(shí)現(xiàn)代碼時(shí)會(huì)發(fā)現(xiàn),在調(diào)用虛擬機(jī)時(shí),EOSIO 實(shí)現(xiàn)代碼中少有的做了很嚴(yán)格的封裝,以此來(lái)隱藏虛擬機(jī)實(shí)現(xiàn)的細(xì)節(jié),可以見(jiàn)得 EOSIO 項(xiàng)目將會(huì)在虛擬機(jī)方面做持續(xù)重大的改進(jìn) 。

// EOSIO chain 實(shí)現(xiàn)中少有的接口封裝

class wasm_interface {

public:

enum class vm_type {

wavm,

wabt

};

。..

private:

unique_ptr《struct wasm_interface_impl》 my;

。..

};

從最早使用的 wavm 虛擬機(jī),到后面支持的 wabt 虛擬機(jī),Block.one 團(tuán)隊(duì)一直在改進(jìn)虛擬機(jī)的支持,也在為多虛擬機(jī)兼容作準(zhǔn)備,最終 EOSIO 發(fā)起了更高的挑戰(zhàn),開(kāi)發(fā)出了全新的 EOS-VM,最為 EOSIO 使用的虛擬機(jī)實(shí)現(xiàn)。

如果說(shuō) EVM 是一個(gè)區(qū)塊鏈虛擬機(jī)的話,那么 EOS-VM 則會(huì)是第一個(gè)可大規(guī)模商用的虛擬機(jī)。

2、EOS-VM 是什么

我們先來(lái)看看 EOS-VM 到底是什么,EOS-VM 是一個(gè)區(qū)塊鏈系統(tǒng)專用的 wasm 運(yùn)行時(shí)。

在區(qū)塊鏈系統(tǒng)中,合約代碼會(huì)被編譯成字節(jié)碼的形式,這些字節(jié)碼不能直接在操作系統(tǒng)上運(yùn)行,需要一個(gè)執(zhí)行器來(lái)執(zhí)行這些合約,在軟件體系中,可以把這些執(zhí)行器視為一個(gè)抽象的「機(jī)器」,EOS-VM 就是這樣一個(gè)執(zhí)行器。

EOS-VM 主要做四件事:

首先 ,EOS-VM 負(fù)責(zé)加載和解析編譯后的智能合約字節(jié)碼,也就是 wasm;

其次,EOS-VM 負(fù)責(zé)在字節(jié)碼運(yùn)行過(guò)程中為其分配資源,當(dāng)然對(duì)于智能合約來(lái)說(shuō),可用的資源就是內(nèi)存;

再次,EOS-VM 負(fù)責(zé)向智能合約的字節(jié)碼提供虛擬機(jī)外的 API 調(diào)用功能;

最后,EOS-VM 負(fù)責(zé)執(zhí)行字節(jié)碼來(lái)計(jì)算智能合約運(yùn)行的結(jié)果。

在 EOS-VM 中 eosio::vm::backend 類是整個(gè)虛擬機(jī)系統(tǒng)調(diào)用的入口,在 tools 目錄下有兩個(gè)使用 EOS-VM 虛擬機(jī)的測(cè)試工具,想要詳細(xì)了解 EOS-VM 實(shí)現(xiàn)的讀者可以通過(guò)這些作為入口來(lái)閱讀 EOS-VM 的代碼。

int main(int argc,char**argv) {

。..

// 設(shè)置看門狗 , 限制運(yùn)行時(shí)間為秒

watchdog《std::chrono::nanoseconds》 wd;

wd.set_duration(std::chrono::seconds(3));

try {

。..

// 加載 wasm 字節(jié)碼

auto code = backend_t::read_wasm( argv[1] );

// 創(chuàng)建執(zhí)行環(huán)境

backend_t bkend( code );

wd.set_callback([&](){

bkend.get_context().exit();

});

。..

// 執(zhí)行

bkend.execute_all(&wd);

} catch ( 。.. ) {

}

return 0;}

這里說(shuō)的 EOS-VM 的主要工作,但如果只是這些的話,那其實(shí)和 wavm、wabt 沒(méi)什么區(qū)別了,在完成基本的必要工作之外,EOS-VM 針對(duì)區(qū)塊鏈應(yīng)用場(chǎng)景做了一些重要的改進(jìn)和優(yōu)化,下面我們來(lái)結(jié)合 EOS-VM 的介紹文檔以及代碼實(shí)現(xiàn)來(lái)看看 EOS-VM 有哪些重要的改進(jìn)。

3、EOS-VM 有哪些重要的改進(jìn)

EOS-VM 針對(duì)區(qū)塊鏈應(yīng)用場(chǎng)景作了很多的改進(jìn),這些改進(jìn)對(duì)于智能合約開(kāi)發(fā)者來(lái)說(shuō)是最好的禮物。

下面我們先結(jié)合 EOS-VM README 文檔看看有哪些改進(jìn),再結(jié)合現(xiàn)有的 EOS-VM 代碼具體看一下 EOS-VM 是如果做到的。

在早期 EOS-VM 的 README 中 ,Block.one 列舉了以下的改進(jìn) :

1. SaTIsfying the needs of a blockchain.

2. Security built into the framework.

3. Performance centric design.

4. Light weight and easy to integrate soluTIon.

5. Effortless extendability.

目前的 README 中改為了對(duì)于非開(kāi)發(fā)者更加易懂的描述 :

· Extremely Fast ExecuTIon (6x faster than WABT)

· Extremely Fast Parsing/Loading (20x faster than WABT)

· Efficient TIme Bound Execution

· Deterministic Execution (Soft Float & Hardware Floating Point options)

· Standards Compliant

· Designed for Parallel Execution

· C++ / Header Only

· Simple API for integrating Native Calls

我們來(lái)逐條分析 :

3.1 滿足區(qū)塊鏈場(chǎng)景下的需求

首先 Block.one 對(duì) EOS-VM 的定位是「A VM for Blockchain」,這意味著 EOS-VM 中在 WebAssembly 的基礎(chǔ)上添加了很多區(qū)塊鏈所需的特定功能。

目前主要是三方面:

首先是浮點(diǎn)數(shù)的支持。對(duì)于浮點(diǎn)數(shù),很多開(kāi)發(fā)者往往片面的認(rèn)為其運(yùn)算是不精確的,無(wú)法用于區(qū)塊鏈系統(tǒng)。實(shí)際上并非如此,只是對(duì)于一些不同的硬件中,因?yàn)楦鞣N各樣的歷史原因,硬件中固化的浮點(diǎn)數(shù)運(yùn)算有一些差異,解決這一點(diǎn)最好的方式是使用 softfloat 庫(kù),不使用機(jī)器硬件提供的浮點(diǎn)數(shù),這樣不同的硬件機(jī)器上,浮點(diǎn)數(shù)運(yùn)算的結(jié)果都是相同的了。當(dāng)然這里 Block.one 也提到,如果不在乎所有平臺(tái)上保持浮點(diǎn)數(shù)運(yùn)算的確定性,則可以使用基于硬件的浮點(diǎn)數(shù)運(yùn)算,這樣效率會(huì)比使用 softfloat 快很多,這種情況一般是節(jié)點(diǎn)硬件機(jī)器會(huì)保持統(tǒng)一的狀態(tài)下使用的。

在 EOSIO 中其實(shí)也集成了 softfloat 庫(kù),但是之前的實(shí)現(xiàn)是在鏈中嵌入的,原生的虛擬機(jī)中本身不支持,現(xiàn)在并入虛擬機(jī)實(shí)現(xiàn),可以降低其他區(qū)塊鏈?zhǔn)褂?EOS-VM 時(shí)的開(kāi)發(fā)成本。

其次是 EOS-VM 增加了 watchdog 機(jī)制以確保運(yùn)行字節(jié)碼的運(yùn)行時(shí)間限制,這個(gè)類似看門狗的機(jī)制,會(huì)在細(xì)粒度上對(duì)合約進(jìn)行資源使用限制。

這一點(diǎn)很重要 , 以至于后期的介紹文檔中要單獨(dú)分出一節(jié)來(lái)描述。

如果看過(guò) EOS 現(xiàn)在的代碼,會(huì)發(fā)現(xiàn)有很多大量雜亂的代碼在處理合約執(zhí)行超時(shí)的問(wèn)題,對(duì)于一個(gè)圖靈完備的智能合約來(lái)說(shuō),最大的困難在于我們?nèi)绻粓?zhí)行一遍其合約,就無(wú)法知道其執(zhí)行消耗,所以 EOS 中需要邊執(zhí)行智能合約邊判定其消耗時(shí)間,對(duì)于 EOS 鏈的環(huán)境來(lái)說(shuō) VM 是個(gè)黑盒,所以如果在 VM 外來(lái)進(jìn)行合約執(zhí)行時(shí)間判定的話就會(huì)非常困難,而 EOS-VM 在這方面提供了內(nèi)置支持,相關(guān)的實(shí)現(xiàn)就會(huì)非常簡(jiǎn)單,也會(huì)避免這方面出現(xiàn)的問(wèn)題。

最后是一些虛擬機(jī)執(zhí)行時(shí)的邊界限制,這些邊界限制乍看上去是一些功能的限制,但是在區(qū)塊鏈應(yīng)用場(chǎng)景下,這些限制不會(huì)帶來(lái)實(shí)際功能的限制,反而基于這些斷言,EOS-VM 可以得到極大的優(yōu)化。

3.2 內(nèi)置的安全性支持

支持智能合約的區(qū)塊鏈系統(tǒng)可以視作一臺(tái)公用的計(jì)算機(jī),而公用意味著必須對(duì)使用者進(jìn)行限制。如果使用者可以毫無(wú)限制的運(yùn)行自己的代碼,那么會(huì)帶來(lái)很大的安全性問(wèn)題,對(duì)于公鏈來(lái)說(shuō),這是不能接受的。

這里的安全性問(wèn)題主要是兩方面:代碼行為的安全性和代碼消耗的有界性。

首先,EOS-VM 通過(guò)內(nèi)置類型來(lái)保證類型的安全性,并且通過(guò)可選的分配器來(lái)使用系統(tǒng)提供的機(jī)制來(lái)保證沙箱性。

另外,上文提到的 watchdog 機(jī)制以確保運(yùn)行字節(jié)碼的運(yùn)行時(shí)間限制。對(duì)于公鏈來(lái)說(shuō),如果沒(méi)有有效的機(jī)制,這一點(diǎn)往往會(huì)引起公鏈的安全問(wèn)題。EOSIO 之前就出現(xiàn)過(guò)基于延遲交易引發(fā)的阻塞攻擊問(wèn)題,這個(gè)問(wèn)題本質(zhì)上就是沒(méi)有有效細(xì)致的界定資源使用的問(wèn)題。相應(yīng)的以太坊也多次出現(xiàn)類似的問(wèn)題,以太坊早期的數(shù)次硬分叉都是為了解決這類問(wèn)題。

最后,EOS-VM 在任何時(shí)候都不會(huì)觸發(fā)無(wú)限制的遞歸或循環(huán),嚴(yán)格限制某些 WASM 有意或者無(wú)意導(dǎo)致的崩潰或無(wú)限掛起機(jī)器的情況。

這些內(nèi)置的安全性支持將會(huì)大大提高鏈的安全性,同時(shí)也會(huì)提供一個(gè)可控的安全性保證。

3.3 面向高性能的設(shè)計(jì)

在很多時(shí)候,特化就是最好的優(yōu)化。

實(shí)際上,如果完全兼容 WebAssembly,那么 EOS-VM 優(yōu)化的空間并不大。但是對(duì)于區(qū)塊鏈的需求場(chǎng)景,很多 WebAssembly 的設(shè)計(jì)并不需要,EOS-VM 基于這一點(diǎn)做了大量的特化,同時(shí)意味著性能上,EOS-VM 也得到了非常大幅度的優(yōu)化。

EOS-VM 性能主要得益于對(duì)其內(nèi)置化的類型的優(yōu)化,EOS-VM 內(nèi)置了絕大多數(shù)合約需要的數(shù)據(jù)類型,對(duì)于這些類型 EOS-VM 就可以對(duì)其一一優(yōu)化,特別是 variant,這個(gè)類型其實(shí)并不是一個(gè)原生的功能。如果直接使用類似 union 的話,會(huì)造成很大的類型安全問(wèn)題,使用 variant,雖然在實(shí)現(xiàn)時(shí)得到了很好的安全性和易用性保證。但是如果不將其集成入虛擬機(jī)層,那么其復(fù)雜的實(shí)現(xiàn)會(huì)帶來(lái)很大的性能損耗。

類似的還有 vector,如果閱讀現(xiàn)在的 EOS 系統(tǒng)合約,會(huì)發(fā)現(xiàn)大量使用了 vector,誠(chéng)然對(duì)于合約設(shè)計(jì)來(lái)說(shuō),使用 vector 是非常便捷的,但是很多對(duì)性能特別敏感的開(kāi)發(fā)者可能會(huì)對(duì)此感到非常「不安」,如今 VM 直接集成 vector,可以料想后續(xù)這些開(kāi)發(fā)者就可以「更愉快的」使用 vector 了。

現(xiàn)在的 EOS 合約開(kāi)發(fā)需要依賴一個(gè)規(guī)模不算小的基礎(chǔ)庫(kù),這意味著每個(gè)使用這些基礎(chǔ)功能的合約都要集成其實(shí)現(xiàn)代碼,將大量的基礎(chǔ)庫(kù)代碼帶入 wasm 層,如今 EOS-VM 在虛擬機(jī)的實(shí)現(xiàn)層植入這些基礎(chǔ)類型,性能優(yōu)化空間自然得到很大提高。

3.4 輕量級(jí)易于植入的架構(gòu)

EOS-VM 是純頭文件的,這意味著 EOS-VM 可以被嵌入進(jìn)幾乎所有的 C++項(xiàng)目中。

同時(shí),EOS-VM 在設(shè)計(jì)做了特別的處理,使得 EOS-VM 可以很好的適應(yīng)多線程環(huán)境,C++多線程編程一度是個(gè)「深坑」,構(gòu)建一個(gè)可以在并發(fā)環(huán)境下安全運(yùn)行的庫(kù)很多時(shí)候需要避免很多問(wèn)題,EOS-VM 在這個(gè)問(wèn)題上做了很多準(zhǔn)備,可以避免重蹈像 std::string 在多線程環(huán)境下那樣的「覆轍」。

純頭文件的優(yōu)勢(shì)還有很多,在這個(gè)方面 EOS-VM 已經(jīng)很像在很多方面得到廣泛應(yīng)用的 LUA,后者同樣以輕量級(jí)的運(yùn)行時(shí)著稱,可以預(yù)見(jiàn),未來(lái)會(huì)有更多的非 EOS 甚至非區(qū)塊鏈項(xiàng)目使用 EOS-VM。

3.5 高度可擴(kuò)展性

EOS-VM 擁有一套精細(xì)設(shè)計(jì)的結(jié)構(gòu),從某些方面上來(lái)講,EOS-VM 要比 EOSIO 的代碼結(jié)構(gòu)好得多。

EOS-VM 的設(shè)計(jì)中充分考慮了其拓展性,對(duì)于一個(gè) VM 來(lái)說(shuō)其主干結(jié)構(gòu)幾乎沒(méi)有什么需要拓展和修改的地方,因?yàn)槠涔δ芫褪巧厦嫣岬降乃募隆?/p>

但是對(duì)于不同的應(yīng)用場(chǎng)景,其字節(jié)碼格式和功能必然需要拓展和修改,EOS-VM 在響應(yīng)的地方都做了設(shè)計(jì),其中深度應(yīng)用了 visitor 模式,使得在不改變類架構(gòu)的前提下也可以很容易的為整個(gè) VM 添加功能。

在很多人眼里,一個(gè)良好的架構(gòu)似乎沒(méi)有什么作用,畢竟你并不能把「架構(gòu)良好」看作一個(gè)「前無(wú)古人」的新特性,但是對(duì)于項(xiàng)目開(kāi)發(fā)而言,良好的架構(gòu)會(huì)決定著整個(gè)項(xiàng)目后續(xù)的潛力。

總的來(lái)說(shuō),閱讀現(xiàn)在的 EOS-VM 項(xiàng)目,會(huì)有一種類似 lua 或者 redis 項(xiàng)目的感覺(jué),整個(gè)項(xiàng)目規(guī)模不大,結(jié)構(gòu)緊湊,代碼很干凈。

雖然大量使用 C++特性會(huì)讓一些初學(xué)者感到困惑,但并不會(huì)影響到對(duì)功能的理解,我們認(rèn)為 EOS-VM 在未來(lái)將會(huì)在更廣泛的領(lǐng)域中發(fā)揮更大的作用。

4、EOS-VM 對(duì) EOSIO 生態(tài)的影響

EOSIO 作為一個(gè)開(kāi)源軟件,社區(qū)基于 EOSIO 啟動(dòng)了不同功能和治理理念的 EOS 網(wǎng)絡(luò)、EOS、EOS 原力、ENU、Telos、worbli,BOS 等網(wǎng)絡(luò)均在 Block.one 的技術(shù)支持下發(fā)展,而本次 VM 的改革將使得所有基于 EOSIO 啟動(dòng)的公有鏈?zhǔn)芤妗?/p>

從現(xiàn)有的實(shí)現(xiàn)來(lái)看,EOS-VM 將會(huì)盡量與當(dāng)前 EOSIO 虛擬機(jī)實(shí)現(xiàn)保持兼容,出現(xiàn)不兼容的地方,也可以基于 abi 中的 version 來(lái)進(jìn)行區(qū)別。未來(lái)即使出現(xiàn)大量和 EOS 原力一樣對(duì) EOSIO 底層代碼進(jìn)行了大量改進(jìn)的區(qū)塊鏈,也可以輕松兼容。

未來(lái)一段時(shí)間之內(nèi),基于 EOSIO 鏈的公鏈的開(kāi)發(fā)者可以集成 EOS-VM 到鏈中,同時(shí)保持原有 wasm 支持。

引入 EOS-VM 可以為鏈帶來(lái)很多好處和影響。

4.1 節(jié)約用戶資源消耗

如上文所述,使用 EOS-VM 可以提升鏈的性能,用戶使用基于 EOS-VM 運(yùn)行的智能合約可以節(jié)省大量的鏈上資源消耗。

在基于 EOSIO 的公鏈中往往主要有三類資源:CPU、NET 和 RAM,CPU 主要由合約運(yùn)行消耗的實(shí)際時(shí)間來(lái)結(jié)算,NET 主要與交易的大小相關(guān),而 RAM 主要是基于合約帶來(lái)的狀態(tài)變換所使用的內(nèi)存大小來(lái)決定的。

其中,現(xiàn)階段 EOS-VM 主要將會(huì)節(jié)省用戶 CPU 資源,這方面也是現(xiàn)在 EOSIO 網(wǎng)絡(luò)主要的資源限制,對(duì)于 EOSIO 網(wǎng)絡(luò)來(lái)說(shuō),NET 資源消耗往往固定,而 RAM 可以通過(guò)不斷的增發(fā)來(lái)激勵(lì)節(jié)點(diǎn)升級(jí),這樣就可以在網(wǎng)絡(luò)上增加 RAM 的供給。

從硬件的角度來(lái)說(shuō),目前的服務(wù)器性能所支持的 RAM 升級(jí)空間還是非常寬裕的,但是對(duì)于 CPU,目前的限制很大,正如 BM 在電報(bào)群中所發(fā)的「牢騷」,英特爾并沒(méi)有給 EOS 造出 100 太赫茲的 CPU,當(dāng)然這只是開(kāi)的玩笑,但是確實(shí)當(dāng)前服務(wù)器 CPU 性能限制還是比較大的,對(duì)于服務(wù)器來(lái)說(shuō),近幾年主要是并行計(jì)算能力的提高,單核性能雖然也得到了一定程度上的提升,但依然顯得不足。

為 EOSIO 添加并行計(jì)算支持是一個(gè)比較長(zhǎng)的過(guò)程,即使 EOSIO 可以支持并行計(jì)算,也會(huì)受單核計(jì)算性能限制,因?yàn)閷?duì)于合約來(lái)說(shuō),其計(jì)算過(guò)程依然是單線程的,提升虛擬機(jī)效率,對(duì)基于 EOSIO 的鏈來(lái)說(shuō)非常有用。

4.2 使得鏈具有更強(qiáng)的拓展性

EOS-VM 無(wú)論是代碼還是架構(gòu)都十分簡(jiǎn)介明了,為了保持簡(jiǎn)單和純頭文件化,Block.one 甚至沒(méi)有引入其「祖?zhèn)鳌沟?fc 庫(kù),多數(shù)開(kāi)發(fā)者只要簡(jiǎn)單了解一下 wasm 字節(jié)碼的定義文檔,就可以沒(méi)有障礙的閱讀和理解 EOS-VM 的設(shè)計(jì)和代碼。

這樣,開(kāi)發(fā)者可以很簡(jiǎn)單的在 EOS-VM 的基礎(chǔ)之上進(jìn)行二次開(kāi)發(fā),尤其對(duì)于一些基于 EOSIO 技術(shù)的鏈,開(kāi)發(fā)者可以簡(jiǎn)單的添加新的類型以滿足特定鏈的特殊需求。

4.3 更簡(jiǎn)單的開(kāi)發(fā)外圍工具

EOS-VM 是純頭文件的,這意味著 EOS-VM 可以被嵌入進(jìn)幾乎所有的 C++項(xiàng)目中,而且通過(guò)簡(jiǎn)單的處理,EOS-VM 也可以被基于其他語(yǔ)言開(kāi)發(fā)的項(xiàng)目中。

如 EOS-VM 中 tools 中的 interp,只需要不到 100 行代碼就可以構(gòu)建起 EOS-VM 的運(yùn)行時(shí)環(huán)境,這樣對(duì)于開(kāi)發(fā)用于開(kāi)發(fā) EOSIO 合約的工具非常有用。

很多 EOS 合約開(kāi)發(fā)的初學(xué)者都會(huì)想要調(diào)試合約代碼,在以往這是幾乎不可能的,雖然新版的 cdt 中也提供了一個(gè) native lib,但是這樣也無(wú)法完美的模擬合約的運(yùn)行環(huán)境。

雖然「好的代碼不是調(diào)出來(lái)的」,但是缺乏一個(gè)調(diào)試環(huán)境也會(huì)帶來(lái)一些麻煩。另一方面,我們也要考慮合約運(yùn)行時(shí)與現(xiàn)有開(kāi)發(fā)工具的集成問(wèn)題,而 EOS-VM 可以很好的滿足這一點(diǎn)。

通過(guò) EOS-VM,未來(lái) EOSIO 開(kāi)發(fā)生態(tài)將會(huì)更加完善,開(kāi)發(fā)效率將會(huì)大幅提高。

5、EOSIO 正在向真正的協(xié)議演進(jìn)

不知不覺(jué)中,EOSIO 的官網(wǎng) slogan 已經(jīng)從「最強(qiáng)大的去中心化應(yīng)用平臺(tái)」改為「build on chang,build on EOSIO」。同樣在 EOS-VM 的設(shè)計(jì)中,開(kāi)發(fā)者已經(jīng)無(wú)法明顯感受到 EOSIO 和 DPOS 共識(shí)機(jī)制的存在,EOS-VM 的設(shè)計(jì)非常獨(dú)立。

如果一直關(guān)注 EOSIO 發(fā)展的話,會(huì)發(fā)現(xiàn) EOSIO 的合約層在逐漸的去 EOSIO 化,從像 eosio_assert 改為 check 這樣的改名,到 cdt 中完全去除 capi 的調(diào)用這樣的重構(gòu),目前的 EOS 合約開(kāi)發(fā)中,開(kāi)發(fā)者會(huì)越來(lái)越少的碰到「EOS」。

一個(gè)典型的例子就是不同 EOSIO 姊妹鏈間的合約移植,現(xiàn)在基于 cdt 的合約在不同的項(xiàng)目間的差別已經(jīng)越來(lái)越少,早期社區(qū)曾經(jīng)對(duì)像 enu 這樣由于大量不必要的改名所引發(fā)的不兼容表示非常困擾,但現(xiàn)在如果使用 cdt 工具,開(kāi)發(fā)者幾乎感受不到 enu 改名所帶來(lái)的不兼容。

這一切都在意味著 EOSIO 正在向真正的協(xié)議演進(jìn)。

Block.one 團(tuán)隊(duì)在早期并不像其他項(xiàng)目一樣,急于構(gòu)建抽象的協(xié)議和形式化的黃皮書(shū),而是以非常務(wù)實(shí)的態(tài)度進(jìn)行 EOS 的開(kāi)發(fā),這也在一定方面上使得 EOSIO 這一公鏈的主網(wǎng)啟動(dòng)要遠(yuǎn)遠(yuǎn)早于其他的「第三代」區(qū)塊鏈項(xiàng)目。

我們認(rèn)為 Block.one 團(tuán)隊(duì)不會(huì)一直在「埋頭造車」, 而是采用自底向上的思路,不斷的發(fā)展 EOSIO 生態(tài),使其向真正的協(xié)議演進(jìn),最終成為一個(gè)極具競(jìng)爭(zhēng)力的區(qū)塊鏈協(xié)議事實(shí)標(biāo)準(zhǔn)。

6、Block.one 打響區(qū)塊鏈標(biāo)準(zhǔn)之爭(zhēng)的第一槍

長(zhǎng)久以來(lái),任何一個(gè)軟件的細(xì)分領(lǐng)域都在謀求技術(shù)標(biāo)準(zhǔn)的整合和統(tǒng)一,這樣的統(tǒng)一并非是由中心話組織去強(qiáng)制推行,而是通過(guò)軟件本身逐漸得到主流市場(chǎng)的認(rèn)可,最后成為事實(shí)上的技術(shù)標(biāo)準(zhǔn)。

而在區(qū)塊鏈 VM 領(lǐng)域,舊的虛擬機(jī)如 EVM 性能低下,單一功能的虛擬機(jī)無(wú)法承載復(fù)雜的智能合約,基于通用設(shè)計(jì)虛擬機(jī)將會(huì)成為未來(lái)主流區(qū)塊鏈項(xiàng)目的必需品,而這樣的區(qū)塊鏈項(xiàng)目目前唯一可選的只有 EOS-VM,EOS-VM 領(lǐng)跑行業(yè)一年多,將會(huì)成為最好的智能合約運(yùn)行環(huán)境的標(biāo)準(zhǔn),其行業(yè)地位將會(huì)類似于 ARM 在手機(jī)芯片行業(yè)的地位,甚至未來(lái) ETH 的智能合約有望在 EOS-VM 上運(yùn)行。

甚至我們也可以大膽的假設(shè),EOS-VM 不會(huì)限于區(qū)塊鏈行業(yè),由于其優(yōu)異的設(shè)計(jì)和實(shí)現(xiàn),甚至?xí)挥糜谙裼螒蛞妗?u>數(shù)據(jù)庫(kù)、Web 框架這樣的傳統(tǒng)軟件開(kāi)發(fā)領(lǐng)域。

7、加密社區(qū)的開(kāi)源與技術(shù)標(biāo)準(zhǔn)壟斷

我們都知道,Block.one 在向社區(qū)募資時(shí)一直強(qiáng)調(diào)自己是一個(gè)開(kāi)源組織,所募集的錢也均要用于開(kāi)發(fā)開(kāi)源的 EOSIO 軟件回饋社區(qū),也為加密經(jīng)濟(jì)社區(qū)帶來(lái)了大量的貢獻(xiàn)。

但 EOS-VM 與 Block.one 以往任何一個(gè)開(kāi)源項(xiàng)目都不同 ,Block.one 罕見(jiàn)地對(duì) EOS-VM 項(xiàng)目保留了其權(quán)利 , 這意味著這個(gè)項(xiàng)目不會(huì)像其他開(kāi)源庫(kù)一樣僅僅是一個(gè)開(kāi)源庫(kù)。保留權(quán)利這一動(dòng)作與其募資時(shí)純粹的開(kāi)源組織定位產(chǎn)生了一定的偏差,甚至可能會(huì)通過(guò)商業(yè)性質(zhì)的授權(quán)來(lái)限制其使用場(chǎng)景。

與傳統(tǒng)互聯(lián)網(wǎng)行業(yè)不同,加密經(jīng)濟(jì)的大部分技術(shù)都是開(kāi)源的,無(wú)論是擴(kuò)容之爭(zhēng)和治理理念之爭(zhēng)均未涉及到技術(shù)標(biāo)準(zhǔn)層面,在開(kāi)源的加密經(jīng)濟(jì)市場(chǎng)中出現(xiàn)一個(gè)志在壟斷的 VM 將帶來(lái)什么樣的影響,我們拭目以待。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉