diff options
author | Bryan Newbold <bnewbold@robocracy.org> | 2018-01-21 23:28:46 -0800 |
---|---|---|
committer | Bryan Newbold <bnewbold@robocracy.org> | 2018-01-21 23:28:51 -0800 |
commit | 0069b123b9bf787af46b01517aa27b1fb7ade9d2 (patch) | |
tree | 682736eedf5e3ba361b790d9670a62b48728d1bb /TODO | |
parent | 7989a5f2979361b0ebdcdaea41cccbd02c38fdd1 (diff) | |
download | geniza-0069b123b9bf787af46b01517aa27b1fb7ade9d2.tar.gz geniza-0069b123b9bf787af46b01517aa27b1fb7ade9d2.zip |
yet more notes
Diffstat (limited to 'TODO')
-rw-r--r-- | TODO | 37 |
1 files changed, 34 insertions, 3 deletions
@@ -1,14 +1,44 @@ next: -- DatPeer wrapper API -- Synchronizer API +- DatConnection + => u32 for feed index + => change sockaddr argument... not sure to what, maybe ToSockAddr? + => rip out more crap ("receive some", no_delay, registration extras) + => how to accept() (from_stream() refactor?) +- PeerThread + => proper error propagation + => don't store state (bitfield) in PeerThread itself, leave to Synchronizer + => to start, just use feed index (don't keep key/index table) + => need "self peer id" passed around + => keep "peer handle"... in the future, should be based on remote handle returned +- Synchronizer + => probably an options builder + => generate "self peer id" + => "wanted" bitmap + => design statemachine (global and per-peer) + => actions for each message type + => PeerState helper, with bitfield + => when a peer is ready, find a mutal chunk option, mark as in progress + => some logic to do drive stuff (add new registers, etc) + => chan-signal to shutdown +- get everything to compile - clean up node bitfield implementation -- "insert" API for HyperRegister + => use bit_vec (bit-vec = "0.4.4") instead of bit_field (remove) +- "insert" API for HyperRegister (when we have a signed Data message) +- how to create a Data message in response to a Request - sparse register clone - 'geniza clone' command - 'geniza checkout' command - 'geniza init', 'geniza commit' commands +threaded sync: +- rust stdlib async TCP? +- event loop runner +- channel polling +- polling for connections (channels + async TCP) +- UNIX signal handling +- later: accepting inbound connections + specific tests: - drive children array: deep directory nesting (like 'tree' example) - sleep info a variety of bad sleep files, should error @@ -62,3 +92,4 @@ Backburner: https://github.com/ia0/data-encoding - sendfile() or splice() for disk-to-disk copying? - Rust FS API example: https://docs.rs/zbox/0.1.3/zbox/ +- "bytes" crate |