#eNode - A node.js eD2K/eMule Server
This is an experimental-buggy-testing-pre-alpha release. Not ready to use!
Contributions are welcome.
##Features:
- TCP/UDP opcodes
- TCP/UDP protocol obfuscation
- Obfuscated lowID detection
- Lugdunum/emule extended protocol
- gzip compression
- LowID Callbacks
- Files > 4GiB
- Easy support for any storage engine.
- look at
storage/storage.js
and create your ownengine.<name>.js
plugin
- look at
##Requires:
- Node.js v0.10.x
- MySQL server || MongoDB
##Dependencies:
- hexy: hexdumps, useful for debugging packets
- tinylogger: to show messages in console
- colors: required by tinylogger
- mysql
- mongodb
##Usage:
- Create MySQL database tables. Database structure:
misc/enode.sql
- Modify config file:
enode.config.js
- Execute:
node enode.js
-or-chmod +x enode.js
and then./enode.js
- You can modify the verbose level modifing the options of the
tinylogger
module
If you want to test the server on a local network, change emule options to allow local connections.
##To do:
- gzip compression on send
- OP_FOUNDSOURCES_OBFU
- Send OP_SERVERSTATUS every 5 minutes to connected clients
- Better storage/indexing
- IPv6 support: unoficial draft for eD2K IPv6 extension
- Support for Nat Traversal
##Thanks to:
- David Xanatos