Skip to content

EIP-7805 -- Networking

This document contains the consensus-layer networking specification for EIP-7805.

Modifications in EIP-7805

Configuration

Name Value Unit Duration
ATTESTATION_DEADLINE SECONDS_PER_SLOT // 3 seconds 4 seconds
Name Value Description
MAX_REQUEST_INCLUSION_LIST 2**4 (= 16) Maximum number of inclusion list in a single request
MAX_BYTES_PER_INCLUSION_LIST 2**13 (= 8192) Maximum size of the inclusion list's transactions in bytes

The gossip domain: gossipsub

Topics and messages

The new topics along with the type of the data field of a gossipsub message are given in this table:

Name Message Type
inclusion_list SignedInclusionList
Global topics

EIP-7805 introduces a new global topic for inclusion lists.

inclusion_list

This topic is used to propagate signed inclusion list as SignedInclusionList. The following validations MUST pass before forwarding the inclusion_list on the network, assuming the alias message = signed_inclusion_list.message:

  • [REJECT] The size of message.transactions is within upperbound MAX_BYTES_PER_INCLUSION_LIST.
  • [REJECT] The slot message.slot is equal to the previous or current slot.
  • [IGNORE] The slot message.slot is equal to the current slot, or it is equal to the previous slot and the current time is less than ATTESTATION_DEADLINE seconds into the slot.
  • [IGNORE] The inclusion_list_committee for slot message.slot on the current branch corresponds to message.inclusion_list_committee_root, as determined by hash_tree_root(inclusion_list_committee) == message.inclusion_list_committee_root.
  • [REJECT] The validator index message.validator_index is within the inclusion_list_committee corresponding to message.inclusion_list_committee_root.
  • [REJECT] The transactions message.transactions length is within upperbound MAX_TRANSACTIONS_PER_INCLUSION_LIST.
  • [IGNORE] The message is either the first or second valid message received from the validator with index message.validator_index.
  • [REJECT] The signature of inclusion_list.signature is valid with respect to the validator index.

The Req/Resp domain

Messages

InclusionListByCommitteeIndices v1

Protocol ID: /eth2/beacon_chain/req/inclusion_list_by_committee_indices/1/

The <context-bytes> field is calculated as context = compute_fork_digest(fork_version, genesis_validators_root):

fork_version Chunk SSZ type
EIP7805_FORK_VERSION EIP-7805.SignedInclusionList

Request Content:

1
2
3
4
(
  slot: Slot
  committee_indices: Bitvector[INCLUSION_LIST_COMMITTEE_SIZE]
)

Response Content:

1
2
3
(
  List[SignedInclusionList, MAX_REQUEST_INCLUSION_LIST]
)