Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Quorum ibft to besu qbft migration #2

Open
wants to merge 152 commits into
base: main
Choose a base branch
from
Open

Quorum ibft to besu qbft migration #2

wants to merge 152 commits into from

Conversation

pullurib
Copy link
Owner

@pullurib pullurib commented Dec 24, 2024

PR description

Code Changes

  • Restored the removed IBFT code required for parsing and validating IBFT extra data.
  • Added test cases for importing IBFT blocks into a Besu network that transitions to QBFT after the imported IBFT blocks.
  • Developed an end-to-end test case to simulate a 5-node Besu network and validate the block import process.

Initial Test Setup

Start a Quorum IBFT network with:

  • 5 nodes.
  • A genesis file that includes forks configured similarly to BaaS.
  • Approximately 10 blocks for each fork.
  • Add a few transactions to the network.

Allow the network to mine up to 100 blocks.

Start migration process on Test or Production Chains

  • Stop 4 validators (to halt mining).
  • Create a copy of the genesis file and update it to include a transition to QBFT from the block immediately following the latest block on the Quorum chain.

Export and Import

  • Export all blocks from the Quorum chain to an RLP file.
  • Copy the exported blocks RLP file, validator keys, and the updated genesis file to a corresponding Besu network with 5 nodes.
  • Use the bootnode in the Besu network to import all blocks from the RLP file.
  • Start the Besu network with all 5 nodes. Allow the remaining nodes to sync with the bootnode and begin mining QBFT blocks.
  • Compare the latest block on both networks, verifying the state root, transaction root, and other relevant data.

Sync with Quorum Network

  • Copy the genesis file and validator keys from one of the stopped Quorum validators to a Besu node.
  • Configure the Quorum node as the bootnode in the Besu node’s configuration.
  • Start the Besu node and verify that it syncs with the Quorum network.
  • Stop the last Quorum node.
  • Start 4 additional Besu nodes using the validator keys from the Quorum network.
  • Confirm that the Besu QBFT network starts mining new blocks.
  • Compare block 100 on both networks, ensuring that the state root, transaction root, and other metadata match.

Fixed Issue(s)

Bhanu Pulluri and others added 20 commits January 24, 2025 15:16
Signed-off-by: Bhanu Pulluri <[email protected]>
Signed-off-by: Bhanu Pulluri <[email protected]>
Signed-off-by: Bhanu Pulluri <[email protected]>
Signed-off-by: Bhanu Pulluri <[email protected]>
Signed-off-by: Gabriel-Trintinalia <[email protected]>
Signed-off-by: Bhanu Pulluri <[email protected]>
* Update EOFCREATE memory code

Switch to longs so EOFCREATE can handle gigagas sized transactions.

