
BitTorrent v2 - jakobdabo
https://blog.libtorrent.org/2020/09/bittorrent-v2/
======
rolleiflex
I make P2P tools too. [0] Let me tell you this: Bittorrent is one of the few
things in the space that actually ... works.

It works not in the sense that there is a white paper that should work. Not in
the sense that there are a few company-made swarms hosted on industrial
servers that keep everyone up and alive, so that the thing gives the
impression the 'P2P' network does work. Not in the sense that there is a very-
well oiled marketing machinery talking about Web 3.0 that allows its founder
to go on TechCrunch and talk about the upcoming distributed paradise.

Bittorrent works in the way you install it into your computer and it does
something for you. And for that alone, it has my immense respect and
attention.

It's a tool that doesn't pitch that it's a P2P tool - it doesn't try to
convince you with sob stories about how using P2P helps fight against the big
bad evil web. Instead, you use it because it's genuinely the best at what it
does: it being P2P is not a selling point, it's just how it happens to work,
and that is exactly what it should be.

That is something all P2P developers should aspire towards.

[0] Aether P2P: [https://getaether.net](https://getaether.net)

~~~
cercatrova
> It's a tool that doesn't pitch that it's a P2P tool - it doesn't try to
> convince you with sob stories in how using P2P helps fight against the big
> bad evil web. Instead, you use it because it's genuinely the best at what it
> does: it being P2P is not a selling point, it's just how it happens to work,
> and that is exactly what it should be.

This should be something that every creator who markets or sells products
should learn. Consumers don't care how it works, it just has to be better than
the solution before it. Appealing to how things ought to be moralistically
doesn't work (for the vast majority of consumers). They just don't care, they
want a solution to their problem.

~~~
dchuk
This is exactly the problem with all cryptocurrency currently. It’s a massive
user experience issue, in the sense that users have to experience the
technical bullshit of how the currencies work, completely missing the
brilliant part of real money: it just works. I hand people money, they give me
things. I swipe my credit card, I get things.

I can’t remember who aid it originally, but there’s a great test you can give
to any statement or idea. Just immediately ask “who cares?” The best product
demos I’ve ever seen answer who cares in each part of the pitch. The worst
ones just rattle off mumbo jumbo forever.

~~~
nicbou
It has been a few years, and despite a few attempts, I still don't really
understand bitcoin. Yes yes ledgers and proof of work and yada yada, but I
still don't know what I would need to do to buy something with bitcoin right
now.

As I understand I need to do something that's pretty much exactly like opening
a bank account, but transactions take forever, they cost money, and the
currency is not accepted by any business I use, unlike my free credit card.

I have 55€ in my wallet and everyone on this continent knows what to do with
it.

~~~
sanderjd
It's simple: it is an abject failure as a currency. It is fairly successful as
a security for the purpose of speculation. If you aren't a financial
speculator, you really don't need to pay attention to it.

~~~
int_19h
It's also fairly successful as a way to _transfer_ money.

~~~
perardi
I am pretty lucky that I only have to transfer money to between 2 countries
that have heavily linked banking systems (US -> Canada), but I am not entirely
sure what Bitcoin would get me in terms of transferring money. The fees are
quite small on Transferwise, and also, I have…I don’t know what you want to
call it…accountability? Reversibility? Reliability? Whatever fee I have to
pay, the fact I get a known third-party with a papertrail is peace of mind.

~~~
Muromec
It’s great to live a in developed world during the peace time.

Sometimes you have to transfer money in and out of the country at war with
it’s currency in free fall and capital controls in place. At times like that
“normal” ways take about 30% of the sum as transactional overhead, while
bitcoin doesn’t.

Sometimes “normal“ ways just don’t work normally. Sometimes your government is
actively working against your ability to transfer your money for whatever
reason — be it drug laws or capital controls or what not. Sometimes you enter
account number into the “normal“ system and field just turns red for no reason
at all. Sometimes you have your access to “normal“ system severely restricted
because of your legal status and residency rights.

So yeah transferring money between Canada and US being resident of either of
them and not doing anything funny — is not a use case for Bitcoin.

~~~
adamsea
Does this hypothetical situation you describe exist anywhere outside of the
hypothetical situation posited by a character in a Neal Stephenson novel?

Seriously in reality the specifics of any sort of wild situation like the one
you describe matter. Which countries? Which currency? Which kind of illegal
behavior?

And (I ask out of ignorance) in this scenario you describe why would whatever
group managing whatever bitcoin exchange or whatever is being used remain
virtuous and not charge a 30% markup themselves?

~~~
Muromec
> Does this hypothetical situation you describe exist anywhere outside of the
> hypothetical situation posited by a character in a Neal Stephenson novel?

That indeed is a bunch of real situations that have happened to me in
2014-2015 and some of that is still a thing. Check your privileges, sweet
summer child.

Like seriously — for the first 30 years of my life it was outright illegal to
have a bank account in a foreign country in my name. Not enforceable in
practice, except I can’t make wires between two.

So 2014, fucking Russia is being Russia again, USD wired from foreign clients
goes in... and is sold for UAH at government mandated rate. I sit in a third
country, withdraw it through ATM. Guess what? It is converted back to USD at a
market rate. Of course you can still bring cash or btc in and sell it at
market rate plus some margin, but not 30 damn percent.

Sometimes it’s less dramatic and web interface of your bank doesn’t have
regexp for IBAN format of destination country. Ridiculous but have happened as
well, so I have proxied IBAN that starts with GB instead of UA and that always
works.

~~~
adwn
> _Check your privileges, sweet summer child._

Please don't do this here. It is needlessly condescending and insulting.

~~~
hutzlibu
It is, but maybe start telling op?

"Does this hypothetical situation you describe exist anywhere outside of the
hypothetical situation posited by a character in a Neal Stephenson novel"

~~~
nicbou
That's a legitimate question

~~~
AlexCoventry
I think they're arguing about tone, not accuracy.

------
tomxor
> not only uses a hash tree, but it forms a hash tree for every file in the
> torrent [...]

> Files that are identical can also more easily be identified across different
> swarms, since their root hash only depends on the content of the file.

Wait, content addressed blobs across swarms... does that mean torrents made by
completely different people at different times that happen to contain one or
more identical files can benefit from each other's peers? If so this feels
like a significant feature that would boost the long term health of a lot of
torrents and connect more peers that could be helping each other.

~~~
Thorentis
This right here is the biggest new feature in my opinion, and should have been
discussed in more depth in the announcement. I also think they should have
pursued this avenue further before releasing v2.

Content addressing is one of the big advantages of p2p applications, and IPFS
has been pushing it for a long time.

Just imagine if this was done all the way down to the piece level. You have
two different torrents (say, Linux ISOs) where 20% of the pieces overlap due
to similarity (maybe a point upgrade or something and you want both versions).
Rather than 100% of both, you only need to download the shared pieces once.
Not only that, but say that the latest version has many more seeds/peers, you
could download the pieces from that swarm instead, saving the bandwidth of the
older torrent's swarm for the remaining 80% you need to download.

This could probably be done client side somehow, but it would be good to see
actual protocol support for it so that bittorent can move in that direction.

~~~
sedatk
Only if blocks have the same offset in the same binary and if they align with
the block boundaries. Otherwise, different hashes would be generated. I don't
expect that to happen a lot.

~~~
aurelian15
There are ways around this. See "content-aware chunking", e.g. implemented
using rolling hashes [1]. This is for example what rsync does.

The idea is to make blocks (slightly) variable in size. Block boundaries are
determined based on a limited window of preceding bytes. This way a change in
one location will only have a limited impact on the following blocks.

[1]
[https://en.wikipedia.org/wiki/Rolling_hash](https://en.wikipedia.org/wiki/Rolling_hash)

~~~
octoberfranklin
Rolling hashing is really only useful for _finding_ nonaligned duplicates.

There isn't a way to advertise some "rolling hash value" in a way that allows
other people with a differently-aligned copy to notice that you and them have
some duplicated byte ranges.

Rolling hashes only work when one person (or two people engaged in a
conversation, like rsync) already has both copies.

~~~
btschaegg
I think you misunderstood how the rolling hash is used in this context. It's
not used to address a chunk; you'd use a plain old cryptographic hash function
for that.

The rolling hash is used to find the chunk boundary: Hash a window before
every byte (which is cheap with a rolling hash) and compare it against a
defined bit mask. For example: Check if the first 20 bytes are zero. If so,
you'd get chunks with about 2^20 bytes (1 MiB) average length.

As a good explanation, I'd encourage you to look at borgbackup's internals
documentation:
[https://borgbackup.readthedocs.io/en/stable/internals.html](https://borgbackup.readthedocs.io/en/stable/internals.html)

~~~
hinkley
I think they understood just fine.

If I discover that the file I want to publish shares a range with an existing
file, that does very little because the existing file has already chosen its
chunk boundaries and I can’t influence those. That ship has sailed.

I can only benefit if the a priori chunks are small enough that some subset of
the identified match is still addressable. And then I may only get half of a
two thirds of the improvement I was after.

~~~
tleb_
The idea is that on none random data, you are able to use a heuristic that
would create variable-sized chunks that fit the data. The simplest way seems
to detect padding zeros and start a new block on the first following none zero
byte. There probably are other ways, knowing the data type should help.

~~~
hinkley
That seems fairly unlikely. Not a lot of big files have zero padding, and if
they did them compress them. It will reduce your transfers more than and range
substitutions ever will.

------
viktorelofsson
If you want to try a client with v2 (and v1+v2 hybrid) support, I've just
released PicoTorrent v0.20 [0] based on Rasterbar-libtorrent 2.0 :)

[0]
[https://github.com/picotorrent/picotorrent/releases/tag/v0.2...](https://github.com/picotorrent/picotorrent/releases/tag/v0.20.0)

~~~
lebaux
Nice. If anyone is wondering if they should try this, picotorrent is probably
the most lightweight GUI torrent client for windows (no linux/mac version).

~~~
miki123211
What are you using for the GUI layer, and what's your stance on accessibility?
The fact it's Windows only gives me hope.

~~~
viktorelofsson
I'm using wxWidgets, so it's the Win32 API at the lowest layer. For
accessibility I want to make it support the NVDA screen reader which I think
would make it support other readers as well :)

~~~
mwcampbell
wxWidgets is a decent choice. Not all of its controls are accessible though.
Most infamously, the wxHTML control (wx's own HTML engine) isn't accessible,
but the web view control (using the OS's web browsing engine) is accessible if
you futz around at the native layer to force the keyboard focus into the right
place. Also, on Windows, the list view control is accessible but the data view
control is not. Frustratingly, the opposite is the case on Mac and (I think)
GTK.

I suggest you test with Narrator rather than NVDA. Disclosure: I work on the
Narrator team at Microsoft. But that's not why I say this. The reason is that
NVDA and JAWS have some ugly hacks that they can use to make some GUI
implementations (particularly using Win32 with GDI for graphics) accessible
even if they're not accessible by design. For details, do some searching on
the term "off-screen model". Narrator doesn't have this, so if your product
works with Narrator, you know it's really accessible.

~~~
viktorelofsson
That's really valuable, thank you!

------
proverbialbunny
It feels like this isn't a large enough leap forward. It would be nice if
BitTorrent v2 made it harder for ISPs to identify what is bit torrent traffic.
AT&T artificially slows down upload speeds.

~~~
mac01021
Why don't ISPs bill by the gigabyte and be done with it?

~~~
freedomben
Because customers lose their minds with that model, largely as a result of
conditioning that "internet" is an unlimited resource (which of course it is
when instantaneous demand <= supply, but during high traffic periods that
isn't the case).

Personally I understand the economics around it, but still don't like the idea
of paying per GB. I would end up skipping some Netflix and would get mad at
kids for playing Netflix to an empty room (much like I currently get mad when
they leave the lights on in an empty room). It's nice on a personal level to
avoid that.

~~~
bserge
I _really_ don't like the idea of limited bandwidth or charging per gigabyte
because I know ISPs will rip people off and still not upgrade their networks
to handle more traffic.

But I think it would considerably change the Internet landscape. No more
listening to the _same exact song_ multiple times on Youtube or Spotify or
whatever. No more downloading then deleting the same stuff over and over
again. I think about it often, what a massive waste of bandwidth, I don't even
know why. It's a lot of electricity used, I guess?

Even though I've got unlimited fiber, I'm looking for some sort of local
"Internet cache" solution that would store _everything_ so it would be re-
downloaded from my home instead of across the ocean. Would be great for
outages, too.

~~~
Hamuko
> _It 's a lot of electricity used, I guess?_

Is it though? How much electricity is used to serve a 1080p Netflix movie
several times vs. playing the same movie from a local storage medium?

If you asked me, I'd rather burn Bitcoin mining rigs if I wanted to get rid of
electricity waste.

~~~
bserge
Yeah, I don't know. I just think about the bandwidth we all use sometimes and
it seems extremely wasteful and it bothers me for some reason. I use around
~200-300 GB/month, which I thought was a lot until I saw how much other people
use :D

~~~
Hamuko
> _I use around ~200-300 GB /month_

Pretty sure I use more than that in a day.

~~~
brokenmachine
That's a lot of linux isos to download per day.

Seriously, why would you use that much data per day for? Even getting full
blu-rays you wouldn't be able to watch that many.

~~~
Hamuko
It's more up than down.

~~~
brokenmachine
Bless you, good sir.

------
crazygringo
Very interesting. But I'm not totally clear -- what does this mean for
compatibility with v1?

The article states that _hybrid_ torrents that support v1 and v2 can be
created. But what does this mean for end-users (clients)?

Will most torrent software be upgraded to support both v1 and v2? And will a
client be forced to choose from the v1 or v2 swarm, or will it be able to
download from and seed to both?

I mean it _seems_ like clients would participate in both swarms -- I'd just
like to know if that's confirmed.

Also, is is possible to add v2 to existing torrents "retroactively"? Who would
do that? Or would this solely be for new torrents moving forwards?

~~~
armitron
A v2-aware client that also supported v1 and hybrid torrents would tick all
boxes and be able to participate in multiple swarms (for the same torrent).

The main issue that I see is the existence of millions of torrents in private
trackers that would have to be manually updated for v2.

Are people going to bother? I think not. So for me, v2 is practically a new-
torrents-only affair.

~~~
oauea
The sites could perform a bulk update for all their torrents if they so chose.

~~~
danarmak
To update you need the data so you can rehash it. A typical tracker only has
the torrent files and would take a very long time and spend a lot of possibly
expensive bandwidth to download all the tracked torrents. And some torrents
may not be seeded all the time.

~~~
bserge
They often just have the magnet links. I haven't looked into how that works,
but I think the complete data is only on the seeders' machines, and the
torrent propagates through DHT.

~~~
Cyph0n
Private trackers do not use magnet links afaik.

------
nurettin
I remember one of the original bittorrent guys asking for help/recruiting on
some IRC channel. He said it was a transformative project. He was laughed off
as the next "wanna create mmorpg" guy. For once they were wrong.

------
smabie
I've written a torrent client, and I'm skeptical than v2 will ever catch on.
While it does solve some minor problems, it's not a large enough leap forward
to justify the costs.

~~~
bredren
I don’t know much about protocol version pacing, but was lack of substantial
changes part of the reason it has taken 12 full years to get a client to
support v2?

[http://bittorrent.org/beps/bep_0052.html](http://bittorrent.org/beps/bep_0052.html)

~~~
Mindless2112
3 years, not 12. BEP 52 was based on BEP 3 and kept the same metadata,
including the creation date.

[http://bittorrent.org/beps/bep_0003.html](http://bittorrent.org/beps/bep_0003.html)

------
sleavey
SHA1 has a collision, so now it uses SHA256. How long until a SHA256
collision? Shouldn't the new protocol just add support for many modern hash
functions, and client updates can disable support for hashes that become
insecure later? Or does this introduce its own headaches? That's what SSH
does, right?

~~~
johnisgood
Why not BLAKE3? I am really curious. I mean, since it exists, why not that
over SHA256? Because it is relatively new?

~~~
loeg
I would guess that the reasoning is similar to why Git is moving to SHA256
(from SHA1) rather than to BLAKE3 — SHA256 was around 5 years ago and the
major design change has been in the works for a while (BEP 52 dates to 2017).
BLAKE3 (2019) would be a fine choice today.

~~~
johnisgood
I see. Thank you! By the way, I have not thought much about it, so in case you
may know: would not it be possible to implement this in a way that allows
swapping the hash function? So for example when we run into issues with
SHA-256, change the hash function to something else.

~~~
loeg
We already can: the "swap" will just be a v3 along the same lines.

~~~
johnisgood
Yeah, but would not they have to create v4, v5 and so forth every N years, for
different hash functions?

~~~
loeg
Sure, but this is not any more expensive than any other versioning scheme you
might be thinking of. Consider also that they got 19+ years out of v1, and
that there is no reason to believe SHA2 will be broken faster than SHA1.

~~~
johnisgood
Probably, but would it be possible to make it so that one could easily swap
the hash function? Like I am curious about the details here. I think it would
be. Clients probably will have to implement a couple of commonly used hash
functions, and so forth. I am not sure how it would work in practice or if it
is worth it at all. I am interested in all the details though.

------
dmos62
> per-file hash trees

This is huge. Now the protocol supports downloading identical files from
multiple torrents simultaneously.

------
martindale
Has there been any progress on advancing BEP-46 (mutable torrents) [0] along
the standards track? I didn't see any mention of it in this announcement,
despite my hopes of seeing it as a flagship feature.

[0]:
[http://www.bittorrent.org/beps/bep_0046.html](http://www.bittorrent.org/beps/bep_0046.html)

~~~
the8472
The BEP itself is almost trivial. The difficult work is implementing it in a
client that makes it useful for users and content providers.

In the wild west of the internet "update" really only means "add" because you
don't want the source you barely trust to provide some data to issue an update
that deletes all the previous download from that source. But you also want to
avoid wasting storage so some size caps and rehashing old data to see if it's
an incremental update will also be needed.

------
ksec
What is the current relationship between BitTorrent Inc, which I think
developed the original BT v1 protocol and client, and Libtorrent? Which I
think was a 3rd party BT Library written in C++ because the official version
was in Python which was resources hungry.

~~~
toyg
You got your relationships wrong.

Bram Cohen developed BitTorrent and released a (Python) reference
implementation in the public domain (later under MIT and then GPL licenses);
he later founded BitTorrent Inc. and assigned this implementation to the
company to maintain. Eventually BitTorrent Inc dropped this codebase
altogether and became closed-source with a completely separate project.

Libtorrent is just one of many independent BT libraries that have been
developed since Bram published the first BT client.

~~~
ksec
>You got your relationships wrong.

??

So there are no relationship between the two?

>Eventually BitTorrent Inc dropped this codebase altogether and became closed-
source with a completely separate project.

That was from the acquisition of utorrent.

~~~
loeg
Correct, no relation between the two.

------
m3kw9
Talk about an un-mobile friendly website

~~~
Stratoscope
It even manages to evade the usual "Show simplified view" bottom bar that
Chrome mobile shows when it detects that a page is likely hard to read.

Rather ironically, you get a much more readable view if you select "Desktop
site" in the Chrome mobile menu and then double-tap the main text column.

------
nayuki
Since the article mentioned bencoding and provides sample .torrent files, I'd
like to show my code for parsing and visualizing bencode structures:
[https://www.nayuki.io/page/bittorrent-bencode-format-
tools](https://www.nayuki.io/page/bittorrent-bencode-format-tools)

~~~
retox
Can I suggest including an example .torrent file (for something legal) for
those that don't have one to upload.

------
Hitton
This is pretty cool. Per-file hash trees is something I've been missing for
some time now.

------
sideeffffect
According to the blog, BitTorrent v2 now tightens the possible block size to
power of 2. But does that still allow for the blocks to be variably sized and
created by, for example, a rolling hash-based chunker, like Buzzhash or Rabin?

I'm asking, because this would allow for sharing of big files across swarms,
even though the files might be slightly different.

------
janaagaard
> All new features in BitTorrent v2 that are not backwards compatible have
> been carefully given new names, to allow them to coexist with the v1
> counterparts.

This seems like a really cool approach that could be applied lots of other
places where versioning can be tricky. But probably also hard to come up with
new, good names.

------
dmix
> It is possible to include both a v1 (btih) and v2 (btmh) info-hash in a
> magnet link, for backwards compatibility.

The amount of effort into backward compat and keeping the general UX the same
(ie: no overly-large new Magnet urls) is really appreciated.

Hopefully this will find quick adoption in both clients and submissions.

------
juangacovas
I remember World of Warcraft using the bittorrent protocol internally to
distribute updates, which was an smart use at that moment considering the
horde of people downloading at the same time.

------
jakearmitage
Does anyone know any tutorial, article or any learning material related to
creating BitTorrent-powered applications? Something simple, like sharing
pictures or even text files.

------
koeng
> Identical files will always have the same hash and can more easily be moved
> from one torrent to another (when creating torrents) without having to re-
> hash anything. Files that are identical can also more easily be identified
> across different swarms, since their root hash only depends on the content
> of the file.

As a question for someone who knows better - does this mean that you can
download single files within torrents themselves? I imagine if each file is
independently hashed, this should be possible.

~~~
M2Ys4U
>As a question for someone who knows better - does this mean that you can
download single files within torrents themselves?

Most torrent clients can do this already, but depending on how the torrent was
created and the size the files involved you might download a some of the files
on either side.

------
chriswarbo
It seems like this breaking-change would have provided an opportunity to
improve compatibility with WebTorrent, which AFAIK requires a separate swarm
(connected via WebRTC)

------
d33
There are a few things I wish this addressed, but it doesn't. Off the top of
my head:

1\. the new hash function is going to be broken eventually - what happens
then? 2\. support for "remixes". It would be nice to reference pieces from
another torrent. Example use case: adding subtitles for a movie. Right now it
requires either downloading the "main" version of the movie and getting the
subtitles externally, or sharing the file from scratch.

~~~
lucb1e
> the new hash function is going to be broken eventually

SHA-2 will not be broken as easily as SHA-1. This seems to be a common
misconception in this thread.

Wikipedia: "Since 2005, SHA-1 has not been considered secure against well-
funded opponents".

This was 10 years after its introduction (1995) and 15 years ago. We had 15
friggin' years and we're finally switching git and bittorrent around. It took
2017-2005=12 years to get from first serious signs of issues to
[https://shattered.io](https://shattered.io).

SHA-2 is now 19 years old and the "uh oh, better switch before it's too late"
recommendation has not come yet. It's withstanding the test of time better and
there haven't been 12 years to mature any weaknesses. The theoretically known
attacks for SHA-2 are fairly insignificant.

Since SHA-2 had a similar construction to SHA-1 (Merkle-Dåmgard), NIST figured
they better launch the SHA-3 competition at the first sign of trouble and
picked something with a very different operating principle. For now, however,
it's still fine. Thomas Pornin put this a bit better than I can:
[https://security.stackexchange.com/a/21116/10863](https://security.stackexchange.com/a/21116/10863)

As for "what happens if/when it will be broken": we could make BitTorrentv2
another multi-crypto soup like with TLS, but then you open up a can of
downgrade attacks, potential null ciphers or other such tricks simply due to
increased complexity, and you still can't switch that quickly because everyone
needs to take manual action in changing configuration files. Much better if we
can instead do apt upgrade and let the software take care of making security
decisions rather than those who install the software. (Remember that SSL was
designed in 1994, when LiveScript/JavaScript didn't even exist yet, DES was
state of the art, and we wrote books with algorithms because cryptography was
ammunition. Having multiple options for strong/weak ciphers was not yet a
crazy idea.)

------
brokenmachine
Does anyone care to summarize the changes?

~~~
htgb
As far as I can see, TFA _is_ the summary of the protocol changes. If you want
a summary of TFA, I suggest reading each section's heading and first sentence
or two. Possible exceptions are the _hash trees_ and _directory structure_
sections, which are more technical than user-facing (read all or none of
them).

Not trying to be rude – I found the blog post rather informative and concise!

------
PossiblyKyle
Since we're on this topic, what's your torrent client of choice HN? I plainly
use BitTorrent nowadays

~~~
kuroguro
qbittorrent, hands down :) Open source, cross platform and relatively small
footprint (native), uTorrent-like UI.

I believe it uses libtorrent under the hood, so this might be integrated soon.

~~~
hackinthebochs
It seems they still can't be bothered to implement a proper "stop" button,
despite many requests over the years. When the devs refuse to listen to their
users, that's software I won't use.

~~~
kuroguro
Went to look up the issue - the dev's response seems reasonable to me.

[https://github.com/qbittorrent/qBittorrent/issues/4965](https://github.com/qbittorrent/qBittorrent/issues/4965)

The only difference between qbit's pause and uTorrent's stop is the check if
files still exist.

~~~
hackinthebochs
The fact that users do not see the behavior as the same is the problem. When
the users are telling you how they use your software and you respond by saying
"that's bizarre, don't do that", then there's a serious disconnect. Developers
should be responsive to user feedback, not dictate how their software should
be used.

~~~
0xffff2
I think the serious disconnect is in user expectations. Developers of paid
produces should be responsive to user feedback. Developers of open source
software are free (legally, ethically and morally) to care or not about user
feedback exactly as much as they wish.

Users of open source software are free to fork the software if the original
developer isn't responsive to their particular needs. They're not entitled to
demand that the original developers respond to their feedback. They're even
less entitled to complain when the develop _does_ respond with a specific
reason why they won't act on their feedback.

~~~
hackinthebochs
I disagree. It's one thing to not have the time or bandwidth to change or add
a feature. Certainly free users aren't entitled to a developers time. It's
another thing to disagree with a style of usage and refuse to accommodate
users out of principle. The software is marketed as an open source replacement
for utorrent. If he wanted to treat it as his little fiefdom, he shouldn't
position it as a replacement for utorrent. If I had any expectation that a
pull request for this feature would be accepted, I would fix it myself. But
his demeanor suggests otherwise. That's not the way to approach software that
positions itself as a community project.

------
pabs3
The Hefur tracker software is going to be adding support for BitTorrent v2
soon:

[https://github.com/abique/hefur/issues/31](https://github.com/abique/hefur/issues/31)

------
ronyfadel
Won't the "per-file hash trees" make it easy to detect copyright infringement?
(i.e. the same .txt signature file of a release group)

~~~
yyyk
Adding noise and/or padding is trivial, it would just be done on a per-file
basis. Of course, this would also lose the protocol's identical file feature,
but that's not a regression vs v1.

------
tylurp
What are people thoughts on transmission? I have never tried BitTorrent but I
am curious to hear from others who might have tried both.

~~~
29083011397778
Currently using transmission-remote for a headless Linux box living beside my
desk, and a count approximating 1100 torrents (with the only public ones being
Linux ISOs).

It works _exceedingly_ well. I've never had it falter or slow, despite the
number of torrents. My preferred client for desktop and server :)

------
coronadisaster
It would be nice to have a torrent system where noone that is uploading has
all the data for a specific torrent (or at least they arent uploading the
whole file to any specfic person... probably would be harder to prosecute in
the event that some files become illegal)... You could take 1% of the
billonaire's fortune and give it to the "victims" and everyone would be happy.

~~~
nabla9
If you want to circumvent the law, you must find a legal technicality, not a
technical technicality.

The key weakness in every smartass technical technicality to circumvent the
law is forgetting that _intent_ is core concept when the law is interpreted in
the court.

Did the defendant have intent to do X? Did the defendant use some purpose
build technique to avoid doing the most literal interpretation X ? .. Yeah,
defendant is guilty of doing X.

~~~
coronadisaster
"must find a legal technicality, not a technical technicality."

I think we are ok as long as there are no precedents? Isnt that how smartass
laws work?

~~~
wmf
If you want to be the next David LaMacchia or Shawn Fanning I guess.

------
technological
Can anyone give examples regarding how they are currently using BitTorrent ?

~~~
kdmytro
Linux ISOs downloads mostly.

------
nicbar
Need to work on their mobile friendly.

------
OhHiMarkos
What is the use space of BitTorrent?

------
7OVO7
just a little umh
[https://www.virustotal.com/gui/file/6dbe03438a95bc295ca64d49...](https://www.virustotal.com/gui/file/6dbe03438a95bc295ca64d49e6356360adca84b093696f6fb596821c652e1e66/detection)

------
uzero
TLDR

[https://twitter.com/markopolojarvi/status/130324298806421094...](https://twitter.com/markopolojarvi/status/1303242988064210944?s=21)

\- new hash function

\- more efficient and less error prone .torrent files

\- each file in the torrent gets its own hash meaning deduplication across
torrents is feasible

\- backwards compatible with v1

------
m00dy
hmm, looks like still no support for data streaming :(

~~~
m00dy
well, I meant live streaming here.

~~~
FridgeSeal
That would require mutable torrents correct?

~~~
m00dy
yeah, that is one way to do that.

------
ParzivalML
Great! Looking forward ysing it

------
pjfin123
Is there ever going to be a production ready BitTorrent application
implementation in Python or is just not feasible with the GIL? It would be
nice to be able to use BitTorrent for basic p2p capabilities in a pip
installable fully Python app.

------
m3kw9
I feel like a lot of the terms has blockchain in nature but they never
specifically state it.

~~~
doctoboggan
Bittorrent was pioneering distributed architecture while bitcoin was still a
future thought in Satoshi's mind.

------
xibalba
_To me, BitTorrent feels a lot like Blockchain: interesting tech that doesn 't
seem to be able to find a practical and useful application (proportionate to
the attendant hype). Which is not to say that either can't, they just haven't
yet. Why?_

EDIT: while I don't (yet) consider myself delirious, responses to this comment
have illuminated how little I know about the influence and application of
BitTorrent. In other words, I retract the above opinion.

~~~
luizfelberti
You're delirious.

Setting aside the fact that BitTorrent came about long before BitCoin was a
glint in Satoshi's eye, it's still massively used for content distribution, on
top of being a foundational technology to several industrial applications:
Apache Spark, for example, uses BitTorrent to shuffle/broadcast data around
cluster nodes.

Even when BitTorrent alternatives are used in its place (such as IPFS, Dat, or
Kademlia), BT was still a massive influence in all of their designs, and to
the design of any other DHT that came about after its release.

All of these, plus other systems that are (in abstract) similar constructions,
have several industrial applications for asset distribution (Netflix uses IPFS
to distribute container images internally [0], Uber and Alibaba do similar
things) and network management (DNS for example, is really just a DHT, as are
several other network protocols)

Ever since BitTorrent came about, it has unequivocally been a resounding
success. It never for a moment had to look for applications, there were
already plenty since day one.

[0] [https://blog.ipfs.io/2020-02-14-improved-bitswap-for-
contain...](https://blog.ipfs.io/2020-02-14-improved-bitswap-for-container-
distribution/)

~~~
oblio
> it's still massively used for content distribution

Is it, though? Youtube doesn't use it, neither do Netflix, Hulu, Amazon Prime
Video, Disney+, Spotify, etc. Does anybody (except for Blizzard) use it? I
don't think Steam or the Epic store or the App Store or the Play Store use it,
either.

I'd be extremely glad to be proven wrong.

~~~
toyg
I believe Steam uses it. The network graphs they spout show behaviours
consistent with BT-like activity.

I'm pretty sure the BBC iPlayer used it too, at some point (no idea if it's
still the case).

Most Linux projects use it.

Any company offering a "download manager" for 1GB+ files, is likely to be
implementing something similar to BT behind the scenes.

The thing is: if bandwidth costs are a real problem for you, BT is a killer
solution to offload some of those costs. If they are little more than a
footnote (like for the mega-services you list), then BT is unnecessary and it
will probably slow down overall performance too.

~~~
M2Ys4U
v1 of iPlayer used bittorrent, but these days it's all streaming.

