What is a torrent?

FrostWire utilizes torrents to accomplish peer to peer file sharing. There seems to be a lot of confusion on what a torrent is and how it is used.

First, let’s consider how files are organized and accessed. Any file can be considered as a string of bytes, starting at one and going to the end of the file. In most files systems, data can be read and written to a specific point in the file by using the character number, which can be expressed in many ways, but that’s not your problem. If you want character 10, ask the file system to give you character 10, and you don’t care how that happened.

You can think of torrents as two basic types: File torrents and Folder torrents. A file torrent names one file and only one file. If you wanted to obtain an album of 20 songs, you’d have to use 20 different torrents, if you used file torrents.

A folder torrent describes all of the data in a folder, which can include sub-folders. If an album of 20 songs is contained in one folder, that one torrent will allow you to obtain that entire album. Some torrents can contain a primary folder containing sub-folders, each containing many files. Torrents containing over a thousand files are NOT uncommon.

Even with a folder torrent, there is provision to select specific files and exclude others from the download process. This can vary from program to program. For FrostWire, its fairly easy and covered in many help articles.

The key is that a torrent is NOT the data that you want. It is a description of the data you want. Torrents are created by torrent programs. They organized the data into chunks and provide a data map of the file structure, based on those chunks, so that data matching the torrent description can be read and written, randomly, from the disk.

Because the data can be read and written randomly you can send to and receive from multiple people at one time. This means that the data describe by a torrent MUST be and remain unchanged on the disk, once the torrent is made. If the data is changed, it will invalidate the torrent and cause errors, which the system will catch and attempt to deal with, usually by disabling the offending torrent.

Each torrent can be identified by a unique hash total of the data layout. The hash description is not so large as to be difficult to handle, but is large enough to make generation of the same hash from different data almost impossible.

The hash is considered a unique identifier for each torrent and is the mechanism that torrent programs use to exchange information about who has what torrent.

Here are some facts.
A torrent contains NO data from the files it describes. It only contains a mapping of the way the data is organized on disk.

A torrent has NO information about who has the file described. If someone decides to share files from a torrent, the torrent program will advertise the hash, and those looking for that file will be so informed.

Advertisements

Our latest FrostWire for Android release (6.1.4) has been the most stable ever

Thanks to our jlibtorrent library, a multitude of crash reports sent by you and a lot of personal feedback loops, our developer team has managed to produce the most stable FrostWire for Android release so far.

We’ll always have crashes, but our quality has improved dramatically with the jlibtorrent library. As you can see the graphic below, during these last weeks even though we have more users using the app daily the number of crashes reported has been kept to a minimum and every day we fix the new crashes that come in.Screen Shot 2015-08-20 at 12.45.09 PM

number of daily crash reports since August 2014

Featured image licensed under CC0 Public Domain
Created by savanzijlstra0

New FrostWire for Windows, Mac and Linux (v6.1.4)

Download FrostWire 6.1.4 now absolutely free

The new FrostWire for Desktop release is available for download. On this release we updated the libtorrent/jlibtorrent and made updates to that fixed recent issues with YouTube search.

We fixes a lot of issues like the some torrent settings not being applied correctly, the TorLock search and the YouTube search. So now you will not have any problems searching for content on FrostWire.

Also, the search source processing is faster, because we did a totally new search engine.

Changelog

frostwire (6.1.4) stable; urgency=high
* libtorrent/jlibtorrent core update (v 1.1.0.5).
* Torrent settings issues fixed.
* Fixes TorLock search.
* Considerably faster search source processing (new regex engine).
* Fixes YouTube search.

What is FrostWire?

FrostWire, a BitTorrent Client & YouTube Downloader that makes it easier to search, download, play and share content from the BitTorrent network & cloud sources, all in one place, announced today its new ‘preview’ and ‘play as you download’ capabilities for Android phones and tablets. The new preview feature not just enables users with a more convenient way to find and discover content, it makes downloading optional in some cases.

New FrostWire for Windows, Mac and Linux (v6.1.3)

Download FrostWire 6.1.3 now absolutely free

