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; CRYSTALLIZED_STATE_HASH_ANNOUNCE = 7; CRYSTALLIZED_STATE_REQUEST = 8; CRYSTALLIZED_STATE_RESPONSE = 9; ACTIVE_STATE_HASH_ANNOUNCE = 10; ACTIVE_STATE_REQUEST = 11; ACTIVE_STATE_RESPONSE = 12; } 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 CrystallizedStateHashAnnounce { bytes hash = 1; } message CrystallizedStateRequest { bytes hash = 1; } message CrystallizedStateResponse { CrystallizedState crystallized_state = 1; } message ActiveStateHashAnnounce { bytes hash = 1; } message ActiveStateRequest { bytes hash = 1; } message ActiveStateResponse { ActiveState active_state = 1; }