I have multiple devices streaming in notes via notedeck: my samsung tablet, my desktop, my android phone, my macbook, my linux notebook. It will be cool if these auto-sync’d with each other on the local network using negentropy. Since each client runs an embedded relay (nostrdb) then each node can serve requests to other nodes. This would be a good testbed for an initial p2p-style version of nostr. Making it work over a globally routed network is a harder problem, but for local sync it might be useful for quicky getting up to date without needing to ask the outside world. This is a toy version of the idea of ICN: information-centric networking, where any network request can be sourced from router caches on a closer network first.

Replies (11)

someone's avatar
someone 1 year ago
did you see my 'tree of relays' article? i support this distributed 'relay at home' idea. i may even fund. lmk if you are interested. the idea is basically post some special note on nostr for other 'relay at home' nodes to find you. and clients figure out then where to connect to sync nodes etc. negentropy would be an amazing tech that could further speed it up.
someone's avatar
someone 1 year ago
it solves many of the problems of nostr relay design imo. i am in favor of 'global synced state'. i like connecting people. some people are more in favor of keeping censored content accessible somewhere on a server. i think nostr can do better. in my design you may write to starting from 1 up to log N nodes. you can read from 1 up to N/2 nodes depending on how much you care about decentralization.
pam's avatar
pam 1 year ago
i was trying to look up for the conversation we had last on this but might be a long time back - bunking in on this note. I was just wondering, would there be an easier way where i can have my relay that just stores my data (notes and messages (sent and received)) and all other relays can be used as your transmitter. Some benefits : - It would lessen the need of my computer - i wouldn't need some massive server capacity to run a relay. - And if i need to sync up between my phone and computer, we can use Will's idea. - I don't have to depend on other relays to store/ clear data. - I can delete whatever I have written. - I have control over my data. - If i need more storage for videos etc then either i increase my own capacity or use other relays (free/private) From a user perspective, it would be easier is users just need to assume it works like installing an app to install the operation to run your own relay. I haven't fully thought through this yet and I don't know enough - but just a thought
someone's avatar
someone 1 year ago
the current design of nostr does not say relays should reach out to other relays and fetch notes and transmit. if you put all your notes into your relay you have to convince other clients to connect to you. and other clients have thousand other connections already. thats the problem with 'outbox model' as a whole imo.
pam's avatar
pam 1 year ago
I get your worries on client dependency to coordinate, and notes not being shared broadly via the outbox model. My suggestion doesn't change the outbox model but rather optimizes it. It would not be able to solve the broadcasting issue, but it can resolve many other concerns. The idea is more like “Relay-as-a-Service (RaaS)” concept whereby you have a personal relay that is more lightweight as it only stores your notes, messages etc compared to general relays that store all the data. You can have this hosted locally for security purposes or relay devs can expand their service to "cloud" for users who don't want to host locally, just because or for safety reasons. When you send data, someone else who has some common relays with you will be able to view it. It can be cross synched to your other devices like will's idea or use IoT concept like LoRa or Zigbee or regular wifi but might need some network protocal synch To enhance privacy, clients can also enhance UX for users who want to share both privately and globally presuming what they share is limited to selected relays or not visible to the public. Users can delete their own notes but it might need some protocol to delete notes that are temporarily or permanently stored anywhere else. Users can also upgrade storage capacity or use external relays for specific functions (images, video stage, streaming etc) to ensure modularity and scalability. The overall idea is to not only optimize data storage, but also gives users full control of their own data (delete, edit, privacy etc).
someone's avatar
someone 1 year ago
nostr can be much more than 'advanced RSS' if we did the 'tree of relays' paradigm. the current design is not able to handle hundreds of thousands of CCU in a decentralized way. it is able to handle if current relays do load balancing and sync but it wont be decentralized.