Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Document common patterns to use in Apps #481

Open
mattyg opened this issue Oct 14, 2024 · 0 comments
Open

Document common patterns to use in Apps #481

mattyg opened this issue Oct 14, 2024 · 0 comments

Comments

@mattyg
Copy link
Member

mattyg commented Oct 14, 2024

Common patterns used in app development

Must include:

  • code examples
  • practical, terse explanation
  • gotchas

Possible topics include:

  • Lobby
    • gaining access to privileged DHTs
    • getting directory of DNA clones
    • mediated access to other DHTs via call_remote
  • Blockchain binding
  • File chunking
  • DNA composability
    • One DHT per file/channel
    • Throwaway DHT
    • Per-role DNAs (combine with Lobby for mediated access)
  • Various CRUD patterns
  • Communications
  • Access control / privileges / privacy / secrecy
    • Benevolent dictator
    • Progenitor
    • Capability delegation
    • Memproofs for DHT read / peer connection privileges
      • Token gating
      • Group password (better handled by network seed TBH)
      • Certificate chains
      • Lobby can be used to distribute memp
    • DHT writes
      • Only author can edit
      • Read-only public DHT with memproof for write privileges (necessary for Holo resilience nodes to work)
    • Encrypted DHT data
      • key rotation for forward secrecy
        • double ratchet
        • manual rotation
    • Private data and call_remote
    • Homomorphic encryption
    • ZKP
    • Negotiation of shared secret, e.g., dice roll
      • SMPC (e.g., EcDSA)
      • just sharing the darn secret
    • Shared secrets, public disclosure/auditing
  • Validation
    • Inductive validation
  • Remote signals
    • Heartbeat / presence indicators
      • Online-ish-ness -- dealing with ambiguous definition of 'online' in P2P context
      • swarm connectivity -- how connected am I to the people I'm doing work with?
      • beacon or sentinel -- am I connected to 'the internet' (or at least the portion that I expected to see)?
    • Anchor pub/sub
    • Publish frontrunning -- sending out a signal in post_commit to let listeners know that a DHT entry should exist there eventually
    • Real-time collaboration
      • Syn v1 (scribe that collects CRDTs from collaborators, periodically commits change sets)
      • Syn v2 (no scribe needed; don't know how this'll work yet)
      • Branching revisions
  • Consensus protocols
    • Countersigning-based
      • Single notary
      • Notary pool (m-of-n optional witnesses)
    • Hardened metadata (will be supported by Holochain eventually; curious if it could be implemented as an app-level pattern)
    • Blockchain binding
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant