Damus
calle profile picture
calle
@calle
Currently we're using a fixed set of relays in bitchat which is only a temporary solution. We could let users edit their own relays but 1) users don't know what relays are and 2) if users have no overlapping relays they can't talk to each other.

Here's a solution that we came up with. I'd like to know your thoughts. We're going to crawl a long list of relay URLs every 24 hours. This list will also include their estimated geo locations, also updated every 24 hours. This could be done in an automated GitHub runner.

That list of URLs plus their geo locations will be embedded and shipped with the bitchat app. Users who join a geohash channel will use the five closest relays based on the geohash location of interest.

This solves multiple problems at once:
1) relay centralization
2) privacy
3) speed
4) maybe censorship resistance?

What do you think?
526❤️37🤙5👀3❤️2👍2💜2
Nikos · 26w
Waiting to set my own relay , then all data get delayed via satellite for a cross continent bridge https://primal.net/e/nevent1qqsvrp3dg020cqj8qjkvtjwuvfac6fu3kcp6pvg0kvtqrzkvj9ts9ggcm9qdz
Repost · 26w
the way ox chat does it for me is there is the built in relays but i can add my own so i would say your option is great!!! but still would like to see relay choice
hodlbod · 26w
This is a brute force solution. Every event needs relay selection heuristics so it can be found. I actually use geohashes as an example in my book. Read the chapter on relays, maybe it'll help you think about this. https://building-nostr.coracle.social
Cesar Dias · 26w
Looks like a use case for nip66 and the g tag
Иван · 26w
Yes, that’s probably the right idea, in the sense that the authorities are less likely to block their own servers than those located abroad, but we shouldn’t forget that in some locations there aren’t many Nostr relays (in Russia you won’t even find five), and at first this will put a heavy ...
Solarchitect · 26w
off topic: there is a bad spam situation where some bot spams every room with ;;;;;;;;;;;;;;;;;; millions of semicolons. We cannot block him.
whatever · 26w
This could work wonder to have more secure and minimize black log from overlapping relay .
DZC · 26w
How easy would be for a bad actor to set a relay and use it as a honeypot to locate the bitchatters IP for certain locations?? 👀 Tor support would be nice to boost privacy...
hzrd149 · 26w
Maybe could use NIP-66 to find public relays close to the users location?
lkraider · 26w
How can relays opt to be included in that list? What about a DHT for updating the list instead of app updates?
ismyhc · 26w
Does this mean that you’d have to make another release to update the list? Also would this also cause users far away from each other to possibly not be able to chat with each other since they’d likely be on different relays?
dyegolara · 26w
I’d prefer some UI to manage relays and check if they overlap, then connect to whatever I want
SwapMarket · 26w
github is a centralized piece of the puzzle, but I like the idea
FreedomTech · 26w
It might be nice if Relays stored the updated relay lists.
Nunya Bidness · 26w
nostr:npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn weren’t we talking about this a long time ago?
Luxas · 26w
Nice, but heads up that if Cloudflare’d the relay’s location will not be accurate
Cerebrum · 26w
If this is being used for protests and the geohash channels will use local relays, wouldn’t it be easier for authorities to crackdown on it?
FOU · 26w
Make the regional users be the relay, with multiple redundant relay users ready to handoff to.
Stvu · 25w
The bitchat info screen needs to be updated. It says no servers and no data collection. Relays are servers… https://image.nostr.build/2ba8dc6f2e1dce606a62f30ec43d36629e1b2ea1807857c92563c75ce2b63875.jpg
DagzTagz · 25w
This is a good idea because this is what I do manually on nostr Is 5 going to be enough without some sort of premium relay though Maybe I’m confused but relays don’t always stay persistent… maybe that’s why you are saying a 24 hr turnover though Things should run persistent for 24 hrs re...
Bit Mumbles · 25w
nostr:nprofile1qqs9pk20ctv9srrg9vr354p03v0rrgsqkpggh2u45va77zz4mu5p6ccpzemhxue69uhk2er9dchxummnw3ezumrpdejz7qgkwaehxw309a5xjum59ehx7um5wghxcctwvshsfmrzrk you are literally building the backbone of a new society, pls continue I think geo hash is the way we differentiate human key pairs from ai ley pa...
miKe · 25w
would consider storing and crawling the list of the relays in the app. user can select from interface locations that are translated in background to relays.
roundtheworldman · 25w
Seems like Gitlab runner would be a better choice if you need that kind of functionality. Gitlab has good self-hosting support. Keep up the great work and be careful of feature creep. I love that the apps under 10MB right now!
Derek Ross · 25w
i see many WoT relays in the list. i don't think those are a good idea to include as new / emphemeral users can't write to them.
mccrmx · 20w
You can make this deterministic and completely client side: 1. Query bootstrap relays for kind 10002 and 3 events. Extract a list of 100s of relays from these. Takes a second or two when I tested it. 2. Hash every relay URL. 3. Hash the user's npub. 4. Use Kademlia XOR-distance to find the 5 relay...