I'm trying to set up a full node. Being a DeGoogler I instinctively avoid Go, so I defaulted to OpenEthereum. After compiling on my maching I get 'Illegal Instruction', which seems to be because of my old processor and its lack of AESNI which is compiled as 'on'. WIP...

Meanwhile, I figured that 'the Etherum blockchain IS the Etherum blockchain' so I created a geth vm to let the syncing begin. While doing some reading on advanced configuration I stumbled upon this article which states that the blockchain is a DIFFERENT SIZE between geth and parity nodes. WTF?! Shouldn't the blockchain be identical?

Upon reflection it makes sense that the same data can be represented on disk in multiple ways... It just never occurred to me that during the parallel development of blockchain projects like geth/parity that the format would be divergent.

Does anyone have any experience with this? Has anyone migrated their node from geth to parity/openetherum? If so, is it as simple as copying the chainstate directory and resyncing as I had hoped?

  • The blockchain data is the same for any client, but clients do not store just a copy of the blockchain. For performance reason they might have a additional data, for example an index of balances, or history of recent transactions.
    – Ismael
    Apr 10, 2020 at 16:56

3 Answers 3


You definitely cannot migrate the data from Geth to Parity (or from any other Ethereum client to another). The internal workings are (and necessarily have to be) different. Different teams do things differently.

The 'external' workings on the other hand MUST be the same. By 'external' workings (a phrase I made up just now), I mean the network protocol--the language the nodes use to speak to each other.

Think of it this way. If one team stored the bytes that go into the block hash as a series of bytes delimited by three spaces (I have no idea why they would, but they could) and another team stored the same bytes separated by two dots, they could both recreate the original bytes needed to create the block hash by simply removing the delimiters, but each node would have different data on disc.

  • lol I asked the question but it didn't count my upvote... Jan 30, 2021 at 12:27

I'm not sure if you can migrate data from Geth to Parity. As noted the blockchain data part is the same but they have other data structures stored as well and these vary. In theory you can try to just copy the blockchain data to the new client but I doubt that would work.

At first it might sound strange that the different clients have different disk requirements - why would we even need multiple clients? But that's one of the good things about decentralization: the blockchain remains the same but anyone is free to write their own client on top of it. If one of the clients stops working (or whatever happens) for some reason people can just switch to another one. And one client is possibly good at thing A (uses less bandwidth? requires less disk space? syncs faster?) while another client is good at thing B.


To have a common representation you would need to create a third one, and a sync service to replay any arriving transaction in both... at the end, the only thing that is common is the transaction sequence and the merkle tree state, but the way they are stored is completely different. It's like if you want to migrate from mysql to cassandra... you can't copy the db files, but you can dump and replay.

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.