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; CHAIN_HEAD_REQUEST = 5; CHAIN_HEAD_RESPONSE = 6; BEACON_STATE_HASH_ANNOUNCE = 7; BEACON_STATE_REQUEST = 8; BEACON_STATE_RESPONSE = 9; } 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; AggregatedAttestation attestation = 2; } 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; }