Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support heterogeneous client scenarios #686

Open
ulope opened this issue Jun 30, 2021 · 0 comments
Open

Support heterogeneous client scenarios #686

ulope opened this issue Jun 30, 2021 · 0 comments
Assignees
Labels
Feature request A request for a new SP feature

Comments

@ulope
Copy link
Contributor

ulope commented Jun 30, 2021

Analysis

Current State

Currently the SP only supports running multiple instances of a single given client version.

Problem

We want to run scenarios with heterogeneous clients (e.g. PC <-> LC, multiple different versions of PC / LC etc.)
This issue is specifically about the ability of the SP to run multiple different clients in one scenario.
The orchestration of those runs will be handled in a separate issue.

Implementation plan

  • Two new cli options will be added that will allow to define versions and their corresponding executables.
    The reason these are to be implemented as CLI options is that the available versions should be orthogonal to the other available settings (scenario definition, env file).
    • --client-version
      Allows to pass a type/version tag and path (separated by space). The option can be given multiple times.
      • Examples:
        --client-version light-1.0.0 /path/to/lc/1.0.0/raiden
        --client-version light-1.0.0 /path/to/lc/1.0.0/raiden --client-version py-2.0.0 /path/to/python/raiden-v2.0.0-linux
    • --client-versions-file
      Allows to pass a path to a JSON file mapping type/version tags to executable paths. Takes precedence over any present --client-version options.
      Example file:
      {
        "light-1.0.0": "/path/to/lc/1.0.0/raiden",
        "py-2.0.0": "/path/to/python/raiden-v2.0.0-linux"
      }
      
      The intention is that this file will be generated by an external tool but this is outside the scope of this issue.
  • A new versions section is added below settings.nodes in the scenario definition.
    This will allow to override the client to use per-node.
    The format is a mapping of node-index to type/version tag (as specified with the CLI options).
    As usual template replacements can be used.
    Example:
    settings:
      nodes:
        versions:
          0: light-1.0.0
          1: py-2.0.0
    
  • The settings.nodes.raiden_version setting is changed to also expect a type/version tag and will be used as the default for any node which has no specific setting in `settings.nodes.versions.
  • To account for those changes the scenario version is changed to 3.
@ulope ulope added the Feature request A request for a new SP feature label Jun 30, 2021
@istankovic istankovic modified the milestone: Raiden v2.1 Jul 16, 2021
@palango palango removed their assignment Oct 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature request A request for a new SP feature
Projects
None yet
Development

No branches or pull requests

3 participants