ctorrent-1.3.4-dnh1-DKnight110

Announcements of packages that are now released.

Postby DKnight110 » Tue Nov 22, 2005 2:37 pm

RELEASE NOTES
=========================================================


This is a port of CTorrent-1.3.4-dnh1 (http://www.rahul.net/dholmes/ctorrent/). It is originally based on CTorrent, located here <a href='http://ctorrent.sourceforge.net/' target='_blank'>http://ctorrent.sourceforge.net/</a>.

The package contains only the executable file, no other libraries are required. The executable (ctorrent) will reside in /pkg/bin after the installation is complete. The executable depends on libsdtc++.so.2.8 and libm.so.5. It was tested on a P100 MHz/16 MB RAM/850 MB HD running Freesco 0.3.3

ctorrent can be downloaded from here

<a href='http://3rd-party.freescosoft.com/index.php?page=filehandler&filehandler=download&filepath=/DKnight110/03x/ctorrent-1.3.4-dnh1-DKnight110' target='_blank'>Install Script</a> MD5 hash : 656FCBFB0EB4A0F12A9BC5969CC9CBC9

<a href='http://3rd-party.freescosoft.com/index.php?page=filehandler&filehandler=download&filepath=/DKnight110/03x/ctorrent-1.3.4-dnh1-DKnight110.tgz' target='_blank'>.tgz archive</a>
MD5 hash : B31663B5860343E0DE7FD147EBB454EA


After you save both files on your hardisk, upload them to a directory on your FreeSCO machine and run pkg -i /path/to/package/ctorrent-1.3.4-dnh1-DKnight110


NOTE1: For information on how to use it, please enter "ctorrent" in console
NOTE2: It seems that the initial cache (16MB) allocated by ctorrent is too large for older system (like the test one) and it will result in a lock-up. So please use the -C <cache_size_MB> option when running ctorrent



Original README for ctorrent-1.3.4-dnh1
=========================================================


Please see <a href='http://www.rahul.net/dholmes/ctorrent/' target='_blank'>http://www.rahul.net/dholmes/ctorrent/</a> for the latest version
of this information.

Enhanced CTorrent

[ [1]Info | [2]Notes | [3]Changes | [4]Download | [5]Resources |
[6]Contact ]

Information

[7]CTorrent is a [8]BitTorrent client implemented in C++ to be
lightweight and quick. It has fallen a little behind in updates and
bug fixes though.

The files here contain the good work of those who wrote the original
CTorrent base code and a number of patches that provide fixes and
enhancements, as well as additional fixes and enhancements that I am
contributing. I am not the original author, current maintainer, or any
other official representative of CTorrent. The files on this page are
not the original or official CTorrent distribution. I encourage you to
visit the [9]CTorrent project page on SourceForge for further
information.

Notes

Use of the -P option (or changing the peer ID in btconfig.h) is
recommended, as some other clients and trackers assume that Ctorrent
is "buggy" and won't cooperate with it. [Guess what, there are plenty
of others with bugs too.] It isn't necessary to impersonate another
known client; just changing or adding one letter or number should be
sufficient.

Changes for "dnh1" Release

Patches
* Incorporates the following patches. The number is the Request ID
from the [10]SourceForge patches page, which you can reference for
the details of each patch. The name in brackets is the name of the
patch file or a name I chose to refer to the patch. Some of these
names are used below (in brackets) to describe a fix or change to
a particular patch.
1042808 [getcwd] (incorporated in get1file patch)
1084776 [passkey] (incorporated in udlimit patch)
1109266 [align]
1109287 [tracker/tracker2]
1114197 [fmt] (incorporated in get1file patch)
1114364 [resetdl]
1116448 [get1file]
1118597 [crash]
1119467 [stall]
1119492 [rate]
1119497 [flush]
1119519 [opt]
1119689 [status]
1124342 [udlimit]

Download performance
* If a peer socket is ready for reading and writing, perform both.
Previously the cases were exclusive, with preference given to
reading.
* Download requests are now made to peers when they are ready for
writing (in addition to the existing event-driven cases). This
fixes peer stalls when a request couldn't be sent in an
event-triggered case due to bandwidth limiting or other
circumstances.
* Additional tests added so that the above request checking doesn't
create hard loops.

Bandwidth measurement/management
* [rate] Bandwidth reporting is now not capped. Also, only the time
used for the samples taken is used in the calculation rather than
the maximum interval (this affects rate calculation for individual
peers).
* Additional upload and download bandwidth limit checks added so
that bw management is more accurate.
* Corrected condition inversion bug in Rate::StopTimer(), which
affects peer rate calculations.

