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.
One of the most requested features after Gnutella support was dropped over BitTorrent has been the ability to Preview the contents of a media file while it’s being downloaded. As of 6.0.7 FrostWire tries its best to collect download data to let you preview the file while it’s still being downloaded while not hurting the performance of the torrent’s swarm (sequenced piece fetching is done only for a very limited time or data amount depending on the download’s characteristics, once enough pieces are in for a preview the torrent resumes non-sequence downloading mode).
Download Previews are also available for most cloud (http) downloads.
Several search engine providers were fixed, including TPB and KAT, along with numerous upgrades and optimizations, including a refresh with the latest updates from the libtorrent project to make the torrent downloading experience the best out there.
frostwire (6.0.7) stable; urgency=high
* New feature: Preview while you download.
* Memory and CPU savings when parsing search results on some search engines.
* BTJunkie fixed.
* TPB search fixed.
* KAT search fixed.
* Monova search fixed.
* Fixes bug where soundcloud, archive.org audio downloads would not be automatically
be scanned by iTunes.
* Croatian translation updates.
* Torrent creation and parsing now done using frostwire-jlibtorrent api. More
* Fixes run on startup issue on Windows. Thanks to @win32re.
* Upgraded java virtual machine to 1.8.0_40 with hundreds of fixes and upgrades.
* Upgraded H2 database engine.
* Upgraded frostwire-jlibtorrent to the latest code from libtorrent.
* UX-improvement: A repeated search will honor active search engines.
— FrostWire Team <firstname.lastname@example.org> Wed, 08 April 2015 22:24:00 -0500
FrostWire is a free, open sourceBitTorrent client first released in September 2004, as a fork of LimeWire. It was initially very similar to LimeWire in appearance and functionality, but over time developers added more features, including BitTorrent support. In version 5, Gnutella support was dropped entirely, and FrostWire is only a BitTorrent client. Development of the program has been active since the program was first released in September 2004.
This new FrostWire for Android release includes the latest improvements from libtorrent to make BitTorrent downloading faster and more energy efficient than ever.
TPB, BTJunkie, KAT and Monova search sources have been fixed for much better search results.
FrostWire for Android now recognizes Bitcoin and web tipping/donation addresses on compatible .torrents
Several bugs and crashes on the music player were fixed, and the Chinese, Polish and Spanish translations of the app were updated.
Users getting the app on Google Play will know that YouTube search has been disabled in order to comply with Google Developer Rules, those users looking for a full version of the app can download “FrostWire Plus” at frostwire.com/android
FrostWire 1.5.0 – APRIL/03/2015
– Upgraded frostwire-jlibtorrent to the latest code from libtorrent.
– TPB, BTJunkie, KAT, Monova searches fixed. – Users can now donate to torrent creators, both Fiat and Bitcoin when available.
– New Bittorrent setting to enable/disable DHT connectivity.
– YouTube search disabled for Google Play distribution.
– Fixes annoying bug where user would be notified for old finished downloads.
– Fixes bug where songs that were deleted were not being cleared from playlists.
– Fixes bug where removing last song from Favorites playlist would not clear.
– Fixes bug where it would show “Play All” menu action on empty playlists.
– Fixes bug where sharing on WiFi from certain 3rd-party file explorers wouldn’t work.
– Fixes bug where file descriptors fetched by content:// uris wouldn’t have a disk path available.
– Fixes 2 crashes on music player.
– Chinese, Polish, Spanish translations update.
End users just need a Bitcoin wallet to pay and web browser to search for products available, and sellers run a server side p2p app that connects to other sellers that participate in the network using the BitTorrent Mainline DHT. Nodes help route searches and products announced.
We intend to create a binary release for Linux servers in the coming weeks and see where this experiment takes us.
The project is very simple and it allows anyone in the planet to start their own store on line and accept Bitcoin payments, with the twist, that all the stores are connected to each other using a combination of the Mainline DHT we use for decentralized torrent tracking and an HTTP Rest API.
Check out our presentation to the judges (We finished early and made a video to not leave the presentation to improvisation and Murphy’s whims, and also so the world could see it anytime later on)
And here’s us accepting the prize (In bitcoins of course)
and now it will be in front of our desk to make us proud 🙂
question… since you’re still reading all the way down here.
Would you like to see FrostWire yield search results of products that you could buy with Bitcoin?
Would you like to sell things using your own store server without paying any listing or comission fees?
Should we make Seller.Trade into a real world product?