You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Abstract


Mediator service is like a drop box / post box that Aries agents can use to receive and store encrypted messages in its stead.

Basic flow:

  - people can send you messages at the mediator address if you are not always available to receive messages
  - you can pick them up later from mediator service using pick up protocol

Mediator/ Agency are useful for scenarios like mobile phone agents which can't always receive messages. Due to reasons including

  - network interruption
  - sleep /power off
  - power conservation optimizations

There exist a agency/mediator service for Aries, but it has limitations:

  • Written in NodeJS. A Rust based mediator service would be desirable for better integration with vcx
  • Does not support pick up protocol

A new Rust based Aries mediator service would offer.

  • High performance
  • Horizontal scalability
  • Simpler and more robust integration with Aries-vcx
  • Support for newer standard protocols like Pick Up protocol.

Deliverables

Main Deliverables:

  • Specialized high performance Aries agent (mediator to be) that can store forward messages received through connection protocol.
  • Pickup protocol data structs and impl inside aries-vcx
  • Mediator service that can answer pick up protocol requests to authenticated peers
  • CI to build and test on commit.


Extra Deliverables:

  • CI to make releases on based on tags and provide binaries in Github's release section.
  • (stretch goal): mediator service that can notify registered peers on inbox message available.

Learning Objectives

Project Plan

Stage 1: HTTP Server and handle simple Json messages

  • Answerable end points to connect to service
  • Define storage traits and impl
  • Tests to ensure proper functioning of above features
  • CI: Build on commit/pushed commits.

Stage 2: Add data structures for Connection protocol to service

  • Load required modules from Aries-VCX and use in service to handle aries connections
  • Decide if need to alter storage traits, or just create new implementation and act accordingly.
  • Optimise endpoints (API etc) for with Aries connection and to handle multiple of them simultaneously
  • tests (see if data is being stored in database.)

stage 3: Add pickup protocol data structure to Aries-Vcx

  • Add data structures and maybe traits to Ariec vcx related to pickup protocol
  • (this could take time to design, iterate, and code inside vcx.). So break into sub-tasks as necessary.
  • Tests for above

Stage 4: Integrate included pickup protocol stuff in Mediator code.

  • Pull pickup struct definitions / traits from vcx and integrate with local impl
  • see if additional local interfaces need to be defined for http / mediation (like accounts etc)
  • Tests.

Expected Outcome

Mentee Skills

Mentee Open Source Contribution Experience

Future plans


Participants (Mentors/Mentees)

Mentors

Patrik Stas, Discord: Patrik Stas#7722, Absa Group
Bogdan Mircea, Discord: bobozaur#5997, Absa Group
Miroslav Kovar, Discord: mirgee#3763, Absa Group
George Mulhearn, Discord: gmulhearn#0356

Mentee

Naian G, Discord @nain





  • No labels