3 ms·
From a technical perspective, I love BitTorrent. I remember reading about it years ago and being amazed at the bandwidth efficiency and robustness it had. It st
by cletus 5y ago
From a technical perspective, I love BitTorrent. I remember reading about it years ago and being amazed at the bandwidth efficiency and robustness it had. It still had some centralization (ie trackers) but they themselves could be duplicated (ie you could set up a tracker for an existing torrent).
The part that surprises me from reading this is the issues raised from moving from SHA1 to SHA256, specifically because that's 20 vs 32 bytes respectively. This has created compatibility issues.
The same thing happened with Git and it's a nightmare.
I honestly don't understand how this happens. We've gone through this many times for many years. Replacing your hash function should be built in from day one and for any project to come along in the 21st century and not do this is really gross negligence.
I really wonder how this happens. Like is it just hubris about how this hash function will be different? Or are engineers just so in love with the optimizations they get to make by assuming, say, 20 byte hashes? I really wish I knew.
Anyway, I'm a little sad BitTorrent only really found traction for pirating media. Whether you approve of that or not, it's still an astounding technical achievement.
- tinaprice 5y agoI totally agree with this one, it just gained traction because of the pirating scene.
- throwaway2048 5y agoif you design a protocol to somehow have "upgradable" hashes, clients still need to be patched to support them, and old clients still will not work. Its the same mistake TLS and IPSEC made, supposedly extensible, but not really because to actually get new features, clients all need to be upgraded, and old incompatible clients still exist, and will never work with whatever new features you want to employ. You aren't really gaining anything, and you might as well just have new versions of the protocol, and save all the pointless ceremony, complexity and security holes. There is no way (beyond maybe embedding some kind of executable code in the protocol itself, which seems like an insane idea) to have support from "day one" for algorithms and functionality that don't even exist yet.
- r1ch 5y agoThe choice to use SHA256 is surprising to me given that there are a number of other hash functions such as the BLAKE family that are explicitly designed to have arbitrary output sizes.
- ttybird2 5y agoThis feature of the (newer?) members of the BLAKE family would not help at all in this case.
- Sesse__ 5y agoBitTorrent isn't particularly efficient; a well-designed CDN beats it every time, and is pretty cheap these days. (Generally, you get random peers, not peers that are particularly close to you. You could try to fix that, but you'd quickly end up with second-order problems around e.g. which peers have which chunks.) Which is precisely why you're not seeing much adoption outside the warez scene—they're the only ones for which that kind of decentralization is more important than reliable, fast downloads.
- adgjlsfhk1 5y agoI think a lot of the answer is that hash functions last a while. SHA1 lasted about 30 years, and SHA2 seems like it will last at least as long. furthermore, even if SHA2 becomes broken, it's hard to imagine needing to move to more than 32 bytes.