Good day to all. In this topic I want to talk about working in DC networks under Linux. I myself am writing from under Linux Mint 7, but on Ubuntu 9.04 everything is identical!
So, I am the owner of a rather slow Internet channel. Total, as stated in the tariff, 250 kbps (31.25kbytes). In fact, usually 26-28. And if something is required to me, I look for it first on the DC network. Fortunately, I have a peering around the city of Krasnoyarsk, so there are no problems with the search.
When I was in Windows, everything was fine with me, I used StrongDC ++ 2.21. Everything is great ... And now, now I'm in Linux. The story of my journey is a separate article ...
And of course, the first thing I did was to search for alternative programs and ways to launch under Vain. Found valknut program. Well tried. Well, it works. Did not like IMHO.
Wine and Flylink
The experience of using Linux DC ++ was still at 8.04, which I somehow didn’t really like because of bugs. Climbed on
winehq.org . And I learned that our Flylink-r370 works perfectly. All right, I think. Right now everything will be the way ... But no, I downloaded this revision. Installed, launched, under vaynom 1.1.25. And yes, this miracle really works. Began to test the functionality. Made a ball. Connect to the hubs. I decided to download a large file, more than 5 gigs, and so that it would be available to a sufficiently large number of users. Everything is fine, I found. And the first thing I didn’t like was the file icons that were all confusing. If this is a file, it looks like a normal folder in XP, and if this is a folder, then the icon is a white folder. Well, I think. All right, for the sake of working client DC it is possible and measured. When I selected a line, I lost the field with information, how many people have this file. Well, it was no longer serious. But still tolerable, because when choosing a file of large size, I am also guided by this parameter. Put on the download. Immediately pleased speed, 8 MB / s. But very rastroil processor load. Since basically I download everything on the ntfs partition, which is not true, mount.ntfs-3g consumes quite a lot of CPU time, almost 100%. The bulk was downloaded at a fairly decent speed, almost 8 megabytes per second. BUT (!!!) When less than 10% is left, the speed dropped to 50 Kb / s. I thought that at the same time everyone had run out of slots, or something else. I decided that in a couple of minutes everything would be better. It turned out, I did not think correctly))). Opening the list with whom I shake. I saw that the download is just a superfrom two computers. and at a speed of about ~ 30kbytes. Although before that, he had a great swing with more than 200 users). Closing the connection, he immediately picked up someone at a speed of 2 megabytes per second. Of course, I thought that at the end the blocks were swinging at low speed, but not to the same extent, in Strong DC ++ this was not the case. This was the last straw ...
Linux DC ++
And I decided to try Linux DC ++ more recent. It took quite a long time, about a year. Maybe they fixed this bug, that when I started it, it just took off from me.
So sudo aptitude install linuxdcpp. And we start ... Surprisingly, it was launched! It's a sign! I quickly added 5 gig movies to the ball. I want to warn you that adding a ball is worth a little, because if you immediately give a 100 GB task, you will have both the computer and Linux DC ++ down. Need to add one at a time, two folders. So that you can wait for the moment when you finish the hashing, turn off the client, and start it again, otherwise with an emergency exit you will have to go through the hashing procedure again !!! Well, and we entered the hubs. This time I became smarter, and in the settings I set the download location on the ext3 partition. I chose the file, no bugs were noticed, the only thing after clicking on the search button is that the window hangs (darkens), and I wait for him to finish the search. I chose a test file to upload. And wait. As it turned out, this version is built on a stable kernel that does not support multithreading. But there is 0.707 which supports multithreading, which is what we need. Here is the
manual on which I learned where to get the source version with multithreading, and a brief guide to action. Having collected all the remnants of the cookies from the table, I prepared to compile.) The benefit is no small experience ... But I did not want to collect the bag, then put it. I decided to do it differently, without bothering the system. Now I'll tell you everything. so,
')
Take the source
sudo aptitude install bzr scons
cd ~/
mkdir linuxdcpp
cd linuxdcpp
bzr branch http://bazaar.launchpad.net/~razzloss/linuxdcpp/0705-core
Great, now we have the source code for fresh linuxdcpp. What can we do with them? Compile!
Preparing the system for building fresh Linux DC ++
As written in the manual, we further satisfy all dependencies. Here is a line from my Readme.txt, you may differ slightly from the new version:
Dependencies:
-------------
scons >= 0.96
pkg-config
g++ >= 3.4
gtk+-2.0 >= 2.6
gthread-2.0 >= 2.4
libglade-2.0 >= 2.4
pthread
zlib
libbz2
libssl
So, if you have ubuntu 9.04 then you should not have problems with old packages. You just may not have some necessary things. I pointed out the missing plus boost. Well, no question.
Here is what I vyoplnil:
sudo aptitude install binutils scons pkg-config g++ libboost1.35-dev libglade2-0 libglade2-dev libpthread-stubs0 libpthread-stubs0-dev libbz2 libbz2-dev libssl libssl-dev
This command set up what was missing from my list, and what was old, updated (I did not manage to find 2 packages g ++> = 3.4, gtk + -2.0> = 2.6, click with your finger, I will add).
Now everything is ready for assembly. From the same readme, I read how to properly collect this hoard.
Compilation!!!
Compiling:
----------
$ cd /path/to/linuxdcpp
$ scons PREFIX=/path/to/install
Now the most interesting. Since I don’t want to mess around, we’ll get pretty clever, leaving the old version ,.
sudo mkdir /opt/linuxdcpp
sudo chown -R : /opt/linuxdcpp
Below you will find out why. :)
Now we collect.
cd /path/to/linuxdcpp
scons PREFIX=/opt/linuxdcpp
You can go to drink tea. But not for long, for the most interesting is yet to come ...
If everything is well assembled, Congratulations. If not, satisfy the dependencies and read what the error log says.
Installation
It remains to install. Ustnovka is even easier than compiling:
scons install
And now the moment comes, for which we actually made a separate folder, I did not delete the old Linux DC ++ because I am very lazy to build the package and install it. So I chose the easy way, for all this is already provided for by the linuxdcpp build tool. Go to the settings of the main menu of the gnome (if you have sneakers, set yourself up) and look for that DC ++, and in the launch parameters we change only the path from “linuxdcpp” to “/ opt / linuxdcpp / bin / linuxdcpp” (quotes).
It's time to run our newly compiled client with multithreading support.
Of course, as in any program, there are some nuances that were noticed by me. When you select a file for download, the client starts the download first from one user, but then, if it has time, of course), connects to other users, which gives us a significant win in speed. There is another option, but I did not understand its logic. On the selected file, click "Search by TTH", and from this list, as I understand it, you can add users from which the jump will take place (if not right correct), when you click on "Match Queue".
That's all. I hope you enjoyed this article, and helped to avoid the use of Vine, When there is such a cool client.
Shl. I did not try StrongDC under Vine because I was completely satisfied with Linux DC ++.