# EIP-7549 -- Networking This document contains the consensus-layer networking specification for EIP-7549. The specification of these changes continues in the same format as the network specifications of previous upgrades, and assumes them as pre-requisite. ## Table of contents - [Modifications in EIP-7549](#modifications-in-eip-7549) - [The gossip domain: gossipsub](#the-gossip-domain-gossipsub) - [Topics and messages](#topics-and-messages) - [Global topics](#global-topics) - [`beacon_aggregate_and_proof`](#beacon_aggregate_and_proof) - [`beacon_attestation_{subnet_id}`](#beacon_attestation_subnet_id) ## Modifications in EIP-7549 ### The gossip domain: gossipsub #### Topics and messages The `beacon_aggregate_and_proof` and `beacon_attestation_{subnet_id}` topics are modified to support the gossip of a new attestation type. ##### Global topics ###### `beacon_aggregate_and_proof` *[Modified in EIP7549]* The following convenience variables are re-defined - `index = get_committee_indices(aggregate.committee_bits)[0]` The following validations are added: * [REJECT] `len(committee_indices) == 1`, where `committee_indices = get_committee_indices(aggregate)`. * [REJECT] `aggregate.data.index == 0` ###### `beacon_attestation_{subnet_id}` The following convenience variables are re-defined - `index = get_committee_indices(attestation.committee_bits)[0]` The following validations are added: * [REJECT] `len(committee_indices) == 1`, where `committee_indices = get_committee_indices(attestation)`. * [REJECT] `attestation.data.index == 0`