HydraP2P - first public beta release (BETA1)
————————————————————————————————————————————————————————————————————————
v0.6.0.2
Introduction
————————————————————————————————————————————————————————————————————————
HydraP2P is a modern eMule compatible file sharing client, which is compatible with the existing ED2K/eMule and KAD network.
It has no own network and doesn’t introduce any new network.
While I have ideas for the usage of I2P in some later versions which can be used to enhance anonymity, these are just ideas.
The key factor is that a new network without users/files will be of no interest.
So 6 years ago I started with the idea that what’s really missing is a modern client, which would also be multi platform (without wine, emulation or other shenanigans).
Supported platforms
————————————————————————————————————————————————————————————————————————
Windows 8/10/11 64bit
Ubuntu Linux 24.04 (Noble) 64bit
Debian GNU/Linux 13 (Trixie) 64bit
Where is all the data?
————————————————————————————————————————————————————————————————————————
On Windows the user data is in %LOCALAPPDATA%\HydraP2P
On Linux it is $HOME/.config/HydraP2P
There is an Sqlite file called „Hydra.db“ - if you want to reset the state of the application, you basically delete this file.
How to report bugs / testing
————————————————————————————————————————————————————————————————————————
The client writes log files in the same directory, these are rotated each day - uncompressed and if they get over 10 MB a new file will be started.
You’ll see the same log output also on the „Logging“ tab - the logs come in with a slight delay, so if you see something it means it has already happened.
Im sure there will be quite some bugs and/or pitfalls, you can report everything in the telegram channel.
If you are not in there, you should join: https://t.me/+krHfzWREKcc3NjVi
I know not everyone is a programmer, just describe the issue as best you can - and maybe include the log file when the issue has happened.
However of course these log files contain details like file hashes, file names and IP information - you can also PM me the logs on telegram.
If it’s not possible to disclose this information, then you could anonymize the stuff in the log up front.
When will improved releases / patches come?
————————————————————————————————————————————————————————————————————————
I won’t release patches or stuff on a weekly or daily basis, but I plan to release an update every couple of months.
Most likely it will be like a 3 month cycle or something like that.
Im most certain the next release won’t take another 6 years.
Why obsolete/insecure OpenSSL 1.1?
————————————————————————————————————————————————————————————————————————
Bundled OpenSSL 1.1 is required to facilitate eMule’s obfuscation protocol which relies on weak RSA keys and RC4.
Both are heavily insecure and broken, but for the sake of compatibility the client needs to support this.
I plan to add a modern security scheme in the future.
UI Overview
————————————————————————————————————————————————————————————————————————
The main UI is designed in a way which is slightly similar to the original eMule.
There is a main view which has a tab component for selecting various sections of controls.
On the top you’ll find a host/port line edit where you can fill ed2k server details in order to connect to.
There is no split control for connecting to either ed2k or KAD - so it will always connect to one or both,
depending on what has been chosen in the settings.
Below is a sub-pane which can show additional information.
From left to right the main tabs are:
- ED2K Server
- KAD
- Searches
- Downloads
- Uploads
- Shared files
- Known clients
- Logging
The main tabs will show (more or less) what they show on eMule, but many comfort features aren’t implemented.
Most of the time there is not much of an context menu.
Also there is no UI element for adding servers, for now if you want to add a server - you simply connect to it by host/port.
It will be then added to the server list, also every time an server list is being received from the connected server it will overwrite these entries.
The sub-pane contains 4 views, from left to right these are:
- Uploads
- Downloads
- Queue
- Current transfers
Uploads and Downloads will show each ongoing transfers from a file perspective.
On Queue shows clients which are in your queue (upload perspective)
Current transfers show any transfers from a peer perspective, they also show queued downloads.
(Very slow transfers, with a few kbit/s will sometimes drop out from this pane due unresponsiveness)
On the very bottom is a message line which isn’t often used, for now it only shows the server you are connected to (if any)
The symbols on the very right indicate network connection, similar to eMule:
Green means fully connected, yellow means firewalled and red means not connected.
The client isn’t downloading anything, what indicates if it actually is trying to download?
————————————————————————————————————————————————————————————————————————
After double clicking on a search entry (which starts the download), the entry appears in the Download tab.
Actual connecting to available sources happens a couple of seconds after this, if the entry is marked red immediately or shortly afterwards
It means that no sources for direct download are available.
At typical downloads starts with the log lines:
[2025-11-29, 13:13:44] [ED2K::Communication::run] Evaluating download file <d6407d443265ee6271ab7cff88db5c33>
…
Then you’ll see something like this:
[2025-11-29, 13:13:44] [ED2K::Communication::run] -> No sources available!
[2025-11-29, 13:13:44] [ED2K::Communication::run] -> Requesting sources...
…
^ This means that either the published known source has a LowID or it is not reachable for whatever other reason.
If there is a known source then you should see this line:
[2025-11-29, 13:13:54] [ED2K::Communication::run] -> Trying client XX.XXX.XXX.XXX:4661
^ This means now a connection is being established and negotiation is happening prior the download.
If you download 10 files at once, of course it’s very hard to track which log lines are belonging to each other.
How to connect to KAD?
————————————————————————————————————————————————————————————————————————
In order to connect to KAD network you need a bootstrap nodes.dat file in the data directory.
You can copy this file from any eMule client or from various known sources.
HydraP2P can read the eMule nodes file format, just don’t copy the file back because what’s written is not compatible to eMule.
If there is a nodes.dat file and KAD is selected in the Options, then the bootstrap will begin once you connect.
There is no UI button which lets you bootstrap only KAD but disregards ed2k server.
Things which are not implemented / do not work
————————————————————————————————————————————————————————————————————————
KAD file sharing / publishing (sadly didn’t made it into BETA1)
AICH recovery process (AICH tree’s are implemented, but some details are missing)
Automatic server reconnect with priority (basic auto reconnect should work, without priority)
Searching for file types (there is a control, but it doesn’t do anything)
Graphical indication about download state (which part’s are available/downloaded etc.)
Navigating in „shared files“ via mouse will not trigger the File Info (using arrow keys works)
Blacklisting clients / having control about blacklisted clients
IP Filter
Viewable / Exportable statistics
Buddy system (LowID clients try to look for HighID clients - some parts are implemented, but its not complete)
Multiple languages
UI: In KAD contacts country flags are not appearing on Windows (This seems to be a windows issue:
„Country flag emojis don't appear on Windows because the built-in font, Segoe UI Emoji, does not support them, likely due to geopolitical concerns about displaying certain flags.“
Offering shared files in a compressed package to the server (Uncompressed works, no clue why yet?)
On Linux only: Proper UTF-16 / wide string handling for file names
Problems with existing Clients / Mods
————————————————————————————————————————————————————————————————————————
Client MLDonkey New2 download issues (no response after sent UploadRequest?) (also sends tags 0xEF, 0x1F?)
Client xTreme Mod (eMule v0.50?) sends multiple handshakes (ed2k hello) after already connected (I consider this a bug in the mod)
- Also it doesn’t send a proper modstr or a mod version (with luck the username is set to „extreme mod“ url which seems to be the default)
HydraP2P - v0.6.0.2 first public beta release (BETA1)
- hooligan
- Posts: 16615
- www.4poziom.slask.pl
- Joined: 11.04.2021, 19:26
- Has thanked: 196 times
- Been thanked: 1791 times

