]> Sergey Matveev's repositories - btrtrc.git/blob - TODO
Add TODO item
[btrtrc.git] / TODO
1  * Track upload and download data.
2  * Make use of sparse file regions in download data for faster hashing. This is available as whence 3 and 4 on some OS?
3  * When we're choked and interested, are we not interested if there's no longer anything that we want?
4  * dht: Randomize triedAddrs bloom filter to allow different Addr sets on each Announce.
5  * data/blob: Deleting incomplete data triggers io.ErrUnexpectedEOF that isn't recovered from.
6  * UL/DL rate-limiting.
7  * Handle Torrent being dropped before GotInfo.
8  * Track connection chunk contributions to successful and failed piece hashes. Only drop the worst performer on a bad hash. Maybe block its IP.
9  * Remove assumptions that the first piece requested will be the first that peers will send.
10  * Clean-up DHT transaction code, it's just nasty.
11  * Handle wanted pieces more efficiently, it's slow in in fillRequests, since the prioritization system was changed.
12  * Determine if we should accept connections, even if we just close them. http://stackoverflow.com/questions/35108571/can-i-leave-sockets-in-syn-recv-until-im-interested-in-accepting
13  * Implement BEP 40.
14  * Rewrite tracker package to be announce-centric, rather than client. Currently the clients are private and adapted onto by the Announce() func.
15  * Move tracker management code in the torrent package to its own file.
16  * Optimize Reader.posChanged, it triggers all piece priorities to be recomputed.