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 841 forks source link

Is it possible to connect a BESU node to a running Quorum IBFT network? #6229

Closed PLucianP closed 9 months ago

PLucianP commented 11 months ago

I have a running network with Quorum IBFT consensus. I managed to migrate from IBFT to QBFT.

The way that I tried to connect the BESU is by:

Somehow the Quorum nodes sees the Besu node but I have a mismatch in the genesis block and I'm not sure how to solve this.

Are there other steps to be able to connect Besu to Quorum or am I missing something in my steps?

Thanks!

non-fungible-nelson commented 11 months ago

Can you post their genesis config ? for both besu and GoQuorum.

PLucianP commented 11 months ago

Absolutely, you have both yaml in the attachment. (change it back to .yaml) besu-genesis.txt quorum-genesis.txt

jframe commented 11 months ago

@PLucianP From your config there are some differences which could be causing this

Hopefully, after changing besu values to match quorum config the genesis block mismatch error will be resolved

PLucianP commented 11 months ago

Thanks for reaching back to me and for the information provided. Since I'm a little new to this, here's the changes that I made. I changed the timestamp from besu to be the same with quorum. As for the London's fork, I believe the properties regarding this are: "berlinBlock": 0 "londonBlock": 0 "zeroBaseFee": true right?

Here's the changed version of genesis from both networks. besu.txt quorum.txt

But I still have mismatch between them: DEBUG[12-06|12:46:33.020] Ethereum handshake failed id=ff79baf04764719c conn=staticdial err="genesis mismatch: f02dfe1c1ca1d179866f62a3e63bd95197051f99b09a8be86be9dc8a98ce7f75 (!= b7119c3c3364e5044206a2305e9bf613d940c14260b6b479a8c2c775e83a72f0)"

TRACE[12-06|12:46:33.021] Protocol eth/66 failed id=ff79baf04764719c conn=staticdial err="genesis mismatch: f02dfe1c1ca1d179866f62a3e63bd95197051f99b09a8be86be9dc8a98ce7f75 (!= b7119c3c3364e5044206a2305e9bf613d940c14260b6b479a8c2c775e83a72f0)"

The hash made from these genesis configurations is made from the complete properties or some of them are being ignored?

NickSneo commented 10 months ago

@PLucianP Hey, the error you are facing is due to mismatching extraData value. In Besu the value is -

"extraData": "0xf83aa00000000000000000000000000000000000000000000000000000000000000000d5940f166ab0a0cbd2a77d2bc83c2cf98d1dc7a1bc03c080c0"

While in Quorum the value is -

"extraData": "0x0000000000000000000000000000000000000000000000000000000000000000d8d5948166cc298c2ef87031c585b1f01549c63ea717ba80c0"

Since it is a QBFT network, the extraData value must be same in both genesis. For more info check this - https://besu.hyperledger.org/23.10.2/private-networks/how-to/configure/consensus/qbft#extra-data