Skip to content

plurigrid/goblinshare

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GoblinShare

Overview

GoblinShare is an encrypted, peer-to-peer file-sharing utility built on Magenc and using the Goblins Tor netlayer.

Building

The easiest way to build GoblinShare is using Guix. You can use guix.scm to enter a development shell and build manually:

guix shell -Df guix.scm
make

You can also enter a shell with the package built and installed by Guix using guix shell -f guix.scm, or install it to a profile with guix install -f guix.scm [-p /path/to/guix/profile].

If you want to build GoblinShare without Guix, you’ll need a few runtime dependencies:

You’ll also need a few build dependencies:

The manual build process is quite simple:

make
# and optionally
# make install

If you install GoblinShare, it should end up on your PATH. If you don’t, there is a goblinshare executable in the root of the build directory which should work just fine.

Note that cross-compilation is not currently supported by the build system. Similarly, this build has only been tested on Linux, but it should work just fine on other Unix-like platforms.

Usage

GoblinShare has two commands: goblinshare send and goblinshare receive. Before using either command, you must have a running Tor daemon.

Setting Up Tor

First, make sure there is a file at $XDG_CONFIG_HOME/goblins/tor-config.txt with the following content ($XDG_CACHE_HOME should be its actual value, usually /home/<user>/.cache where <user> is your user name):

DataDirectory $XDG_CACHE_HOME/goblins/tor/data
SocksPort unix:$XDG_CACHE_HOME/goblins/tor/tor-socks-sock RelaxDirModeCheck
ControlSocket unix:$XDG_CACHE_HOME/goblins/tor/tor-control-sock RelaxDirModeCheck
Log notice file $XDG_CACHE_HOME/goblins/tor/tor-log.txt

Then, ensure the requisite directories exist, such as by mkdir -p $XDG_CACHE_HOME/goblins/tor/data.

Finally, run tor -f $XDG_CONFIG_HOME/goblins/tor-config.txt. You should see some textual output. Assuming there are no errors, you can now leave this process running and use GoblinShare.

Send

goblinshare send accepts one argument, the name of a file to send. Assuming you want to share a file called file.txt, that would look like:

goblinshare send file.txt

This will print the magnet URL for the file, which includes an OCapN URL. Copy that and give it to your intended recipient through your preferred medium.

Receive

goblinshare receive also accepts one argument, the magnet URL of the file to download. It can also take one option, -o or --output, whose argument is the name of the file to write out. If we want to receive a file and write it to file.txt, that would look like this, putting a placeholder for the magnet URL for brevity:

goblinshare receive magnet://... -o file.txt # or --output=file.txt

Other Options

The standard --help and --version options are also supported.

And that’s it! That’s GoblinShare in a nutshell!

License

GoblinShare is licensed under Apache v2.

About

P2P filesharing demo for Goblins (mirror from Codeberg)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published