add .gitignore
[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 * Tdata repetitions bug
20
21 PERFORMANCE
22 * move to the.zett's binmaps
23 * optimize redundant HASH messages
24 * move to rolling HAVE queue
25 * 32 bit time field
26 * ?empty/full binmaps
27 * initiate RTT with prev RTT to host:port
28 * fractional cwnd
29
30 CACHING/FILES
31 * connection rotation
32 * file rotation
33 * real LRU/LFU
34 * file/hash-file re-open in read-only mode
35 * no cache recheck, failure-resistant
36 * completion mark
37 * unified events/callbacks
38 * move to 64-bit IO
39 * Transfer(fd) constructor
40 * think of sliding window(s)
41 * the ability to sniff file without downloading
42
43 MANIFOLD
44 * all-swarm performance stats
45 * run chained setups (cmd line protocol subsetting)
46 * implement: multiple swift instances per server
47 * run thousand-daemon caching tests (use httpgw)
48 * use a dedicated tracker
49 * add NATs to the setup
50 * recover mfold.libswift.org
51 * integrate Windowses
52
53 API
54 * pluggable storage
55
56 NAT
57 * NAT type detection => need peer identifiers (x100 amplification)
58
59 MFOLD
60 * integrate multi-peer changes by Jori
61 * do global swarm stats
62
63 OTHER
64 * httpgw or nginx?
65 * Sha1Hash constructor ambiguity
66 * don't #include .cpp
67 * think of using HTTP (?) as a fallback
68 * add header/footer, better abstract to the draft
69 * Gertjan: separate peer from channel? cng ctrl per peer ?
70 * packing hashes into a single datagram (tracking 1000s)
71 * partial channels / lightweight channels
72
73 THOUGHTS
74 * 6 degrees of sep = 3-hop TorrentSmell
75 * 60% immediately not connectable
76 * support traffic