上海2018年11月14日電 /美通社/ -- 近日,專(zhuān)注于物聯(lián)網(wǎng)領(lǐng)域的公有鏈項(xiàng)目 Ruff Chain 正式對(duì)外發(fā)布業(yè)內(nèi)首款支持JavaScript 編程語(yǔ)言開(kāi)發(fā) DApp 的輕量可嵌入虛擬機(jī) Ruff VM。
Ruff VM 旨在提供一個(gè)通用統(tǒng)一的區(qū)塊鏈 DApp 運(yùn)行時(shí),幫助開(kāi)發(fā)者通過(guò)友好的編程語(yǔ)言 JavaScript 開(kāi)發(fā) DApp。同時(shí) Ruff VM 為區(qū)塊鏈開(kāi)發(fā)者提供了模塊內(nèi)置、插件機(jī)制等機(jī)制,以根據(jù)他們的需求自定義 DApp 運(yùn)行時(shí)。而對(duì)于開(kāi)發(fā)者來(lái)說(shuō),較大的價(jià)值是他們可以把自己開(kāi)發(fā)的 DApp 輕松順利的移植到不同的區(qū)塊鏈平臺(tái)。
傳統(tǒng)虛擬機(jī)與區(qū)塊鏈虛擬機(jī)的演進(jìn)歷史
隨著計(jì)算機(jī)在應(yīng)用軟件領(lǐng)域的高速發(fā)展,迫切地需要一種技術(shù)來(lái)彌合不同操作系統(tǒng)的差異,減少應(yīng)用移植的成本。Java 虛擬機(jī)是在上個(gè)世紀(jì)80-90年代出現(xiàn)的能將 Windows、Unix 等底層的操作系統(tǒng)全部統(tǒng)一起來(lái)的先行者,帶來(lái)的好處就是開(kāi)發(fā)者不再針對(duì)性地為各種操作系統(tǒng)編寫(xiě)代碼:一旦使用 Java 來(lái)開(kāi)發(fā)程序,就可以跨操作系統(tǒng)地部署運(yùn)行。
區(qū)塊鏈領(lǐng)域面臨著類(lèi)似的困境,其中最顯著的問(wèn)題在于不同的軟硬件環(huán)境對(duì)計(jì)算結(jié)果的表達(dá)并不一致,而區(qū)塊鏈的共識(shí)機(jī)制要求所有人的計(jì)算結(jié)果必須完全一致。因此在目前的區(qū)塊鏈行業(yè)中,已經(jīng)有眾多區(qū)塊鏈平臺(tái)推出了各自不同的區(qū)塊鏈虛擬機(jī),例如以太坊的 EVM(包括智能合約運(yùn)行環(huán)境和官方語(yǔ)言 Solidity 等),以及 EOS 的 WASM 等,其主要目的就是為了實(shí)現(xiàn)智能合約代碼的一致性。
一般來(lái)說(shuō),虛擬機(jī)技術(shù)會(huì)通過(guò)專(zhuān)屬的編程語(yǔ)言對(duì)底層設(shè)計(jì)進(jìn)行二次抽象,讓開(kāi)發(fā)者在虛擬機(jī)里直接進(jìn)行代碼開(kāi)發(fā)。這種嚴(yán)格隔離底層設(shè)施與應(yīng)用開(kāi)發(fā)環(huán)境的技術(shù)既給應(yīng)用開(kāi)發(fā)帶來(lái)了足夠的便利,又為維護(hù)硬件或基礎(chǔ)環(huán)境的穩(wěn)定性提供了強(qiáng)大的支持。因此無(wú)論是在傳統(tǒng)應(yīng)用開(kāi)發(fā)領(lǐng)域,亦或是在區(qū)塊鏈平臺(tái)中,虛擬機(jī)都已經(jīng)成為計(jì)算機(jī)領(lǐng)域重要的基礎(chǔ)設(shè)施。
Ruff VM 基于其他區(qū)塊鏈虛擬機(jī)的優(yōu)化之處
Ruff VM 旨在降低區(qū)塊鏈開(kāi)發(fā)門(mén)檻,提升開(kāi)發(fā)體驗(yàn),為開(kāi)發(fā)者提供最友好的區(qū)塊鏈核心技術(shù)產(chǎn)品。區(qū)別于其他區(qū)塊鏈平臺(tái)的虛擬機(jī),Ruff VM 實(shí)現(xiàn)了以下三個(gè)方面的性能優(yōu)勢(shì):
通過(guò)強(qiáng)大的虛擬機(jī)技術(shù),Ruff VM 有望為區(qū)塊鏈的開(kāi)發(fā)及發(fā)展帶來(lái)更多的可能性。在未來(lái)的路線圖中,Ruff VM 計(jì)劃對(duì)更多的底層技術(shù)加以優(yōu)化整合,并內(nèi)建跨平臺(tái)特性,讓開(kāi)發(fā)者可以更輕松地進(jìn)行智能合約的開(kāi)發(fā)和部署。
目前,Ruff VM 白皮書(shū)已正式發(fā)布,全部代碼已經(jīng)在 GitHub 開(kāi)源,網(wǎng)址鏈接:https://github.com/ruffchain/RuffVM