Skip to content

Releases: alanmcgovern/monotorrent

v3.0.3-beta-0049

14 Sep 16:52
Compare
Choose a tag to compare
v3.0.3-beta-0049 Pre-release
Pre-release

What's Changed

New Contributors

Full Changelog: release-v3.0.3-beta-0024...release-v3.0.3-beta-0049

v3.0.3-beta-0024

28 Aug 07:09
e60b1c8
Compare
Choose a tag to compare
v3.0.3-beta-0024 Pre-release
Pre-release

What's Changed

Full Changelog: release-v3.0.3-beta-0003...release-v3.0.3-beta-0024

v3.0.3-beta-0003

19 Aug 07:33
Compare
Choose a tag to compare
v3.0.3-beta-0003 Pre-release
Pre-release

General

  • Fetching hash layers for BitTorrent V2 torrents should complete more reliably after two causes of slowdowns were resolved.
  • For hybrid V1/V2 torrents, the engine now creates BitTorrent V1 connections by default and upgrades either incoming or outgoing requests if the handshake indicates support for BitTorrent V2.
  • There's a new parameter in EngineSettings which controls how to create new files (preallocate them, or use sparse files).
  • If a torrent is hash checked, the engine will never create any missing zero length files, nor will it truncate any files which are too long. These actions will now be created when TorrentManager.StartAsync is invoked, which is a clear signal that write operations are intended to be executed. In addition, capability works in tandem with selectively marking files with Priority.DoNotDownload. Where possible, the engine will not create files on disk when they are marked 'DoNotDownload'. This works best with BitTorrent V2, or files created using BEP47 padding files.

What's Changed

  • Ensure pending messages are processed from the send queue regularly by @alanmcgovern in #673
  • [dht] Allow bootstrapping from additional bootstrap routers by @alanmcgovern in #670
  • Disambiguate between v1 and v2 connections more clearly by @alanmcgovern in #675
  • Ensure hash checking a file is a purely read-only operation by @alanmcgovern in #674

Full Changelog: release-v3.0.2...release-v3.0.3-beta-0003

v3.0.2

04 Aug 10:54
Compare
Choose a tag to compare

General

Improved adherence to BEP19s (Web Seeding) approach to 'rarest first but largest gap'. A bug in the previous implementation meant that under certain circumstances the piece selection would be non-sequential. Now piece selection is guaranteed to be sequential and will always attempt to select at least 2MB of data, or one full piece, per HTTP request.

What's Changed

Full Changelog: release-v3.0.1...release-v3.0.2

release-v3.0.1

02 Aug 22:07
Compare
Choose a tag to compare

What's Changed

Full Changelog: release-v3.0.0...release-v3.0.1

v3.0.0

28 Jul 23:20
Compare
Choose a tag to compare

Summary

Support for BitTorrent V2 (BEP 52) has been completed. Hybrid torrents, as well as V2 only torrents, are fully supported. This includes support for V2 MagnetLinks, as well as fetching the merkle layers from other peers if they are not included in the torrent metadata.

The library itself has evolved substantially, taking advantage of many of the improvements to the .NET framework since .NET 5.0 was released. While you should see a reduction in memory and CPU usage under every .NET framework version, the largest gains will be seen under .NET 5.0 or newer.

Far too many things have changed to even begin listing them. Suffice to say, it's a lot.

What's Changed

New Contributors

Full Changelog: release-v3.0.0-beta-0264...release-v3.0.0

v3.0.0-beta-0264

17 Jul 22:59
Compare
Choose a tag to compare
v3.0.0-beta-0264 Pre-release
Pre-release

What's Changed

Full Changelog: release-v3.0.0-beta-0240...release-v3.0.0-beta-0264

release-v3.0.0-beta-0240

30 Jun 23:31
Compare
Choose a tag to compare
Pre-release

What's Changed

  • [core] Add logging when handling requests in the Tracker server by @alanmcgovern in #620
  • [core] Try harder to send a valid port to the tracker by @alanmcgovern in #624
  • [core] Remove the restriction on 'MoveFileAsync' by @alanmcgovern in #625
  • [server] Properly handle invalid port values by @alanmcgovern in #623
  • [core] Don't require peer_ids to match expectations by @alanmcgovern in #628
  • [PieceWriter] Fix a threading bug and clean up stale state by @alanmcgovern in #629
  • Fixing "Contribute" links. by @MarioFinale in #641
  • The ReusableTask dependency has been updated to incorporate recent performance optimisations
  • Several performance improvements made to BitField. Additional optimisations were made for .NET7 and newer by using more modern APIs.
  • Improved DiskManager behaviour by ensuring expensive operations (opening or truncating files) are consistently executed asynchronously by a threadpool thread.
  • Sparse files are now created using the built-in API, when it's available.
  • Optimised the RC4 encryption routines by migrating to Span based APIs.
  • Further improvements to BitTorrent v2 support - fixing several more corner cases exposed when trying to download a torrent consisting of ~100GB of data, but which used a piece length of 16kB.
  • Relaxed the restriction on he upper size for a message received from another peer. The limit is now 64kB or the size of the BitField needed to represent all pieces in the torrent. If you have 1,000,000 pieces in your torrent, you'll have a bitfield which is substantially larger than 64kB.

New Contributors

Full Changelog: release-v3.0.0-beta-0159...release-v3.0.0-beta-0240

v3.0.0-beta-0159

01 Feb 21:53
Compare
Choose a tag to compare
v3.0.0-beta-0159 Pre-release
Pre-release

General

Just adding a little more logging to help diagnose issues in future. Functionally identical to release 3.0.0-beta-0157 when logging is not enabled.

Full Changelog: release-v3.0.0-beta-0157...release-v3.0.0-beta-0159

v3.0.0-beta-0157

01 Feb 21:36
Compare
Choose a tag to compare
v3.0.0-beta-0157 Pre-release
Pre-release

General

This release has several improvements to how IPv6 support is implemented, adding support for IPv6 Tracker Extension and including support for the latest refresh of both BEP 11 and BEP 15.

Additionally, it is now possible to call TorrentManager.MoveFileAsync while a torrent is actively downloading, and support for dynamically moving files is compatible with EngineSettings.UsePartialFiles. There are also several tweaks to BEP52/BEP47 support, improving support for hybrid torrents which contain multiple sequential empty files.

What's Changed

Full Changelog: release-v3.0.0-beta-0106...release-v3.0.0-beta-0157