owned this note changed 2 years ago
Published Linked with GitHub

Durin

tags: durin mobile ios ipfs

App Store URL: https://apps.apple.com/us/app/durin/id1613391995
TestFlight URL: https://testflight.apple.com/join/GY08lwLf
Github Repo: https://github.com/ipfs-shipyard/Durin
Design: https://www.figma.com/file/TL1T4zNGe88YJNgfNrV5tp/Durin?node-id=11%3A46

V2 Notes 4/24/2023

After returning from IPFS Thing, we have some ideas to choose from for next features.
These need to be explored and architected before making the decision, there will be a document linked for each idea that goes more in depth.

  • Light Client for interacting with trustless gateways, written in HeliaJS
  • Sending files as blocks over Share Nearby / Airdrop, so they can be verified on the other side
  • integration of wnfs and UCANS with odd.dev (from fission), this work would more than likely happen with Hugo
  • IROH integration
  • NABU integration https://github.com/Peergos/nabu

MVP TODO

Aim to announce with blogpost before December 20.

  • Chore: write blogpost (1 hour) [Dave]
  • Chore: Set up feedback mechanism (4 hours) [Dave]
    • Public slack channel, github issue template link
  • Chore: add feedback link in settings page
  • Chore: fixup README for public consumption (1 hour) [Dave]
  • Chore: document process for publishing to app stores (1 hour) [Dave]
    • investigate what can be automated
  • Bug: link handling on android generating broken url (1 hour) [Trigram/Eric]
  • Bug: link handling on android with intents (4 hours) [Trigram/Eric]

V1 TODO

  • Feature: Allow app to be a share target (8 hours) [Trigram/Eric]
  • Bug: When ipfs:// link from QRcode is opened on ios "no usable data is found" message is displayed (2 hours)[Dave]
  • Feature: Design and UI/UX pass, create visual assets (16 hours)[Trigram/Adam]
  • Feature: Settings page (8 hours)[Trigram/Adam]
    • show nodes and speeds (add icons for node type local/remote)
    • checkbox next to a specific gateway to force it to use that one
    • "only use local gateways" option
  • Feature: Add mimetype to uploader to allow audio recording option on iOS (1 hour)[Trigram/Adam]
  • Feature: Generate QR code for sharing (show in upload success state) (2 hours) [Trigram/Adam]

Known Limitations

  • Mobile Chrome (iOS + Android): Typing ipfs:// (or any non-http protocol) into the address bar will kick you to Google
  • Local Node: Local nodes do not have intranet accessible gateways enabled by default
    - send PR to go-ipfs to default the Gateway to /ip4/0.0.0.0/tcp/8080
    This is a no-go https://filecoinproject.slack.com/archives/C02EQ3ELFBQ/p1659460752938759

Peer to Peer sharing

Phase 1:

:warning: NOTES FROM SLACK, NEED TO REVIEW :warning:

  • User can “Archive” a CID when viewing it
  • User can view a list of CIDs they have archived
  • User can delete a CID from their archive
  • User can airdrop a CID from their archive to another person, if they have Durin or not. Users with Durin are known as “Receiver”.
  • Receiver can be notified of files via airdrop, and accept or decline
  • Receiver who accepts a file via airdrop will have its CID validated and placed into their Archive page
  • Receiver who accepts a file over a size threshold (100mb?) where validation is costly will be prompted to optionally manually verify the contents

cid validation:

  • convert file to car file
  • send over airdrop ("nearby share" on android)
  • receiver unpacks car file and validates cid

Phase 2:

  • BLE
  • Requesting files
  • Support a public file directory, viewable to peers

Future Ideas

  • Feature: Add iroh gateway example Iroh is the rust implementation of kubo.
  • Feature: Ability to use your own token to upload files
  • Feature: Show previous browsing history on browse page (with remove and share option on swipe)
    • a new history page might be warranted here
  • Feature: Implement in-app browser as the default
    • Add a toggle to settings page to use system browser
  • Feature: Automatically back up photos/files to IPFS
  • Feature: Encrypted file sharing (put a password on it, or use a wallet signing key)
  • RND: Use proximity APIs
  • RND: Integrate with glif - is this useful?
    • yes, worth articulating some use-cases
  • Publish a JS module that exposes the useful features
  • Publish app template that uses capacitor and IPFS
  • Feature: Generate QR code for sharing (show qr code in slider and in upload sheet)
    • maybe we can have certain qr code links open automatically in durin

Extra

Open Questions

Select a repo