82433 packages online


No screenshot available
Short:Amiga 68k BitTorrent client
Author:David Zvekic <david.zvekic at>
Uploader:David Zvekic <david zvekic gmail com>
Requires:16MB ram, 68020+/Vampire
Architecture:m68k-amigaos >= 2.0.4
Download: - View contents
DizzyTorrent is a functional BitTorrent client implemented for the Amiga that
operates on real classic hardware.  DizzyTorrent was implemented from scratch
from the BitTorrent protocal specification alone and does not derive from any 
bittorrent code from other sources. 

Implemented protocols are:
BEP-3 	The BitTorrent Protocol Specification
BEP-6 	Fast Extension
BEP-10 	Extension Protocol
BEP-12  Multitracker Metadata Extension
BEP-15 	UDP Tracker Protocol
BEP-23	Tracker Returns Compact Peer Lists
BEP-24	Tracker Returns External IP

Your feedback about which features you'd like to see are valuable to me.

Please do not use this program for copyright infringement or the distribution 
of any data which may be prohibited or unlawful. DizzyTorrent is intended for 
the distribution/downloading of legal content archives such as public domain 
classic movies, software distributions, or materials specifically allowed by 
copyright holders.




DizzyTorrent is copyright (c) David Zvekic 2016-2018. 

Permission is granted to copy and distribute this entire archive provided that
it is not modified, no fee is charged beyond the reasonable cost of
distribution, no misrepresentation is made regarding authorship, and this 
copyright notice remains intact.

The source code of DizzyTorrent is not provided in this archive and all rights
are reserved to the Author, David Zvekic.

DizzyTorrent is based on the BitTorrent protocol specification but no part is 
derived from any BitTorrent software, object or source code. 

Please be aware that this program follows the BitTorrent protocol and your IP 
address will be shared with Trackers and other BitTorrent peers as per the 
BitTorrent protocol.  Use of BitTorrent to download or share a file 
makes your IP address publically visible and the SHA1 Hash of any files you are
sharing or downloading. The Author (David Zvekic) does not collect any 
information from you by the use of this software and this software does not 
collect or transmit any information that is not part of the BitTorrent 

OS 2.04+, 68020-060, or Vampire and 16MB of ram (32 to 64 MB 
preferred), AmiTCP 3, EASYNET, MiamiDX, Roadshow or compatible network 
connection.  Lots of disk space.

DizzyTorrent has been tested on OS4.1 under emulation, and is reported
to work under MorphOS.

* Copy dz.config to Envarc:dizzytorrent/
* Copy DizzyTorrent, and the associated .info file anywhere you want to put it,
  ideally on a large partition.
* Edit dz.config if you want to change any settings.

NOTE: You may need to increase TCP STACK memory buffers, In AmiTCP (I use 2 to 
4 meg);  With Roadshow I didn't need to adjust anything. 

In AmiTCP 3 :
    Membuffers are set in Amitcp:db/amitcp.config.
    Add or set the line: MEMBUF_CONF MaxMem=4096

****** (Also See Configuration File:)

****** USAGE-CLI:
Type dizzytorrent and pick a torrent file from the file requestor.
You can also specify the torrent file as a command line argument when launched
from a shell or CLI.

Double click the DizzyTorrent icon and you will be presented with a file 
requestor.  Select a torrent file from the file requestor. 

You can also hold the shift key when you click on a torrent, and then while
continueing to hold shift, double click the DizzyTorrent icon. This will 
automatically launch DizzyTorrent with the select torrent preloaded.

If DizzyTorrent suddenly vanishes, try running from a CLI. It probably would
have printed an error message. (See Known Bugs).

****** Menu Options

Announce Immediately - Forces all trackers to immediately re-announce. This is
     useful if your internet connection went away, and you don't want to wait
	 until the next scheduled announcement which could be 20 or 30 minutes
Add Peers - Opens a window and lets you type the IP and Port number of a peer.
     Could be used to force connection to a peer you know exists, but can't 
	 find on a tracker. For instance if the torrent file only has dead 
	 or non-supported trackers.
Iconify - turns Dizzytorrent into a Workbench Appicon.  Double click the icon 
     to restore the GUI.
View - Torrent - Switches DizzyTorrent to the torrent status page. Drag the 
     window taller to see the trackers.

View - Peers - Switches DizzyTorrent to the Peer view. Individual progress 
     of each connected peer is shown.

View - Files - Switches DizzyTorrent to the File View. Individual progress 
     of each file in the torrent is shown.  When an individual file is
     complete you can use it immediately. DizzyTorrent will not write
     to it again.	 
