-
Notifications
You must be signed in to change notification settings - Fork 27
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
API: selective peer replication #2
Comments
What would this require from the implementation perspective? I would guess you could do a simple block list to drop feeds so that those are skipped in replication and user gets to choose whether they are permanently deleted or simply hidden. I can imagine a scenario where you don't want to actively replicate a feed anymore but it still has contents you would maybe like to access later. |
Dropping a feed: right now feed loading is done by looking for the Controlling feeds to replicate: the first thing that happens at replication time is both sides exchange a list of all hypercore keys they have & want to share. Replication could pause here, and there could be an API that gets called out to with the list of feeds, and returns the keys it wants to receive. There could be a similar API for choosing what feeds you'd like to share. Dropping messages within a feed: we get this for free! hypercore already has a clear API. I'm not sure if it will just automatically re-download it though the next time it connects to a peer with it. (cc @mafintosh on this) |
So to summarize, great news is that there’s nothing here that isn’t in the realm of just sitting down and doing the logic code and convenience functions around the logic. Regarding dropping messages, isn’t redownloading avoidable by using sparse replication? |
That all sounds about right. API design might be the hardest part!
|
Happy to help with that. Let me chew on this over the weekend and let’s discuss this further on Monday, and post the conclusion here after. |
@0fork also check out this list of actions that we'd want to be able to do in cabal (a chat client making use of multifeed) |
I've done some experiments with this locally, and it seems like with Part of me wishes there was actually a hook in hypercore's replication code that allowed for ignoring offered hypercore blocks, based on some user-land logic. I for one have been looking into a way of specifying something like a |
I bet @mafintosh would be open to that! |
Yea def sounds useful
…On Fri, Sep 28, 2018 at 6:51 PM Stephen Whitmore ***@***.***> wrote:
Part of me wishes there was actually a hook in hypercore's replication
code that allowed for ignoring offered hypercore blocks, based on some
user-land logic.
I bet @mafintosh <https://github.com/mafintosh> would be open to that!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#2 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AAW_VROwABzW0wi5kEx_sXpMjynHHBrlks5uflOPgaJpZM4WEP20>
.
|
I have a working implementation for that: I'm currently looking into the possibility of dropping a feed, I believe that the only complexity involved is playing nice with the current multifeed storage scheme and make sure that deleted feeds won't break |
I think @substack is working on this to implement peer blocks in Cabal. |
Yeah I'm having to use multiplex and have multiple instances of multifeed to deal with different levels of access for different peers so something like this would be really great. |
I'd really like APIs that offer more control around feeds:
cc @0fork, who I was talking to about APIs to better support userland moderation and authorization models
The text was updated successfully, but these errors were encountered: