Only touch a bucket if a find request targets it.
[quix0rs-apt-p2p.git] / TODO
diff --git a/TODO b/TODO
index 0654dba2b87abfd22450402df4f2c7de704e42b9..bd8283c904d6ed372c9a84136ce204422bb6e183 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,3 +1,13 @@
+Rotate DNS entries for mirrors more reliably.
+
+Currently the mirrors are accessed by DNS name, which can cause some
+issues when there are mirror differences and the DNS gets rotated.
+Instead, the HTTP Downloader should handle DNS lookups itself, store
+the resulting addresses, and send requests to IP addresses. If there
+is an error from the mirror (hash check or 404 response), the next IP
+address in the rotation should be used.
+
+
 Use GPG signatures as a hash for files.
 
 A detached GPG signature, such as is found in Release.gpg, can be used
@@ -47,6 +57,19 @@ distributions. They need to be dealt with properly by
 adding them to the tracking done by the AptPackages module.
 
 
+Improve the estimation of the total number of nodes
+
+The current total nodes estimation is based on the number of buckets.
+A better way is to look at the average inter-node spacing for the K
+closest nodes after a find_node/value completes. Be sure to measure
+the inter-node spacing in log2 space to dampen any ill effects. This
+can be used in the formula:
+        nodes = 2^160 / 2^(average of log2 spacing)
+The average should also be saved using an exponentially weighted
+moving average (of the log2 distance) over separate find_node/value
+actions to get a better calculation over time.
+
+
 Improve the downloaded and uploaded data measurements.
 
 There are 2 places that this data is measured: for statistics, and for