Skip to content

MASV Transfer Agent

MASV Transfer Agent (masv-agent for short) is a cross-platform service that manages file transfers to and from MASV network. Interaction with the service is performed via REST API calls. It supports uploading and downloading multiple packages simultaneously, while abstracting away filesystem interactions. The agent is the beating heart of our desktop app that's been used in production with hundreds of terabytes of data getting transferred through it, reliably and quickly.

The agent is stateful -- it stores metadata about transfers and user sessions in order to carry out its responsibilities and survive interruptions and shutdowns.

Run on Docker

The Transfer Agent is provided in a docker container image. This allows for easy of use between many different operating systems and architectures.

Info

Docker is the recommended method of running Transfer Agent. Please follow the guide at Docker Docs

An example snippet to run the docker container:

# Other flags can be defined as outlined in the Parameters section
docker run -it --rm \
  -p 127.0.0.1:8080:8080 \
  -e TZ=UTC \
  -v /path/to/your/config:/config \
  -v /path/to/your/data:/data \
  masvio/transfer-agent:latest

Supported Architectures:

Architecture Tag Latest version
x86-64 latest 2.8.1
arm64 latest 2.8.1

Download masv-agent

You can download the latest version of pre-packaged binaries of masv-agent for your operating system using the links below:

OS Arch Version Download link
linux amd64 2.8.1 masv-agent-linux-amd64.zip
darwin amd64 2.8.1 masv-agent-macos-amd64.zip
windows amd64 2.8.1 masv-agent-windows-amd64.zip

The zip package contains the masv-agent binary (versioned), along with a swagger API spec file that documents all the agent API end points.

Note

If you need a binary build for a different CPU architecture (e.g. i386 or arm), please contact team@masv.io.

Running the agent

To start the agent, simply run the masv-agent binary. By default, the service will attempt to start an http server listening locally on port 8080. You can customize the listening behaviour, like using different listening schema, specifying listen IP address and changing port by passing -listen argument. For example:

masv-agent -listen http://127.0.0.1:8888

Listening scheme/port

The following listening schemas are supported:

  • Plaintext http (no TLS). For example:
masv-agent -listen http://127.0.0.1:8123
  • HTTPS, using a self-signed TLS certificate. The certificate is generated at runtime each time the agent is started, so it does not persist. For example:
masv-agent -listen https://localhost:8443
  • Unix sockets (Linux and MacOS). For example (notice the triple slashes for absolute path):
masv-agent -listen unix:///path/to/socket/file.sock
  • Windows named pipes (Win 7 and later). For example
masv-agent -listen "\\.\pipe\name-of-pipe"

Help and more info

More customization is available via command line arguments, which can be viewed with

masv-agent -h

You can check which version of the agent you have by running

masv-agent -version

To compare the current version you have installed against the latest version release, run

masv-agent -version-check

Which will output something similar to the following:

current version:
  version: 1.0.0
  hash: b016705dd584c1de4bab2e061f03d1077d9259db
  timestamp: 2020-07-31T20:48:27+00:00

latest version:
  hash: b016705dd584c1de4bab2e061f03d1077d9259db
  version: 1.0.0