the nap bug
[swift-upb.git] / TODO
1     TRIAL TODO
2
3 STATE MACHINE
4 * imposed HINTs are terribly broken, resent for the data in flight 
5 * check ACK/HAVE redundancy
6 * HAVE overuses find_filtered
7 * set priorities on ranges
8 * small-progress update problem (aka peer nap)
9   guarantee size of updates < x% of data, on both ends
10 * pex is affected by peer nap
11 * how will tracker aggregate pexes?
12 * SWIFT_MSGTYPE_RCVD
13 * HAVE ALL / HAVE NONE
14 * aggregate ACKS (schedule for +x ms)
15 * channel close msg (hs 0)
16 * connection rotation / pex / pex_del
17 * misterious bug: Rdata (NONE)
18 * ?amend MAX_REORDER depending on rtt_dev
19
20 PERFORMANCE
21 * move to the.zett's binmaps
22 * optimize redundant HASH messages
23 * move to rolling HAVE queue
24 * 32 bit time field
25 * ?empty/full binmaps
26 * initiate RTT with prev RTT to host:port
27 * fractional cwnd
28
29 CACHING/FILES
30 * connection rotation
31 * file rotation
32 * real LRU/LFU
33 * file/hash-file re-open in read-only mode
34 * no cache recheck, failure-resistant
35 * completion mark
36 * unified events/callbacks
37 * move to 64-bit IO
38 * Transfer(fd) constructor
39 * think of sliding window(s)
40 * the ability to sniff file without downloading
41
42 MANIFOLD
43 * all-swarm performance stats
44 * run chained setups (cmd line protocol subsetting)
45 * implement: multiple swift instances per server
46 * run thousand-daemon caching tests (use httpgw)
47 * use a dedicated tracker
48 * add NATs to the setup
49 * recover mfold.libswift.org
50 * integrate Windowses
51
52 API
53 * pluggable storage
54
55 NAT
56 * NAT type detection => need peer identifiers (x100 amplification)
57
58 MFOLD
59 * integrate multi-peer changes by Jori
60 * do global swarm stats
61
62 OTHER
63 * httpgw or nginx?
64 * Sha1Hash constructor ambiguity
65 * don't #include .cpp
66 * think of using HTTP (?) as a fallback
67 * add header/footer, better abstract to the draft
68 * Gertjan: separate peer from channel? cng ctrl per peer ?
69 * packing hashes into a single datagram (tracking 1000s)
70 * partial channels / lightweight channels
71
72 THOUGHTS
73 * 6 degrees of sep = 3-hop TorrentSmell
74 * 60% immediately not connectable
75 * support traffic