Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Summary:

Excerpt
  • Work updates
  • Agents vs Hubs
Scheduled topics:
  • Aries SDK threading model

...

Welcome / Introductions

Announcements

...

...

  • 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

    • Uncompleted work documented as IS-898, IS-943, IS-1135

    • 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-overview
    • Proposals:
      • 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

...