Bostr is a new Nostr relay that bounces your Nostr read and write events to multiple relays, allowing users on metered or mobile connections to save on bandwidth. You could run one for yourself, your community, or for the general public. Example: You run a Bostr relay at home and configure your mobile client to only use your home Nostr relay. While out and about, you utilize one relay, saving your mobile data, while the Bostr relay at home handles the heavy lifting and data intensive internet traffic for you, sending your notes and events out to the world.

Replies (83)

Excelente projeto, vou implantar em meu relay. É usem o meu relay a quase 1 ano rodando: wss://relay.nostrbr.online
Hahahhahahahaha I liked hahahhahahha Combine with brazilian censorship 🤣
Default avatar
nobody 2 years ago
Tonight at six: Reports indicate Semisol was killed in his sleep by a group of bearded socialists wearing unwashed shirts, who allegedly chanted “Stallman is great, Stallman is good,” throughout the ordeal.
They recommend software ones because it has indemnification clause and other provisions. But if you just want to give it away and only have attribution, the CC is OK. Disclaimer, IANAL 🐶🐾🫡
Default avatar
nobody 2 years ago
Non-Denominational: MIT GPLv3: Church of Christ GPLv2: Jehovah’s Witnesses BSD: Mennonites MPL: Catholic 🤣
Default avatar
nobody 2 years ago
Ngl Sataya Nadella is a cool cat and I’m seriously considering getting his book. Fish, you need to look at the .NET conf videos that just dropped on Blazor in .NET8 bro. There some real goated stuff happening there.
Default avatar
nobody 2 years ago
I can understand Java, but I'm still a bit shocked on .NET. Some time I would love to sit in a nest and talk coding aesthetics with you. So few people willing to sit and talk about that without getting angry. 😆
Ok, not to diss this project or anything, but relay-proxy from earlier this year does the same thing. Multiplextr does as well, but using a wrapper protocol so clients can make non-static relay selections. Proxies like this hurt the ability for clients to intelligently route. They also have significant privacy drawbacks, especially if proxying AUTH (they can exfiltrate protected data). I'd love to see more work in this area, especially since proxies have the ability to improve routing without clients having to do anything by inspecting filters coming through. I recently wrote a bit about this, see below:
Default avatar
nobody 2 years ago
I'm not going to be able to read this right away but thank you so much for this article. I've been thinking about some of the same concepts and this article looks really well thought out.
I feel like the whole reason this exists because we don't have routing or gossip on all clients, so people are trying to find work arounds to make Nostr more usable. If we had routing and gossip, we wouldn't need this most likely.
I am rather questioning the privacy at multiplextr than in #bostr as it tell to coracle that the event was sent from "that" relays, and then coracle sign the AUTH for "that" relays also.
Well, this breaks gossip in clients that have it. It would be possible for a proxy to add gossip to clients that don't, and that would be awesome, but this isn't it.
Yes, multiplextr absolutely has the privacy problem you're describing. The advantage it has is it allows clients to implement routing.
阿甘's avatar
阿甘 2 years ago
How to keep this proxy relay address private? Does anybody can connect to this proxy relay silently if they know the address ?
In config.js, You put your public key in `authorized_keys` array. After restart, bostr will only allow users in `authorized_keys` to use the bouncer. However, You need to ensure that NIP-42 is supported in your client. Otherwise the bouncer will not doing anything for you during authentication. Additionally, You could enable internal NIP-42 for NIP-42 relays for your own use by inserting public & private key in `private_keys`.
阿甘's avatar
阿甘 2 years ago
Sorry, saw the configuration in the file. Can whitelist // For personal usage. Leaving this empty allows everyone to use this bostr instance. // NOTE: Requires NIP-42 on client. authorized_keys: [ // "pubkey-in-hex", // "npub ....", // .... ],
阿甘's avatar
阿甘 2 years ago
It works when left authorized -keys empty, but Every time I added key to authorized_keys, seems it doesn’t work.🤔️
阿甘's avatar
阿甘 2 years ago
Ok,thanks. It work in snort web client. Seems most clients donot support nip-42.
阿甘's avatar
阿甘 2 years ago
By the way, about the bounce, can it bounce to local host, like ws://127.0.0.1:port
How so? If you want to debug, You could enable `log_about_relays` in config.js to see whenever the bouncer connects to your relay or no.
You’ve just saved my life of pain lmao, cannot wait to set this up for myself