***** Multiple Torrents:
You can run multiple copies of dizzytorrent using different torrents 
simultaneously if you have enough RAM.  All instances share a single
SHA1 hasher task that queues requests for SHA1 checksums. 

NOTE: Don't run multiple copies to download the same torrent to the same 
location as this will result in undefined behavior - I believe it will simply 
waste bandwidth and report IO errors, but I haven't tested it because there is 
no good reason to try to use the program this way.

You can close DizzyTorrent and resume your download later.  A file is created
that tracks progress in the bitmaps directory.

***** Priority:
I have found setting task priority to -10 generally leaves AmigaOS fully 
responsive, and with no significant performance penalty. 

Configuration parameters can be controlled via tool types in
Each setting can be overridden by the dz.config configuration file, and the
configuration file will take precedence if it is found in ENV:dizzytorrent/. 		
The most important setting is program.bitmappath and program.downloadpath (or
[program] bitmappath and downloadpath in dz.config), as these control where
DizzyTorrent will store potentially very large amounts of downloaded data.  The
rest can generally be left at default values.

Tooltype Keys and their equivalent in dz.config are shown here. The setting 
meanings are described in the distributed dz.config.

In Tooltype the tooltype of:

corresponds in dz.config with:

The configuration file is not required except for CLI usage, as all setting 
can be controlled with with the tool types in

The permanent location of the configuration file should generally be: 

ENVARC:dizzytorrent/dz.config is copied to ENV:dizzytorrent/dz.config 
automatically when the Amiga reboots (part of the normal Startup-Sequence of a
standard Workbench install).

At runtime the copy in ENV:dizzytorrent/ is used.  

dz.config is organized in sections, with variable assignments in each sections.
Please see the comments in the included dz.config file for an explanation.

If both configuration methods are used then dz.config takes priority.

Filenames: FFS is limited to 30 characters and therefore torrents using longer
names may fail or corrupted data because filenames will be truncated. 
If all the files have unique characters in the leading 30 places then it is
possible to download the torrent even if the names are too long.

FFS performance starts of very slow due to limitations in random access on 
large files which is essential to BitTorrent. DizzyTorrent works around
this limitation, however it requires building up a cache of file handles.
FFS performance increasing as the download progresses due to this caching.

FFS performance is improved with a larger pagesize.

Filenames up to the limit supported by your filing system should be safe.
SFS: supports 107 length filenames.

Maglinks - are not yet supported.
HTTPS Trackers - are not yet supported

File Size: Torrents of any size are supported however no individual file may 
exceed 2 GB. 

The software has been tested and appears to work well on:

*	Amiga 1000 using an Individual ACA500plus and Blizzard 1230 MK IV with 128 
	Mb of ram, under OS 3.1 with AmiTCP 2.98b2, and Roadshow and a PlipBox 
	using firmware version 0.6. SFS on a 28 GB partition, FFS on a 4 GB 
	partition, and FAT32 on a 16GB partition.

*	Amiga 1200 with Microbotics M1230 XA, with 128MB ram, OS 3.1 with Cloanto 
	3.x roms, PCMCIA wifi adaptor, as well as Plipbox 0.6. FAT32 32 GB 
	partition. SFS 4 GB partition. AmiTCP 4.1 Pro (aka EasyNet).

*	AmigaForever 2016, on the included AmigaSYS machine with with and without 
	using JIT emulation.  FFS 2 GB. and passthrough to host OS filesystem
	(Windows 10 NTFS).
*	AmigaForever 2016, PPC AmigaOS 4.1 FE with and without JIT emulation.  
   	Native SFS partition, Roadshow TCP and RTL8029 networking.
*   MorphOS 3.9 on Ibook G4, demo mode.
*	I've recieved a report that DizzyTorrent works on a Vampire under FFS but 
	possibly corrupted a FAT32 partition on Vampire. Used with MiamiDX, and 
Future Plans
Magnet Links, Peer Exchange, DHT.
uTP protocol to throttle bandwidth.
Gui Improvements
Interprocess Control via AREXX Port, or Socket control.
Unified mode with all torrents in a single interface.

Morphos, AROS and OS4 native ports if enough people ask. (The JIT emulated 68k 
is so fast maybe noone cares if it is native?)

* I haven't found any trackers that support BEP-24 so I can't test it.
* DizzyTorrent contacts all Trackers in a sequence whether or not more peers 
  are needed.  BEP-12 specifies Bittorrent should only ask for more peers
  if they are needed, and the announce list is to be prioritized depending on
  which trackers are responsive. DizzyTorrent is technically not compliant.  

