An awesome UDP-based peer-to-peer-plus-direct-connect application for distributed file distribution over a heterogeneous network environment.
This project requires the Qt4 toolkit >= 4.8, the Crypto++ libraries for TTH hashing, as well as the sqlite3 libraries for the database backend.
Project started: 9 Nov 2011
Current version: 0.1.8
Current stage: Alpha
26 Nov 2011 - The project has just passed the 10,000 lines of code mark!
September 2012
Some major restructuring around transfers is taking place, which in its currently bit-banged form can be described as barely functional.
The long term goal is to break the whole hierarchy of different types of segments down to just one (a segment :) that reads/writes through a connection, which is managed by the shiny new connection manager. Different protocols can be wrapped up inside connections, of which TCP is to be the first.
TCP can obviously not be run through our dispatch system, therefore we need to hang on to the FSTP transfers a little bit more as a failsafe alternative until we have uTP running. uTP will be our first dispatched connection based protocol, paving the way for our experimental work with FECTP transfers.
Stage | Feature | Notes |
---|---|---|
Implementing | Connection manager | Subsystem to manage connection based protocols, such as uTP, TCP, etc. |
Implementing | TCP server | Catches TCP connections |
Implementing | TCP connection | First connected protocol, others will follow along its path. |
Implementing | Connected segment | Transfer segment that reads and writes through a Connection of any kind. |
Inception | uTP server | Catch and manage uTP connections the correct way |
Inception | uTP connection | Connection wrapper around a uTP socket |
Implementing | Stats collector | Keep track of p2p transfer and control data of various kinds. |
Beta | DC++ Hub integration | Chat and private messaging |
Beta | Sharing | Hashing what you choose to share |
Beta | Settings and Help | |
Beta | Bootstrapping | Finding friends automatically |
Beta | Searching | P2P decentralised search |
Beta | Smart scanning for bootstrap | Finding even moar friends automatically |
Beta | Download queue (GUI side) | List management tested |
Beta | FSTP transfer protocol | |
Beta | Finished downloads | List management tested |
Beta | Transfer management (GUI side) | Transfers can be stopped |
Beta | Network topology mapper | Keeps track of the broadcast/multicast buckets |
Beta | P2P message dispatcher | First-in-line protocol decoding and encoding. |
Beta | Download queue (Transfer side) | |
Alpha | Segmented transfers | Implemented, seems to work well. |
Alpha | Containers | Queueing, browsing, processing |
Inception | FECTP |