-
Notifications
You must be signed in to change notification settings - Fork 602
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
Thread NIP #877
Thread NIP #877
Conversation
Can you include a motivation section with why you would want to use this
over nip-10 ?
|
@jb55 Added motivation section |
Please keep new ideas as Draft PRs. This makes sense, but I would also add the |
This causes immense disruption for basically no gain. |
@vitorpamplona the @fiatjaf yes an immense disruption that requires major clients buy-in. Honestly, I don't expect it to be merged but atleast I tried. But "no gain"? Zero? There are open issues or users asking for ways to 1) fetch just root events 2) editable kind:1 3) problems if referencing using We can choose to not fix the problems because it would require massive client cooperation but denying they exist is delusional or dishonest. |
We just shouldn't have the two strategies (markers and specialized tags) at the same time. |
@arthurfranca why do you say "major clients"? Why not the minor clients too? Because you know they will be effectively forced to change once the big clients accept the change? That's a very nasty way of conducting protocol development that happens everywhere but we should at least try to not have here too. I think you should at least be polite and ask the smaller clients even if you don't care. |
To your points:
|
There are some good ideas here. But if this merged, nostr would fracture into incompatible clients that couldn't work with each other. It is easy to come up with a better idea. It is very hard to develop a real protocol in the face of deployed technologies. |
Imo we could be early enough to force minor clients to change, although it isn't good to do it the more time passes. Major clients can't be forced to do anything but I can try to convince them. Though it is just my opinion.
Thanks for the real feedback Yes, there are some backwards-compatible solutions to a subset of the problems. Very hard though to even expect people to add a
One can't load in chunks when the replies are out of order. They are ordered by desc timestamp yes but they come from different levels deep in the thread. So clients basically just fetch everything at once and order them in memory. |
@mikedilger I was in hope that we were early enough to apply these changes. It was the best I could come up with using other people scattered ideas and my own. I see this won't get merged and no problem, clients will still work; just not that well. |
I don't think this is true, I think this is a good idea that could be implemented gradually, it just takes one person to start adding it, then others can check if it's present or not and then default to whatever other strategies they may use. Clients are already each using a different strategy for loading replies, as far as I know. We just barely notice because of some crazy syncing that happens in the background causes all relays to have all the events, but that will eventually end. |
I agree it's hard, but you could load the first 100, then the next 100, and as they come you would insert them into your thread tree structure. It's not the prettiest or easiest thing in the world and the UX will not be the best, but honestly it isn't very good in Twitter or anywhere either, mostly because no one can read these many replies. Having the ability to load "all the first-level replies" wouldn't help very much either. Who is interested in that? I think most users would probably prefer to follow some replies that lead to longer conversations and split into multiple threads than to read all the first-level replies first, no? What I imagine Twitter does is they try to load the "replies that interest you" using some algorithm -- which is something that we can achieve on Nostr by using some combination of carefully constructed queries, relay selection and DVMs or something. |
Honestly I think having two separate kinds for top-level posts and replies would have been a better choice if we were to start again, but starting again isn't an option and I'm not sure of that either. I keep switching between that being a better choice and not, there are pros and cons for both sides. |
This sums up everything. I think of all the thread problems, the worst offender is NIP-10 markers because it assumes the correct is to download a bunch of events and filter them client-side ignoring the easy win of filtering a bit more relay-side. I hope we learn the lesson of not overloading an indexable tag with more than one meaning for a specific kind. IMO Just to illustrate, its very bizarre having to download "mentions" that may not even be part of the thread along with replies of replies of replies to the root event when I just want the direct replies to the root event. That's why this PR proposes 3 different tags: Funny that I just found out NIP-10 was introduced as #1, the very first PR. Long before I came. Almost no one ever had a chance of discussing it. |
Might this be an opportunity to bump the note version? |
There can be no versions and no bumps if we want to stay decentralized. |
I know this feels bad, but bad decisions will be made. If this proposal here was adopted and Nostr grew and we found out in a couple of years that it was a bad idea what would all the new people think of it? "oh this proposal was adopted 2 years ago and none of us were even aware of it at the time!". |
On Wed, Nov 15, 2023 at 04:17:01AM -0800, fiatjaf_ wrote:
> Funny that I just found out NIP-10 was introduced as #1, the very
> first PR. Long before I came. Almost no one ever had a chance of
> discussing it.
I know this feels bad, but bad decisions will be made. If this proposal
here was adopted and Nostr grew and we found out in a couple of years
that it was a bad idea what would all the new people think of it? "oh
this proposal was adopted 2 years ago and none of us were even aware of
it at the time!".
I honestly think nip-10 is fine, and that this NIP is super nitpicky and
has obscure use cases. By all means build a client that uses these
features, but they won't be visible in any other client. Maybe that's ok
for arthur's client? I suspect there will be many different kinds of
incompatible threads for different use cases. For example, loading very
large and long-lived threads. I still think it's doable with nip-10 with
a little elbow grease and a local database, so even then I find this
spec sus.
|
sus in suspicious like I'm a bluesky employee trying to destroy nostr merging crappy nips? heheh enough feedback Ima close it |
Are you even on nostr? I can't find an arthurfranca to follow. I bet your from Microsoft! 😲 |
I knew it! |
My npub is a random faceless one till #158 rises from grave |
It tries to fix thread building and loading with better rules to follow instead of NIP-10 ones.
Read here
This would only work with major client owners cooperation. Maybe its the last chance to fix this.