Peer count
* Request our max number of peers from the tracker each time rather
than just taking the tracker's default, so we can try to fill up.
* The tracker will be contacted early if all peers disconnect so
that we can actively try to establish some more peer connections.
To avoid hammering the tracker, we must have at least one peer for
15 seconds in order for this to be invoked.
* Some clients use nonzero bytes in the "reserved" part of the
handshake. Added code to ignore the reserved bytes if the rest of
the handshake is as expected. This includes Azureus 2300 thru 2304
(latest) which gives 0x80 as the first reserved byte and BitComet
which gives 0x6578 ("ex") as the first two bytes.
* Update peer's timestamp on any message, not just keepalives. Any
receipt of data from a peer now resets its timeout, preventing
early disconnect.

Parallel requests
* Initial-piece and endgame cases have been improved so that pieces
will be requested from multiple peers. Cancels are sent as slices
(subpieces) are received. This endgame strategy is described in
the BitTorrent online spec. The startup strategy is also described
in posts and facilitates obtaining a single piece more rapidly in
order to obtain some trade value. In initial mode, the piece of
which we need the least parts is targeted. In endgame mode, the
piece of which we need the most parts is targeted. Slices that are
cancelled are also removed from the "pending" queue, as are pieces
that are completed.
* When duplicating a piece request, the slice request order is also
shuffled in order to minimize duplication of effort.

Tracker info
* [status] Seems to be missing tracker.cpp diff. Added code to get
tracker's total peers, but not all trackers report these fields in
the normal response. Also added code to count successful updates
from the tracker.
* Added tracker connection state to status line (when
connecting/connected).

Tracker contact
* When interrupting (ctrl-C), connect to the tracker immediately
rather than waiting 15 seconds.
* Contact tracker "soon" after transitioning to seeder state.

Peer interaction
* Manage our interested state for each peer dynamically as content
changes.
* Unchoking
+ Use the peer's interested state (confirming via the bitfield
that it needs our data) to consider unchoking. Using only the
bitfield could cause us to waste an upload slot on a peer
that doesn't have all content but isn't interested (like a
single-file downloader).
+ Choke peers that become uninterested or don't need our data.
+ Try unchoking new peers only as slots open or the optimistic
unchoke rotates. Unchoking too many peers can temporarily
reduce per-peer upload rates, which would make uploading to
us unappealing for good peers.
+ In a tie for download speed, prefer to unchoke the peer to
whom we've uploaded the least data relative to what we've
downloaded from him.
* Optimistic unchoking
+ Fixed condition inversion bug causing opt unchoking to occur
too often.
+ A peer who has no pieces is now preferred 75% vs. a peer who
already has at least one piece, in order to help the new peer
become productive. This is documented in the online spec.
+ Set peer's last-unchoke-time when choking the peer to get
better rotation of the optimistic unchoke. The value is now
the last time that a peer was in the unchoked state rather
than the time of the last unchoke event.

Miscellaneous items
* [tracker] Fixed normal program end (stop) process, which was
crashing.
* [get1file] Restore compact tracker response support.
* [get1file] Made display of the status line info dependent on
whether the option is in use.
* [get1file] Apply the filter when checking for what we need from a
peer instead of when recording what the peer has; this prevents
stalls when we move on to the next file. Update interested state
for each peer when we begin a new file. Also move the file-done
check into the piece completion code and check whether the next
file(s) has also been completed.
* Reduced the slice size from 32K to 16K (same as BT & Azureus).
This provides more precise DL rate measurement, and helps insure
that we receive a productive amount of data (i.e. a complete
slice) even if we are unchoked by a peer for only one cycle. See
[11]http://groups.yahoo.com/group/BitTorrent/message/1260 for more
discussion/analysis on this.
* Added -v (verbose) option for additional debugging output.

Download

[12]FreeBSD patch file
A patch file of changes to the CTorrent 1.3.4 base, including the
patches from the FreeBSD ports tree.

[13]Patch file
A patch file of changes to the CTorrent 1.3.4 base.

[14]FreeBSD patched source
This includes the patches from the FreeBSD ports tree.

[15]Linux/Windows/Other patched source
Please [16]let me know if you encounter any portability issues, as I
don't have a test environment set up for these platforms.

Resources

[17]CTorrent Home Page
Outdated, but you may find some useful info (particularly the FAQ).

[18]CTorrent SourceForge Project
Hosts the CTorrent codebase, bug reports, patches, and forum.

[19]Custom CTorrent
A page by the author of the "get1file" patch and other fixes. It
contains a custom version and a GUI for CTorrent.

[20]BitTorrent
The official BitTorrent home page.

[21]BitTorrent wiki
Various documentation.

