The foundation of DarkMX, at least for the time being, is the Tor hidden service model.
The well-known Tor network enables its users to make internet connections via a chain of hosts that act much like conventional proxy servers. Each step is encrypted, from the entry to the exit.
Hidden services allow this to work in both directions. The Tor user that is offering a hidden service sets up a meeting point somewhere on the network, which is stored in a DHT. The user that is accessing the service looks up the meeting point, and a new connection chain is formed from there. This provides an almost perfectly anonymous communication mechanism.
A more thorough explanation of the inner-workings of the Tor software is easy found using any search engine.
What Does DarkMX Do?
DarkMX serves and connects to Tor hidden services. It allows its users to host and access hidden services that offer file libraries, searchable file indexes, and chat rooms. These services can also be made available via .onion links to users of just the plain TOR web browser, which can run on any device, including Android phones and tablets.
How Do Files Get Shared?
Files are shared via "Networks", which are essentially a user-hosted index of files. When you connect to a network, your client slowly and gently uploads a compressed list of files you are sharing. The network host will use file listings from all users to process searches. When a user disconnects from a network, these file listing are cached by the network on disk for a configurable number of days, so that upon re-connection there is very little bandwidth needed to re-synchronize the index.
A network host has numerous ways to configure the rules around the way files are indexed and searched. There is a detailed user trust level system, and ways to pre-moderate file and chat-room directory listing.
How Do File Transfers Work?
Files are downloaded in sequence from beginning to end. They are single-source downloads, although incomplete download file sharing allows source-chaining in some situations. Files are not identified by their content hashes, and all links are location-specific. This means that the Library does not need to hash any files that you are sharing, making it much more practical to share very large file collections. Because of this, program loading/unloading times are very short, and RAM usage is low.
File transfers were also designed to limit the amount of traffic that is buffered on the Tor network. The amount of data in-flight is limited with a smart algorithm that detects overall latency. The amount of connection overhead is also reduced as much as possible, with all transactions between peers using only a single TCP connection, even when transferring many small files or during browsing or indexing.