从特定块中分叉实际的主网

问题描述

我想在以太坊上测试许多智能合约之间的一些重叠,但是:

  • 其中许多在测试网上不可用/在不同的测试网上。
  • 其中一些的历史/状态发生了重大变化,很难正确再现当前状态。

那么,为了尽可能接近实际的主网,有没有办法复制整个区块链的当前状态,包括所有交易,并在特定块上分叉以测试一些功能

official documentation 解释了如何创建私有网络,但我们如何基于特定主网的区块创建私有网络?

谢谢

解决方法

您可以使用 --fork 选项运行 Ganache

从另一个当前正在运行的以太坊客户端在给定块上分叉。输入应该是其他客户端的 HTTP 位置和端口,例如http://localhost:8545。您可以选择使用 @ 符号指定要分叉的块:http://localhost:8545@1599200

所以实际的命令可能是这样的:

ganache-cli --fork https://mainnet.infura.io/v3/<your_infura_id>

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...