Screenshot_from_2022-01-04_21-44-11.png
2022-01-06
By kate

Arweave的智能合约现已支持Solidity、Rust和C

Translated by Benedict.

Original by Az

2022年1月3日,Arweave生态的去中心化交易所(DEX)Verto发布了3em,这是一个用于Arweave智能合约的多语言执行环境。

Verto长期以来一直在与3em的开发者合作,孵化项目并携手将一个想法变为现实。

3em和Arweave

3em由Andres PirelaDivy Srivastava创建,旨在帮助开发者解决在Arweave布署智能合约时所遇到的各种障碍。

智能合约的核心是包含功能的代码片断,这些功能在区块链上不可篡改。当智能合约被调用时,这段代码运行并执行这些功能,然后根据该智能合约的性质返回交易结果,也许是向另一个用户发送代币,也许是创建/铸造一个NFT。

Arweave上的智能合约标准被称为SmartWeave,由Sam Williams和其他团队成员共同创建,它使用一种称为“懒惰评估Lazy Evaluation”的方式。

传统智能合约的工作方式是,区块链上的每个节点在执行每笔交易时都要全部验证,拒绝任何虚假或恶意的交易。

懒惰评估的工作方式有所不同,且相当简单。它不需要每个节点验证全部交易,而是将验证工作留给智能合约的用户本身。当一个用户与智能合约互动时,他们会验证智能合约上所有以前的交易,然后在这些交易的末尾添加自己的交易。然后,下一个用户将再次验证所有过去的交易,包括这个此前的交易。

正如Verto交易所的创始人Tate Berenbaum在Twitter上所说的:“SmartWeave标准证明了永久数据层(permaweb)上也可以运行智能合约。”

理论上,开发者在SmartWeave上布署的合约可以使用任何编程语言。尽管如此,目前SmartWeave上的大部分协议都是用JavaScript编写的。

那么,当更多的程序员想在SmartWeave上用其他语言编写合约,或者想与以太坊上用Solidity编写的智能合约交互时,怎么办?

那就需要某种形式的通用“翻译器”,让所有这些用不同编程语言编写的合约和协议进行通信 — — 这正是3em所解决的问题。

3em是一个编程执行环境。正如3em网站上所写的 — — 允许你“在几秒钟内运行SmartWeave合约,同时支持多种编程语言”。

多语种、安全、快速!

Polyglot这个词来源于希腊语 “Πολύγλωσσος”。它的意思是能说多种语言的人,这正是3em所实现的。

它允许程序员用他们最熟悉的编程语言编写智能合约,而不必担心智能合约的跨语言和跨链功能障碍。程序员可以使用Solidity、Rust、C、JavaScript和更多的编程语言,最终会编译成八位数流二进制文件、WASM或EVM字节码。

3em也考虑到了安全问题。如上所述,SmartWeave使用了懒惰评估,而通过3em,这些合约可以与其他链上的其他合约通信。3em的开发者希望确保用户不能在其他智能合约的路径上注入恶意代码。

因此,解决这个问题方式就是为智能合约的执行创造一个沙盒环境。把沙盒环境想象成一个测试场,在确保安全之前不允许任何东西离开。

3em的开发者也想确保他们的技术是最快的,因此已经事先就优化了。 他们在这里解决的问题比最初可能想到的要大。由于采用懒惰评估的方式,与SmartWeave上的智能合约的每一次交互都意味着,在将自己的交易追加到列表之前,下一个用户将有更多的交易需要验证。

正如Verto所指出的,使用JavaScript作为编程语言构建的SmartWeave合约的平均执行时间为2.6秒,而使用3em构建的相同合约的执行仅为0.64秒。快速的执行意味着用户在与智能合约交互时的体验会更好。

3em是如何在开发栈中工作和整合的

在撰写本文时,3em能够读取SmartWeave合约,这也包括那些用其他语言部署的合约。它可以通过JavaScript库的readContract函数实现,该函数返回数据的方式与当前smartweave-js的实现方式相同,但速度要快得多。

开发者可以通过该项目GitHub上的命令行工具部署3em兼容合约。它们由特定的交易标签识别,通过读取MIME类型,3em知道在读取时要解析哪种语言。对于开发者来说,在向EVM字节码合约发送交互和从EVM字节码合约中读取时,会出现例外情况;输入和输出将用Ethereum ABI编码,而不是通常的JSON编码。

3em可以作为CLI、JavaScript包和Rust Crate,能够与前端、后端和服务器集成。

查看3em测试交易的示例请见:

· VM合约: _233QEbUxpTpxa_CUbGi3TVEEh2Qao5i_xzp4Lusv8I

· JS合约: t9T7DIOGxx4VWXoCEeYYarFYeERTpWIC1V3y-BPZgKE

· WASM合约:KfU_1Uxe3-h2r3tP6ZMfMT-HBFlM887tTFtS-p4edYQ

总结

这可能是最近以来Arweave生态中最重要的新闻,这也是RedStone布署以后SmartWeave取得的最大进展。

3em以及整个Arweave和SmartWeave生态的未来非常光明。未来,将有更多的开发者进入Arweave并在permaweb上布署智能合约。

想要使用3em的开发者现在就可以通过访问他们的GitHub来实现。


Join our
Telegram / Discord / Twitter / CN Twitter

Tagged with In No tags

kate

Kate is a journalist and editor for Arweave News.

Sign up for newsletter

Sign up here to get the latest news and updates delivered directly to your inbox.