我基本上按照基板开发前沿车间教程(按照Frontier Evm文档使用SputnikVM作为底层EVM引擎)成功地构建了自己的EVM兼容的基板。
我知道,EVM在每一种情况下的行为或多或少都不同,例如,在一些叉子之后,各种EVM OPCODEs的气体成本降低或增加。
话虽如此,这个基于人造卫星的客户到底是什么样子的呢?这个客户是类似于柏林,伊斯坦布尔,还是类似的老东西,如宅地或拜占庭?我是应该使用像0.8.6+commit.11564f7e这样的最新solc编译器,还是应该使用0.6.0+commit.26b70077或0.4.0+commit.acd334c9之类的旧编译器?
我想知道,因为我需要准确地记录每个合同部署或方法调用的燃气成本,或者防止不兼容。
发布于 2022-01-06 18:09:27
Sputnik实现包含不同风格的EvmConfig,供您选择。
如果您查看源代码,您将发现其中的四个:
impl Config {
/// Frontier hard fork configuration.
pub const fn frontier() -> Config { ... }
/// Istanbul hard fork configuration.
pub const fn istanbul() -> Config { ... }
/// Berlin hard fork configuration.
pub const fn berlin() -> Config { ... }
/// london hard fork configuration.
pub const fn london() -> Config { ... }
}根据边界的托盘-evm文件
气体配置是可配置的。现在,提供了一个预定义的伦敦硬叉配置选项。
因此,目前他们正在使用伦敦硬分叉配置,这是由此承诺确认的,这表明他们将默认配置从伊斯坦布尔切换到伦敦:
...
/// EVM config used in the module.
fn config() -> &'static EvmConfig {
- &ISTANBUL_CONFIG
+ &LONDON_CONFIG
}
}
@@ -571,7 +571,7 @@ impl GasWeightMapping for () {
}
}
-static ISTANBUL_CONFIG: EvmConfig = EvmConfig::istanbul();
+static LONDON_CONFIG: EvmConfig = EvmConfig::london();
...如果您想要每个硬叉的详细参数,请确保检查这里
https://stackoverflow.com/questions/68664158
复制相似问题