This article may be too technical for most readers to understand.(November 2018) |
Original author(s) | Feross Aboukhadijeh |
---|---|
Developer(s) | WebTorrent |
Initial release | 22 October 2013 |
Repository | github |
Written in | JavaScript |
Operating system | Cross-platform |
Available in | JavaScript |
Type | Communications protocol, distributed file system, content delivery network |
License | MIT [1] |
Website | WebTorrent.io |
Part of a series on |
File sharing |
---|
WebTorrent is a peer-to-peer (P2P) streaming torrent client written in JavaScript, from the same author, Feross Aboukhadijeh, of YouTube Instant, and the team at WebTorrent and on GitHub, for use in web browsers, as well as a WebTorrent Desktop stand alone version able to bridge WebTorrent and BitTorrent serverless networks.
Before creating WebTorrent, the developers first created PeerCDN, a peer-to-peer content delivery network which was bought by Yahoo! in 2013.
The idea behind WebTorrent is to make a BitTorrent-like protocol that works on the web browser, maintaining as much compatibility with BitTorrent as possible. [2] Any web browser should be able to connect to a peer-to-peer swarm, fetch content, verify that it is correct, and display it to the user – all as much as possible without centralized servers relying on a network entirely of people's browsers. [3] WebTorrent uses the same protocol as BitTorrent but uses a different transport layer. WebTorrent primarily relies on WebRTC connections, while BitTorrent uses TCP connections and UDP datagrams directly. [3]
The WebTorrent Desktop bridges the two networks of WebRTC-based WebTorrent and TCP/UDP-based BitTorrent simultaneously. The BitTorrent client Vuze (formerly Azureus) less gracefully but adequately functionally incorporated WebTorrent adding simultaneous network bridging to their software. The developers used Electron that makes desktop apps using JavaScript with access to all the APIs from Chrome and Node. [3]
Online video is the core focus as that is where WebTorrent is most useful. It is less suited for smaller files or data sets but is ideal for larger files. [3]
File availability, as with BitTorrents, is dependent on torrent seeding. If only a few users are sharing a file, then an HTTP server that provides webseeding would be the fallback. There is no sharing without webseeding. However, this could have some positive implications. Rather than using a middleman upload site to share a large private file with another person, with WebTorrent you may directly connect without leaving traces somewhere or potentially being archived on some upload site. You simply drag and drop your file to create a magnet link that you can share with your friend. Connections are already encrypted, but you may add extra layers of encryption with keys to send another way. RAM limits may be managed with IndexedDB. [3]
The client prioritizes downloading pieces chronologically, so that the file is able to be streamed uninterrupted even before the download is complete. [4]
WebTorrent uses widely supported open web standards like WebRTC and therefore works in any modern browser, including Google Chrome, Firefox, and Opera for Desktop and Android, Microsoft Edge and Safari. [5] [ better source needed ]
Launched in 2017, [6] BitChute is a video hosting service that used WebTorrent P2P technology. [7] [8] It claimed in order to ease bandwidth issues of centralized streaming. [6] According to Fredrick Brennan, there is little evidence BitChute actually uses peer-to-peer technology. [9] By April 2021, the option to host videos using WebTorrent on BitChute "appears to have been deprecated", according to Ars Technica . [10]
Brave web browser bundles WebTorrent into the native executables and integrates WebTorrent into its UI. [11]
Uploading refers to transmitting data from one computer system to another through means of a network. Common methods of uploading include: uploading via web browsers, FTP clients, and terminals (SCP/SFTP). Uploading can be used in the context of clients that send files to a central server. While uploading can also be defined in the context of sending files between distributed clients, such as with a peer-to-peer (P2P) file-sharing protocol like BitTorrent, the term file sharing is more often used in this case. Moving files within a computer system, as opposed to over a network, is called file copying.
BitTorrent, also referred to simply as torrent, is a communication protocol for peer-to-peer file sharing (P2P), which enables users to distribute data and electronic files over the Internet in a decentralized manner. The protocol is developed and maintained by Rainberry, Inc., and was first released in 2001.
MLDonkey is an open-source, multi-protocol, peer-to-peer file sharing application that runs as a back-end server application on many platforms. It can be controlled through a user interface provided by one of many separate front-ends, including a Web interface, telnet interface and over a dozen native client programs.
An anonymous P2P communication system is a peer-to-peer distributed application in which the nodes, which are used to share resources, or participants are anonymous or pseudonymous. Anonymity of participants is usually achieved by special routing overlay networks that hide the physical location of each node from other participants.
The Invisible Internet Project (I2P) is an anonymous network layer that allows for censorship-resistant, peer-to-peer communication. Anonymous connections are achieved by encrypting the user's traffic, and sending it through a volunteer-run network of roughly 55,000 computers distributed around the world. Given the high number of possible paths the traffic can transit, a third party watching a full connection is unlikely. The software that implements this layer is called an "I2P router", and a computer running I2P is called an "I2P node". I2P is free and open sourced, and is published under multiple licenses.
Magnet is a URI scheme that defines the format of magnet links, a de facto standard for identifying files (URN) by their content, via cryptographic hash value rather than by their location.
Datagram Transport Layer Security (DTLS) is a communications protocol providing security to datagram-based applications by allowing them to communicate in a way designed to prevent eavesdropping, tampering, or message forgery. The DTLS protocol is based on the stream-oriented Transport Layer Security (TLS) protocol and is intended to provide similar security guarantees. The DTLS protocol datagram preserves the semantics of the underlying transport—the application does not suffer from the delays associated with stream protocols, but because it uses User Datagram Protocol (UDP) or Stream Control Transmission Protocol (SCTP), the application has to deal with packet reordering, loss of datagram and data larger than the size of a datagram network packet. Because DTLS uses UDP or SCTP rather than TCP it avoids the TCP meltdown problem when being used to create a VPN tunnel.
BitTorrent is a proprietary adware BitTorrent client developed by Bram Cohen and Rainberry, Inc. used for uploading and downloading files via the BitTorrent protocol. BitTorrent was the first client written for the protocol. It is often nicknamed Mainline by developers denoting its official origins. Since version 6.0 the BitTorrent client has been a rebranded version of μTorrent. As a result, it is no longer open source. It is currently available for Microsoft Windows, Mac, Linux, iOS and Android. There are currently two versions of the software, "BitTorrent Classic" which inherits the historical version numbering, and "BitTorrent Web", which uses its own version numbering.
FrostWire is a free and open-source BitTorrent 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 support for the BitTorrent protocol. In version 5, support for the Gnutella network was dropped entirely, and FrostWire became a BitTorrent-only client.
File sharing is a method of distributing electronically stored information such as computer programs and digital media. This article contains a list and comparison of file sharing applications; most of them make use of peer-to-peer file sharing technologies.
Transmission is a BitTorrent client which features a variety of user interfaces on top of a cross-platform back-end. Transmission is free software licensed under the terms of the GNU General Public License, with parts under the MIT License.
Tribler is an open source decentralized BitTorrent client which allows anonymous peer-to-peer by default. Tribler is based on the BitTorrent protocol and uses an overlay network for content searching. Due to this overlay network, Tribler does not require an external website or indexing service to discover content. The user interface of Tribler is very basic and focused on ease of use instead of diversity of features. Tribler is available for Linux, Windows, and OS X.
The following is a general comparison of BitTorrent clients, which are computer programs designed for peer-to-peer file sharing using the BitTorrent protocol.
libtorrent is an open-source implementation of the BitTorrent protocol. It is written in and has its main library interface in C++. Its most notable features are support for Mainline DHT, IPv6, HTTP seeds and μTorrent's peer exchange. libtorrent uses Boost, specifically Boost.Asio to gain its platform independence. It is known to build on Windows and most Unix-like operating systems.
Micro Transport Protocol is an open User Datagram Protocol-based (UDP-based) variant of the BitTorrent peer-to-peer file sharing protocol intended to mitigate poor latency and other congestion control problems found in conventional BitTorrent over Transmission Control Protocol (TCP), while providing reliable, ordered delivery.
Peer-to-peer web hosting is using peer-to-peer networking to distribute access to webpages. This is differentiated from the client–server model which involves the distribution of web data between dedicated web servers and user-end client computers. Peer-to-peer web hosting may also take the form of P2P web caches and content delivery networks.
WebRTC is a free and open-source project providing web browsers and mobile applications with real-time communication (RTC) via application programming interfaces (APIs). It allows audio and video communication and streaming to work inside web pages by allowing direct peer-to-peer communication, eliminating the need to install plugins or download native apps.
The InterPlanetary File System (IPFS) is a protocol, hypermedia and file sharing peer-to-peer network for storing and sharing data in a distributed hash table. By using content addressing, IPFS uniquely identifies each file in a global namespace that connects IPFS hosts, creating a resilient system of file storage and sharing.
ZeroNet is a decentralized web-like network of peer-to-peer users, created by Tamas Kocsis in 2015, programming for the network was based in Budapest, Hungary; is built in Python; and is fully open source. Instead of having an IP address, sites are identified by a public key. The private key allows the owner of a site to sign and publish changes, which propagate through the network. Sites can be accessed through an ordinary web browser when using the ZeroNet application, which acts as a local webhost for such pages. In addition to using bitcoin cryptography, ZeroNet uses trackers from the BitTorrent network to negotiate connections between peers. ZeroNet is not anonymous by default, but it supports routing traffic through the Tor network.
PeerTube is a free and open-source, decentralized, ActivityPub federated video platform powered by WebTorrent, that uses peer-to-peer technology to reduce load on individual servers when viewing videos.
We needed to settle a technical debt: v6 removes support for WebTorrent to focus on HLS (with WebRTC P2P).