asapach / peerflix-server

Streaming torrent client for Node.js with web ui.
MIT License
1.31k stars 587 forks source link

Built-in block list ? #173

Open Coriou opened 4 years ago

Coriou commented 4 years ago

I think it'd be great to have sensible block list defaults. I've looked at the block list implementation in torrent-stream which is kinda meh.

I think it'd make sense to implement the block list at this application's level. I've prototyped an implementation using blocklist-ipsets which works nicely. It introduces no external dependencies and uses torrent-stream's "block" feature.

What I'm not sure about though is should we pull the IP list at each engine load (potentially overkill really) or do we have a script loading the IPs periodically to block and saving them to a file locally ?

Thoughts ?

Here's a demo implementation

asapach commented 4 years ago

I'd rather keep it simple and let the users provide their own blocklist file. This could be done by convention: e.g. on start we look for the file called ~/.config/peerflix-server/blocklist; if it exists we parse it and pass to torrent-stream. Optionally we could watch for the file changes and update as necessary, if there is an external process which updates the file.

Coriou commented 4 years ago

Sounds good to me ! I'll work on it, maybe tomorrow, should be easy enough.

Should we ship a default blocklist ?

asapach commented 4 years ago

Should we ship a default blocklist ?

Only if there is one which is relatively static and small.

Coriou commented 4 years ago

Thought about a way of doing this, and all are really bad:

I think a better way would be to implement it at the torrent-stream level actually ... I've mentioned it there, let's see