A cross-platform P2P file sharing CLI tool & protocol
- Download one of the releases.
- Execute the
HyperbolicDownloader
file. - Wait until the setup process is finished.
- Next steps:
- Add a host to your client using the add command and use the get command to retrieve a file.
- Add the host
hyper.stone-red.net:3055
(add host hyper.stone-red.net:3055
) to the hosts list to obtain a few existing hosts and immediately gain access to all of my files hosted on the HyperbolicDownloader network.\ - Use the generate command to generate a
.hyper
file and the get from command to retrieve a file through the generated.hyper
file.
When you start the program, it first tries to open a public port via UPnP/NAT-PMP. If it succeeds, you can communicate with the client using the public IP address and port. If it is unable to find a UPnP/NAT-PMP device, you will need to manually set up port forwarding on your client's IP address to port "3055". The public port has to be between 1000 and 6000 here.
HyperbolicDownloader can retrieve files from other computers (aka hosts) using an SHA 512 hash.
The client checks all known hosts to see if it could find the requested file. If one of the hosts has the requested file, it immediately downloads it.
After the file is completely downloaded, it is validated by comparing the hash entered with that of the file received. If the hash does not match, you will receive a warning message, and you can download the file again if needed.
This makes it very difficult to tamper with requested files, as long as the source from which you obtain the hash/.hpyer
file is trusted.
You can generate .hyper
files with your client using the generate. Command
These files contain the hash value of the actual file and the hosts that should have the requested file.
You can use the get from command to retrieve the file or if you are using Windows you can right-click the .hyper
file, select open with
and select the HyperbolicDownloader executable.
Keep in mind that all network traffic is not encrypted. So, do not send sensitive information with HyperbolicDownloader. Since none of the files are stored anywhere centralized, the quality of the files cannot be controlled. Therefore, pay attention to what you download.
Most commands have aliases (separated by
|
)
Some commands also have subcommands.<command> subcommand
means that you can replace<command>
with any version of the parent command.
Description: Exits the application.
Parameter: none
Description: Clears the console.
Parameter: none
Description: Displays the private and public IP address.
Parameter: none
Description: Tries to find other active hosts on the local network.
parameter: none
Description: Checks the status of known hosts.
parameter: none
Description: Lists all files
parameter: none
Description: Lists all files.
parameter: none
description: Lists all hosts.
parameter: none
Description: Adds a file to the tracking list.
parameter: <file path>
Description: Adds a file to the tracking list.
parameter: <filepath>
Description: Adds a host to the list of known hosts.
parameter: <IpAddress:port>
Description: Removes a file from the tracking list.
parameter: <FileHash>
Description: Removes a file from the tracking list.
parameter: <FileHash>
Description: Removes a host from the list of known hosts.
parameter: <IpAddress:Port>
Description: Attempts to retrieve a file from another host using a hash.
parameter: <FileHash>
Description: Attempts to retrieve a file from another host using a .hyper file.
Parameter: <FilePathToHyperFile>
Description: Generates a .hyper file from a file hash.
Parameters: <FileHash>
Description: Generates a .hyper file from a file hash without checking the known hosts. This adds only the local host to the file.
Parameter: <FileHash>