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.5 | 2020年3月24日 |
在 #evm 中排名 62
用于 4 个crate
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