我们正逐步推进智能合约平台的上线工作,该平台可于10月在Kusama、12月在Polkadot上执行PVM和EVM合约。目前,PVM预览版已在Kusama上线;而用于实现EVM兼容性的Revm集成工作正快速推进。我们的开发者工具体系正在持续扩充,不仅在构建预编译合约(precompiles),还将重点资源投入测试环节,以确保平台可靠上线。与此同时,我们正落地关键核心模块:Gas/费用处理(gas/fee handling)、以太坊风格区块数据(Ethereum-style block data),以及18位小数DOT支持(18‑decimal DOT support)。
背景
我们近期公布了一项双轨策略:
1.提供用于实现EVM兼容性的Revm,以快速打开市场局面——这一方案能让顶尖以太坊去中心化应用(dApps)、第三方服务商轻松接入,并为业务开发(BD)渠道带来更多机遇;
2.将PVM作为长期创新方向推进,其可提供更强的计算性能(通过PVM即时编译技术JIT实现更快的执行速度),并解锁全新应用场景。
这一策略为开发者提供了灵活性:他们从项目初期即可选择合适的后端方案——既可部署未经修改的Solidity合约(包括旧版本Solidity编写的合约),通过编译适配EVM使用;也可选择以PVM为目标环境,享受更低的执行成本与更强的计算能力。
当前进展
自策略公布以来,Parity多个团队的工程师已全力推进,以达成年底里程碑目标。
Revm集成
Revm正作为EVM后端进行集成,确保Solidity合约可无改动运行,同时让开发者能继续使用熟悉的工具。目前集成工作仍在进行中,部分模块尚未完成(例如:与PVM后端对齐的Gas处理模块)。我们的目标是在9月初完成初始代码开发,随后进入全面测试阶段。
Gas映射与费用模型
我们正构建一套可靠的映射机制,将以太坊Gas转换为Substrate权重(Substrate weights),确保钱包与去中心化应用(dApps)的表现符合预期,并与Polkadot的交易支付模型保持一致。该机制的初始版本计划于9 月初落地。
以太坊区块存储
我们将在pallet-revive中引入以太坊风格区块存储(Ethereum‑style block storage)。这一功能可确保依赖以太坊区块数据与默克尔包含证明(Merkle inclusion proofs)的基础设施正常运行。目前该功能的初始版本已开发完成,正处于审核与测试阶段。下一步我们将对其性能影响进行基准测试(benchmark),并持续优化。
18位小数DOT
在该智能合约平台中,DOT将以18位小数(而非原有的10位小数)形式呈现,以对齐以太坊工具的使用惯例,消除常见的使用障碍。目前该功能已完成开发。
开发者工具
Hardhat与Foundry的集成工作持续推进,同时我们还在开发贴合自身环境的测试节点——尤其是兼容Anvil的本地节点。借助该节点,开发团队可基于我们的实际实现(而非参考链)进行测试,且同时支持EVM与PVM后端。此外,我们还将为Anvil节点添加特殊测试场景所需的功能,例如主网(live chain)分叉功能。
测试
我们正投入大量资源开展测试工作。一方面,我们在开发相关工具,确保任何人都能对面向PVM和EVM后端的合约进行可靠、可重复的测试;另一方面,我们致力于让开发者与用户能够信任该平台。具体测试工作包括:
- 在PVM和EVM后端上,运行来自顶尖以太坊应用的大型测试套件;
- 针对以太坊参考实现进行差异测试(differential tests),尽早发现偏差;
- 开展压力测试(stress tests)与基准测试(benchmarks)。
我们的目标是:在平台上线前,确保其正确性达到高置信度、Gas表现与资源占用可预测,同时实现漏洞的快速检测与修复。
影响
通过这一双轨策略,我们实现了“即时打开市场”与 “长期创新”的平衡。开发者可通过在EVM上部署无改动的Solidity合约,快速推进项目;Polkadot专属功能(通过预编译合约precompiles实现)将同时支持EVM与PVM后端;随着时间推移,PVM的先进计算模型将解锁更多新机遇。此外,依托共享技术栈,RPC、工具、预编译合约等模块的优化成果,将同时惠及EVM与PVM两大后端。
后续计划
- 9月:在Kusama上线PVM预览版第二阶段(支持ERC20、基础XCM预编译合约);
- 10月下旬:在Kusama上线EVM与PVM后端;
- 12月中旬:在Polkadot上线EVM与PVM后端。
想参与到本文的讨论,欢迎到这里发表自己的意见:
https://forum.polkadot.network/t/smart-contracts-on-polkadot-hub-progress-update/14596
关于如何参与到论坛的讨论中,请参看我们推出的波卡论坛使用指南: