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

Add IL related endpoints #1

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open

Add IL related endpoints #1

wants to merge 3 commits into from

Conversation

ensi321
Copy link
Owner

@ensi321 ensi321 commented Jan 14, 2025

No description provided.

types/validator.yaml Outdated Show resolved Hide resolved
@@ -0,0 +1,30 @@
Focil:
InclusionLists:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why does this type need to be defined here? better to limit the types here to CL spec containers

- Validator
summary: "Get inclusion list committee duties"
operationId: "getInclusionListCommitteeDuties"
description: "Requests the beacon node to provide a set of inclusion list committee duties for a particular epoch."
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

might wanna add a similar note as in getAttesterDuties in regard to reorgs

- Validator
operationId: "produceInclusionLists"
summary: "Produce inclusion lists"
description: Requests that the beacon node produce multiple InclusionList.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we wanna create a individual IL for each validator should probably change the description here

Comment on lines 15 to 18
- name: validator_indices
in: query
description: "Array of validator indices for which inclusion lists should be created."
required: true
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we really need to pass validator indices here? the probability that your node has 2 IL duties for the same slot is insanely low even if you have hundreds of keys on a single node.

I think we can just produce a single IL here similar to produceAttestationData and then in the rare case we have 2 validators we can either skip one of them when submitting the signed IL or we just sign the same IL twice, while this does not add much value I think this is still fine.

I think the main worry here is that this adds complexity to the EL that would have to produce multiple non-intersecting ILs for this to make a meaningful difference.

Copy link

@nflaig nflaig Jan 14, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

based on how engine_getInclusionListV1 is defined right now we can only get a single IL per parentHash

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

its weird to anyway get more inclusion lists on same slot doesn't matter if two or more vals have the IL duty on same slit

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the point of multiple inclusion lists is to beat someone using IL as DA, so this could just be fine and doesn't depend on num of val duties attached.

apis/validator/inclusion_lists.yaml Outdated Show resolved Hide resolved
apis/validator/inclusion_lists.yaml Outdated Show resolved Hide resolved
- ValidatorRequiredApi
- Validator
operationId: "publishInclusionLists"
summary: "Publish multiple inclusion lists"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

would there be any drawbacks if we just publish a single IL assuming they have the same transactions? there is no penalty for missing IL duties so we could just deduplicate them on the validator client side (maybe somehting to discuss in FOCIL call)

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

one can/should pubhish multiple ILs to not have them used as a DA.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

one can/should pubhish multiple ILs to not have them used as a DA.

could you please elaborate on that a bit, how would someone else be able to use my IL as DA if I don't publish mine? there is a gossip rule to check the signature so it would not be propagated by the network

In general since in FOCIL the ILs are just transient / part of local view of the node only I don't see how someone would use them for DA since you don't have any availability guarantees as far as I understand

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we want an api to retrieve ILs from op pool, similar to getPoolAttestations?

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we want an api to retrieve ILs from op pool, similar to getPoolAttestations?

Nice to have maybe for debugging purpose. Not required for ILC duty. Can re-visit it later

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.

3 participants