16个版本 (3个重大变更)

5.0.0 2021年8月8日
4.0.0 2021年6月14日
3.0.0 2021年4月7日
2.0.1 2021年1月11日
2.0.0-alpha.52020年3月24日

#evm 中排名 62


用于 4 个crate

Apache-2.0

200KB
1.5K SLoC

EVM模块

EVM模块允许在不修改的情况下在基于Substrate的区块链中执行EVM代码。

EVM引擎

EVM模块使用SputnikVM作为底层EVM引擎。该引擎经过重构,使其模块化

执行生命周期

由EVM模块管理一组独立的账户。基于Substrate的账户可以调用EVM模块,将Substrate基础货币的余额存入或提取到由EVM模块管理和使用的不同余额中。一旦用户填充了他们的余额,他们就可以使用此模块创建和调用智能合约。

Substrate账户和EVM外部账户之间有一对一的映射,该映射由转换函数定义。

EVM模块与以太坊网络对比

EVM模块应该能够产生与以太坊主网几乎相同的结果,包括gas成本和余额变化。

可观察的差异包括

  • 块哈希的可用长度可能不是256,这取决于Substrate运行时中系统模块的配置。
  • 难度和coinbase,在这个模块中没有意义,目前被硬编码为零。

我们目前的目标不是使不可观察的行为,如状态根,相同。我们也不旨在遵循完全相同的交易/收据格式。然而,给定一个以太坊交易和一个Substrate账户的私钥,应该能够将任何以太坊交易转换为与此模块兼容的交易。

gas配置是可配置的。目前,提供了一个预定义的istanbul分叉配置选项。

许可证:Apache-2.0

依赖关系

~10–21MB
~305K SLoC