def __init__( self, key_pair: KeyPair, peer_id: PeerID, peer_updater: PeerUpdater, status_provider: StatusProvider, finalized_root_provider: Callable[[Epoch], Root], block_provider_by_slot: BlockProviderBySlot, block_provider_by_root: BlockProviderByRoot, metadata_provider: MetadataProvider, fork_digest_provider: ForkDigestProvider, eth2_config: Eth2Config, ) -> None: peer_store = PeerStore() peer_store.add_key_pair(peer_id, key_pair) muxer_transports_by_protocol = {MPLEX_PROTOCOL_ID: Mplex} noise_key = ed25519.create_new_key_pair() security_transports_by_protocol = { TProtocol(secio.ID): secio.Transport(key_pair), TProtocol(noise.PROTOCOL_ID): noise.Transport(key_pair, noise_key.private_key) } upgrader = TransportUpgrader(security_transports_by_protocol, muxer_transports_by_protocol) transport = TCP() swarm = Swarm(peer_id, peer_store, upgrader, transport) BasicHost.__init__(self, swarm) self._peer_updater = peer_updater self._status_provider = status_provider self._finalized_root_provider_by_epoch = finalized_root_provider self._block_provider_by_slot = block_provider_by_slot self._block_provider_by_root = block_provider_by_root self._metadata_provider = metadata_provider self._request_responder = RequestResponder( self._peer_updater, self._status_provider, self._block_provider_by_slot, self._block_provider_by_root, self._metadata_provider, ) self._install_req_resp_protocols() self._gossiper = Gossiper(fork_digest_provider, self) self._peers: Set[PeerID] = set()
def initialize_peerstore_with_our_keypair(self_id: ID, key_pair: KeyPair) -> PeerStore: peer_store = PeerStore() peer_store.add_key_pair(self_id, key_pair) return peer_store