3.5 KiB
Approved torrents list
Package torrentapproval can be used for only allow or block
specified hashes or block specified hashes.
Functionality
As said above, there are two modes of approval: white list and black list.
If mode is white list (invert set to false), tracker works in
semi-private mode, which means, than peers can could share and receive info
about only specified list of torrents' hashes.
I.e.: if configuration contains hash AAAA, but peer announces hash BBBB
tracker will return unapproved torrent message back to peer.
If mode is black list (invert set to true), tracker will allow all hashes
except specified.
Hash sources
There are two sources of hashes: list and directory.
-
listis the static set of hashes, specified in configuration file. -
directorywill watch for*.torrentfiles in specified path and append/delete records from storage. This source will parse all existing files at start and then periodically watch for new files to add, or for delete events to remove hash from storage. -
s3will search for torrent files in specified S3-compatible storage (AWS S3, MinIO, etc.) and append/delete records from storage. This source will parse all existing files at start and then periodically watch for new files to add, or for delete events to remove hash from storage.
Note: if storage is not memory, and preserve option set to true, records
will be persisted in storage until somebody or something (different tool with access
to storage) won't delete it.
Configuration
This middleware provides the following parameters for configuration:
initial_source- source type:listordirectorystorage- storage configuration to store data, structure is same as globalstoragesection. Ifnameis empty orinternalglobal storage will be usedconfiguration- options for specified sourcelist:hash_list- list of HEX encoded hashesinvert- working mode:true- black list,false- white liststorage_ctx- name of storage context where to store data. It may be redis hash key, DB table name etc.
directory:path- directory to watchperiod- time between two directory checksinvertandstorage_ctxhas the same meaning aslist's options
s3:endpoint* - base URL of S3 providerregion* - S3 region to connect tokey_id* - S3 access key IDkey_secret* - S3 secret access keysession_token* - S3 temporary security credentialbucket- S3 bucketprefix- prefix path to search entriessuffix- suffix to filter returned entries, such as extension (e.g..torrent)period- time between two S3 checksinvertandstorage_ctxhas the same meaning aslist's options
Note: s3 options marked with * and any other specific options can be omitted in MoChi and can be provided
with environment variables or in $HOME/.aws/* files (see AWS SDK documentation).
Configuration example:
An example config might look like this:
mochi:
prehooks:
- name: torrent approval
options:
initial_source: list
storage:
name: internal
config:
configuration:
hash_list: [ "AAA", "BBB" ]
path: "some/path"
period: 1m
invert: false
storage_ctx: APPROVED_HASH