官方论坛精选丨在 PolkaVM 上的 Solidity
作者:Polkadot生态研究院

“波卡知识图谱”是我们针对波卡从零到一的入门级文章,我们尝试从波卡最基础的部分讲起,为大家提供全方位了解波卡的内容,当然这是一项巨大的工程,也充满了挑战,然而我们希望通过这样的努力让大家能够正确认知波卡,也让不了解波卡的人方便快速掌握波卡相关知识,今天是该栏目的第 131 期,本文主要介绍的是一种基于 PolkaVM 的替代合约运行时,与 Solidity 高度兼容。本文为团队成员对该工具的介绍,因此本文是以第一人称叙述。
正如之前在论坛上讨论的,我们团队目前正在探索一种基于 PolkaVM 的替代合约运行时(runtime)。由于我们希望新的运行时与 Solidity 高度兼容,因此已经开始着手开发新的 Solidity 编译器。
此前,我主要致力于 Hyperledger Solang3 的工作,并且实现了一个针对 PolkaVM 的实验性目标。
什么 Solang?
你现在可能会问,为什么要启动这个新项目呢? 原因主要有以下几点:
- Solidity 是一个持续发展的目标;
- 开发一个与以太坊 Solidity 完全兼容的编译器是一项庞大的任务;
- Solidity 本身也存在一些不足(下面会详细解释)。
与最初开发 Solang 时相比,我们现在可以利用 YUL,这是 solc 使用的中间表示 (IR) 。我们不是直接将 Solidity 编译为 LLVM IR,而是让 solc 生成 YUL IR,然后再将其编译为 LLVM IR。作为 IR,YUL 比 Solidity 简单得多,也不像 Solidity 那样频繁变动;构建一个将 YUL IR 转换为 LLVM IR 的编译器所需的工作要少得多。
ZKSync 在他们的 zksolc1Solidity 编译器中采用的相同方法 。通过重用他们代码库的一些部分,我们能够迅速地将一个重新编译的 flipper 合约作为 pallet 合约运行的原型证明 (PoC) 拼凑起来。
简而言之:
- 使用 solc 处理 Solidity 源代码为我们节省了很多工作。
- 重新编译 YUL(如果需要的话,还可以回退到 EVM 字节码)显著提高了 PolkaVM 上的 Solidity 兼容性。
- 使我们的运行时得到工具和钱包的支持变得更加简单。
新的 RIS-V 合约运行时:全面的基准测试
理想情况下,我们的 RISC-V 运行时在执行性能上要比 Wasm 和 EVM 运行时好得多,同时还能保持非常有竞争力的启动和编译时间。
初步基准测试显示,对于计算密集型代码,RISC-V 可能比 Wasm 合约快一个数量级以上 ——无论如何,EVM 在这方面的表现更差。这使得一些迄今为止无法直接在智能合约中实现的令人兴奋的新应用成为可能(例如,验证 STARK 证明而不依赖于任何特定的宿主函数(host functions)——是的,这仍然会比使用宿主函数慢,但我们获得了更多的灵活性)。
然而,传统的合约工作负载并不计算密集;它们每笔交易执行的代码很少。在这里,快速的启动和编译时间是关键:即使一个合约运行时在编译合约代码方面做了大量优化,但如果其执行性能接近原生代码,那么在平均情况下,它仍然可能输给就地解释器(in-place interpreters)。
我们期望我们的合约运行时在这两个维度上都表现出色!为了实现这一目标,我们正在建立一个全面的基准测试套件,用以比较不同的 Solidity 兼容合约平台,如 pallet-contracts 和 pallet-evm。
我们将测量运行时和设置部分所消耗的实际时间(wall clock times)。我们计划使用多样化的合约集合进行测量:
- 合成的(例如,执行计算密集型工作的小型代码,执行非常少计算工作的大量代码等);
- 经典的合约用例,如 ERC20 通证的转移或 ERC721NFT 铸造;
- ETH 主网上最受欢迎的合约;
- RISC-V 的新用例(例如,目前在 EVM 甚至 Wasm 上不可行的密码学计算)。
基于 Wasm 的运行时将能够运行 ink!以及 Solidity 案例;与其他 Wasm 和 EVM 解释器甚至 eBPF 的交叉验证也是可能的。
如果您认为有任何特定的合约或算法应该包含在这个基准测试套件中,请在这里告诉我们!
总结
这篇文章涵盖了我在 Parity 的衍生合约团队积极工作的新技术进展。 我们希望在今年晚些时候交付第一个工作版本的编译器以及一个确定性的智能合约基准报告。 请继续关注未来的更新!
想参与到本文的讨论,欢迎到论坛中发表自己的意见: https://forum.polkadot.network/t/contracts-update-solidity-on-polkavm/6949
关于如何参与到论坛的讨论中,请参看我们推出的波卡论坛使用指南: 《如何参与波卡的讨论:波卡官方论坛使用指南》
欢迎大家加入我们 Polkadot 生态研究院的电报:
https://t.me/polkadot_eri
https://mirror.xyz/0x9A259b3a2316281Cc948cE2Cf1Ac610a79844f05
精选文章
平行线程 | 经济模型 | Slash | 通货膨胀 | NPoS | Web3 基金会
Staking | Gavin Wood | 跨链 | 平行链 | 国库 | Parity
DOT | Web3.0 | 网络效应 | Grant 指南
Statemint | 区块链 | SBP 计划 | 新计划
XCVM | BEEFY | XCM
Wasm
0
0
免责声明:文章中的所有内容仅代表作者的观点,与本平台无关。用户不应以本文作为投资决策的参考。
PoolX:锁仓获得新代币空投
不要错过热门新币,且APR 高达 10%+
立即参与!
你也可能喜欢
加密货币价格
更多
Bitcoin
BTC
$88,868.75
-7.21%

Ethereum
ETH
$2,392.24
-11.40%

Tether USDt
USDT
$0.9995
-0.06%

XRP
XRP
$2.15
-13.09%

BNB
BNB
$606.11
-5.91%

Solana
SOL
$135.02
-15.20%

USDC
USDC
$1
+0.01%

Dogecoin
DOGE
$0.2024
-12.38%

Cardano
ADA
$0.6513
-11.84%

TRON
TRX
$0.2282
-7.32%
交易热门币种
新用户可获得价值 6200 USDT 的迎新大礼包
立即交易
立即成为交易者?新用户可获得价值 6200 USDT 的迎新大礼包
立即注册