pub async fn run() -> EResult<()>
calls mark_ready, block and mark_terminating
Will panic if RPC not set