* Nonresponsive UDP trackers stay 'announcing' for a very long time. If a 
  torrent has many non responsive UDP trackers, it may take a long time before
  DizzyTorrent finds a responsive tracker because it will only keep a limited
  number of open announcements pending as per the concurrent_announce 
  [throttle] setting. 
* Throttling bandwidth specifies an upper cap, but the system tries to stay 
  under it, and generally only runs from 50 to 75% of the cap. Users would 
  expect DizzyTorrent to run at closer to 100% of the cap. Actual bandwidth use
  also fluctuates between 0 and max capacity rather than staying close to the

* Changing system clock while DizzyTorrent is running will confuse it and 
  result in performance metrics being incorrect and the program
  will try compensate by adding or closing peers.
Dizzy Torrent Version HISTORY
1.04  April 5 2018
    * OS4.1 FE when the last byte in a file lines up with the piece boundary, 
      program could not complete the download. 1.03 showed error. Earlier
      versions become slower and appeared to stop downloading. Fixed.
	* GUI - Torrent comments now adjust wrap width when window it resized.
    * Hitting cancel on file requestor would cause program to exit without
      closing shared libraries - fixed.
    * Morphos 3.9+: SetSocketSignal caused undefined side effects on MorphOS. 
      Replaced with SocketBaseTagList. MorphOS reported that 
      graphics.library can't be opened.
	* Morphos: Proportional gadget didn't work due to different treatment of
      excessive PGA_Visible attributed. Fixed. 
    * Minor improvements to GUI cpu efficiency.
1.03  March 30 2018
    * Fixed Bug: Peers that didn't complete a handshake could stay alive 
    * Fixed Bug: a number of illegal memory accesses - (caused grim reapers in 
	  OS4.1. Probably caused less frequent problems in OS2 and 3 as well).
    * Some rules regarding gadgets that OS4 enforces which I can't find 
      documentation of in 3.x, are now followed, removing some grim reapers.
    * Main window now opens only after the torrent file is read and processed.
    * A 1-time memory allocation at program launch was missing an associated 
      deallocation - losing as much ram as the filesize of the torrent file. 
    * Peer info page was rendering information about 'suspended peers', 
      which have no current TCP connection. Removed this information.
    * Improved handling of in-memory peer list.
	* CTRL-C was incorrectly interrupting sockets.
    * Trackers are polled less frequently, slightly reducing overhead in
      torrents with many trackers.	
    * ixemul.library is no longer used or required - increasing stability in
      OS4 when 2 or more instances are running.
    * Automatically sets own stacksize to 32kb if necessary.
    * Errors generated when run from Workbench will automatically open a
      console window rather than be invisible.
    * Added sha_taskname configuration setting
1.02 Amiga OS 4 Improved Compatability (Feb 28 2018)
    * Fixed bug that caused crash in OS4 if menu was activated but no item was 
    * Fixed a bug that cause crash in OS4 if About Window, or Add Peer window
      was closed with close gadget.
    * Fixed graphical bug in menus that caused menu to appear grayed out 
      invisible (especially in OS4).
    * Increased Stack size in .info file to 32000 bytes.
    * Change default task priority in info file to -10
    * dz_FS and dz_SHA1 tasks now copy the parent priority.
    * DizzyTorrent now appears Amiga OS4.1 compatible (requires Ixemul).
1.01 (hotfix) (February 4 2018)
    * 1.0 added a bug that when when launched from CLI, DizzyTorrent could 
      unlock the current directory, this can cause the shell to freeze or 
	  act abnormally after DizzyTorrent terminates. fixed
    * When launched from Icon, DizzyTorrent would leak a lock on the starting
      directory. This would prevent you from deleting that directory without
      rebooting. fixed.	  
1.0 First Official Release (February 3 2018)
    * DizzyTorrent now has a tool icon.
    * All configuration settings can be set as Tooltypes.
    * Select a torrent and double click tool to launch DizzyTorrent directly 
      from workbench and start torrenting.
    * Uncommon crash on exiting DizzyTorrent introduced in 1.0b7-fixed.
    * "About" window with copyright info.
    * AppIcon uses DizzyTorrent logo.
    * Improved protothread control to make GUI more responsive to user.
    * GUI fixed to work with non-proportional fonts.
    * Some optimizations.
    * font configuration can now be set to "default" to use default screen font.
    * font sizes can be set to -1 to use default screen font size.
    * "Add Peer" window now opens centered on screen.
    * GUI scroller gadget now reacts continuously in realtime.
    * Improved layout of files info page.
