syntax = "proto3"; package ethereum.beacon.p2p.v1; import "proto/beacon/p2p/v1/types.proto"; enum Topic { UNKNOWN = 0; BEACON_BLOCK_ANNOUNCE = 1; BEACON_BLOCK_REQUEST = 2; BEACON_BLOCK_REQUEST_BY_SLOT_NUMBER = 3; BEACON_BLOCK_RESPONSE = 4; BATCHED_BEACON_BLOCK_REQUEST = 5; BATCHED_BEACON_BLOCK_RESPONSE = 6; CHAIN_HEAD_REQUEST = 7; CHAIN_HEAD_RESPONSE = 8; BEACON_STATE_HASH_ANNOUNCE = 9; BEACON_STATE_REQUEST = 10; BEACON_STATE_RESPONSE = 11; } message BeaconBlockAnnounce { bytes hash = 1; uint64 slot_number = 2; } message BeaconBlockRequest { bytes hash = 1; } message BeaconBlockRequestBySlotNumber{ uint64 slot_number = 1; } message BeaconBlockResponse { BeaconBlock block = 1; Attestation attestation = 2; } message BatchedBeaconBlockRequest { uint64 start_slot = 1; uint64 end_slot =2; } message BatchedBeaconBlockResponse { repeated BeaconBlock batched_blocks = 1; } message ChainHeadRequest {} message ChainHeadResponse { bytes hash = 1; uint64 slot = 2; BeaconBlock block = 3; } message BeaconStateHashAnnounce { bytes hash = 1; } message BeaconStateRequest { bytes hash = 1; } message BeaconStateResponse { BeaconState beacon_state = 1; }