-
Notifications
You must be signed in to change notification settings - Fork 839
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
Restore previous behaviour for preMergeBesuControllerBuilder #7431
Conversation
Signed-off-by: Lucas Saldanha <lucascrsaldanha@gmail.com>
Here are the supporting files:
|
Signed-off-by: Lucas Saldanha <lucascrsaldanha@gmail.com>
Signed-off-by: Lucas Saldanha <lucascrsaldanha@gmail.com>
Signed-off-by: Lucas Saldanha <lucascrsaldanha@gmail.com>
Indeed there was an issue with my change, that was overriding any existing configuration. Logically there should be only one instance of Said that, does it make sense to still have this pre-merge transition mechanism in place? are all the new devnets starting from post-merge? if yes we could consider removing this transition code, so we do not need to maintain it anymore. FYI: @non-fungible-nelson |
Maybe this is something we want to discuss in a ACD. If we do not want to support pre-merge networks and the transition etc, there is a lot of simplification we can have on both sides. |
@julien-marchand @FlorianHuc we should consider the implications. I am still OOO but let's discuss |
…dger#7431) Signed-off-by: gconnect <agatevureglory@gmail.com>
PR description
Let me start by saying that I don't fully understand the intricacies of the
TransitionCoodinator
, so it is possible that this PR is going in the wrong direction. However, after analyzing the changes on #6027 I noticed that we have changed the existing behaviour when we are on a pre-merge network. This was caught by one of our tests in Teku that tests the merge transition, when I was trying to upgrade the version of Besu we use in our ATs (we are using 23.10.1).In the code before commit 20a82d4, we were building a copy of
MiningParameters
using the instance of mining parameter that was passed as a parameter, that contains the options specified by the user. In this particular case, I am focusing on theminer-coinbase
option. This is the snippet of code that we were using before:Using this option, the new instance would preserve all other options specified by the user (including miner-coinbase), but set the flag
mining-enabled
to false.In the current version of the code, this is the snippet being used:
This way, using the static
MiningParameters.MINING_DISABLED
value, does not preserve any of the other options sey by the user, including theminer-coinbase
value.The consequence of such change is that when we follow the execution, there is a call to:
And that eventually lead us to this code from
PowMinerExecutior.java
:And at this point, because we have completely wiped the user options in mining parameters, we do not have a coinbase set and the node exits with an error.
I am not 100% sure if this is caused by a configuration change that I need to do on my side or not. But what it looks like is that we have somewhat broken our ability to start from a pre-merged network.
I am going to attach one config file (
besu.toml
) and one genesis file (genesis.json
) that I was using testing this issue. Maybe they will help.Fixed Issue(s)
N/A
Thanks for sending a pull request! Have you done the following?
doc-change-required
label to this PR if updates are required.Locally, you can run these tests to catch failures early:
./gradlew build
./gradlew acceptanceTest
./gradlew integrationTest
./gradlew ethereum:referenceTests:referenceTests