2019-07-31-A Aries Working Group Call (US morning)
Summary:
Work updates
Agents vs Hubs
Aries SDK threading model
Note: This call is Recorded. Recordings posted at the bottom of the page.
Date
Jul 31, 2019 (7AM Los Angeles, 10AM New York, 3PM London, 17H Moscow)
Remember the Hyperledger Code of Conduct
Anti-Trust Policy:
Linux Foundation meetings involve participation by industry competitors, and it is the intention of the Linux Foundation to conduct all of its activities in accordance with applicable antitrust and competition laws. It is therefore extremely important that attendees adhere to meeting agendas, and be aware of, and not participate in any activities that are prohibited under applicable US state, federal or foreign antitrust and competition laws.
Examples of types of actions that are prohibited at Linux Foundation meetings and in connection with Linux Foundation activities are described in the Linux Foundation Antitrust Policy available at http://www.linuxfoundation.org/antitrust-policy. If you have questions about these matters, please contact your company counsel, or if you are a member of the Linux Foundation, feel free to contact Andrew Updegrove of the firm of Gesmer Updegrove LLP, which provides legal counsel to the Linux Foundation.
Attendees
Name (organization) <email>
@Richard Esplin (Evernym) <richard.esplin@evernym.com>
@Daniel Bluhm (Sovrin Foundation) <daniel.bluhm@sovrin.org>
@Adam Burdett (Sovrin Foundation) <adam@sovrin.org>
@John Callahan (Veridium) <jcallahan@veridiumid.com>
@Nicholas Rempel (BC Gov) <nick@lucent.is>
@Andrew Whitehead (BC Gov) <cywolf@gmail.com>
@Rebecca Christman <rebeccachristman@gmail.com>
@Brent Zundel (Evernym) <brent.zundel@evernym.com>
26 attendees
Welcome / Introductions
Announcements
BC Gov is interested in collaborating with groups working on Mobile Agents that could be ready for a live implementation at the end of the summer. Contact @Stephen Curran.
Community project: Aries RFCs - process to move HIPES; RFCs that have been moved concepts / features / pull requests.
Summary of Prior Calls and Related Meetings
Aries WG
Indy
Ursa
Release Status
Aries-CloudAgent-Python (bc.gov) - Release 0.2.0, 0.2.1 tagged
Architectural Deep Dive recording: https://lf-hyperledger.atlassian.net/wiki/download/attachments/18481664/GMT20190723-ACA_Deep_Dive_1920x1080.mp4?api=v2
Aries-Framework-Go (Troy)
Aries-SDK-Ruby (Jack)
Moving from personal repo (https://github.com/johncallahan/rindy) soon.
Indy SDK
Late July:
GitLab migration alongside Jenkins (Foundation)
LibVCX without agency (Evernym)
Proof of possession
CLI tab completion
Migration of components to Aries (
)Error rendering macro 'jira' : null
Ursa
PRs for Anoncreds 2.0 are in progress
ZMix specification in progress
Work Updates
Documentation improvements: Michael B and Stephen C
First draft in aries-cloudagent-python from 0 to coding in Aries
Need to review and prune out-of-date documentation (Alice / Faber treatment of pairwise DIDs is a key pain point)
SDK 2.0 architecture / Indy-Aries split (Sergey)
https://docs.google.com/document/d/1MYMi4NkixfoIJeC79WBOfX_QA3_9rG-iK3lZa86vIR0/edit#heading=h.z1u0dzf62loi POA and discussion
https://docs.google.com/drawings/d/1d-aCRC_Nzyywv9nyQif9_vBGbeWhp69M4T5_8_yYtAI/edit?usp=sharing Indy SDK Migration box diagram
https://docs.google.com/drawings/d/1sUffkRPlufingeeRjjBniVt9Ek3CNih9lUqym8mUl4M/edit?usp=sharing Aries Architecture
https://hackmd.io/_BhJewTlSUqMGNDc4SvgNw?edit developing ideas around APIs
RFC Progress
Other Business
LibAries: library threading models and synchronicity
Resolver and wallet might have different needs than other API functions.
Current design in Indy was implemented as part of IS-660
HIPE: https://github.com/hyperledger/indy-hipe/tree/master/text/0012-concurrency-improvement
Mike's concerns: https://docs.google.com/document/d/1-oabbR7n4MsLsU-MGfrwbjJvB1V4nMroW_oh2BvYVXc/edit
VON Anchor takes a significantly different approach:
https://von-anchor.readthedocs.io/en/latest/von_anchor/anchors.html#revregbuilder
"Neither multithreading nor green-threading primitives pass through the wrapper/shared-library barrier; subprocessing must occur early in the game before libindy sets up its dispatcher, as it operates in a separate thread(? message loop? it's been a while) that does not replicate over a fork (this is unix architecture not indy).
"In von_anchor, An external rev reg builder process uses file system semaphores as IPC, increases rev reg size as it scales up, and anticipates one rev reg in the future so that the issuer process never waits for a rev reg build."
Problems with current architecture
not flexible enough (PicoLabs' experience)
hard for contributors to understand and improve
Advantages of current architecture
handles various inherent types of asynchronicity (ledger resolver, wallets, crypto)
hides difficulty from application developers using the library
Current Indy architecture:
https://github.com/hyperledger/indy-sdk/tree/master/docs/design/012-libindy-architecture-overviewProposals:
Keep the current Indy model of asynchronicity
Handle asynchronicity in the language libriaries
Multi-process instead of multi-thread
Push asynchronicity from the common library closer to the sources of asynchronicity: ledger resolver, wallet handler, crypto wrapper (or crypto moves to application tier)
Different threading models for Indy tier and Aries tier
Follow up conversation: #aries-sdk
Future Topics
Other LibAries architecture suggestions
@Daniel Bluhm : https://hackmd.io/@gjPgYQjMT3azdpSAFgo5PA/HyjVdhVGr
Hubs vs Agents
Payments in Aries
wallet query language
IOT best practices (@Robert Mitwicki, @Adam Burdett , @Lohan Spies )