code: def start_controller(self, fl_ctx: FLContext):
      self._server = multiprocessing.Process(
          target=xgboost.federated.run_federated_server,
          args=(
              self._port,
              self._world_size,
              self._server_key_path,
              self._server_cert_path,
              self._client_cert_path,
          ),
      )
      self._server.start()
  
file_path: xgboost/demo/nvflare/vertical/custom/controller.py
imports: import multiprocessing
  from nvflare.apis.client import Client
  from nvflare.apis.fl_context import FLContext
  from nvflare.apis.impl.controller import Controller, Task
  from nvflare.apis.shareable import Shareable
  from nvflare.apis.signal import Signal
  from trainer import SupportedTasks
  import xgboost.federated
label_desc: Use image node_id 2 for calling the XGBoostController obj's underlying member method code with example usage: obj.start_controller(fl_ctx) without return types