one of the main issues nostr mobile users have, especially in poorer countries, is data consumption.

Most nostr clients connect to a number of relays you configure them to.

A lot of people configure 10, 12, even 15 relays.

Most clients just query for everybody the user follows on every single relay they are connected to.

And, just to be on the safe side and make sure your note is read, a lot of people publish through blastr, publishing to 300 relays.

This means that:

* clients connect to 10, 15 or 20 relays

* fetch EVERYTHING from EVERYONE EVERYWHERE

potentially downloading the same event from every single relay they are connected to.

📬 Outbox model

Some people claim that gossip/outbox model is inefficient because it can lead to MORE WebSocket connections.

Yup. It does.

But it also leads to a MUCH more censorship-resistant network. A network where if someone is banned, the people interested in that person CAN'T EVEN TELL THAT THE PERSON WAS BANNED.

A self-healing system.

AND...

as a byproduct of that, data consumption can radically lower.

Instead of fetching every post from everyone everywhere, clients can be much more intelligent and fetch data only from one or two relays where they know they will find what they are looking for.

"Give me posts from A, B, C" from relay1

"Give me posts from D, E, F" from relay2

nostr:nevent1qythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap0qyghwumn8ghj7mn0wd68ytnhd9hx2tcpr9mhxue69uhhwetvvdhk6efwdehhxarj9emkjmn99uq3jamnwvaz7tmjv4kxz7fwwdhx7un59eek7cmfv9kz7qgawaehxw309ahx7um5wghx6at5d9h8jampd3kx2apwvdhk6tcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz8thwden5te0wfjkccte9e3ks6trv9nk7urvv438xtnrdakj7qgwwaehxw309ahx7uewd3hkctcqyq2l30afg8n0c8fjphtuvn0dpyhslh9ypf7rkecnc5xf5thxkzwfkzmt0ch

Reply to this note

Please Login to reply.

Discussion

Yes, this is a huge issue for a friend that I'm trying to bring in from the Kakuma Refugee Camp, where data costs are through the roof and by the byte. Every note he downloads, he pays for directly.

And having the client do this kind of sorting might be inefficient as well. Could there be a way to create a designated filter on a particular relay that does the filtering without the client having to do the work, maybe something called a proxy relay or something. That way the client could 'connect' to multiple relays, but the proxy relay would gather exactly what the particular client wants to see and only transmits that data, nothing else.

yeah, proxy relays are great

Last january I wrote one for myself while I was in Thailand with expensive data and it works great. This is the way to go for extreme situations like your friend.

The huge caveat is that the proxy is completely trusted.

…which is fine when you run your own relay proxy. my damus client only connects to one relay, my self hosted proxy. minimal data usage, couldn’t be happier.

damn. Ben is wicked smart

Ben🤝 Ben

can assure you, just another left curve pleb.

Ben🤝Ben

well said Ben

Yes, it would need to be. This might actually need a specialty client with a proxy server service built in that people could use. Something specifically designed for low bandwidth users.

no, doesn't need that; any client, if instructed to not try to connect to anything else, would do.

All we need is one proxy relay at each local friendly neighborhood bank.

yup.

I think a proxy relay as a Fedi module makes a lot of sense since it's a very similar trust model

I may have used the wrong term. I'm looking at the settings in Primal, and it's showing a Caching Service. I'm not familiar enough with relays and caching services to be able to set one up, and neither is my friend. I'll have to explore this more so I can learn enough to talk to him about it.

5G is rolled out in many countries but not many afford or need

normie user need 2 learn become advance users

decentralized means u pulling data from many sources

disable reactions increase app or browser cache tune relays use proxy service etc many more

> decentralized means u pulling data from many sources

yes.

But it doesn't mean pulling data from many sources randomly.

It can be both *more* censorship-resistant with *less* data duplication for the same reason it takes less time to paint a room if you do it with your eyes opened than randomly with your eyes closed

Yea but have you actually tested that? I'm pretty fast at cartwheels and can probably hold more than one brush at a time.

ok, you got me, the painting thing was mere speculation on my part; maybe there's a market for a random paint down wall street

I blew up my data usage after forgetting I had turned off wifi for a week

At 50GB consumed, im on the slow trickle (e.g. 2G/3G speeds) until next month

nostr:nevent1qqsgk3a424rl8u22y8ae7k0qsw60kj7xps25f9vfwzu27c425dzcv7cpzpmhxue69uhkummnw3ezuamfdejsyg86np9a0kajstc8u9h846rmy6320wdepdeydfz8w8cv7kh9sqv02gpsgqqqqqqscyq8xy

This is an obvious thing that people are missing.

thanks for coming to my TED talk

During January 1-6, 2023 I used 10GB of data with my 40 relays. I learned quickly that too many relays will decimate your data plan. Been trying to stay mid teens ever since.

I hadn't thought about the data consumption aspect of this and only focusing on the censorship resistant aspect. That said, I agree. I believe the gossip model will help with data consumption.

yes, the outbox model helps

You should try a bostr relay and just connect from there. I only connect to my bostr relay which is proxying 20 other relays for me on my home connection. https://github.com/Yonle/bostr

I thought about it, but I have a new data plan now and I also use Blastr.

Blastr is huge for the outbounds! I keep it on my proxy list to expand reach for anyone willing to store a note for me. This will still help anyone with the need for inbound reduction to limit your pull. It's also nice because you can limit your IP exposure for where you are physically at.

Wow, more than my youtube consumption, and i'm always on youtube.

Here's a question, is there a way to see which relays are the most/least active so we can try to balance the load a bit? Not by moving entirely to the small nodes, but just to find balance. It would also be useful to know which nodes are lower usage so we can recommend them to people with lower bandwidth availability.

Answered my own question:

https://nostr.watch/relays/find

Now, the next question, is there a way to see a list of profiles that are connected to a relay?

Yes please 🙏

where can I read more on the outbox model? is there a NIP for it? is it possible to run parallel with caching servers?

I don't want to miss the smoothness of primal or nostrudel, most other clients are insanely slow for me, if they work at all

The Inbox/Outbox model is in NIP form in NIP65 for the Relay List Metadata for users.

There's an article by Mike Dilger that uses the terms elsewhere, but in the past week I've lost the link

For clarity, its not called the inbox/outbox model in the NIP. It's simply correlation to read/write and purpose

Thank you, Vic!