Web of Trust.

App Store as a protocol.

Guy maintains a list of apps and either recommends to also consider others or automatically copies from these select others.

A bit like Linux distributions. Each has their own set of apps with huge overlaps but the user picks consciously a curator/distribution and adds more curators/distributions or individual apps when needed.

If we build this as a protocol, you could build tools that don't just search one person's repository of apps but all such repositories. Imagine you ask your client for "Snort" and it told you:

* 12 of your follows agree on Kieran being the maintainer of such a product addressable as Kieran.SnortSocial

* 2 of your follows list a product addressable as Eve.Snort

Reply to this note

Please Login to reply.

Discussion

This makes sense. Thanks!

Every user has the ability to endorse or reject apps.

Every user also has the ability to endorse other users as curators of the App Store. The vast majority of users will want to farm this out to a small handful of devs and others who stay on top of the latest apps.

Use a PageRank-style algorithm to calculate weight for each user to determine how much influence that user has on the list of recommended apps that you see.

Influence score sounds dystopian to me šŸ˜†

Way easier to have a community vote and feature top voted apps if they meet user experience criteria.

Also, pay sats to review and must be at least x month old account to count.

Who gets to be in charge of the vote? And who decides how many months old? This needs to be done in a decentralized manner. Which means no one should be in charge.

I think you can have a handful of trusted community members set the criteria no problem. Top vote determines featured app. Everything else by reviews.

Who picks the trusted community members?

Community … heh. There are only so many people who were here from the start. The criteria need only be chosen once anyway.

So the people who get to vote have an influence score of 1, and everyone else has an influence score of 0.

There needs to be a way to do this without forming a Central Committee.

And there is a way! It’s called loose consensus.

https://github.com/wds4/DCoSL

I think there’s some confusion.

Only need a handful of trusted people ONE time to define a policy for which votes count (ie if age of account should matter and how old) this will probably be a small limit anyway to encourage vote. Sat amount for each vote.

Then anyone meeting that criteria can vote.

Do you envision one main App Store? Or different ones run by different communities?

The benefit of an App Store is a source of consensus over what is quality and new.

I suppose you could have different app stores for different communities but I don’t see why you’d want to.

Some sort of web of trust would be best long term as nostr grows, but initially I think it’s overkill. There are not that many apps to even manipulate votes for. You can literally display them all on one screen šŸ˜‚

Yup, nostrapp.link has what, 20? Although it does seem to be growing fast!

As long as the voting system isn’t in the protocol, then the App Store is just another app and people use it if they like it or make their own if they don’t. At some point though, apps that some would consider controversial will pop up and so it would be nice to have a WoT solution figured out before that happens. Which is a nontrivial problem.

I’m not sure if there’s a fully decentralized solution at the end of the day or if you’d even want that. The entire point of app stores is to discover what’s new and good. If everyone is making their own, there’s no central discovery mechanism that benefits you. You can find new apps through other apps but that will be at someone’s discretion (developer’s).

Also, if you are ok with ANY app remaining in the store automatically then you’d have to be ok with hate and violence promoting apps. This would make the App Store lose all appeal quickly and make anything else attached to (news, education) irrelevant.

I think there will always need to be some moderation and curation or you end up with a bunch or garbage.

A fully decentralized solution is definitely possible. And desirable. Not just the App Store, but all sorts of questions and decisions. Many of them, including the App Store, boil down to the tools that we use to communicate with each other: what are those tools and more importantly who is in charge of deciding how they work.

The question is not whether we want moderation and curation, yes or no. Bc the answer to that question is yes. The real question is who decides, and how does the moderation and curation take place. Saying it should be done in a decentralized fashion does not equal let’s have zero moderation or curation, although it understandably might seem that way without having a clear vision of how it is even possible, or without even believing that it is possible.

But it is possible. Consider the English language, a tool for communication in the analog world. Who’s in charge of deciding what words mean what? Answer: nobody is in charge. No centralized bodies at all. And yet we — seemingly magically — somehow manage to agree to call a pencil a pencil. No committees, no standards bodies, yet we agree on most of these tools of communication. That is an example of loose consensus, in the non-digital world.

In the digital world, I think loose consensus is very much possible. We just haven’t implemented it yet. What would happen to the English language if websters dictionary shut down, and no one took their place? Basically nothing. Old words would still work, new ones would still churn into existence. But what would happen if the w3c stopped issuing standards, and no one took their place? Chaos, relatively speaking. No one would be able to agree on new standards for anything. Just like the cartoon, every attempt at fixing the problem of ā€œtoo many standardsā€ would just mean adding one more standard to the pile. Without centralized standards bodies, it would be a digital Tower of Babel.

But the thing is, I think loose consensus is actually not that complex to implement digitally. It’s just that we haven’t done it yet. šŸ¤·šŸ»ā€ā™‚ļø

That’s all fine. Im just thinking practically what’s possible today and doing it tomorrow.

day after tomorrow is what I’m focused on

Awesome post!

I think we are mainly hesitant about building solutions because the simple solutions would require a lot of data to be duplicated and stored. If I like your "app store" and want to make sure it sticks around, I'd not only give it a like, I would copy it and every iteration that I approve of. And thousands would do that to signal what's a worthy app repository, right?

