Skip to main content
Version: Next

Dfdaemon

A high performance P2P download daemon in Dragonfly that can download resources of different protocols. When user triggers a file downloading task, dfdaemon will download the pieces of file from other peers. Meanwhile, it will act as an uploader to support other peers to download pieces from it if it owns them.

Options

 -c, --config <CONFIG>
Specify config file to use

[default: /etc/dragonfly/dfdaemon.yaml]

--lock-path <LOCK_PATH>
Specify the lock file path

[default: /var/lock/dragonfly/dfdaemon.lock]

-l, --log-level <LOG_LEVEL>
Specify the logging level [trace, debug, info, warn, error]

[default: info]

--log-dir <LOG_DIR>
Specify the log directory

[default: /var/log/dragonfly/dfdaemon]

--log-max-files <LOG_MAX_FILES>
Specify the max number of log files

[default: 24]

--verbose
Specify whether to print log

-h, --help
Print help (see a summary with '-h')

-V, --version
Print version

Example

Download with Proxy

When the dfdameon setups, it setups a HTTP proxy. Users can download traffic is proxied to P2P networks via the HTTP Proxy.

Download with HTTP protocol

Configure Dfdaemon yaml file, The default path in Linux is /etc/dragonfly/dfdaemon.yaml in linux, refer to Dfdaemon.

Notice: set proxy.rules.regex to match the download path. If the regex matches, intercepts download traffic and forwards it to the P2P network.

proxy:
server:
port: 4001
rules:
- regex: 'example.*'
curl -v -x 127.0.0.1:4001 http://example.com/file.txt --output /tmp/file.txt

Download with HTTPS protocol

Download with Insecure HTTPS protocol

Configure Dfdaemon yaml file, The default path in Linux is /etc/dragonfly/dfdaemon.yaml in linux, refer to Dfdaemon.

Notice: set proxy.rules.regex to match the download path. If the regex matches, intercepts download traffic and forwards it to the P2P network.

proxy:
server:
port: 4001
rules:
- regex: 'example.*'

Download with Insecure HTTPS protocol:

curl -v -x 127.0.0.1:4001 https://example.com/file.txt --insecure --output /tmp/file.txt
Download with HTTPS protocol by using custom CA certificates

Generate a CA certificates:

openssl req -x509 -sha256 -days 36500 -nodes -newkey rsa:4096 -keyout ca.key -out ca.crt

Trust the certificate at the OS level.

  • Ubuntu:
cp ca.crt /usr/local/share/ca-certificates/ca.crt
update-ca-certificates
  • Red Hat (CentOS etc):
cp ca.crt /etc/pki/ca-trust/source/anchors/ca.crt
update-ca-trust

Configure Dfdaemon yaml file, The default path in Linux is /etc/dragonfly/dfdaemon.yaml in linux, refer to Dfdaemon.

Notice: set proxy.rules.regex to match the download path. If the regex matches, intercepts download traffic and forwards it to the P2P network.

proxy:
server:
port: 4001
caCert: ca.crt
caKey: ca.key
rules:
- regex: 'example.*'

Download with HTTPS protocol:

curl -v -x 127.0.0.1:4001 https://example.com/file.txt --output /tmp/file.txt

Log

1. set option --verbose if you want to print logs to Terminal
2. log path: /var/log/dragonfly/dfdaemon/