Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Future of Pinning - storing Threads and Buckets at Textile

Future of Pinning - storing Threads and Buckets at Textile

Andrew W Hill

May 07, 2020
Tweet

More Decks by Andrew W Hill

Other Decks in Technology

Transcript

  1. ThreadsDB A p2p database built on IPFS, Libp2p, IPNS, IPLD…

    • Easy MongoDB-like developer interface. • Modular ACL, Identity, CRDTs and more. • Encryption design that enables private sharing and 3rd party pinning, relay, archival, etc.
  2. ThreadsDB const Astronauts = await db.newCollectionFromObject('Astronauts', { ID: '', name:

    '', missions: 0, }) db.on('Astronauts.**', update => { console.log(update) // subscribe to updates }) await Astronauts.insert( { ID: '', missions: 2, name: 'Buzz Aldrin' }, { ID: '', missions: 5, name: 'Christina Koch' }, { ID: '', missions: 2, name: 'Sally Ride' }, { ID: '', missions: 7, name: 'Jerry Ross' }, ) const all = Collection.find( { $or: [{ missions: { $gt: 2 } }, { name: 'Sally Ride' }] }, { sort: { missions: -1 } } ) for await (const { key, value } of all) { console.log(value) } • Every Thread (networking) has a Database • Every Database has 1-to- many Collections (schemas) • Collections have many instances (documents matching schemas) • Instances can be added, deleted, or updated. The database — simple
  3. A Push B A Pull B A Z B Z

    Push based p2p Pull based p2p Push/Pull based Thread Service Pull Push docsend.com/view/gu3ywqi Z Z Networking — ThreadsDB keeps users connected
  4. [ ] [ ] [ ] (Body, Key) (CID, Link)

    Encrypted (Service Key) hashed (CID) Meta Encrypted (Key) Encrypted (raw) (CID, Link) [ ] Meta (CID, Link) [ ] Meta (CID, Link) [ ] Meta ThreadsDB lets users do more with private data. (Read) docsend.com/view/gu3ywqi
  5. [ ] [ ] [ ] (Body, Key) (CID, Link)

    Encrypted (Service Key) hashed (CID) Meta Encrypted (Key) Encrypted (raw) (CID, Link) [ ] Meta (CID, Link) [ ] Meta (CID, Link) [ ] Meta ThreadsDB lets users do more with private data. User Owned Service Ready (Read)
  6. ThreadsDB Threads are dynamic pinsets! • Encrypted or open datasets.

    • One or many users collaborating. • Snapshots, Head tracking, Forking, Archives
  7. Buckets Dynamic folders over ThreadsDB • Collaborative, multi-user folders. •

    Automatically persist on IPFS via Textile Hub. • Push datasets to one or many remote IFPS peers.
  8. Buckets Buckets are built on ThreadsDB! • Buckets are an

    Instance in a ThreadDB • Recall: Instance > Collection > Database > Thread • Instances have an ID that also happens to be an IPNS address…! • HTTP over Hub or any IPFS gateway with IPNS
  9. The Hub Provide hosted IPFS and Thread services for devs

    and their users • Hosted IPFS and Threads Services • gRPC endpoints + JavaScript, Go, and Android(*) libraries. • Handle persistence, orchestration, relay. • HTTP, IPFS, and Libp2p endpoint
  10. The Hub Provide hosted IPFS and Thread services for devs

    and their users • Developers can get an Account Key • Developers can give their users a User Key • Users/Developers can create Threads using their own PK • Provide DB and Storage for any PK identity
  11. The Hub • Buckets and Threads offer new opportunities for

    pinning services to support interoperable, dynamic data formats. • Threads play nicely with pinning infrastructure but allow devs to disintermediate data<>user relationship. • Let us know! Dynamic, interoperable, and disintermediated.
  12. Bigger Picture Textile was born in more normal times •

    If you are working on technology that brings people together. • If you are working on technology that keeps people safe. • If you are working on technology that brightens the future. We want to support you.