[2023-06-28 07:58.03 +0000]
today:
- [v] docker integrate
- [v] look at project plan
- [v] look at wiki account
[2023-06-29]
Presented at Aries Meetup.
audio @ Youtube
https://youtu.be/Wg0R5a1nBzo?t=1212
I am under mentorship at the aries vcx team.
I will be working on aries mediator project. Previously called agency. They are similar roles.
For those that don't know. mediator is
- like a drop box people can send you messages there
- and you can pick them up later
- useful for scenarios like your mobile phone agent which can't always recieve messages
- network interruption
- sleep.
- power conservation
- You can think of this as the homeserver in matrix ecosystem if familiar, but much simpler.
- all messages are end to end encrypted so mediator doesn't effect the security of the system.
In the last couple of weeks, I have been
- onboarding (introduction to the project)
- geeting comfortable with the ecosystem, attending random hyperledger meetings.
- setting up vcx development environment on my device.
- it starts easy but it can have some tricky bits.
- we were stuck on some bits regarding integrations with the rest of ecosystem.
- with swapnil and the teams help, we finally resolved those yesterday. and think we are in a good state ready to work on the repo .
- I have also been looking into and researching frameworks that would be suitable for this project,
- patrick describes the requirements and expectation we have from the service
- horizontal scalability
- performance
- and ability to use websockets for persistent connection to mobile devices
- Hopefully by next week we'll have a final selection.
Yes, that's the status till now.
[2023-06-30 04:31.57 +0000]
Evaluation as tests? Let's do test driven development? (just an idea)
Project plan
Stage 1: HTTP Server and Json messages.
- define storage traits and impl
- end points
- tests.
- CI: Build on commit/pushed commits.
Eval:
- setup development environment
- rust learning (learn and gain good pedagogical familiarity with concepts used: structs, impls, macros, etc )
- basic web service skeleton ready
- CI for making sure builds succeed
Step 1.05/2.05/4.05: Discuss registration options. (fuzzy)
- decide form of registration
- box using what identifier (random, or key based)
- what will be the authenticator (key?)?
- procedure of registration
- auto registration of receiver based on forward message target (if key based boxes)
- proactive registration by receiver
- (allows websocket connection to be set up and in place; when implemented)
- Both above can be done simultaneously, to enable sender initiated, receiver initiated service
- ~~integrate/harmonize the two boxes (maybe, or keep them separate for privacy if possible)~~
impl
Stage 2: Add data structures of Connection protocol.
- see if need to change storage traits, or just create new implementation.
- optimise endpoints (api etc)
- tests (see if data is being stored in database.)
Eval:
- Demonstrate grasp of basic rust concepts (mentioned earlier)
- Grasp understanding of more advanced rust concepts (arc etc)
- Able to use existing sophisticated/complex rust library inside a different project.
stage 3: Add pickup protocol data structure to Aries-Vcx
- Add data structures and maybe impls to Ariec vcx (this could take time to design, iterate, and code inside vcx.)
- test for above
Eval:
- Demonstrate usable rust proficiency ~~familiarity~~ to integrate new features in complex codebase
-
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.
Eval:
-
Wrap up:
- CI work, CI and CI driven releases of binaries
- design / define workings of websocket service api (not necessarily code)
Deliverables:
- special aries agent (mediator) that can store messages forwarded 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.
Mentee maintains a blog with frequent updates:
Aries VCX Diaries
Put up a project plan on wiki. Talked to Patrik. Said will be making some edits to evaluations, rest is good!
A more refined version is on the Wiki. Thanks Patrik!
Project Plan @ Hyperledger Wiki