Phex is a
peer-to-peer file sharing
Peer-to-peer file sharing is the distribution and sharing of digital media using peer-to-peer (P2P) networking technology. P2P file sharing allows users to access media files such as books, music, movies, and games using a P2P software program th ...
client for the
gnutella
Gnutella is a peer-to-peer network protocol. Founded in 2000, it was the first decentralized peer-to-peer network of its kind, leading to other, later networks adopting the model.
In June 2005, Gnutella's population was 1.81 million computer ...
network, released under the terms of the
GNU General Public License
The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end user
In product development, an end user (sometimes end-user) is a person who ultimately uses or is intended to ulti ...
, so Phex is
free software
Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, ...
. Phex is based on
Java SE
Java Platform, Standard Edition (Java SE) is a computing platform for development and deployment of portable code for desktop and server environments. Java SE was formerly known as Java 2 Platform, Standard Edition (J2SE).
The platform uses J ...
5.0 or later.
Features
Phex supports most of the recent features of the gnutella network. Additionally it enables the creation of private networks over the internet, has a powerful search result filter, shows client country flags, and can export the list of shared files into multiple formats, some of which can also be read out and downloaded directly by another Phex.
Version 3.2.0.102 also supports
Tiger Tree
In cryptography and computer science, a hash tree or Merkle tree is a tree in which every "leaf" (node) is labelled with the cryptographic hash of a data block, and every node that is not a leaf (called a ''branch'', ''inner node'', or ''inode'') ...
hashes for uploads and downloads, providing full protection against poisoned downloads. Together with Swarming, segmented file transfer, and the Download Mesh this makes downloads as efficient and safe as
BitTorrent downloads, yet completely decentralized by design.
History
''FURI'' was an early
gnutella
Gnutella is a peer-to-peer network protocol. Founded in 2000, it was the first decentralized peer-to-peer network of its kind, leading to other, later networks adopting the model.
In June 2005, Gnutella's population was 1.81 million computer ...
client written by William W. Wong and released under the
GNU General Public License
The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end user
In product development, an end user (sometimes end-user) is a person who ultimately uses or is intended to ulti ...
. The software was notable at the time of its release for being written entirely in
Java
Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
. The software was capable of running on Java 1.1 as long as the user downloaded external Swing libraries. If these libraries were unavailable, Java 1.2 was required.
Officially, the program never left Beta status. The author eventually stopped maintaining the software, resulting in users migrating to other clients like
LimeWire
LimeWire was a free peer-to-peer file sharing client for Windows, MacOS, Linux and Solaris. Created by Mark Gorton in 2000, it was most prominently a tool used for the download and distribution of pirated materials, particularly pirated musi ...
. The last update to the software was on May 1, 2000.
In April 2001 Konrad Haenel
forked the rarely updated gnutella client ''FURI'' to form Phex. While he participated in the Phex project initially, he left in late 2001. The project member Gregor K. continued to develop Phex and is the lead developer today.
Early versions of Phex were released simply as a java
jar file, limiting their ease of use on some platforms such as the Mac OS. MacPhex was an alternative version made available on the Phex website and supported by macXster. It wrapped Phex in a double click-able application and occasionally added small additional features unique to the Mac OS.
Anonymous Phex
Since 2006, an anonymous version of Phex has been available: ''I2Phex'', which uses the
I2p network to hide the
IP address
An Internet Protocol address (IP address) is a numerical label such as that is connected to a computer network that uses the Internet Protocol for communication.. Updated by . An IP address serves two main functions: network interface ident ...
of the users of this
gnutella
Gnutella is a peer-to-peer network protocol. Founded in 2000, it was the first decentralized peer-to-peer network of its kind, leading to other, later networks adopting the model.
In June 2005, Gnutella's population was 1.81 million computer ...
client. The future roadmap is to integrate the ''I2Phex'' code into one of the next Phex versions.
Rather than use the public IP network, ''I2Phex'' uses encrypted tunnels through the
I2p privacy/encryption network.
Traffic is mixed with other network traffic (see
mix network
Mix networks are routing protocols that create hard-to-trace communications by using a chain of proxy servers known as ''mixes'' which take in messages from multiple senders, shuffle them, and send them back out in random order to the next desti ...
) through a
garlic routing system, making it difficult for outside observers to identify originators or the recipients of a file through traffic analysis.
Anonymous networks have been remiss to host file sharing protocols due to bandwidth considerations. Often only searching (or tracking for
BitTorrent) are supported.
Nodes within the
garlic routing system could refuse to route file sharing traffic. This makes inbound and outbound connections easier to locate. Outbound traffic is unencrypted so associating it with the inbound node will break the anonymity.
LimeWire
LimeWire was a free peer-to-peer file sharing client for Windows, MacOS, Linux and Solaris. Created by Mark Gorton in 2000, it was most prominently a tool used for the download and distribution of pirated materials, particularly pirated musi ...
,
FrostWire,
gtk-gnutella, and Phex all support the use of
TLS
TLS may refer to:
Computing
* Transport Layer Security, a cryptographic protocol for secure computer network communication
* Thread level speculation, an optimisation on multiprocessor CPUs
* Thread-local storage, a mechanism for allocating vari ...
to encrypt traffic between nodes. TLS is not anonymous like
I2P, however, it does prevent ISPs from filtering
gnutella
Gnutella is a peer-to-peer network protocol. Founded in 2000, it was the first decentralized peer-to-peer network of its kind, leading to other, later networks adopting the model.
In June 2005, Gnutella's population was 1.81 million computer ...
content and makes it more difficult to trace traffic.
Phex with Tor
It is possible to use Phex with
SOCKS
A sock is a piece of clothing worn on the feet and often covering the ankle or some part of the calf. Some types of shoes or boots are typically worn over socks. In ancient times, socks were made from leather or matted animal hair. In the lat ...
5 proxy. Using that feature it is possible to route gnutella traffic via
Tor and then to Phex. This is possible by using SOCKS5 cascading
proxy to Tor client.
Academic studies
Various academic studies are based on Phex:
*
*
*
*
See also
*
Anonymous P2P
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 routin ...
*
Comparison of Gnutella software
References
External links
* Official
web siteWikiForumProject pageat
SourceForge.net
Gnutella web cacheswhere to find peers IPs
Code quality and contributor statisticsa
Ohloh*
Interview in gulli.com(2007)
{{File sharing
File sharing software for Linux
MacOS file sharing software
Windows file sharing software
Free software programmed in Java (programming language)
Free file sharing software