Разветвляет фактическую основную сеть из определенного блока

#ethereum #go-ethereum #geth

#ethereum #перейти-ethereum #geth

Вопрос:

Я хотел бы протестировать некоторые различия между многими smartcontract на Ethereum, но :

  • многие из них недоступны в тестовых сетях / находятся в разных тестовых сетях.
  • для некоторых из них произошли значительные изменения истории / статуса, и было бы трудно правильно воспроизвести текущее состояние.

Итак, чтобы максимально приблизиться к фактической основной сети, есть ли способ скопировать текущее состояние всей цепочки блоков со всеми транзакциями и разветвлять ее на определенный блок для тестирования некоторых функций?

Официальная документация объясняет, как создать частную сеть, но как мы можем создать частную сеть на основе определенного блока основной сети?

Спасибо

Ответ №1:

Вы можете запустить ганаш с помощью этой --fork опции.

Форк от другого текущего клиента Ethereum в данном блоке. Входными данными должны быть HTTP-местоположение и порт другого клиента, например http://localhost:8545 . Вы можете дополнительно указать блок, от которого нужно отказаться, используя знак @: . http://localhost:8545@1599200

Таким образом, фактическая команда может выглядеть следующим образом:

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