https://xd-torrent.github.io/
https://github.com/majestrate/XD/activity?ref=master
2. There seems to be a general lack of complete and up to date documentation. For example, I believe I've seen 3 variations of what the config file is supposed to be named.
Just start it (./XD) and it'll create torrents.ini and trackers.ini. Then use those.
3. It is unclear how you're supposed to stop it. CTRL+C or 'pkill XD' seems to work. I've not found a way to end it more gracefully. By that I mean that it doesn't seem to tell the trackers that it's shutting down, and it sometimes leaves the SAM session going in i2pd.
Sometimes it also brings the i2pd node down with it when shutting down. I consider this to be an i2pd bug though.
Perhaps i2pd commit 1d7c7ac fixes some of these issues.
https://github.com/PurpleI2P/i2pd/compa ... 2b0132d221
I haven't tried it with any of the other i2p routers yet.
4. When adding torrents with XD-CLI add, don't forget "" around what you're trying to add. Otherwise the command line will not work with the & character in the postman or magnet link.
5. When adding magnet links with XD-CLI add, everything after the magnet hash seems to be ignored.
6. Adding torrent files from postman links seems to mostly work fine. However, downloading a torrent file will sometimes fail. Even if it says OK. Check that it's actually added.
Code: Select all
./XD-CLI list | grep <infohash>
8. If you want to seed something new, first copy or move the data file(s) into the downloads folder and then move the .torrent file into the downloads folder. Once it's started, you can delete the .torrent file or move it somewhere else. There will be a version of it in metadata/infohash.torrent that XD uses.
9. When torrents are completed, they are moved. Except for empty folders which remain for some reason.
Edit : You can remove them with this:
Code: Select all
find storage/downloads/ -type d -exec rmdir -p {} \; 2> /dev/null
Code: Select all
[i2p]
i2cp.leaseSetEncType=4,0
inbound.quantity=5
outbound.quantity=5
inbound.lengthVariance=1
outbound.lengthVariance=1
address=127.0.0.1:7654
disabled=0
11. Upload and download speeds seem to be about the same as with i2psnark. Memory usage is much lower that i2psnark. CPU usage is mostly barely noticeable (usually less than 5% for me, but I suppose it depends on your computer and how many torrents are loaded etc). Edit : The task manager I used to check this was garbage. According to ps aux and htop and top it uses a lot more CPU than 5% most of the time. Memory usage is still much lower though.
12. The ratio info seems to be useless for torrents that weren't added after the most recent start of XD. (Perhaps related to me not knowing how to close it correctly?)
13. If downloading/uploading faster than 1MB/s, the web interface will not show the decimals. Use XD-CLI list to show the decimals.
14. The WebUI requires javascript to be enabled.
15. Sometimes I get a lot of "piece missmatch" warnings. Bug? Someone intentionally sending garbage data? zeroes somehow treated as data? Unsure what they mean and if they matter.
16. If you stop a finished torrent you have to move its data from seeding to downloads before starting it again, otherwise it'll just try to redownload from scratch in the downloads directory.
17. What the options to XD-CLI seems to actually do:
Code: Select all
$ ./XD-CLI help
usage: ./XD-CLI [help|version|list|add http://somesite.i2p/some.torrent|set-piece-window n|remove infohash|delete infohash|stop infohash|start infohash]
Code: Select all
help : Shows the help
version : Shows the version
list : List all torrents and info.
add : Add torrent or magnet.
Says OK even if it fails. Make sure to verify that it's actually loaded.
You can also download the torrent file in some other way and move it to
the downloads directory. Once it's loaded you can more or remove it.
set-piece-window : ??? (If someone knows then please let me know.)
remove : Removes torrent from list.
It will be removed from the list but its contents and metadata files will remain.
delete : Removes from list, deletes its data and most/some of its metadata files.
Does not seem to always remove <infohash>.stats and <infohash>.settings.
Unsure if intentional or bug.
No effect if done on torrent that can't be seen with 'XD-CLI list'.
stop : Stop active torrent.
It will be removed from 'XD-CLI list', but its contents and metadata will remain.
Will start again if you restart XD.
Possibly bugged? Behaves the same way as remove.
start : Doesn't seem to do anything. Presumably the stop command is supposed to change
its state but keep it in the list, and then the start command can start it?
Code: Select all
#!/bin/bash
tempfile="$(/usr/bin/mktemp --tmpdir xdstatus.XXXXXXXXXX)"
if [ ! -r "${tempfile}" ] || [ ! -w "${tempfile}" ] ; then echo "Unable to create and/or use temp file ${tempfile}" ; exit 1 ; fi
./XD-CLI list > "${tempfile}"
if [ $(cat "${tempfile}" | grep -c "] progress: 0.00$") -gt 0 ] ; then
{
echo
echo "No Progress"
echo "==========="
cat "${tempfile}" | grep "] progress: 0.00$"
} ; fi
if [ $(cat "${tempfile}" | grep "] progress: " | grep -cv "] progress: 100.00$") -gt 0 ] ; then
{
echo
echo "Incomplete"
echo "=========="
cat "${tempfile}" | egrep "] progress: |^downloading" | grep -v "progress: 100.00$" | grep -v "tx=0.00B/sec rx=0.00B/sec" | sed "s/downloading/ downloading/g"
}; fi
if [ $(cat "${tempfile}" | grep -c "] progress: 100.00$") -gt 0 ] ; then
{
echo
echo "Finished"
echo "========"
cat "${tempfile}" | egrep "] progress: 100.00$|^seeding" | grep -v "seeding tx=0.00B/sec" | sed "s/seeding/ seeding/g"
} ; fi
echo
echo "Summary"
echo "======="
echo -n "No Progress : " ; cat "${tempfile}" | grep -c "] progress: 0.00"
echo -n "Incomplete : " ; cat "${tempfile}" | grep "] progress: " | grep -cv "] progress: 100.00"
echo -n "Finished : " ; cat "${tempfile}" | grep -c "] progress: 100.00"
echo -n "Leeching : " ; cat "${tempfile}" | grep "downloading tx=" | grep -cv "rx=0.00B/sec"
echo -n "Seeding : " ; cat "${tempfile}" | grep "seeding tx=" | grep -cv "tx=0.00B/sec"
echo -n "Uploading : " ; cat "${tempfile}" | egrep "downloading tx=|seeding tx=" | grep -cv "tx=0.00B/sec"
echo -n "Active : " ; cat "${tempfile}" | egrep "downloading tx=|seeding tx=" | grep -cv "tx=0.00B/sec rx=0.00B/sec"
echo -n "Summary : " ; cat "${tempfile}" | grep " torrents: tx="
echo
echo "Notes"
echo "====="
echo "Leeching : Downloading."
echo "Seeding : Uploading finished torrent."
echo "Uploading : Uploading incomplete or finished torrent."
echo "Active : Uploading and/or downloading."
echo "There will be some overlap. For example, torrents with 0.00% completion are listed as both no progress and incomplete."
echo
rm "${tempfile}"
exit 0