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

Inclusion list production duty #9103

Open
mehdi-aouadi opened this issue Feb 11, 2025 · 0 comments
Open

Inclusion list production duty #9103

mehdi-aouadi opened this issue Feb 11, 2025 · 0 comments
Assignees
Labels

Comments

@mehdi-aouadi
Copy link
Contributor

mehdi-aouadi commented Feb 11, 2025

New inclusion list committee duty

Some validators are selected to submit signed inclusion list. Validators should call get_inclusion_committee_assignment at the beginning of an epoch to be prepared to submit their inclusion list during the next epoch.

A validator should create and broadcast the signed_inclusion_list to the global inclusion_list subnet by PROPOSER_INCLUSION_LIST_CUT_OFF seconds into the slot, unless a block for the current slot has been processed and is the head of the chain and broadcast to the network.

Constructing a signed inclusion list

The validator creates the signed_inclusion_list as follows:

  • First, the validator creates the inclusion_list.
  • Set inclusion_list.slot to the assigned slot returned by get_inclusion_committee_assignment.
  • Set inclusion_list.validator_index to the validator's index.
  • Set inclusion_list.inclusion_list_committee_root to the hash tree root of the committee that the validator is a member of.
  • Set inclusion_list.transactions using the response from engine_getInclusionListV1 from the execution layer client.
  • Sign the inclusion_list using the helper get_inclusion_list_signature and obtain the signature.
  • Set signed_inclusion_list.message to inclusion_list.
  • Set signed_inclusion_list.signature to signature.
def get_inclusion_list_signature(
        state: BeaconState, inclusion_list: InclusionList, privkey: int) -> BLSSignature:
    domain = get_domain(state, DOMAIN_INCLUSION_LIST_COMMITTEE, compute_epoch_at_slot(inclusion_list.slot))
    signing_root = compute_signing_root(inclusion_list, domain)
    return bls.Sign(privkey, signing_root)
@mehdi-aouadi mehdi-aouadi self-assigned this Feb 13, 2025
@mehdi-aouadi mehdi-aouadi changed the title Inclusion list committee duty Inclusion list production duty Feb 14, 2025
@mehdi-aouadi mehdi-aouadi mentioned this issue Feb 14, 2025
2 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant