def METHOD_NAME(self, context: AuthedServiceContext) -> NodePeer:
    # relative
    from .node_peer import NodePeer
    # Step 1: Check if the given route is able to reach the given node
    # As we allow the user to give custom routes, we need to check the reachability of the route
    self_client = self.client_with_context(context=context)
    # generating a random challenge
    random_challenge = secrets.token_bytes(16)
    challenge_signature = self_client.api.services.network.ping(random_challenge)
    if isinstance(challenge_signature, SyftError):
        return challenge_signature
    try:
        # Verifying if the challenge is valid
        context.node.verify_key.verify_key.verify(
            random_challenge, challenge_signature
        )
    except Exception:
        return SyftError(message="Signature Verification Failed in ping")
    # Step 2: Create a Node Peer with the given route
    self_node_peer = context.node.metadata.to(NodePeer)
    self_node_peer.node_routes.append(self)
    return self_node_peer