-
Notifications
You must be signed in to change notification settings - Fork 741
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
Expose ENR custody columns #6271
Conversation
pub fn custody_columns(&self, spec: &ChainSpec) -> Vec<ColumnIndex> { | ||
let enr = self.local_enr(); | ||
let node_id = enr.node_id().raw().into(); | ||
let custody_subnet_count = enr.custody_subnet_count::<E>(spec); |
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.
Just a small suggestion wrt Enr::custody_subnet_count
, I think we should make that simply return an error on invalid/non existing enr instead of returning the default value. Basically change the function signature to
fn custody_subnet_count<E: EthSpec>(&self, spec: &ChainSpec) -> Result<u64, &'static str>;
Swallowing the error at the accessor function and returning the default might lead to confusing errors.
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.
Good that you raised this again - we actually thought about this when this was initially implemented, and the original reason to swallow it is wanting to have the fallback logic in one place, and don't want to do any error handling due to invalid input from peers, but maybe there's better approach and may even be useful to log an error?
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.
We could just do the fallback logic at the calling site. The accessor function on that trait doesn't seem like the right place to do fallback logic.
Consider a situation where a client has a bug in their encoding for the enr custody subnet field, in that case, we would always swallow the error which isn't what we want to do.
The main |
Issue Addressed
Part of
das
tounstable
#6072Proposed Changes
custody_columns
method toNetworkGlobals