Out the box i2p+ snark is preconfigured to download faster. The java wrapper allocates more memory than vanilla (this can be changed pretty easily) and snark defaults to 16 tunnels max. Snark will also dynamically use less tunnels when appropriate which saves resources. Bigly BT and qbittorrent both don't do that.
You can get some extra info at the bottom by going into debug mode, column all the way to the right where the stop/start icons are go to the bottom of the torrent list table, hover over that area and a small beetle should appear.
Quick observations on BBT and qbittorrent: in my testing qbittorrent continues to be slow, which is unfortunate because i do love that client. It also doesn't support DHT, so for those reasons it's still sub-optimal for use in i2p (in my opinion). I feel that bigly and snark are roughly equivalent at sub 2MB/s speeds. I've seen BBT pull much higher than this when snark taps out for the same content, otherwise the speeds seem to be in the same ballpark. I'm aware there's some throttling in snark at least on the download side, but i'm mainly talking about upload.
If you're using spinning hdds, BBT is a full-featured (some might even say bloated) client, which lets you to setup things like caching. Lots of control over things. A feature I find useful that would be a good add in snark is the ability to start seeding something when there are less than x seeders, then stop if there are enough seeders. This way you can leverage swarms more efficiently.
Workarounds
The 2 problems i've been having are is snark doesn't act like i'd want it to when adding externally made .torrent files and directories. In BiglyBT for example, if you drop a directory and a .torrent file into a watched folder, it will automatically start these (as well as add those to a respective user-defined "filter" based on the folder it was added to).
I've had problems getting snark to find externally made .torrent files and directories. As far as I can tell it only accepts a certain subset of characters and changes the rest to "_". In my "move to seeder" part of my script I've added this to rename everything for snark:
Code: Select all
def snark_rename(string):
accepted_chars = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9','0','=','!','-','.','_',' ',',','%',"'",'(',')','+','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
y = []
for item in list(string):
if item in accepted_chars:
y.append(item)
else:
y.append('_')
s = ''.join(y)
return(s)
So far this has done the trick.
Another issue is when doing it this way the torrents go into a completed state and don't automatically start, which is not useful. I've tried a couple of workarounds like curl and selenium but it seems like the easiest solution might be to use the RPC plugin https://github.com/i2p/i2p.plugins.i2psnark-rpc, which i'm yet to do.
I'm open ears if anyone has suggestions for this, otherwise i'll update if I get that to work so you can just drop things in a directory and have it be ready to go like with bbt.