parity-ethereum icon indicating copy to clipboard operation
parity-ethereum copied to clipboard

Start a local private chain that forks the state of the Ethereum mainnet

Open meronym opened this issue 5 years ago • 3 comments

I'd like to use Parity to spin up a local, private development chain that forks from mainnet (or other public testnet) at a given block.

The private chain would virtually make the entire state of the mainnet (at the chosen block) available on demand - so when my local contracts need to access something from the mainnet state, Parity would interactively query the remote Ethereum node.

This behavior is implemeted by Testrpc/Ganache's --fork parameter and is really handy when testing my contracts that need to talk to other mainnet contracts/libraries, without actually deploying them on the public network.

Describe the solution you'd like

I would like a command line argument:

./parity --fork=http://remote-node:8545@4242424

This would fork the remote chain (e.g. the Ethereum mainnet) at block 4242424 into a local dev chain. The Parity client would use the provided RPC endpoint to query state (when needed) from the remote node to accomplish the above.

Describe alternatives you've considered

@joshua-mir suggested to consider exporting state from a mainnet node running --fat-db and import it into my local dev chain specification as part of the genesis - but this seems quite intensive, considering that my contracts will only ever need access to a really tiny fraction of the entire mainnet state.

meronym avatar Mar 19 '19 16:03 meronym

Closing issue due to its stale state.

adria0 avatar Jul 27 '20 14:07 adria0

still interested. @adria0 please reopen!

ytrezq avatar Sep 22 '20 20:09 ytrezq

@joshua-mir how to use --fat-db for that?

ytrezq avatar Sep 22 '20 20:09 ytrezq