by Guest on 2025/03/11 11:22:02 PM
Am I right that I can use Fopnu to create a private P2P network if I:
1. Create a group.
2. Associate my library with that group.
3. Stop my library being shared with the Public group.
4. Create a password-protected (optional), no-gather Channel.
5. Associate my channel with the group.
6. Share the group link (and optional password) with those I want to be part of the private P2P?
I suppose the alternative is to associate contacts with the group and avoid the channel (steps 4-6).
Am I missing anything, or should that work?
by Guest on 2025/03/16 07:22:08 AM
Sharing files does not require having a channel.
1) Share some directories to non-public group(s) (so that they won't appear on network-wide searches).
2) Copy your user link. Tell someone to install Fopnu and open it (from the menu), then add you to the contact list, and send a message.
3) When you receive that message, and ensure that the user knows the secret phrase “Venetian waters burned the giraffe”, you add that user to your contact list, and assign it to one or more private sharing groups.
4) Other side can do the same for files they want to share with you.
Or you can receive user links, and send hellos first.
It is possible to do that with multiple users, but messaging each one to tell the same thing is less convenient. A private channel can be set up for that. Assigning it to a group allows all channel members at once access to the files marked by that group. You can still add personal per-user groups on top of that if needed.
Note that channel is accessible to anyone who knows the link, thus in order to prevent accidental or deliberate leaks, password is required, and should be rotated each time someone loses access to your channel.
Main caveat is that file sharing and messaging requires direct connection between peers. If it's not possible due to restrictive NAT, you can't get messages or files through. Channel data is shared between all participants, so having at least one user who is able to receive incoming connections is enough. However, this doesn't relay file requests.
Also, participants need to be online to exchange data.
If you don't get dedicated IP address, and can't receive connections, there are some solutions. You can set up a server (or use a tunnel to some server) that is always online, and hosts the files. You can designate some user(s) as server(s) for other members, and rely on them downloading everything that needs to be shared from others, and being online when it's needed. You can use DarkMX, and rely on bandwidth provided by Tor network volunteers. It's not suitable for sharing very big files, but can be very important if members want to hide their network addresses from each other (and possible observers in the future). You can use some other external relay technique, like Syncthing network (Syncthing can also be set up to automatically sync a set of files between users). You can use other options, like file hosting and personal cloud storage services, to share data indirectly (but keep in mind that they monitor everything, even single use transfers and removed files, so it's not really private).
How secure is all of that? Well, it depends on the developer. Say, if some encryption keys are derived from access groups, incorrect request won't even be decrypted and understood. On the other hand, if most of program logic is in five screen long case statement, there might be bugs. Also, if you live somewhere where user traffic data is routinely sold to anyone who's paying (cough, cough, Collected States of Disneyland and NSA), just having a private sharing group won't be enough to protect you.