[22]BitTorrent protocol specification (official version)

[23]BitTorrent protocol specification (wiki version)

References

1. <a href='http://www.rahul.net/dholmes/ctorrent/index.html#info' target='_blank'>http://www.rahul.net/dholmes/ctorrent/index.html#info</a>
2. <a href='http://www.rahul.net/dholmes/ctorrent/index.html#notes' target='_blank'>http://www.rahul.net/dholmes/ctorrent/index.html#notes</a>
3. <a href='http://www.rahul.net/dholmes/ctorrent/index.html#changes' target='_blank'>http://www.rahul.net/dholmes/ctorrent/index.html#changes</a>
4. <a href='http://www.rahul.net/dholmes/ctorrent/index.html#download' target='_blank'>http://www.rahul.net/dholmes/ctorrent/index.html#download</a>
5. <a href='http://www.rahul.net/dholmes/ctorrent/index.html#resources' target='_blank'>http://www.rahul.net/dholmes/ctorrent/index.html#resources</a>
6. mailto:dholmes@ct.boxmail.com
7. <a href='http://ctorrent.sourceforge.net/' target='_blank'>http://ctorrent.sourceforge.net/</a>
8. <a href='http://www.bittorrent.com/' target='_blank'>http://www.bittorrent.com/</a>
9. <a href='http://sourceforge.net/projects/ctorrent/' target='_blank'>http://sourceforge.net/projects/ctorrent/</a>
10. <a href='http://sourceforge.net/tracker/?atid=598034&group_id=91688&func=browse' target='_blank'>http://sourceforge.net/tracker/?atid=59803...688&func=browse</a>
11. <a href='http://groups.yahoo.com/group/BitTorrent/message/1260' target='_blank'>http://groups.yahoo.com/group/BitTorrent/message/1260</a>
12. <a href='http://www.rahul.net/dholmes/ctorrent/ctorrent-dnh1-fbsd.diff' target='_blank'>http://www.rahul.net/dholmes/ctorrent/ctor...-dnh1-fbsd.diff</a>
13. <a href='http://www.rahul.net/dholmes/ctorrent/ctorrent-dnh1.diff' target='_blank'>http://www.rahul.net/dholmes/ctorrent/ctorrent-dnh1.diff</a>
14. <a href='http://www.rahul.net/dholmes/ctorrent/ctorrent-dnh1-fbsd.tar.gz' target='_blank'>http://www.rahul.net/dholmes/ctorrent/ctor...nh1-fbsd.tar.gz</a>
15. <a href='http://www.rahul.net/dholmes/ctorrent/ctorrent-dnh1.tar.gz' target='_blank'>http://www.rahul.net/dholmes/ctorrent/ctorrent-dnh1.tar.gz</a>
16. mailto:dholmes@ct.boxmail.com
17. <a href='http://ctorrent.sourceforge.net/' target='_blank'>http://ctorrent.sourceforge.net/</a>
18. <a href='http://sourceforge.net/projects/ctorrent/' target='_blank'>http://sourceforge.net/projects/ctorrent/</a>
19. <a href='http://customctorrent.ifreepages.com/' target='_blank'>http://customctorrent.ifreepages.com/</a>
20. <a href='http://bittorrent.com/' target='_blank'>http://bittorrent.com/</a>
21. <a href='http://wiki.theory.org/CategoryBitTorrent' target='_blank'>http://wiki.theory.org/CategoryBitTorrent</a>
22. <a href='http://www.bittorrent.com/protocol.html' target='_blank'>http://www.bittorrent.com/protocol.html</a>
23. <a href='http://wiki.theory.org/BitTorrentSpecification' target='_blank'>http://wiki.theory.org/BitTorrentSpecification</a>
User avatar
DKnight110
Newbie
 
Posts: 4
Joined: Tue Nov 22, 2005 1:39 pm

Postby TeCuMSeH » Tue Nov 22, 2005 6:47 pm

The archive is corrupt so this is useless. You might have to upload it elsewhere. Maybe submit it to Freescosoft
<img src='http://members.home.nl/mgdijkerman/freesco/gmail3.png' border='0' alt='user posted image'>
TeCuMSeH
Member
 
Posts: 51
Joined: Mon Jan 28, 2002 6:57 pm
Location: Netherlands

Postby DKnight110 » Wed Nov 23, 2005 12:11 pm

TeCuMSeH wrote:The archive is corrupt so this is useless. You might have to upload it elsewhere. Maybe submit it to Freescosoft

Indeed, it seems that the FileFactory link was invalid. I have uploaded both files to "The FREESCOsoft 3rd Party Authors Web Site" and I have updated the links in my original post.
User avatar
DKnight110
Newbie
 
