WebTorrent

Last updated
WebTorrent
Original author(s) Feross Aboukhadijeh
Developer(s) WebTorrent
Initial release22 October 2013;10 years ago (2013-10-22)
Repository github.com/webtorrent/webtorrent
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

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.

Contents

History

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]

WebTorrent Desktop

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]

Functionality

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]

Adoption

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 ]

BitChute

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

Brave web browser bundles WebTorrent into the native executables and integrates WebTorrent into its UI. [11]

See also

Related Research Articles

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 as simply 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. A 2004 study by Cachelogic found that one third of all internet traffic was BitTorrent traffic.

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.

<span class="mw-page-title-main">Magnet URI scheme</span> Scheme that defines the format of magnet links

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 UDP or 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.

This is a timeline of events in the history of networked file sharing.

<span class="mw-page-title-main">FrostWire</span> Free and open-source BitTorrent client

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. Below is a list of file sharing applications, most of them make use of peer-to-peer file sharing technologies.

<span class="mw-page-title-main">Transmission (BitTorrent client)</span> BitTorrent client

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.

<span class="mw-page-title-main">Tribler</span> Peer-to-peer filesharing software and protocol

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

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 to work inside web pages by allowing direct peer-to-peer communication, eliminating the need to install plugins or download native apps.

<span class="mw-page-title-main">InterPlanetary File System</span> Content-addressable, peer-to-peer hypermedia distribution protocol

The InterPlanetary File System (IPFS) is a protocol, hypermedia and file sharing peer-to-peer network for storing and sharing data in a distributed file system. IPFS uses content-addressing to uniquely identify each file in a global namespace connecting IPFS hosts.

<span class="mw-page-title-main">ZeroNet</span> Peer to peer web hosting

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.

<span class="mw-page-title-main">PeerTube</span> Decentralised video hosting 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.

References

  1. "Webtorrent/Webtorrent". GitHub . 2 June 2021.
  2. Ernesto (2018-01-04). "WebTorrent Desktop Hits a Million Downloads". TorrentFreak.com. TorrentFreak. Retrieved 2018-11-03.
  3. 1 2 3 4 5 Heavybit (2017-07-06). "Demuxed - Ep. #5, WebTorrent: Bringing BitTorrent to the Web". YouTube. Heavybit. Retrieved 2018-11-03. @4:35+
  4. 1 2 "WebTorrent support - arvidn/libtorrent". GitHub. 2020-07-01.
  5. "WebTorrent FAQ". webtorrent.io. Retrieved 2022-03-12.
  6. 1 2 Trujillo, Milo; Gruppi, Maurício; Buntain, Cody; Horne, Benjamin D. (2020-07-13). "What is BitChute?". Proceedings of the 31st ACM Conference on Hypertext and Social Media. HT '20. New York, NY, USA: ACM. pp. 139–140. doi:10.1145/3372923.3404833. ISBN   978-1-4503-7098-1. S2CID   220434725.
  7. "BitChute is a BitTorrent-Powered YouTube Alternative". TorrentFreak. 2017-01-29. Retrieved 2017-12-10.
  8. Beer, Doron. "iTWire - BitChute: the first serious YouTube competitor?". www.itwire.com. Retrieved 2017-12-10.
  9. "Bitchute claims to be a decentralized platform—that's not true". The Daily Dot. 2019-11-27. Retrieved 2020-12-19.
  10. 1 2 Chant, Tim De (29 April 2021). "Conspiracy theorist said death threats were "jokes"—but jury didn't buy it". Ars Technica . Retrieved 18 May 2021.
  11. "What extensions are built into Brave?". Brave Help Center. Retrieved 2023-07-27.