-
Notifications
You must be signed in to change notification settings - Fork 299
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
Revisit proposer config management #6325
Revisit proposer config management #6325
Conversation
a166219
to
fc4d08e
Compare
validator/client/src/main/java/tech/pegasys/teku/validator/client/RuntimeProposerConfig.java
Fixed
Show fixed
Hide fixed
@ciaranmcveigh5 I've worked on this change and I'd like to have a check with you WRT of Giving this example: {
"proposer_config": {
"0xa05...": {
"fee_recipient": "0x501...",
"builder": {
"enabled": true
}
}
},
"default_config": {
"fee_recipient": "0x6e35...",
"builder": {
"enabled": true,
"registration_overrides": {
"timestamp": "1234",
"public_key": "0xb53d21a4cfd...."
}
}
}
} The current behaviour is that override will NOT be applied to With this PR the override WILL be applied to My question is: how are you using this configuration in real world scenario? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM overall, we definitely want a changelog so that people are aware this behaviour is changing... Im not sure if anyone is relying on the current quirks...
Hey @tbenr Agree with this "I'm inclined to prevent usage of public_key in default_config if it is inline with your usecases" The use case is for distributed validators so the public key section should always be specific to another public key rather than default which would apply to all validators I think this was an interim fix for a single validator while we were working out the best way to implement it. These changes shouldn't impact our proposer-config setup. Thanks for checking, |
add initialization failure test
fix and add some unit tests
…trationOverrides forbidden update changelog
188862e
to
574430c
Compare
Summary
BeaconProposerPreparer
, introducingProposerConfigManager
ProposerConfigManager
is now responsible for:ProposerConfigPropertiesProvider
(previously namedValidatorRegistrationPropertiesProvider
)isOwnedValidator
used by KeyManager API to handle 404 more explicitlyProposerConfig
(unit tests removed too) everything is now inProposerConfigManager
UX change
From UX perspective the notable change (breaking change) is that attributes specified in the
default_config
are now applied to all validators, including the one specified in theproposer_config
. This means that inproposer_config
you can specify only the attributes you want to override (or add) from thedefault_config
.The previous behaviour was that
default_config
configuration were considered only for validator not explicitly configured underproposer_config
.So now
fee_recipient
andbuilder.enabled
are only mandatory in the default config, all the other attributes can be optionally specified.example:
This kind of configurations are now possible:
the resulting config for
0xa0578...
will be:fixes #6314
Suggested documentation changes under
validators-proposer-config
section:default_config
- (required) A default proposer configuration which contains all default values that will be applied to every validator. These values can be overridden for specific validators inproposer_config
.proposer_config
- (optional) A proposer configuration for multiple validator public keys.Proposer configuration attributes:
fee_recipient
(optional inproposal_config
but is mandatory fordefault_config
)fee recipient to be used when proposing blocks.
builder
(optional). includes three attributes:enabled
- (optional inproposal_config
but is mandatory fordefault_config
) specifies whether to use the builder endpoint when proposing blocks.gas_limit
- (optional) specifies thegas_limit
for the builder. The default is30000000
.registration_overrides
(optional) specifies dedicated overrides to be used during the registration process. Useful forDVT
andSSV
technologiestimestamp
(optional) timestamp to be used (instead of current time) in validator registration messagepublic_key
(optional inproposal_config
but is forbidden fordefault_config
) public key to be used (instead of validator's public key) in validator registration message!!! example "
proposerConfig.json
"In the example, validator
0xa0578...
will be configured as:validator
0xa99a7...
will be configured as:all other validators will will be configured as:
Documentation
doc-change-required
label to this PR if updates are required.Changelog