Gnutella Forums

Gnutella Forums (https://www.gnutellaforums.com/)
-   General P2P Network Discussion (https://www.gnutellaforums.com/general-p2p-network-discussion/)
-   -   MuWire - an anonymous P2P app (https://www.gnutellaforums.com/general-p2p-network-discussion/104305-muwire-anonymous-p2p-app.html)

zlatinb September 28th, 2019 05:19 AM

MuWire - an anonymous P2P app
 
Hello there,


I am the developer of MuWire, an anonymous file-sharing application inspired by LimeWire (I used to work for LimeWire LLC btw). MuWire uses the I2P network to hide the ip addresses of its users. Other than that it's a lot like the LimeWire 4.x series.


You can download Windows and Mac bundles at https://muwire.com
If you want to build from source, it's available at https://github.com/zlatinb/muwire
If you want to learn more about how MuWire achieves anonymity, visit the I2P website at https://geti2p.net


Enjoy!
zlatinb

Lord of the Rings October 2nd, 2019 03:26 AM

Good work.

1. I’m curious, what is the search horizon with this system?
2. How long can a search be expected to run for? (I'm never sure if the search has finished or not.)
3. How many peers does a leaf expect to connect to? Or does i2p use a different system?
I noticed I had over 10 connections at one point but that increased to 17 after a couple of hours.
4. I presume the program has UPnP support? I setup port forwarding after a short period of time. I presume the MuWire port will remain the same.


Be nice to see a drag and drop system for sharing. Reason is because from a personal note, I often have multiple file types within the one folder and only wish to share one of those types. For example, I may have either AIFF/FLAC/ALAC within the same folder as mp3 or m4a files. Folder sharing does not allow the exclusion of one or the other. Likewise I may wish to share just a selection of videos from a video file folder, not all the video files. There's also the safety/security issue of accidental sharing of private files within the same folder for some people. Probably less likely people will choose their default user account downloads folder as with other sharing programs/networks. But if drag and drop is added, a method to remove individually shared files would also need to be added. In case of accidental addition or other reasons.

zlatinb October 2nd, 2019 03:48 AM

Quote:

1. I’m curious, what is the search horizon with this system?

Unlike Gnutella queries travel only 1 hop, but to compensate for that the fan-out factor is much higher. I've set it to 512 now, although that might bump into some built-in I2P limits.


So theoretical maximum for an Ultrapeer would be 512 * 512 * 512 + 512 = 134218240 but of course in reality it would be much, much lower.


Quote:

2. How long can a search be expected to run for? (I'm never sure if the search has finished or not.)

There is no dynamic querying so there is no way to know when a search has ended, but in reality queries reach the entire network very quickly. If you are receiving many results back from a single responder that could take a bit more time. I would say 20 seconds maximum, give or take.


Quote:

. How many peers does a leaf expect to connect to? Or does i2p use a different system?

Leafs are not implemented yet :) so everyone atm is an ultrapeer. Now, MuWire connections are different from I2P-level connections (you can see those in Status->I2P). I2P connections are capped depending on configured bandwidth but max out at close to 2000. For MuWire-level connections you will basically try to connect to everyone you learn about, and there aren't that many nodes on the network right now.



Quote:

. I presume the program has UPnP support? I setup port forwarding after a short period of time. I presume the MuWire port will remain the same.

UPnP is "outsourced" to the I2P router. It tries to map a random TCP and UDP port, which you should be able to change through the settings. However, all the firewall traversal business is handled by I2P as well; nobody at the MuWire layer is firewalled, so everyone can be an ultrapeer.


As for the other suggestions I agree the library management can be improved a lot and I will get to it eventually. The first public release was just a few months ago as you can see from the git history.

zlatinb October 13th, 2019 02:38 PM

Quote:

Be nice to see a drag and drop system for sharing.
Implemented in 0.4.16 :)

Lord of the Rings October 13th, 2019 08:15 PM

1 Attachment(s)
Quote:

Originally Posted by zlatinb (Post 378653)
Implemented in 0.4.16 :)

Thanks and well done!

I think it's a bit early to ask at this point but it would be nice if there were view options for shared files. With long directory paths it can be difficult to see the specific file names.


1. How important is firewalling in both i2p and with Muwire?

I'm not sure how much relevance UDP has with i2p since afaik i2p is mostly tcp based.

I've noticed Muwire does not prompt to be added to the OSX firewall exceptions. I needed to add it. If this level of firewalling was important I guess you would build-in a prompting for Muwire to be added to the firewall exceptions. (Not sure it makes a difference but I guess there might also be the issue of different firewall variations OSX has developed.)
Quote:

Originally Posted by Lord of the Rings (Post 378650)
...
4. ... I setup port forwarding after a short period of time. ...

I realised I had inadvertently setup a pf rule using the wrong setting; there's 20+ devices, accounts or os's to select from. After discovering MW status was firewalled.

I needed to restart MW for the changes to be reflected in the MW firewall status.
Attachment 6982

2. How often does MW check the firewalling status?
LW used to check the status on a frequent note at least early in the session.

3. Search extra hop - does this put extra strain on the network? I'm guessing this is a very rough equivalent of OOB?
Or a cheeky pushing of the protocol. :D

4. Are id3 or equivalent tags used in any way in regards to advertising files?
From what I can ascertain from your earlier answer, only the literal filenames are used.

zlatinb October 13th, 2019 11:12 PM

Quote:

Originally Posted by Lord of the Rings (Post 378654)

I think it's a bit early to ask at this point but it would be nice if there were view options for shared files.


I've been thinking of a tree-based representation, but it wouldn't be the default. Reason is, the JTree structure is much slower than JTable and if there are many shared files (as in tens of thousands) the gui would get very slow. I will add it at some point though.


Quote:

1. How important is firewalling in both i2p and with Muwire?
As far as MW is concerned nobody is firewalled, because you can reach any MW node regardless of their physical firewall-ness status. But for i2p, if you are firewalled you will participate much less in the network and hence get much less cover traffic, which is worse for anonymity. So it's a good thing to not be firewalled.


Quote:


I'm not sure how much relevance UDP has with i2p since afaik i2p is mostly tcp based.
The I2P router uses UDP when available (the number of "SSU" connections are actually UDP connections to other I2P nodes). As usual, UDP is slightly faster and lower overhead than TCP.


Quote:


I've noticed Muwire does not prompt to be added to the OSX firewall exceptions.
Agreed that having this ability is important, but it requires me to write native code and I'm not particularly good at that. Nevertheless I hope to get to it at some point.


Quote:

2. How often does MW check the firewalling status?
Checking is outsourced to the I2P router which checks shortly after startup and then on average every 13 minutes.



Quote:


3. Search extra hop - does this put extra strain on the network? I'm guessing this is a very rough equivalent of OOB?
This setting is relevant only if "allow only trusted connections" is enabled. What happens is that if you allow only trusted connections, MW will only connect to those whom you have marked as "TRUSTED". In order to prevent your queries reaching untrusted nodes, in trusted mode queries travel one fewer hop. The "extra hop" setting overrides this behavior. See this GitHub ticket for a discussion on the issue https://github.com/zlatinb/muwire/issues/6


Quote:

4. Are id3 or equivalent tags used in any way in regards to advertising files?
From what I can ascertain from your earlier answer, only the literal filenames are used.
At the moment no id3 tags or other metadata (like comments) is used when searching, and it's not trivial to do so. Sure, I can copy/paste the id3 parsing from LW, but the underlying plumbing requires some more in-depth changes and design decisions.

Lord of the Rings October 14th, 2019 06:28 PM

Thanks for your answers.

Is there a how to or other descriptive page for how to use Muwire?
What is a Watched Directory? I forgot to ask about this. I notice you made some changes to this some hours ago in the code. I setup two watched directories but not sure what they actually do. :D
I inititially thought a watched directory might detail search hits or upload counts, etc.

I had hoped you might have descriptive contextual menus that describe what a particular tool does when you hover your cursor overtop the tool button. I realise this kind of concept might require a lot of work to add. From memory LW 4 used to have this ability and LW 5 had it to a lesser extent.

Quote:

Originally Posted by zlatinb (Post 378655)
... See this GitHub ticket for a discussion on the issue https://github.com/zlatinb/muwire/issues/6 ...

Yes that does describe it well, particularly the last comments.

Looks like the OP/TS might be wanting the equivalent of what LW 5 had for private sharing between friends. Though the way LW 5 achieved it might become redundant in years to come such as linking with gmail. I cannot remember the specifics, just what gmail will be accepting in the future. I think there might be a guest comment about this at WSHR’s SF.

zlatinb October 14th, 2019 08:01 PM

Quote:

Is there a how to or other descriptive page for how to use Muwire?
Not yet, I'm hoping someone will contribute one because I'm not the best person to write such page - to me everything is intuitive enough and that's just not the case for new users.


Quote:

What is a Watched Directory
A watched directory is monitored for file changes (like new files added or existing ones deleted) and those get reflected in the shared files list. However, I decided just a few hours ago that this is too confusing and clutters the UI, so I'll get rid of that panel very soon and make every shared directory a "watched" one.


Quote:

...contextual menus that describe what a particular tool does when you hover your cursor overtop the tool button...
They're coming at some point, thanks for the suggestion!


Quote:

I've been thinking of a tree-based representation
I just finished writing this few hours ago! :) If you feel like building from source you can give it a test-drive. Otherwise I expect to have 0.5.0 out in the next few days.

zlatinb October 15th, 2019 08:43 AM

Quote:

I expect to have 0.5.0 out in the next few days.
And by that I meant next few hours - 0.5.0 is live on the site. I think you'll like the new shared files interface :)

Lord of the Rings October 15th, 2019 07:21 PM

Quote:

Originally Posted by zlatinb (Post 378659)
... 0.5.0 is live on the site. I think you'll like the new shared files interface :)

Much better. Well done! I also like the volumes listing; applicable to me at least since I have a desktop with several volumes, one of which is specifically for music. (I prefer lossless audio for listening.)
Phex and I think BearShare used this style of shares listings.

I was able to clean up the share list a little after being able to see it properly.

This might be a big question, but how do we use the content filter?
I find myself unable to add a term in the content control panel. What's the trick to adding the term? Might be an OS or OSX version specific issue.

I found I was sharing Finder files such as .DS_Store which is a tell-tale of what platform a person is using. In some ways these files remove a small amount of anonymity. These could potentially be added to a built-in not-shared filter list of similar items for other platforms. They are OS specific and generally hidden files that serve no purpose outside of the specific OS and computer. IMHO these could be considered garbage files on a sharing network.

LPE used LibraryUtils if I'm allowed to list this. :D (I would have used a WSHR reference except I've noticed the WSHR code linked bookmarks sometimes die (30-40% of mine.))


All times are GMT -7. The time now is 11:09 AM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
SEO by vBSEO 3.6.0 ©2011, Crawlability, Inc.

Copyright © 2020 Gnutella Forums.
All Rights Reserved.