I have two independent private chains running with unique genesis file each. If we use same accounts in both the chains is there a way to copy the state or data of chain 1 to chain 2.

Regards, Manoj

  • Is chain 2 already running? Are you looking to merge 2 chains, or do you want to restore the existing state of chain 1 into a new chain? If it's the latter, you can take a snapshot of your chaindata and use it as the genesis for your new chain.
    – wslyvh
    Commented Jul 10, 2020 at 12:51
  • Chain 2 is not yet started, it need to be started. But it will be started with a different genesis file from that of chain 1. I am not looking to merge the 2 chains, I want to take the data of chain 1 and continue chain 2 as a new separate chain. Commented Jul 10, 2020 at 12:58
  • actually I also looking something similar in a way that once I take bakeup of blocks then when I restart the node I can use backup and node will start syncing from where backup has left any idea? Commented Jul 7, 2021 at 17:06

2 Answers 2


So you basically want to do a backup & restore. I've been looking into this, to update our genesis configuration for a private Parity chain, but never go to actually try it.

As far as I know there's no clean way to do this, without exporting state parity export state, see Parity docs. This command requires the chain to be synced with –fat-db on. You can use the JSON output in the accounts section of your new chain. Rename state to accounts and remove the keys that the node complains about (code_hash and storage_root - these are calculated at runtime). All nodes that are using that genesis need to import parity import before syncing with the network, or use warp-sync.

I received this previously from Parity's support. See https://github.com/openethereum/openethereum/issues/10304

  • Thanks for the response, but I am using geth, any pointers for geth Commented Jul 13, 2020 at 10:28
  • I don't have any experience with Geth, but checking their docs, it seems they have similar export/import functionality to RLP. I guess it works the same that you could use that for your genesis config. geth.ethereum.org/docs/interface/command-line-options
    – wslyvh
    Commented Jul 14, 2020 at 13:02

To merge states of two private blockchains

  • Assuming there is no overlap on accounts and assets between two chains

  • Create and fund genesis accounts of chain #1 on chain #2

  • Replay all transactions of chain #1 on chain #2

  • Thanks for the response, this means you say to re-transact all transactions of chain1 on chain2? Commented Jul 10, 2020 at 12:31
  • I think that's the easiest solution assuming states cannot conflict. Commented Jul 10, 2020 at 12:32
  • okay, is there any way we can copy states and blocks of chain1 to chain2? Commented Jul 10, 2020 at 12:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.