Posts: 4
Joined: Tue Nov 22, 2005 1:39 pm

Postby dingetje » Wed Nov 23, 2005 5:02 pm

Just a heads up: the binary requires two additional libraries, and possibly the full blown libc.so.5:

        libstdc++.so.2.8 => /lib/libstdc++.so.2.8 (0x40009000)
        libm.so.5 => /lib/libm.so.5 (0x40054000)
        libc.so.5 => /lib/libc.so.5 (0x4005d000)


for some reason the libstdc++.so.2.8 and libm.so.5 libs are mentioned in the install script, but didn't make it in the package tarball.

DKnight110 you may want to correct this and upload the corrected package.
GreetZ
http://dingetje.hopto.org

"Software is like sex: it's better when it's free." - LINUS TORVALDS
User avatar
dingetje
FREESCO GURU !!
 
Posts: 1010
Joined: Wed Nov 14, 2001 12:13 pm
Location: The Netherlands

Postby DKnight110 » Wed Nov 23, 2005 6:03 pm

dingetje wrote:Just a heads up: the binary requires two additional libraries, and possibly the full blown libc.so.5:

        libstdc++.so.2.8 => /lib/libstdc++.so.2.8 (0x40009000)
        libm.so.5 => /lib/libm.so.5 (0x40054000)
        libc.so.5 => /lib/libc.so.5 (0x4005d000)




It seems that I overlooked including the required libraries while creating the package. I have rebuilt the .tgz archive and it includes all three libraries libc.so.5, libstdc++.so.2.8 and libm.so.5

dingetje wrote:DKnight110 you may want to correct this and upload the corrected package.


I've already replaced the .tgz and the install script with the new version.
User avatar
DKnight110
Newbie
 
Posts: 4
Joined: Tue Nov 22, 2005 1:39 pm

Postby TeCuMSeH » Wed Nov 23, 2005 6:35 pm

For easier installation you can provide this link to the package:
Code: Select all
pkg -i http://members.home.nl/mgdijkerman/freesco/ctorrent-1.3.4-dnh1-DKnight110


I won't keep it up for ever but until it has been put on freescosoft as a final package this link can be used.

Edit: The libc.so.5 is a serious problem indeed. Please update it asap and contact me with a PM so I can update the package on my site.
<img src='http://members.home.nl/mgdijkerman/freesco/gmail3.png' border='0' alt='user posted image'>
TeCuMSeH
Member
 
Posts: 51
Joined: Mon Jan 28, 2002 6:57 pm
Location: Netherlands

Postby dingetje » Wed Nov 23, 2005 7:00 pm

eum...I don't want to spoil the fun, but you cannot include libc.so.5 in a package!

This <a href='http://dingetje.homeip.net/dokuwiki/freesco:howtos:package_libc' target='_blank'>article</a> describes why and a technique to install the full blown libc.so.5 on the target system.

P.S. I probably should have started a thread in package development or support section...
GreetZ
http://dingetje.hopto.org

"Software is like sex: it's better when it's free." - LINUS TORVALDS
User avatar
dingetje
FREESCO GURU !!
 
Posts: 1010
Joined: Wed Nov 14, 2001 12:13 pm
Location: The Netherlands

Postby DKnight110 » Thu Nov 24, 2005 3:29 pm

dingetje wrote:eum...I don't want to spoil the fun, but you cannot include libc.so.5 in a package!

Well, it seems it wasn't even needed. I repacked the .tgz file, without libc.so.5 and tested it on a stock 0.3.4 install of Freesco. Everything went just fine, so I don't think I have to include it anymore in the package. The other two libraries (libstdc++.so.2.8 and libm.so.5) are included.

TeCuMSeH wrote: For easier installation you can provide this link to the package:
CODE
pkg -i <a href='http://members.home.nl/mgdijkerman/freesco/ctorrent-1.3.4-dnh1-DKnight110' target='_blank'>http://members.home.nl/mgdijkerman/freesco...dnh1-DKnight110</a>


I won't keep it up for ever but until it has been put on freescosoft as a final package this link can be used.

Edit: The libc.so.5 is a serious problem indeed. Please update it asap and contact me with a PM so I can update the package on my site.



Thank you very much for hosting the package temporary. I would have hosted it on my own FreeSCO box, but unfortunately my bandwidth is limited (256 kbps UP/DOWN) so this wasn't a viable solution.
User avatar
DKnight110
Newbie
 
Posts: 4
Joined: Tue Nov 22, 2005 1:39 pm


Return to 3rd Party Package Release Announcements

Who is online

Users browsing this forum: No registered users and 8 guests

cron