1.0 Beta 9 (hotfix) (January 25 2018)
    * Slightly tweaked load balancing for better performance across wider range
      of systems.

1.0 Beta 8 (January 24 2018)
    * DizzyTorrent would terminate immediately with a bencoding error if 
      loading a torrent that had 0 trackers. Fixed.
    * Show count of Trackers on torrent view page.
    * A bug in parsing of torrent announce-lists, caused lists to be reloaded
      repeatedly leading to slow load times and memory waste when loading a 
      torrent with a very long announce-list. Fixed.
    * Performance improvements.
    * Passing invalid torrent specification on command line returns with more
      sensible error message "Could not find torrent".
    * Beta 7 would output random number seed on start. Removed. 
1.0 Beta 7 (January 16 2018)
    * removed all linkage to pthread library. Smaller binary. Less memory 
      usage. Faster.  No dependancy on any LGPL software.
    * DizzyTorrent now uses non-blocking sockets for UDP. DizzyTorrent can 
      abort while awaiting response. Unresponsive UDP Trackers caused 
      DizzyTorrent to become unresponsive while waiting for UDP to timeout. 
    * Better gui response during Announce.
    * A torrent with many trackers (dozens), will cause DizzyTorrent to use
      too many sockets and lead to system instability. Now DizzyTorrent only 
      works on [throttle]concurrent_announce trackers simultaneously, and 
      works its way through the list sequentially.
    * create new [throttle]concurrent_announce setting in dz.config.  Default
      is 5.
    * Now seems to work on OS 4.0 JIT emulation.  
1.0 Beta 6 (January 6 2018)
    * optimization reduces protocol overhead and slightly reduces cpu usage.
    * Dizzytorrent was not properly indicating when an unsupported tracker URL 
      protocol was detected. (https tracker specifically)
    * Handles trackers returning a failure with a non bencoded 
    "Invalid Request" html page.
    * Implemented BEP-24 to discover external IP - but unverified.
    * Implemented BEP-10 Extension protocol.
    * Displays peer client version, if peer used extension handshake.
    * Improve calculation for the proportional gadget and minor layout change.

1.0 Beta 5 (Dec 27 2017)
    * More SHA1 optimization, about 44% faster SHA1 than beta 4. (SHA1 on 512KB
    block takes 1.43 seconds vs 2.59 seconds on 50mhz 68030.) 
    * End game strategy improved to reduce redundant download blocks.
    * Improvements to automatic load moderating to have a better balance of 
    concurrent peers matched to cpu utilization.
    * Improvement to bandwidth throttling.
    * Improvements to block request scheduling to reduce protocol overhead.
    * Fixed bug where throttling would result in closure of peers. 
    * optimized throughput metering code.
    * Overall downloading with beta5 on a 50mhz 030 using plipbox and AmiTCP 3 
    is about 12% faster than Beta4.
1.0 Beta 4 (Dec 18 2017)
    * Performance improvements connecting to HTTP Trackers
    * Minor SHA1 optimization
    * graphics text rendering bug on Torrent Details page
1.0 Beta 3 (Dec 13 2017)
    * Improved operation with torrents with many Trackers.
    * Improved operation with trackers with many unreachable peers
    * File progress display bug fixed
    * aminet back up so hopefully this version can be listed. 
1.0 Beta 2 (Dec 12 2017)
    * DZ would hang when accessing a UDP tracker
    * Interval timer wrong for UDP tracker
1.0 Beta 1 (December 10 2017)
Presented at World of Commodore Toronto 2017

Contents of comm/tcp/dizzytorrent1.04.lha
---------- ----------- ------- ------- ------ ---------- ------------ ----------
[unknown]               446776 1114552  40.1% -lh5- 6c76 Apr  5 03:03 dizzytorrent1.04/DizzyTorrent
[unknown]                 5313    8124  65.4% -lh5- 698f Mar 30 04:37 dizzytorrent1.04/
[unknown]                 8078   20824  38.8% -lh5- cc53 Apr  5 03:10 dizzytorrent1.04/dizzytorrent1.04.readme
[unknown]                 1563    4905  31.9% -lh5- f599 Mar 30 04:29 dizzytorrent1.04/dz.config
[unknown]                  383     790  48.5% -lh5- ed42 Feb  3 19:23 dizzytorrent1.04/LICENSE.txt
---------- ----------- ------- ------- ------ ---------- ------------ ----------
 Total         5 files  462113 1149195  40.2%            Apr  5 22:02

Aminet © 1992-2018 Urban Müller and the Aminet team. Aminet contact address: <aminetaminet net>