In nostr, relays could de-duplicate events by tracking the hash of + . Now if Alice's App Store is stored as a stupid huge event, Bob's approval - Bob's copy of it would cost the relay only one hash. The relay might spread the cost over all supporters. Now if Alice wants to update the data she would initially leave Bob and others behind and be charged by the relay for the full new blob but if popular, others would quickly abandon the old blob, reducing the individual cost per hour in hosting the Alice-blob and increasing the individual cost of the Bob-blob as users abandon it.

Now Bob would have to

* rally support for resisting the change Alice introduced or

* join Alice or

* fund the full blob or

* curate the blob down to what he can afford to maintain as a separate - niche - "App Store"

the web of trust model is implicitly already enabled by NIP-89

it's up to clients to choose the model to select recommendations (if any) but the web of trust was top of mind while writing it

NIP-89 is what nostrapp.link uses, if I’m not mistaken?

Yup

I think people are literally talking about replacing the Apple App Store on nostr, not only nostr apps.

I definitely thought a lot about replacing Wikipedia.

There are so many things to replace! The question is how exactly to do it. And also, which thing(s) to try to replace first. Obviously start with simple things, so we can tackle the first question: _how_.

(How to do … what? How to recreate all these things in a truly decentralized fashion.)

My argument above was that we are probably irrationally shocked by the data volume of things we want to decentralize.

Collaborative curation would be awesome and we could start small but maybe not too small. I would love to move the nip registry onto nostr. Let nostr:npub180cvv07tjdrrgpa0j7j7tmnyl2yr6yr7l8j4s3evf6u64th6gkwsyjh6w6 maintain a list of nips and other approve of the list or not. How hard can it be?

With the WoT idea, I imagine being able to refer to "nip1" in a way ... like %nip1 such that your client would know where to look up what my understanding of "nip1" is. If I define ["nip1", "fiatjaf.nip1"] in the right place, your client would get you there. I think there is little missing for this to work. The idea of pet names is there and the rest can be done with some parametrized replaceable events.

This can absolutely be done. If I want to find a list of nips and which ones are approved and which ones are rejected by my WoT, I should be able to look it up. That can be done without requiring much data storage.

Pretty Good Apps could curate a list of nips right now. Buggy and not very spiffy but the proof of concept is there.

One problem to consider is: what if Alice and Bob each claim NIP-101 as their own? Two different NIPs but same number? Answer: we need to use cryptographic identifiers, not human readable names, to refer to their submissions. Then the WoT picks one over the other.

That is where I see the use of pet names. You would not talk about "nip101" or if you did, you would have something in place that would resolve to an actual parametrized replaceable event via maybe indirection. Or you would explicitly reference Alice.nip101 and then the nostr client would search for Alice's definition of "nip101".

Probably multiple ways to handle this. In my stuff, any given chunk of data may have several ways of identifying it uniquely: universally unique ones like the data hash or an event id (which are immutable; there’s also mutable ones line IPNS names); then there are slugs which are semi-human-readable; and one of the criteria of a concept graph is that every node in the graph must have a unique slug. But of course, outside the graph the slug won’t be unique, which is why you need a universally unique id. (if you ever want to share the data with anybody, that is; which is frequently the case when we’re doing WoT) Within any individual concept, there may or may not be any unique identifiers (whether local or universal), which will vary from concept to concept.

Rebuilding something in a truly decentralized fashion (and it’s probably worth thinking about what that even means, exactly) will likely require approaching / building lots of things differently than we are used to. For instance, we would need to make sure we don’t run into the problem you mention where Bob ends up expected to pay for storage of old data. Perhaps we would have to relax the expectation from the outset that a fully fleshed out snapshot of the entire App Store must get backed up just bc Bob’s WoT likes it at that moment in time. If he wants to back the whole thing up, he could do that separately. Just like I may have a local list of the 1000 best rock songs of all time, per Rolling Stone; it doesn’t mean I necessarily have them all on my phone. But maybe I’ll use the WoT-curated list tomorrow to help me decide whether to purchase one.

(I hope I’m following your line of thought. Let me know if I’m misunderstanding!)

Right now I’m working on a proof of concept where your WoT curates content for your nostr feed. You select a ā€œchannelā€ (a topic, like politics or sports or electronics) and your feed is determined by a list of pubkeys, curated by your WoT.

For this to work, there are several lists curated by your WoT:

1. A list of topics

2. A list of relationships between topics (like, smartphones is a subcategory of electronics)

3. One list of pubkeys for each topic.

If Alice doesn’t see the topic she wants, like Funny Cat Videos, she adds it and maybe endorses a few profiles that post on that topic. Maybe she also adds a topic: Videos that are Relaxing, and makes the cat topic a subset of that one. So if she turns on the relaxing channel, she automatically gets all the cat vids, plus whatever other categories her WoT added under Videos that are Relaxing.

It’s only dystopian if it’s centralized.

Only those with money can decide seems dystopian to me.

Principle 1: every user sees a different App Store. There is no single App Store.

Principle 2: users choose explicitly who gets to curate their App Store. No more scraping from the follows list.

This.

Sounds complicated