OpenMined / PyDentity

A repository for leveraging Self-Sovereign Identity in applications

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DIDComm Mediators

wip-abramson opened this issue · comments

What?

A DIDComm mediator is used in routing messages between agents. It is not always required, but in situations where recipients are not always online such as mobile phones, a mediator is necessary.

Mediators are starting to get attention within the identity space as DIDComm v2 becomes standardised. It would be great to understand what is out there for us to use either to run our own mediator or connect to a mediator hosted by another party.

How long?

2 months

Is your research related to a problem?

Before we will be able to run our own mobile agents we will require a mediator they can connect to - #37

Additional Context

This is a good resource on mediators - https://github.com/hyperledger/aries-framework-go/blob/master/docs/didcomm_mediator.md

Currently the go framework does not work with ACA-Py agents but this is supposed to be coming very soon.

I am also expecting the release of specific mediator libraries very soon.

This demo from ACA-Py uses a RoutingAgent that might be worth looking into - https://github.com/hyperledger/aries-cloudagent-python/blob/master/demo/runners/performance.py. This could be used to create a nice notebook tutorial on mediators.

I also know these two projects claim to support mediators:

This is now implementable in ACA-Py. We should create a demo using it.

dblum(hyperledger rocket chat):
The general flow for mediation is as follows:

  1. Connect to your mediator agent
  2. Send a mediation request to the mediator agent (this step will create the mediation id)
  3. Mediator sends a grant message (done automatically if using the
    --open-mediation flag, otherwise it must be granted through the Admin API; listing requests on the Mediator side will show a mediation request in requested state until granted)
  4. Send keys to your mediator to be mediated. When the mediator receives a forward message with one of these keys in the to field, it will forward the message on to your agent. This is done automatically during the connection protocol if you create an invitation with a mediation id or if you receive/accept an invitation with a mediation id. Support for DID Exchange and OOB is still pending so you'll have to use the connection protocol for now.

There is also a test mediator hosted by Indicio - https://indicio-tech.github.io/mediator/. This could be added to a staging network tutorial

@wip-abramson suggest we close this ticket as mediators is already implemented with v0.6.0