nicer constructor
[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 * add WiFi nodes
52
53 API
54 * notification if data is retrieved by an external code
55 * events on data retrieval
56 * pluggable storage
57
58 NAT
59 * NAT type detection => need peer identifiers (x100 amplification)
60
61 MFOLD
62 * integrate multi-peer changes by Jori
63 * do global swarm stats
64
65 OTHER
66 * httpgw or nginx?
67 * Sha1Hash constructor ambiguity
68 * don't #include .cpp
69 * think of using HTTP (?) as a fallback
70 * add header/footer, better abstract to the draft
71 * Gertjan: separate peer from channel? cng ctrl per peer ?
72 * packing hashes into a single datagram (tracking 1000s)
73 * partial channels / lightweight channels
74 * socket array is misplaced