nos icon indicating copy to clipboard operation
nos copied to clipboard

[Follows] Add a nos tag to all follows events

Open setch-l opened this issue 1 year ago • 3 comments

We want to know if there is ever a point in the future when the Nos app is the cause of lost follows lists. To do this we will add a Nos app tag to all follows events that we publish across the network.

Daniel has some code to track when follows are lost already, so we can pair the tag with the large instances of lost follows.

AC:

  • Add the Nos tag to all follows events that take place in Nos.
  • Give Matt a link to the PR, so he can post about the idea on Nostr.

setch-l avatar Sep 04 '24 14:09 setch-l

Shouldn’t we tag all events our app emits with the Nos tag anyway not just follows. It’ll help with discovery of Nos in other nostr apps.

rabble avatar Sep 06 '24 03:09 rabble

The server-side implementation is complete, and we now expect a client tag with nos as the content. More details are in the Slack conversation here. The other tag values should be present to comply with the protocol described in NIP-89, although the server doesn't check them.

We need to be aware that this tag isn't signed by nos, so its presence doesn't guarantee the event actually came from our app—it can be faked. When we detect these, they should be considered hints to aid in filtering, not definitive proof. To be certain, we'd need to map public keys to some internal nos pubkey list.

I wonder if we should update the NIP (cc @mplorentz) to clarify that the client tag should be interpreted as a recommendation of a client, not an assertion that the event came from our app—much like agent headers in HTTP. If this approach isn't acceptable, we could propose including an optional signature of a partial hash, implement server-side partial signatures by nos, or use NIP-06-based hidden secrets on app installs. However, these options would add significant complexity, especially if we don't care about client spoofing.

dcadenas avatar Sep 13 '24 00:09 dcadenas

Nostr doesn’t have a follow event. That’s the issue I want to address by updating the spec. Nostr just has a replaceable list event and a follow is done by replacing the list with a new one.

Anyway our kind 1 and 0 events should also include the app tag.

rabble avatar Sep 15 '24 01:09 rabble