#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>