Darknet Project:
Index:
DSA - Proxy Servers -
HTTP extension
DSB - File Servers
DSC - Centre Servers -
HTTP extension
DSD - Stream Servers -
Host Peer
DSE - Location Servers -
HTTP extension
DSF - Storage Servers
DCA - File Clients
DCB - Proxy Clients
DCC - Location Clients
DCD - Stream Clients -
Host Peer Double
DCE - Main Clients
Designation:
In addition to regular message forwarding, any clients accessing a proxy server can specify any limitations of the client platform and the server
will automatically work around them for any messages meant for the client.
This is a core part of Darknet, focusing on the 2nd principle. Packets are encrypted with a secure key not known by the proxy client.
Extensions:
HTTP packet forwarding, using liblacewing.
This should be solely used to mask the identity of the client for accessing other HTTP extensions, since HTTP is supported by every platform.
Identities:
DSA1 - Liblacewing Proxy Server
DSA2 - HTTP Proxy Server Extension
^ Index
Designation:
The file server sends files to different clients. Popular files are noted and can be uploaded should the host permit. Clients and the server obtain 2 types of file hosting, public and private.
It is assumed that public client transfers are allowed to be hosted by the server, but this can be overridden for each specific file.
Private files are listed on the server lists if chosen, and are available via querying the client directly, usually with a password.
The file server has three functions:
• Hosting popular files (Server » Client & Client » Server)
• Allowing file transfers (Client » Server » Client)
• Hosting lists of files that its clients and/or the server itself wish to share. Hosted files have several unique settings set by the initial hoster.
Extensions:
(no extensions have yet been created)
Identities:
DSB1 - Liblacewing File Server
^ Index
Designation:
Darknet clients initially access a random Centre Server from the list embedded in their code. You should update your Darknet node regularly to ensure you have the most recent centre server list.
These are not encrypted, as the servers contain nothing but directions to further servers. The embedded list should be current when released (every Centre Server known should be on there).
Centre servers are a necessity, but if all known centre servers are offline, clients will connect to the last used server (e.g. a file client will connect to the file server).
The probability of all servers being offline should ideally be nil.
Centre servers have 2 functions:
• To provide any clients with an accurate list of online and/or offline servers, as many as requested.
• To make these lists editable by clients, to a degree.
Due to the nature of this server, a Centre Server must NOT be ran on the same machine as another Darknet server.
Centre Servers must be so fast the user does not know they are even accessing them, as they are the equivalent of DNS.
The decentrialisation aspect of this server type is that all servers hold a list of centre servers. Should any hostile party close down all the Darknet Centre servers, any client will just access another server type and retrieve the list of servers from there.
The server is primarily liblacewing, and any clients connecting should set their name to the special key, the details of their query, and an additional random number appended.
If the key matches, the query is analysed and responded to. Otherwise an error is reported.
Extensions:
HTTP packet forwarding, using liblacewing.
The list specifications should be given in POST along with a special key, given with the embedded list. PHP scripting will generate a response list or error.
Identities:
DSC1 - Liblacewing Centre Server
DSC2 - HTTP Centre Server Extension
^ Index
Designation:
The stream server solely passes data between clients. File transfers on this server node are highly unrecommended.
The stream server has one of two functions:
• Streaming data (Client » Server » Client)
• Hosting a data stream (Server » Client)
Data may include video streams, audio streams, chat messages, etc.
Storage of messages is NOT permitted; instead use a storage server.
Variants:
1) Host Stream
Server streaming; clients may transfer small amounts of data (eg chat messages), but the main focus is the host, which streams data continuously.
Useful for online TV/radio, with chats with the hosts.
2) Peer Stream
Client streaming; clients connect and broadcast what they want - video, audio, chat messages.
Useful for audio conferencing, video conferencing, instant messaging, etc.
Identities:
DSD1 - Host Stream Server
DSD2 - Peer Stream Server
^ Index
Designation:
A location server locates files or services. When it boots, it connects to a centre server, sends a special keyword and receives a set of file-stream servers, to which it then connects.
Server uses liblacewing, and any clients connecting should set their name to the special key, the details of their query, and an additional 3-digit random number appended.
If the key matches, the query is analysed and responded to. Otherwise an error is reported.
It has one function:
• Query all the servers for the specified term - file, peer, etc.
The location server does not request data from the servers with each query.
There are 4 methods which cause the update:
• Every n
th request, re-query the servers
• Every n seconds, re-query the servers
• On request and last request time minus current time exceeds n seconds
• All servers must update when a server in the set shuts down
The location server disconnects from all its set if its centre server has shut down, and accesses another centre server.
Extensions:
The term should be given in POST or GET. The response will contain a not-found or an error; details of where it is found should NOT be given, and an update of the lists will not take place.
Identities:
DSE1 - Liblacewing Location Server
DSE2 - HTTP Location Server Extension
^ Index
Designation:
A storage server does not actually store files directly; it reroutes them to additional file servers and storage servers.
Generally it accesses 3-5 file servers and 1-3 other storage servers.
A storage server has 3 functions:
• Upload files and send files to file servers; then send details of upload to other storage servers; then send details of other storage servers to clients
• Receive notification of download from file servers and forward to other storage servers
• Send a file server address to clients
Extensions:
(no extensions have yet been created)
Identities:
DSF1 - Liblacewing Storage Server
^ Index
Designation:
The proxy client redirects packets between proxy servers; essentially the same as a proxy server (
DSA Nodes).
If a server uses it, it can specify any limitations of the server platform and the proxy server will automatically work around them for any messages meant for the server.
This is a core part of Darknet, focusing on the 2nd principle. Packets are encrypted with a secure key not known by the proxy server.
Proxy clients support several different Server » Server connections at once.
A proxy client has 2 functions:
• Messages sent to the proxy are passed to another client on the same server.
• Messages sent to the proxy are passed to another liblacewing client connection, and so passed to another server or to a client on another server.
Extensions:
HTTP packet forwarding, using liblacewing.
This should be solely used to mask the identity of the client for accessing other HTTP extensions, since HTTP is supported by every platform.
Identities:
DCA1 - Liblacewing Proxy Server
DCA2 - HTTP Proxy Server Extension
^ Index
Designation:
A file client supports file transfers only. A single file server (
DSB Node) is accessed, and it sends files to
the server or clients on the server; and also receives files. It sends using rUDP. If rUDP is unavailable to the platform, a proxy
server must be invoked.
A file client has 2 functions:
• Receiving files from the server and/or clients
• Sending files to the server and/or clients
Extensions:
(no extensions have yet been created)
Identities:
DCB1 - Liblacewing File Client
^ Index
Designation:
A location client queries several location servers for the specified term. Due to the high number of connections, this task is not implemented into a stream client or file client by default - see main client for a crossover of several types.
Location servers should be very fast in response, due to the low bandwidth usage of clients, so a Darknet-wide search should take a small amount of time.
Location clients do not have access to the HTTP addon of location servers - only liblacewing can be queried.
A location client has 1 function:
• Query location servers for a term
Extensions:
(no extensions have yet been created)
Identities:
DCC1 - Liblacewing Location Client
^ Index
Designation:
Stream clients are a main part of Darknet, basically handling any sort of communication that isn't file transfers.
A stream client has one or both of 2 functions:
• Send data stream
• Receive data stream
From that, you can make chatrooms, remote assistance applications, screen-sharing, VoIP, videoconferencing, etc. It is the client's discretion what they may send.
Variants:
1) Host Stream
Host stream clients mainly broadcast stream data to a
DSA2 Node server. Useful for an online radio station.
2) Peer Stream
Peer stream clients mainly receive stream data from a
DSA Node server. Useful for an online TV viewer.
3) Double Stream
Double stream clients both send and receive stream data from a
DSA Node server. Useful for an online game.
Identities:
DCD1 - Liblacewing Host Stream Client
DCD2 - Liblacewing Peer Stream Client
DCD3 - Liblacewing Double Stream Client
^ Index
Designation:
A main client uses the technology of a file client, a double stream client, and a location client.
You can create, for example, a video downloader & player, which will use location client to find the video, then use double stream client to receive live feeds, or file client to download normal videos and play once downloaded.
A client has 5 functions:
• Find a file
• Download a file
• Upload a file
• Receive a stream
• Broadcast a stream
Extensions:
(no extensions have yet been created)
Identities:
DCE1 - Liblacewing Main Client
^ Index