Ecosystem Operator

Step-by-step guide for an ecosystem operator

An Ecosystem Operator is responsible for initializing the ecosystem, designing workflows and inviting participating organizations.

Workgroup Creation

A Workgroup is required to interact with counterparties using the baseline protocol.

prvd baseline workgroups init

During this process, you will be prompted to:

  • Name your Workgroup

  • Select a mainnet where the Workgroup will operate

    • You may select any listed mainnet, though for testing purposes we recommend Ropsten.

    • Select the appropriate Organization to be added to the Workgroup

Initialize a new workgroup:

prvd baseline workgroups init --name '<workgroup name>' \
                              --network <network_id> \
                              --organization <organization_id>

If you are not interesting in inviting participants and only wish to run the stack, you can skip Inviting Participants below and proceed to Run the Stack.

Inviting Participants

A Workgroup setup is incomplete without participants to send messages. You will need to generate a verifiable credential (signed JWT) to distribute to each invitee, which will be used to join your Workgroup:

prvd baseline workgroups participants invite

During this process, you will be prompted to:

  • Enter the name of the invitee's Organization

  • Enter the invitee's email address

  • Select the appropriate Workgroup

  • Select the appropriate Organization

Invite a participant to the workgroup:

prvd baseline workgroups participants invite --organization <organization_id> \
                                             --workgroup <workgroup_id> \
                                             --name 'DJ Corp' \
                                             --email user@example.com

2021/05/21 11:24:39 invited baseline workgroup participant: djcorp@example.com

	eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwOjU4OjU4OjQ3OmVkOmMxOmM0OmUyOjVkOjA4OmVkOmI4OjgxOjQ1OmZiOmJjIiwidHlwIjoiSldUIn0.eyJhdWQiOiJ0Y3A6Ly82LnRjcC5uZ3Jvay5pbzoxOTYyNiIsImJhc2VsaW5lIjp7Imludml0b3Jfb3JnYW5pemF0aW9uX2FkZHJlc3MiOiIweDBBNzlmZjAyNEFmMkViZjdCNURFNWNiOGQyNjZENWRiNjc4MTg2MTYiLCJyZWdpc3RyeV9jb250cmFjdF9hZGRyZXNzIjoiMHg5RkZEN2JlODk1NUUwZjdCZkZjRjUyN0E1MjkzNTk0QTJlMUU4QjhhIiwid29ya2dyb3VwX2lkIjoiMzg4MjEwNzAtNjYxMS00YTNiLTg5MDItN2VhNTQwZGQyNDQ5In0sImlhdCI6MTYyMTYxMDY3OSwiaXNzIjoib3JnYW5pemF0aW9uOjQwZWU4MGRhLTFjYzktNGFiYi04NDgwLWYyYjY4OGFjY2I5MCIsIm5hdHMiOnsicGVybWlzc2lvbnMiOnsicHVibGlzaCI6eyJhbGxvdyI6WyJiYXNlbGluZS5cdTAwM2UiXX19fSwic3ViIjoiZGpjb0Bwcm92aWRlLmxvY2FsIn0.fWo47v04w5hX6ghY-h5My0PTfH1OhPHTOSUyHvxUkB_XhGzbXrX6bgzLD28hDM6Nc1L0tznDulJOROgSniy-VXlos1aHXFF1sRjXEa1F-e3UbvzYLEGUSmRh3_j7rGf2_3QL4A1dXbftXwd_NRw-R_g-vp4dnA3PcuysEg5-YSRk4bMBGKlP7OpwGCaOUNH3vAi6X_D5p_S93U9nK5vgumQs_yuDfSQ9oV3YIRHNoNYGWDh4FMl3cXsncAHI5Rk9GjgHjq6kq2aLeo6LZ8ObOCkNlZpn8lBddTjBLSkNdJOnxA0qL18aIP8RsoWxzukmv9DUZxVhOwysRCC_dZ9rwlk5UKFBvem4mMqC2hxHv9WpKpOC3u4fxJHFdxcBk2e5nrRQvGKzb82q9xaJsCGLFZr3fKXkvVwqGOMi-t655N-qwvFGXLdj2ydsb4gqrlY-pkYR_3Qmm8UPjdfhHQrwrAL4DobIJWUhT_iDG945epPdXhtINEtPfGbR2kpwdeyMo_5kMro8SmThg44OdFhZae557XcP626P1TnA56-nttXgRK9LUrG-yTBbNz9sN2yofFL19xOkf6_dC1rOv-k2v2T_pxWwY69RrrEjKJVtN3BupKKarVJou5tEI8AWnnwRw91GQdMzttQgAxTIax67LNjc81Ar11qELhldCvorOEo

Verifiable Credential

The invitation is a verifiable credential (signed JWT) that authorizes the invited party to connect and send protocol messages:

{
  "aud": "tcp://8.tcp.ngrok.io:15739",
  "baseline": {
    "invitor_organization_address": "0x584f8C05f665E6bA1ffdb729cc588C8D9158c3cd",
    "registry_contract_address": "0x7fC1B14a4DC8662e0F9092cc68182bFc26E49596",
    "workgroup_id": "6b0e1154-1cbe-4c8b-9b90-6e176d70e4ca"
  },
  "iat": 1621700053,
  "iss": "organization:789c6248-591e-4b71-bc95-1e766e51d629",
  "nats": {
    "permissions": {
      "publish": {
        "allow": [
          "baseline.>"
        ]
      }
    }
  },
  "sub": "djcorp@example.com"
}

Last updated