-
Notifications
You must be signed in to change notification settings - Fork 578
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
NIP-61 - Event Sets #784
NIP-61 - Event Sets #784
Conversation
7ae597f
to
8ae2b5d
Compare
I like the idea of having something like this. It would be nice to have it more explicit that you might have public and encrypted data coexist in a list. I'm not sure why we need |
51dd18f
to
c00b7d9
Compare
Added "Public and encrypted data can coexist in unbounded list events similar to NIP-51 lists." Thanks
I realized we didn't need a new range; just reserving the |
30fe94f
to
fc97c78
Compare
60c918d
to
6a75f24
Compare
6a75f24
to
5773354
Compare
It kinda solves it. If pubkeyA makes a pubkeyB has changed your status to include the lists: It's broader than just follow/unfollow. |
Yeah the client would need to track Tracking isn't that great, cause one may have thousands/millions followers. Ideas: B) Or we add uppercase C) Or we could use an auxiliary "Set Change Notification" event just with the |
I like the local solution. If it is the first start, the notification can just be more generic (people don't care about new follows in the first start). Once the client has received some events, it can then display the differences between them on updates. |
Yes, it just doesn't make the problem much easier. I still like this event sets idea a lot, though. i'm working on implementing it in Ditto. |
Why does the target event's pubkey need to be in the |
@arthurfranca Should this be unmarked as a draft? |
I am just realizing that with this, we are just swapping an event with thousands of keys (e.g. the contact list) to an event with thousands of list names (e.g. new Different race conditions, but race conditions might still be a problem if lists become a common feature of Nostr clients. Regardless, this is a good evolution. |
@vitorpamplona It seems very improbable that a single user would add another single user to 1000+ lists. Even power users will have hundreds at most, while they will follow thousands of users. So the scale is very different, and it minimizes the potential damage of race conditions to your relationship with individual users instead of your entire list. |
Btw, I implemented event sets in Ditto. The Ditto nsec tags pubkeys with It also generates event sets for reports and some other things, which it tags with I will soon be implementing private user notes and user-recommended follows with this. I think it's very needed, and the I replaced the custom kind 30361 event I was using in Ditto with kind 30382. |
I think this PR is ready. Just would like to make it clear that although this PR has all the necessary steps to migrate from NIP-51 lists, it does not aim to make clients migrate from NIP-51. Though it opens the possibility to experiment migrating less "important" ones like using "mute" event sets instead of "mute" NIP-51 lists. Also, it opens the door to using events sets for new use cases where one would otherwise spec a new NIP-51 list. |
IMO this not much more than a clever hack, and not a fundamental solution of the problem of follow list race conditions. I don't really see myself adopting this except to be interoperable with other features I want to support. But migrating things to it is just not going to happen, for me or many other devs. To that point, it's a very bad idea to add some of the "standard" event sets listed. What is the semantic difference between a follow list and a follow set? Which is canonical? Is the newer one better? People are going to see this NIP and think it replaces kind 3 follow lists, and start writing only sets. Or they'll attempt to implement complicated reconciliation logic and fail. I think if people start to use any of the |
Indeed. I was thinking, the only thing Event Sets competes against (as far as "do things one way") is Lists... in concept. But it's the specific names/list kinds that need to not compete. The concepts should be able to coexist. |
Sets and Lists are different things. There is some intersection, but sets do not replace Lists at all times. |
I'm against both. I just recognize that I have no power to prevent sets being used. Yes, sets are different from lists, but not different enough IMO to complicate the protocol with them (especially when we also have labels). |
I'm going to stop pushing NIPs for a while after I felt that I had to deface this PR to fit whatever requirements to move this forward. Sometimes there is no guidance to improve a PR, just unconstructive reviews that show up after months. |
Read here
Like NIP-51 lists but without list size limit.