-
Notifications
You must be signed in to change notification settings - Fork 14
Attempt to reuse existing streams when adding an archive #4
Comments
No comment on this yet, just want to say that there's some potential to this and I'm thinking about it |
Yeah, right now my biggest concern is malicious actors being able to map out social graphs based on these events. Basically:
Not sure how useful something like this would be. You can't see what data they're sharing, just who they're talking to. Plus, it's only if you can convince somebody to connect to you for a key that you already know. |
I was discussing this with @mafintosh. One idea we had was to use this technique on archives that are used by a datsite for assets (JS, CSS, fonts, etc). That way it would optimize first-load, and it would only reveal information about the site (instead of info about the user). |
pfrazee: So you'd include references to it in the dat.json, I'd imagine? What do you think about the idea of sharing dats over connections in a social graph setting? I think this would be useful for Fritter where you're going to be connecting to people with mutual followers a lot of the time. |
We wanted to see if it could be done by other heuristics (like "oh this was referenced via a |
pfrazee: So if it's implicit, would a valid heuristic be that the DatArchive was opened within the page? I.e. When opening a DatArchive on a page, attempt to replicate it through replication streams opened for that page and other dats on that page? Then you're less likely to leak archives that aren't related to the content you're loading from. I'm not sure how this would work for seeding archives in the background, though. I guess that doesn't matter as much. |
@RangerMauve it's certainly a valid heuristic, but that's a very good case of leaking information about the user. For instance, on Fritter, you'd basically be announcing your profile on load, because that's the first DatArchive opened |
That said, it might still be a good temporary solution to consider. |
Since the hypercore protocol uses discovery keys for requesting feeds, you wouldn't be sending your profile information. Though you'd potentially be exposing all the IPs that are seeding your profile, which might identify your devices and followers IPs. |
If somebody was already crawling fritter, they would be able to get your profile based on the discovery key, actually. 🤔 |
Beaker is already capable of replicating mutliple dat archives over a single replication stream.
I propose that it should take advantage of this by attempting to load feeds from existing connections when opening a new archive. Essentially, beaker should track replication new streams here, and attempt to send the "feed" message to them once the archive is ready around here.
This would be useful for the cases where you're participating in a social network where the peers you've connected to are likely also to have the archives of mutual "friends". In that scenario you can start replicating data for the archive without having to go through the discovery swarm (and likely finding that same peer again). This should improve bandwidth by reducing the number of connections that need to be made for a successful replication.
Some considerations:
The text was updated successfully, but these errors were encountered: