Skip to content

Commit db0b950

Browse files
authored
add eip-7732 network topics (#7516)
1 parent bf9e244 commit db0b950

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

beacon_chain/nimbus_beacon_node.nim

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1351,6 +1351,13 @@ proc addFuluMessageHandlers(
13511351
proc addGloasMessageHandlers(
13521352
node: BeaconNode, forkDigest: ForkDigest, slot: Slot) =
13531353
node.addFuluMessageHandlers(forkDigest, slot)
1354+
debugGloasComment "default gossipsub config"
1355+
node.network.subscribe(
1356+
getExecutionPayloadHeaderTopic(forkDigest), basicParams())
1357+
node.network.subscribe(
1358+
getExecutionPayloadTopic(forkDigest), basicParams())
1359+
node.network.subscribe(
1360+
getPayloadAttestationMessageTopic(forkDigest), basicParams())
13541361

13551362
proc removeAltairMessageHandlers(node: BeaconNode, forkDigest: ForkDigest) =
13561363
node.removePhase0MessageHandlers(forkDigest)
@@ -1397,6 +1404,9 @@ proc removeFuluMessageHandlers(node: BeaconNode, forkDigest: ForkDigest) =
13971404

13981405
proc removeGloasMessageHandlers(node: BeaconNode, forkDigest: ForkDigest) =
13991406
node.removeFuluMessageHandlers(forkDigest)
1407+
node.network.unsubscribe(getExecutionPayloadHeaderTopic(forkDigest))
1408+
node.network.unsubscribe(getExecutionPayloadTopic(forkDigest))
1409+
node.network.unsubscribe(getPayloadAttestationMessageTopic(forkDigest))
14001410

14011411
proc updateSyncCommitteeTopics(node: BeaconNode, slot: Slot) =
14021412
template lastSyncUpdate: untyped =

beacon_chain/spec/network.nim

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,16 @@ export base
1818
const
1919
# https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.10/specs/phase0/p2p-interface.md#topics-and-messages
2020
# https://github.com/ethereum/consensus-specs/blob/v1.6.0-alpha.3/specs/capella/p2p-interface.md#topics-and-messages
21+
# https://github.com/ethereum/consensus-specs/blob/v1.6.0-alpha.6/specs/gloas/p2p-interface.md#topics-and-messages
2122
topicBeaconBlocksSuffix = "beacon_block/ssz_snappy"
2223
topicVoluntaryExitsSuffix = "voluntary_exit/ssz_snappy"
2324
topicProposerSlashingsSuffix = "proposer_slashing/ssz_snappy"
2425
topicAttesterSlashingsSuffix = "attester_slashing/ssz_snappy"
2526
topicAggregateAndProofsSuffix = "beacon_aggregate_and_proof/ssz_snappy"
2627
topicBlsToExecutionChangeSuffix = "bls_to_execution_change/ssz_snappy"
28+
topicExecutionPayloadHeaderSuffix = "execution_payload_header/ssz_snappy"
29+
topicExecutionPayloadSuffix = "execution_payload/ssz_snappy"
30+
topicPayloadAttestationMessageSuffix = "payload_attestation_message/ssz_snappy"
2731

2832
const
2933
# The spec now includes this as a bare uint64 as `RESP_TIMEOUT`
@@ -71,6 +75,18 @@ func getAggregateAndProofsTopic*(forkDigest: ForkDigest): string =
7175
func getBlsToExecutionChangeTopic*(forkDigest: ForkDigest): string =
7276
eth2Prefix(forkDigest) & topicBlsToExecutionChangeSuffix
7377

78+
# https://github.com/ethereum/consensus-specs/blob/v1.6.0-alpha.6/specs/gloas/p2p-interface.md#execution_payload_header
79+
func getExecutionPayloadHeaderTopic*(forkDigest: ForkDigest): string =
80+
eth2Prefix(forkDigest) & topicExecutionPayloadHeaderSuffix
81+
82+
# https://github.com/ethereum/consensus-specs/blob/v1.6.0-alpha.6/specs/gloas/p2p-interface.md#execution_payload
83+
func getExecutionPayloadTopic*(forkDigest: ForkDigest): string =
84+
eth2Prefix(forkDigest) & topicExecutionPayloadSuffix
85+
86+
# https://github.com/ethereum/consensus-specs/blob/v1.6.0-alpha.6/specs/gloas/p2p-interface.md#payload_attestation_message
87+
func getPayloadAttestationMessageTopic*(forkDigest: ForkDigest): string =
88+
eth2Prefix(forkDigest) & topicPayloadAttestationMessageSuffix
89+
7490
# https://github.com/ethereum/consensus-specs/blob/v1.5.0-beta.2/specs/phase0/validator.md#broadcast-attestation
7591
func compute_subnet_for_attestation*(
7692
committees_per_slot: uint64, slot: Slot, committee_index: CommitteeIndex):

0 commit comments

Comments
 (0)