amark / gun

An open source cybersecurity protocol for syncing decentralized graph data.
https://gun.eco/docs
Other
18.03k stars 1.16k forks source link

Need Gun({super:false}) in node to make cutomizable relay storage #1246

Open davay42 opened 2 years ago

davay42 commented 2 years ago

@amark We need the super:false GUN option back. Should it be a part of RAD storage adapter or a part of AXE distributed networking? I imagine having a portable personal relay that stores only a certain user data and is readily available to forward requests to public Gun({super: true}) relays for more info. And then a user can dynamically configure his/her relay subscriptions, be it certain users, rooms or public content-addressed spaces. If other personal peers may know the subscriptions of each other, it may be useful to build a distributed storage layer for AXE.

Building a web-interface for the relay is straightforward - everything that is to be stored, must be an active subscription gun.user(userPub).map().on() So we already have all the requests and responses that may be rendered somehow. If all the data is encrypted we may build some basic statistics, draw data graphs. Or we may even render the stored data as a web site (account/room profile? blog? media feed?).

I mean it could be just a basic android phone with a node server running in the emulated terminal and a QR-code on the screen. Scan the code from an app and have it connected to this local relay to have some real-time communications like chats, media sharing, games or other activities.

And there also may be a list of default subscriptions that make any relay store and share the AXE bootstrap info - the volunteer.dht peer list with pings and more. So we can always get worldwide data as well as local.

And yeah, having a personal relay store only data from my gun.user() space makes it flood resistant. So the storage space should be quite manageable.