Signed-off-by: Danno Ferrin <[email protected]>
Signed-off-by: Bhanu Pulluri <[email protected]>
Signed-off-by: Jason Frame <[email protected]>
Signed-off-by: Bhanu Pulluri <[email protected]>
…s in the release checklist (hyperledger#8004)

Signed-off-by: Jason Frame <[email protected]>
Signed-off-by: Bhanu Pulluri <[email protected]>
Signed-off-by: Gabriel-Trintinalia <[email protected]>
Signed-off-by: Bhanu Pulluri <[email protected]>
Gabriel-Trintinalia and others added 30 commits February 5, 2025 23:09
…d after the fork (hyperledger#8211)

Signed-off-by: Gabriel-Trintinalia <[email protected]>
Signed-off-by: Bhanu Pulluri <[email protected]>
change EXTCODE* operations to match spec for Pectra devnet-6

Signed-off-by: Daniel Lehrner <[email protected]>
Signed-off-by: Bhanu Pulluri <[email protected]>
Signed-off-by: Sally MacFarlane <[email protected]>
Signed-off-by: Bhanu Pulluri <[email protected]>
…7838)

* Fix incorrect duration for THREE_MINUTES from 1 minute to 3 minutes

Signed-off-by: Bhanu Pulluri <[email protected]>

* Round change upon f+1 RC messages (experimental option)

Signed-off-by: Bhanu Pulluri <[email protected]>

* Update besu/src/main/java/org/hyperledger/besu/cli/BesuCommand.java

Co-authored-by: Matt Whitehead <[email protected]>
Signed-off-by: Bhanu Pulluri <[email protected]>

* revert an unrelated fix already merged to main

Signed-off-by: Bhanu Pulluri <[email protected]>

* update return value description

Signed-off-by: Bhanu Pulluri <[email protected]>

* fix logging level for couple of logs

Signed-off-by: Bhanu Pulluri <[email protected]>

* Review changes , added tests

Signed-off-by: Bhanu Pulluri <[email protected]>

* Merge and fix controller builder test context

Signed-off-by: Bhanu Pulluri <[email protected]>

* minor fix to import missing class after merging main

Signed-off-by: Bhanu Pulluri <[email protected]>

* Add missing function header comments

Signed-off-by: Bhanu Pulluri <[email protected]>

---------

Signed-off-by: Bhanu Pulluri <[email protected]>
Signed-off-by: Bhanu Pulluri <[email protected]>
Co-authored-by: Bhanu Pulluri <[email protected]>
Co-authored-by: Matt Whitehead <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>
Co-authored-by: Jason Frame <[email protected]>
Co-authored-by: Matt Whitehead <[email protected]>
Signed-off-by: Bhanu Pulluri <[email protected]>
* add newline to beginning of PR template

Signed-off-by: Sally MacFarlane <[email protected]>

* fix initial typo

Signed-off-by: Sally MacFarlane <[email protected]>

* fix tx typos

Signed-off-by: Sally MacFarlane <[email protected]>

---------

Signed-off-by: Sally MacFarlane <[email protected]>
Signed-off-by: Bhanu Pulluri <[email protected]>
…wal (hyperledger#7988)

* 7582: Add naive RLP caching for BlockHeader, Transaction, and Withdrawal

Signed-off-by: Matilda Clerke <[email protected]>

* 7582: spotless

Signed-off-by: Matilda Clerke <[email protected]>

* 7582: Fix broken test after merge

Signed-off-by: Matilda Clerke <[email protected]>

* 7582: Back out withdrawal changes

Signed-off-by: Matilda Clerke <[email protected]>

* 7582: Fix up compile error after merge

Signed-off-by: Matilda Clerke <[email protected]>

* 7582: Apply naive RLP caching in transaction encoder/decoder classes

Signed-off-by: Matilda Clerke <[email protected]>

* 8053: Add RLPDecodingHelpers.Kind.EM
and handle empty lists in AbstractRLPInput

Signed-off-by: Matilda Clerke <[email protected]>

* 7582: Add trace logging to AbstractRLPInput

Signed-off-by: Matilda Clerke <[email protected]>

* Revert previous change, implement new fix

Signed-off-by: Matilda Clerke <[email protected]>

* Revert previous change, implement new fix

Signed-off-by: Matilda Clerke <[email protected]>

* 7582: Finish applying naive RLP caching to transaction encoder/decoder classes

Signed-off-by: Matilda Clerke <[email protected]>

* Remove unused LOG

Signed-off-by: Matilda Clerke <[email protected]>

* 7582: Make explicit the expectation that RLP.validate does not throw an exception in test

Signed-off-by: Matilda Clerke <[email protected]>

* 7582: SPOTLESS

Signed-off-by: Matilda Clerke <[email protected]>

* 7582: Remove redundant curly braces

Signed-off-by: Matilda Clerke <[email protected]>

* 7582: Remove Optional from rawRlp in Transaction.Builder

Signed-off-by: Matilda Clerke <[email protected]>

* 7582: Make new BlockHeader constructor private

Signed-off-by: Matilda Clerke <[email protected]>

* Refactor tranaction encoder classes

Signed-off-by: Matilda Clerke <[email protected]>

* Remove logging changes from RLP module

Signed-off-by: Matilda Clerke <[email protected]>

* spotless

Signed-off-by: Matilda Clerke <[email protected]>

---------

Signed-off-by: Matilda Clerke <[email protected]>
Signed-off-by: Matilda-Clerke <[email protected]>
Co-authored-by: Stefan Pingel <[email protected]>
Signed-off-by: Bhanu Pulluri <[email protected]>
…r#8212)

In CodeDelegation.authorizer(), return empty to skip code delegation processing if recId outside native lib's bounds

---------

Signed-off-by: Simon Dudley <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>
Co-authored-by: Daniel Lehrner <[email protected]>
Co-authored-by: Karim Taam <[email protected]>
Signed-off-by: Bhanu Pulluri <[email protected]>
…t selected (hyperledger#8216)

Signed-off-by: Fabio Di Fabio <[email protected]>
Signed-off-by: Bhanu Pulluri <[email protected]>
Signed-off-by: Fabio Di Fabio <[email protected]>
Signed-off-by: Bhanu Pulluri <[email protected]>
* Stop all sub processes spawn by acceptance tests

Signed-off-by: Fabio Di Fabio <[email protected]>

* Split long running test in 3 parts

Signed-off-by: Fabio Di Fabio <[email protected]>

* Run ATs sequentially

Signed-off-by: Fabio Di Fabio <[email protected]>

---------

Signed-off-by: Fabio Di Fabio <[email protected]>
Signed-off-by: Bhanu Pulluri <[email protected]>
Signed-off-by: Sally MacFarlane <[email protected]>
Signed-off-by: Bhanu Pulluri <[email protected]>
…r#8236)

This reverts commit d691f45.

Signed-off-by: Sally MacFarlane <[email protected]>
Signed-off-by: Bhanu Pulluri <[email protected]>
Signed-off-by: Jason Frame <[email protected]>
Signed-off-by: Bhanu Pulluri <[email protected]>
Supports Pectra EIP-7691

Signed-off-by: Simon Dudley <[email protected]>
Signed-off-by: Bhanu Pulluri <[email protected]>
Signed-off-by: Sally MacFarlane <[email protected]>
Signed-off-by: Bhanu Pulluri <[email protected]>
* update rpc gas cap default to 50M

Signed-off-by: Sally MacFarlane <[email protected]>

---------

Signed-off-by: Sally MacFarlane <[email protected]>
Signed-off-by: Bhanu Pulluri <[email protected]>
Signed-off-by: Jason Frame <[email protected]>
Signed-off-by: Bhanu Pulluri <[email protected]>
Signed-off-by: Simon Dudley <[email protected]>
Signed-off-by: Bhanu Pulluri <[email protected]>
- Prague newPayload validation fixes
- Testing the unsupported fork timestamp cases

Signed-off-by: Simon Dudley <[email protected]>
Signed-off-by: Bhanu Pulluri <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.