Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save dylanmartin/ca10a333a1b07e58a602b6524fd625c7 to your computer and use it in GitHub Desktop.
Save dylanmartin/ca10a333a1b07e58a602b6524fd625c7 to your computer and use it in GitHub Desktop.

For COINSTAC computations, the container must meet the following requirements and interface specifications:

Container Level Requirements:

  1. Mounting Host Directories:

    • The container must allow for the mounting of the following host directories:
      • /workspace/runKit/
      • /workspace/data/
      • /workspace/results
  2. Commands for Starting Clients:

    • The container must provide commands for starting both central and edge clients. Examples include:
      python entry_edge.py // edge
      python entry_central.py // central
  3. Communication for Central Client:

    • The central client must allow for communication through ports exposed to the host machine.

COINSTAC Conventions:

  1. runKit (if necessary):

    • If necessary, the container must be able to generate a runKit during the provision step. A runKit is a folder containing the files necessary to start a particular run. In our current computation, this includes:
      • parameters.json, which is:
        • Consumed by the central node.
        • Specified in the desktop App GUI.
      • The startup scripts for NVFLARE.
    • If a runKit is necessary, the container must have a command for provisioning runKits. Example:
      python provision.py
  2. Computation Author Responsibilities:

    • Documenting:
      • The format of the data to be consumed.
      • A description and example of the parameters the consortium leader can specify (in the form of parameters.json).
    • Ensuring Accuracy and Performance:
      • Ensuring the accuracy and performance of their computation in the target domain.
    • Communication:
      • Managing the communication between nodes (existing computations use NVFLARE for communication).

These specifications ensure that the containerized environment is flexible and compliant with COINSTAC conventions, allowing for necessary interactions with host directories, clear entry points for different computation types, and effective communication.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment