mirror of
https://github.com/YGGverse/aquatic.git
synced 2026-04-02 10:45:30 +00:00
Update TODO: write more general information at top
This commit is contained in:
parent
6c26331ffb
commit
a471d97620
1 changed files with 94 additions and 35 deletions
129
README.md
129
README.md
|
|
@ -6,13 +6,70 @@ Consists of separate executables:
|
||||||
* `aquatic_udp`: UDP BitTorrent tracker
|
* `aquatic_udp`: UDP BitTorrent tracker
|
||||||
* `aquatic_ws`: WebTorrent tracker (experimental)
|
* `aquatic_ws`: WebTorrent tracker (experimental)
|
||||||
|
|
||||||
|
These are described in detail below, after the general information.
|
||||||
|
|
||||||
|
## Copyright and license
|
||||||
|
|
||||||
Copyright (c) 2020 Joakim Frostegård
|
Copyright (c) 2020 Joakim Frostegård
|
||||||
|
|
||||||
Distributed under Apache 2.0 license (details in `LICENSE` file.)
|
Distributed under Apache 2.0 license (details in `LICENSE` file.)
|
||||||
|
|
||||||
## aquatic_udp
|
## Installation prerequisites
|
||||||
|
|
||||||
Aims to implements the [UDP BitTorrent protocol](https://libtorrent.org/udp_tracker_protocol.html), except that it:
|
- Install rust with rustup (stable rust is recommended).
|
||||||
|
- Install cmake with your package manager.
|
||||||
|
- Clone the git repository and refer to the next section.
|
||||||
|
|
||||||
|
## Run
|
||||||
|
|
||||||
|
The command line interfaces for `aquatic_udp` and `aquatic_ws` are identical.
|
||||||
|
To run the respective tracker, just run its binary. You can also run any of
|
||||||
|
the helper scripts, which will compile the binary for you and pass on any
|
||||||
|
command line parameters.
|
||||||
|
|
||||||
|
To run with default settings:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
./scripts/run-aquatic-udp.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
```sh
|
||||||
|
./scripts/run-aquatic-ws.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
To print default settings to standard output, pass the "-p" flag to the binary:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
./scripts/run-aquatic-udp.sh -p
|
||||||
|
```
|
||||||
|
|
||||||
|
```sh
|
||||||
|
./scripts/run-aquatic-ws.sh -p
|
||||||
|
```
|
||||||
|
|
||||||
|
To adjust the settings, save the output of the previous command to a file and
|
||||||
|
make your changes. The values you will most likely want to adjust are
|
||||||
|
`socket_workers` (number of threads reading from and writing to sockets) and
|
||||||
|
`address` under the `network` section (listening address). This goes for both
|
||||||
|
`aquatic_udp` and `aquatic_ws`. Some documentation of the various options is
|
||||||
|
available in source code files `aquatic_udp/src/lib/config.rs` and
|
||||||
|
`aquatic_ws/src/lib/config.rs`.
|
||||||
|
|
||||||
|
Then run the binaries with a "-c" argument pointing to the file, e.g.:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
./scripts/run-aquatic-udp.sh -c "/path/to/aquatic-udp-config.toml"
|
||||||
|
```
|
||||||
|
|
||||||
|
```sh
|
||||||
|
./scripts/run-aquatic-ws.sh -c "/path/to/aquatic-ws-config.toml"
|
||||||
|
```
|
||||||
|
|
||||||
|
## aquatic_udp: UDP BitTorrent tracker
|
||||||
|
|
||||||
|
Aims to implements the
|
||||||
|
[UDP BitTorrent protocol](https://libtorrent.org/udp_tracker_protocol.html),
|
||||||
|
except that it:
|
||||||
|
|
||||||
* Doesn't care about IP addresses sent in announce requests. The packet
|
* Doesn't care about IP addresses sent in announce requests. The packet
|
||||||
source IP is always used.
|
source IP is always used.
|
||||||
|
|
@ -20,22 +77,7 @@ Aims to implements the [UDP BitTorrent protocol](https://libtorrent.org/udp_trac
|
||||||
|
|
||||||
Supports IPv4 and IPv6.
|
Supports IPv4 and IPv6.
|
||||||
|
|
||||||
### Installation and usage
|
Default configuration:
|
||||||
|
|
||||||
Install rust with rustup, cmake with your package manager and clone the
|
|
||||||
repository. Then, compile and run `aquatic_udp`:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
./scripts/run-aquatic-udp.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
To print default configuration as toml, pass the "-p" flag to the binary:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
./scripts/run-aquatic-udp.sh -p
|
|
||||||
```
|
|
||||||
|
|
||||||
Example output:
|
|
||||||
|
|
||||||
```toml
|
```toml
|
||||||
socket_workers = 1
|
socket_workers = 1
|
||||||
|
|
@ -67,20 +109,11 @@ chroot_path = '.'
|
||||||
user = 'nobody'
|
user = 'nobody'
|
||||||
```
|
```
|
||||||
|
|
||||||
To adjust the settings, save this text to a file and make your changes. The
|
|
||||||
values you will most likely want to adjust are `socket_workers` (number of
|
|
||||||
threads reading from and writing to sockets) and `network.address`. (Some
|
|
||||||
documentation of the various options is available in source code file
|
|
||||||
`aquatic_udp/src/lib/config.rs`.) Then run aquatic with a "-c" argument
|
|
||||||
pointing to the file, e.g.:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
./scripts/run-aquatic-udp.sh -c "tmp/aquatic-udp.toml"
|
|
||||||
```
|
|
||||||
|
|
||||||
### Benchmarks
|
### Benchmarks
|
||||||
|
|
||||||
Performance was compared to [opentracker](http://erdgeist.org/arts/software/opentracker/) using `aquatic_udp_load_test`.
|
Performance was compared to
|
||||||
|
[opentracker](http://erdgeist.org/arts/software/opentracker/) using
|
||||||
|
`aquatic_udp_load_test`.
|
||||||
|
|
||||||
Server responses per second, best result in bold:
|
Server responses per second, best result in bold:
|
||||||
|
|
||||||
|
|
@ -95,14 +128,40 @@ Server responses per second, best result in bold:
|
||||||
|
|
||||||
(See `documents/aquatic-load-test-2020-04-19.pdf` for details.)
|
(See `documents/aquatic-load-test-2020-04-19.pdf` for details.)
|
||||||
|
|
||||||
## aquatic_ws
|
## aquatic_ws: WebTorrent tracker
|
||||||
|
|
||||||
Experimental WebTorrent tracker.
|
Experimental [WebTorrent](https://github.com/webtorrent) tracker, not yet
|
||||||
|
recommended for production use.
|
||||||
|
|
||||||
Run `aquatic_ws`:
|
Default configuration:
|
||||||
|
|
||||||
```sh
|
```toml
|
||||||
./scripts/run-aquatic-ws.sh
|
socket_workers = 1
|
||||||
|
|
||||||
|
[network]
|
||||||
|
address = '127.0.0.1:3000'
|
||||||
|
use_tls = false
|
||||||
|
tls_pkcs12_path = ''
|
||||||
|
tls_pkcs12_password = ''
|
||||||
|
max_scrape_torrents = 255
|
||||||
|
max_offers = 10
|
||||||
|
peer_announce_interval = 120
|
||||||
|
poll_event_capacity = 4096
|
||||||
|
poll_timeout_milliseconds = 50
|
||||||
|
|
||||||
|
[handlers]
|
||||||
|
max_requests_per_iter = 10000
|
||||||
|
channel_recv_timeout_microseconds = 200
|
||||||
|
|
||||||
|
[cleaning]
|
||||||
|
interval = 30
|
||||||
|
max_peer_age = 180
|
||||||
|
max_connection_age = 180
|
||||||
|
|
||||||
|
[privileges]
|
||||||
|
drop_privileges = false
|
||||||
|
chroot_path = '.'
|
||||||
|
user = 'nobody'
|
||||||
```
|
```
|
||||||
|
|
||||||
## Trivia
|
## Trivia
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue