* To Do list ** DONE remove the escript* stuff from machi_util.erl ** DONE Add functions to manipulate 1-chain projections - Add epoch ID = epoch number + checksum of projection! Done via compare() func. ** DONE Change all protocol ops to add epoch ID ** DONE Add projection store to each FLU. *** DONE What should the API look like? (borrow from chain mgr PoC?) Yeah, I think that's pretty complete. Steal it now, worry later. *** DONE Choose protocol & TCP port. Share with get/put? Separate? Hrm, I like the idea of having a single TCP port to talk to any single FLU. To make the protocol "easy" to hack, how about using the same basic method as append/write where there's a variable size blob. But we'll format that blob as a term_to_binary(). Then dispatch to a single func, and pattern match Erlang style in that func. *** DONE Do it. ** DONE Finish OTP'izing the Chain Manager with FLU & proj store processes ** DONE Eliminate the timeout exception for the client: just {error,timeout} ret ** DONE Move prototype/chain-manager code to "top" of source tree *** DONE Preserve current test code (leave as-is? tiny changes?) *** DONE Make chain manager code flexible enough to run "real world" or "sim" ** DONE Add projection wedging logic to each FLU. ** DONE Implement real data repair, orchestrated by the chain manager ** DONE Change all protocol ops to enforce the epoch ID - Add no-wedging state to make testing easier? ** DONE Adapt the projection-aware, CR-implementing client from demo-day ** DONE Add major comment sections to the CR-impl client ** DONE Simple basho_bench driver, put some unscientific chalk on the benchtop ** TODO Create parallel PULSE test for basic API plus chain manager repair ** TODO Add client-side vs. server-side checksum type, expand client API? ** TODO Add gproc and get rid of registered name rendezvous *** TODO Fixes the atom table leak *** TODO Fixes the problem of having active sequencer for the same prefix on two FLUS in the same VM ** TODO Fix all known bugs/cruft with Chain Manager (list below) *** DONE Fix known bugs *** DONE Clean up crufty TODO comments and other obvious cruft *** TODO Re-add verification step of stable epochs, including inner projections! *** TODO Attempt to remove cruft items in flapping_i? ** TODO Move the FLU server to gen_server behavior?