Most of you will say that the succesor to eMule is BitTorrent as it is the most widely used P2P network today, but there are some things that BitTorrent lacks and eMule provides. The most notorious for me are the following:
- Built-in network-wide search
- Easy sharing
- Unique links
Maybe you don’t consider this features important, but the fact is that with the approach BitTorrent takes, we are highly dependent on central points that make the network vulnerable. With BitTorrent we depend on trackers and link listing websites to share content. A torrent client is useless on its own if we don’t have a link listing site to get torrents or magnet-links from. On the other side, with the built-in search eMule provides, one can start downloading without the need for a website to take links from.
Easy sharing is also very important, because it provides more peers to download files from. This is specially important on rare files, because with torrents the seeds to download a file can become scattered between different torrents and there can be 5 different torrents seeding the same data, yet they don’t share peers. It is clear that one torrent with multiple seeds is preferred that multiple torrents with one seed each, for example.
When there is one single way to identify a file on the network (like with ed2k hashlinks) even the less tech-savvy users are able to contribute. Sharing on eMule is as simple as dropping the file you want to share on your incoming folder (even if it is not the optimal way to do it). In BitTorrent, you must download an existing torrent file or magnet link, stop the download, replace the half downloaded files with the ones you already had downloaded, making sure that you use the same directory structure and filenames that are defined in the torrent, recheck the torrent and start it, all this in order to share files you had downloaded previously. Tell a noob user to do that to help you download some rare file…
And now imagine that you have an entire drive full of sharing material, but the directory structure and filenames differ from the ones used on the torrents (because you like to keep things ordered in your hard drive). This scenario makes it impossible to share those files on the torrent network without creating brand new torrents, so you can’t contribute and be one more seed on already existing torrents.
Why not use eMule then? Because it’s slow, inneficient, and there is practically only one client that is no longer actively developed. Searching for alternatives, the most similar program that has various clients and is multiplatform is Direct Connect, but it is not decentralized, and different servers don’t communicate with each other, so peers for the same file are not shared globally and instead are scattered around different hubs
Is there really no other program that works the way eMule does? Is there no true spiritual succesor to eMule nowadays?
.
Just a heads up, You won’t be able to use retroshare if you are under CGNAT - at least i wasn’t able to .
The absolutely massive advantage of BitTorrent over older networks is that current downloaders (leechers) can share the parts they have already downloaded. So instead of just a few seeders getting hammered with traffic and hitting a bottleneck as on Limewire, etc., you can get just the parts you need from the critical seeders.
Trackers also make this easier by avoiding the slow search through nodes and broadcast issues that P2P gossip-style networks have.
That said you could totally imagine a client that lets you share .torrent files like Limewire, etc. with direct search, and even merging it with the concept of trackers - like how RAFT can maintain a list of active nodes - i.e. you could just track the peers per torrent, and then let the actual traffic take place via direct connections like BitTorrent does.
I highly recommend reading the libp2p docs - https://libp2p.io/
The various Wikipedia articles on Gnutella, BitTorrent etc. - https://en.wikipedia.org/wiki/Gnutella
And Tailscale’s article on NAT traversal - https://tailscale.com/blog/how-nat-traversal-works/
To appreciate some of the challenges and development over time.
I really wish someone would write a book like How Music Got Free, but about the technical history and challenges of piracy / file-sharing. From Modem BBSs to Usenet to Napster, Gnutella, BitTorrent, and Freenet, I2P, IPFS, etc.
I am actually surprised IPFS isn’t leveraged more for this.
undefined> The absolutely massive advantage of BitTorrent over older networks is that current downloaders (leechers) can share the parts they have already downloaded
This is not true at all. Bit torrent as protocol didn’t brought any new concept to p2p. Bit torrent didn’t invent download swarms or sharing while download (even the gnutella clients do that). Bit torrent won, because emule was ahead of it’s time and was too greedy. The bittorrent block is 512KiB while the emule is 9MiB. Emule appeared in a time where ADSL was started to be rolled out, and before bittorrent, so the internet speeds and connectivity were not the best. Since the block is 9MiB, the users needed to download first 9MiB in shitty speeds before starting to share. Also people wouldn’t realize that the network implements a credit system, so you need to upload (ideally to the person from who you are downloading from - the upload credits aren’t global) otherwise you are going to the bottom of the download queue. This would cause a bottleneck in the speeds. Btw, emule continues to be used massively (not as bittorrent but more than 200k users)
Do you have a source for this (like genuinely, I’d like to read about it) as I was 99% sure that Gnutella didn’t do out-of-order swarm piece downloading like BitTorrent.
I’m not that familiar with eMule and its networks though - but it’d be interesting to learn about. These slides were cool - https://pages.cs.wisc.edu/~akella/CS640/F07/slides/F07_Lecture19_p2p.pdf but also don’t cover eMule lol
here you have gtk-gnutella screenshots:
gtk-gnutella download progress bar: https://imgur.com/FIzJa1b.png gtk-gnutella upload options: https://imgur.com/yLg0LOl.png
Btw, gnutella died (it will never die because of the way it works, but it’s a shell of what it was) because of the fake files (the DHT and magnet links appeared to late - with this the downloads can be curated), and because of the clients implementations. This last one was the gnutella downfall - There’s the open protocol and then each client started to implement their own features making and giving priority in the connections between them, making almost subnetworks - kinda the same that happened with XMPP.
BTW 2, those slides are not up to date. The gnutella search as it is described in those slides are for gnutella 0.4. The protocol is now in version 0.6 (and probably won’t be updated anymore) and it has now supernodes - kinda lika kazaa. Gnutella (mojito), emule (KAD) and bittorrent have DHT.
I loved eMule. I had my company install a second T1 line for “business reasons” then never shared it with anyone else, and promptly used it all on my own with eMule. Downloading a few 700MB movies a day and contributing back was so sweet. In the early 00s having your own T1 eMule was peak high seas sailing.
Not sure what replaces it now, though I’d say there are so many other options, its just the nature of the beast
Built-in network-wide search:
Try FrostWire, somewhat achieves this by aggregating search through the biggest torrent indices, also searches and downloads from youtubeEasy sharing and unique links:
Magnet links are there for this. And now smaller v2 torrents.Is that still based on Java?
emule is not slow. It’s really fast (with emule client). You just need to have high id. The lack of clients is an issue and amule although it works is crap (it’s really slow and the dev doesn’t acknowledge that - there’s some problem in the download queues…).
If you don’t want to use emule, use gnutella - namely gtk-gnutella. It supports magnet links (as long as they contain the bitprint hash), integrated search, windows, linux and mac, and it’s fast (since there’s no queue management, it depends on the uploader speed). The only problem is the lack of files being shared.
Or better yet, use shareaza. It supports bittorrent, emule, gnutella, g2 networks. There’s the problem of not being developed anymore (there are some forks, but they are mostly dead) and the bittorrent support is not the most up to date, so some trackers block it.
I’m quite happy with DC++ but the only worthwhile hubs are super private and gate keepy
I thought eMule is still quite active?
.
I still use MLDonkey 3.1.7 (July 2020) on my debian server to connect to ed2k/kad and bittorrent and it works without any problems. It is very resource efficient but has a bit of a learning curve to set up and use.