| 1 |
Hydranode - Modular MultiPlatform P2P Client Framework |
|---|
| 2 |
------------------------------------------------------ |
|---|
| 3 |
Things needing to be done |
|---|
| 4 |
|
|---|
| 5 |
---- 0.2 Release Requirements ---- |
|---|
| 6 |
|
|---|
| 7 |
* [core] Implement inter-module dependancies system. |
|---|
| 8 |
|
|---|
| 9 |
Estimated Development Time: 1-2 days |
|---|
| 10 |
|
|---|
| 11 |
* [core] Scheduler API isn't scalable enough - nearly all functions require |
|---|
| 12 |
performing map lookups with socket pointer, which can get really |
|---|
| 13 |
resource-hungry during transfering from many sockets at high speeds. |
|---|
| 14 |
Possible solutions include completely dropping Scheduler (and the |
|---|
| 15 |
surrounding policy/helper classes), and doing all the events and |
|---|
| 16 |
requests handling directly within SSocket class. |
|---|
| 17 |
|
|---|
| 18 |
Estimated Development Time: 1-2 days |
|---|
| 19 |
|
|---|
| 20 |
* [core/ed2k] Replace CryptoPP with Botan library; implement the remainder of |
|---|
| 21 |
required hashes generation using Botan API. This makes Botan library |
|---|
| 22 |
a hard dependancy for hydranode (altough it can be optional). |
|---|
| 23 |
|
|---|
| 24 |
Estimated Development Time: 2-3 days |
|---|
| 25 |
|
|---|
| 26 |
* [ed2k] Fully re-enable compressed downloading. Requires a wrapper class around |
|---|
| 27 |
ZStream to perform stream-oriented data decompression. |
|---|
| 28 |
|
|---|
| 29 |
Estimated Development Time: 3-4 hours |
|---|
| 30 |
|
|---|
| 31 |
* [bt] Implement support for BitTorrent network. Needs to have both client |
|---|
| 32 |
and tracker capabilities, supporting most modern BT features. |
|---|
| 33 |
|
|---|
| 34 |
* [cgcomm] Implement Core/GUI Communication Layer |
|---|
| 35 |
|
|---|
| 36 |
--- Miscellaneous ---- |
|---|
| 37 |
|
|---|
| 38 |
* [core] Handle E_INETDOWN on Linux somehow (that error code is not |
|---|
| 39 |
supported on Linux) |
|---|
| 40 |
|
|---|
| 41 |
* [core] Monitor getrlimit(RLIMIT_NOFILE) on Linux, to avoid networking |
|---|
| 42 |
subsystem aquiring too many open files that other subsystems |
|---|
| 43 |
start failing. Make sure Networking Subsystem always leaves ~5% |
|---|
| 44 |
of allowed file-descriptors free for other subsystems to use. |
|---|
| 45 |
|
|---|
| 46 |
* [core] Simplify Object class data / operations access and storage. |
|---|
| 47 |
Possibly overload operator[] and operator(). |
|---|
| 48 |
|
|---|
| 49 |
* [core/ed2k] Add additional levels of indirection to ED2KParser class and the |
|---|
| 50 |
surrounding API to make it independant of the protocol being parsed. |
|---|
| 51 |
As such it can then be moved into [core] codebase and made available |
|---|
| 52 |
to all current and future modules. This involves using template Policy |
|---|
| 53 |
classes technique to perform protocol header reading. |
|---|
| 54 |
|
|---|
| 55 |
Estimated Development Time: 1 day |
|---|