A distributed P2P system which emulates a Direct Connect hub, primarily for college campuses and other low-latency LANs, for more information see http://dtella.org.
This repository was created as a fork of the latest revision (r635) of Dtella from the official SVN repository. The intent of this fork is to improve upon the original Dtella implementation and investigate ways that it could be improved further.
Look at the setup value in order to install.
If you are using the exe you do not need to worry about installing the dependencies since they are including in the exe.
-
Install 7zip
-
Install nsis
-
Install python2.7
-
Install py2exe
-
Install Twisted
-
Install Zope (version 3.6 or higher)
-
Fix Zope install by adding the a empty file
__init__.py
, inC:\<PYTHON_DIR>\Lib\site-packages\zope\
-
Install pycrypto
-
Open the DCC client
-
Start the dtella script
-
Add a new connection to your
-
Enter the name as anything you like
-
For the Hub address enter the loopback address followed by your dtella port in the format of
<ip_address>:<port>
e.g:127.0.0.1:7314
-
Save the connection
-
Connect to the newly created hub.
-
Enter the command to set the UDP port for connecting to other clients e.g:
!UDP 32421
Please note you must already be connected to the local hub.
-
Find out a peer's
local ip address
anddtella port
(they must also complete the above section) e.g:10.121.90.81:32421
-
In the DC++ chat enter
!addpeer
command along with thelocal ip address
and the dtella port (found in the previous step) e.g:!addpeer 10.121.90.81:32421
-
The previous command will add the peer to your client (however it might take a while to refresh)
-
Alternatively you can use
!findpeers
to locate peers on your local network. (This also sometimes helps with the client list refresh)
The configuration fields include:
- bot_name, must be a valid irc name
- bot_nickname, must be a valid irc nick
- irc_server, the domain name of the irc server (e.g. example.com)
- channel, the channel to auto join. This must be a valid channel name, note channel may require a # at the beginning, in order to add the # you must surround the word with single quotes. Alternatively, you can leave it empty for no auto join.
- irc_port, the port to connect to the irc, must be a valid port
- owner, your name, nick name, can be left empty
- dtella_port, the port that dtella is running on
- secret, whether to run in secret mode or not
Please Note the bot does not require dtella to be running or for you to be connected to your hub. However, if you are not running dtella and connected to your hub users will not be able to connect and therefore running this bot will be a little redundent.
-
Adjust the above define configurations as desired to work with local hub peers
-
Install the bundler gem
sudo gem install bundler
-
Run the bundler:
bundle install
-
Start the bot
ruby bot.rb
- To find an alternative to the dependency on a centralized DNS TXT or external Google doc and investigate making it truly redundant and de-centralized.
- Improve the creation of insallers and create one-click installers that makes it easy to use Dtella with an already pre-configured client for Windows, OS X, and Linux.
- Investigate improving the mesh network and DHT implementation.
All of the source code in this repository is licensed under the GNU General Public License, Version 2. All kudos go to the original creators of Dtella, Jacob Feisley, Paul Marks, and Dtella Labs.