HyperbolicDownloader
A cross-platform P2P file sharing CLI client
Usage
- Download one of the releases
- Exacute the
HyperbolicDownloaderfile - Wait until the setup process is finished
- Do one of the below
How it works
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 a 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.
Disclaimer
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.
Commands
Most commands have aliases (separated by
|)
Some commands also have subcommands.<command> subcommandmeans that you can replace<command>with any version of the parent command.
exit | quit
Description: Exits the application.
Parameter: none
clear | cls
Description: Clears the console.
Parameter: none
info | inf
Description: Displays the private and public IP address.
Parameter: none
discover | disc
Description: Tries to find other active hosts on the local network.
parameter: none
check | status
Description: Checks the status of known hosts.
parameter: none
list | ls
Description: Lists all files
parameter: none
<list> files
Description: Lists all files.
parameter: none
<list> hosts
description: Lists all hosts.
parameter: none
add
Description: Adds a file to the tracking list.
parameter: <file path>
<add> file
Description: Adds a file to the tracking list.
parameter: <filepath>
<add> host
Description: Adds a host to the list of known hosts.
parameter: <IpAddress:port>
remove | rm
Description: Removes a file from the tracking list.
parameter: <FileHash>
<remove> file
Description: Removes a file from the tracking list.
parameter: <FileHash>
<remove> host
Description: Removes a host from the list of known hosts.
parameter: <IpAddress:Port>
get
Description: Attempts to retrieve a file from another host using a hash.
parameter: <FileHash>
<get> from
Description: Attempts to retrieve a file from another host using a .hyper file.
Parameter: <FilePathToHyperFile>
generate | gen
Description: Generates a .hyper file from a file hash.
Parameters: <FileHash>
<generate> noscan
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>