use std::async instead of posting to asio_service to handle the GetPublicKey tasks (avoiding blocking)