Avatar
Sirius
4523be58d395b1b196a9b8c82b038b6895cb02b683d0c253a955068dba1facd0
developing iris.to
Replying to Avatar Sirius

The graph was crawled using https://github.com/mmalmi/nostr-social-graph . I used a node.js script from the repo, but the same stuff can be generated in Iris on the social graph settings page.

The repo has a Dockerfile for a server which keeps an up-to-date version of the graph, runs here https://graph-api.iris.to/ . On Iris build time, a 2 MB social graph dataset is requested from there. Should probably refresh on 1st iris.to open as well.

The graph up to approximately 3+ degrees is currently 200K users, 6M follows, 80K mutes. ~50MB. My macbook can easily handle it, but mobile phone will crash. Native apps on mobile should easily handle it.

The exported file contains uniqueIds: public keys mapped to integers for shorter representation. Then follow lists which are encoded using these integers. I want to do a binary export format: it would cut the file size approximately in half.

To crawl a graph you always need some follow list as entry point, but the graph by itself is "global", you can easily change the root point and recalculate distances.

The graph was crawled using https://github.com/mmalmi/nostr-social-graph . I used a node.js script from the repo, but the same stuff can be generated in Iris on the social graph settings page.

The repo has a Dockerfile for a server which keeps an up-to-date version of the graph, runs here https://graph-api.iris.to/ . On Iris build time, a 2 MB social graph dataset is requested from there. Should probably refresh on 1st iris.to open as well.

The graph up to approximately 3+ degrees is currently 200K users, 6M follows, 80K mutes. ~50MB. My macbook can easily handle it, but mobile phone will crash. Native apps on mobile should easily handle it.

The exported file contains uniqueIds: public keys mapped to integers for shorter representation. Then follow lists which are encoded using these integers. I want to do a binary export format: it would cut the file size approximately in half.

Iris ships with a precalculated Nostr social graph for content filtering. It can be recrawled on the client side with a click of a button. In addition to this "web of trust", maybe we should include a "web of likes" dataset for client-side generated content recommendations. "You liked this user's posts, so you'll probably like these as well." Or "web of zaps" if that signal works better.

My notification server doesn’t have social graph filtering. I started getting spam notifications right after posting with #introductions tag. Surprisingly, never had notification spam before.

This is the new meta in the age of social graph filtering. First post #introductions, get followers from clients that don’t do filtering, then start spamming. Just need to keep muting them - mute lists are also shared in Iris.

If you're interested in the topic but not familiar with secure messaging protocols, don't feel intimidated — I'm just a web developer and managed to implement the double ratchet library. You need just basic web development and computer science skills, curiosity and capacity to learn.

Btw, if I don't reply to your DM on Iris, try starting a new chat after a while 😄 It could have gone to a previous Iris session of mine. Or just email me at sirius@iki.fi. There's still work to do with session management / multiple devices / groups.

Sorry, my mistake! Part of what I intended to communicate was that I can only receive the DM on Iris (which uses a different double ratchet protocol).

Hiring: Full-time dev for Iris & secure DMs on Nostr

Nostr should be the simplest, most sovereign way to run an online store: just a phone, no server, no payment processor, no 3rd party accounts. With Cashu, even checkout works offline. No dependency chains, no failure cascades, no loading spinners.

But for e-commerce to be safe, we need encrypted DMs with forward secrecy. Without double ratchet or MLS, a compromised Nostr key leaks all past / future customer messages: orders, addresses, identities.

Secure DMs and groups don’t need network effects. Push notifications keep users coming back. Great way to grow Nostr.

Nostr can be like Signal, but better: No phone number or 3rd party account needed. Communicate over any relays, any clients, even offline over wifi or bluetooth. No central gatekeepers. Just keys.

Iris is the only client with double ratchet today, but any client handling sensitive data needs forward secrecy.

Want to help build that? DM me securely at https://iris.to/sirius.

Is there any active community on Nostr besides bitcoiners?

test nostr:note1s0qzddq7v29250rsvvvwxuynh55y9jpd38u5vamqv7y80a9f89dqvxzyrt

Filter { kinds: [40], search: "term" } returns nothing, can't search for public chats by name or description. Maybe relays indexing only kind 1?