Lots of fixes under the hood for this release, we’ve also made sure this release was compatible with Windows 10 (but if you have any issues on Windows 10 please let us know).

Substantial changes on the way our bittorrent engine works, which allowed us to simplify seeding settings, and the no more the possibility of file parts staying in your download directory when you didn’t want this.

Users who had issues with external drives to save downloaded files should be glad with this release.

Soundcloud search & download has been restored with Soundcloud’s API updates.

Changelog

frostwire (6.1.3) stable; urgency=high
  * libtorrent/jlibtorrent core update.
  * Archive.org downloads are pausable/resumable.
  * Soundcloud search & download API update.
  * Hungarian translation update.
  * Simplified seeding settings. No more need to treat handpicked/partial
    downloads differently with jlibtorrent updates.
  * Fixes crash when setting default save folder to the root
    of a drive.
        
 -- FrostWire Team   Wed, 29 Jul 2015 10:04:32 -0500

A New FrostWire 6.1.2 for PC, MacOSX and Linux is yours to download.

Download Installers on FrostWire’s Official Website
Download Installers and SourceCode on GitHub

Screenshot of Changelog in Github.com

Full Changelog:

frostwire (6.1.2) stable; urgency=high
  * Search performance improvements. New RxJava-based implementation.
  * Search box suggestions improved.
  * New Check/uncheck all search engines checkbox.
  * TorLock search fixed.
  * Added SSL (https) support for torrent web seeds.
  * Options window remembers last pane opened.
  * Fixes painting issues when searching Starred audio files on the library.
  * frostwire-jlibtorrent library updates.
  * Library user experience bug fixes.
        
 -- FrostWire Team   Wed, 24 Jun 2015 11:44:00 -0500

What’s new in FrostWire 1.5.8 for Android

Download FrostWire Plus for Android
Download Source Code for FrostWire 1.5.8
Fork Us

FrostWire 1.5.8 – JUNE/16/2015
– Search performance improvements.
– Issues where subsequent searches would stop working fixed.
– TorLock search fixed.
– Added SSL (https) support for torrent web seeds.
– Icons/graphics update.
– New ‘Rate us’ reminder notification.
– WiFi sharing functionality removed. Less than 0.2% of the user
base making use of this, despite multiple rewrites we never
managed to get it to work 100% of the time.
– frostwire-jlibtorrent library updates.

Music by Exist Strategy “Departure”
Licensed under CC-BY 3.0

Write runtime libtorrent plugins with Java using frostwire-jlibtorrent #FrostWireLabs

We’ve just pushed upgrades to the frostwire-jlibtorrent API that will allow developers to extend and interact the Bittorrent protocol at a lower level through the implementation of libtorrent plugins.

Before today, a libtorrent plugin developer had to code plugins in C++ and rebuild the libtorrent library binaries for the architectures on which the plugin was meant to be used.

We think that non-bittorrent higher level abstractions (e.g. Bitcoin+Bittorrent integration) that need to occur near the core of the bittorrent protocol can be more easily coded, tested and debugged in a language like Java, without having to touch nor recompile the libtorrent libraries.

Today we’ve made available a new portion of the frostwire-jlibtorrent API that allows you to do this without all the C++ development headaches, you just focus on your plugin logic, and your code will also be available in all platforms with the same .class files.

Here’s an example of a dummy libtorrent Plugin implemented in Java using frostwire-jlibtorrent

To create a Plugin all you need to do is extend the AbstractPlugin class, whose newTorrent method will ask you to provide a TorrentPlugin interface implementation, this is meant to be a plugin instance that takes care of what happens when a torrent is added to the libtorrent session.

We provide an AbstractTorrentPlugin class for you to extend and as you do this you may or may not need to provide your own implementation of the TorrentPlugin::newPeerConnection method, which is meant to return a PeerPlugin, a plugin instance that takes care of what happens for every Peer connection, where probably most of your plugin logic will occur. We also provide an AbstractPeerPlugin implementation that you can extend.

Once you have your plugin ready to go, you can add it to the session with session.addExtension(myPlugin) and all torrents added to the session will invoke hooks that could be handled by your plugin implementations.