hyperledger / besu

An enterprise-grade Java-based, Apache 2.0 licensed Ethereum client https://wiki.hyperledger.org/display/besu
https://www.hyperledger.org/projects/besu
Apache License 2.0
1.52k stars 846 forks source link

Migration to Besu from Quorum Platform #5984

Open smvdn opened 1 year ago

smvdn commented 1 year ago

Discussion

Besu document describes migration from a different Ethereum based client to Besu. Currently we are using a Quorum based Ethereum client with private transactions. Would like to know if there are any constraints in migrating from Quorum to Bessu?

Also, what will happen with the private state data available in the GoQuorum and Tessera nodes. Is it possible to migrate the private state completely from Quorum to Besu?

siladu commented 1 year ago

Besu and GoQuorum are interoperable if using QBFT so it shouldn't need migrating.

If using IBFT or another consensus mechanism, there is no migration tool, however it would still technically be possible by replaying transactions.

Tessera works with Besu as well, so should be no need to migrate the Tessera data.

Maybe @macfarla and @pinges can confirm if I've missed anything.

smvdn commented 1 year ago

Besu and GoQuorum are interoperable if using QBFT so it shouldn't need migrating.

If using IBFT or another consensus mechanism, there is no migration tool, however it would still technically be possible by replaying transactions.

Tessera works with Besu as well, so should be no need to migrate the Tessera data.

Maybe @macfarla and @pinges can confirm if I've missed anything.

@siladu @macfarla @pinges

Adding more context to the query

On the environment setup perspective, we are GoQuorum node having IBFT consensus with Internal Private Transactions. PMT's are not yet implemented. I am looking for replacing all my Quorum nodes with Besu.

I believe below are some of the key differences between both EVM implementations.

  1. Quorum is managing Private states for each account while Besu manages Private states per privacy group.
  2. Private Transactions in Besu are always PMT's. Currently we are using Internal Private Transactions in GoQuorum
  3. Tessera for Besu operates in "orion" mode. The underlying private states are managed for each Privacy Group
  4. GoQuorum uses Level DB as its State Database where Besu uses RocksDB as State DB.

Will it be possible to migrate from Quorum to Besu without losing the current private transactions?