summaryrefslogtreecommitdiffhomepage
path: root/debug-me.hs
Commit message (Collapse)AuthorAge
* refactor out LogJoey Hess2017-04-18
|
* improve typesJoey Hess2017-04-18
| | | | Including adding a timestamp to logs
* cleanupJoey Hess2017-04-18
|
* add --show-hashesJoey Hess2017-04-18
|
* fix backlog truncation bugJoey Hess2017-04-18
| | | | | | That I was stuck on for hours yesterday, oops! This commit was sponsored by Bruno BEAUFILS on Patreon.
* add a log from developer's perspectiveJoey Hess2017-04-17
|
* minor cleanupdJoey Hess2017-04-17
|
* beep on RejectedJoey Hess2017-04-17
|
* developer side checking of chain almost doneJoey Hess2017-04-17
| | | | | | | Seems to work well with networkDelay on both sides now. However, typing "top" causes the "to" to be accepted, but the "p" is rejected.
* Include Entered in the Activity chainJoey Hess2017-04-17
| | | | | | | | So when the developer makes 2 keypresses close together, they send the second Activity Entered with the first Activity Entered as its HashPointer. This allows the developer to prove the order they did things. This commit was sponsored by Peter Hogg on Patreon.
* add Rejected and tag hashes by typeJoey Hess2017-04-17
| | | | | | | | | | | | | | Need a way for the user to indicate when an Activity Entered is Rejected. Changed hashing to include type tags, so Acticity Entered and Activity Seen can never hash to the same hash. Got debug-me.hs to compile after these changes, but currently it's buggy after Activity Entered is Rejected. Started protocol.txt documentation. This commit was sponsored by Francois Marier on Patreon.
* add --graphviz modeJoey Hess2017-04-14
| | | | This commit was sponsored by Shane-o on Patreon.
* log JSON to debug-me.log (for now)Joey Hess2017-04-14
| | | | | | useful for debugging, etc This commit was sponsored by Alexander Thompson on Patreon.
* improve JSONJoey Hess2017-04-14
| | | | | | | | | | | | | | | | | | | | | | | Most of the time, ByteStrings will be able to be encoded as utf8, so avoid base64 when not needed. Adjusted some of the types in order to generate more usual JSON. In particular, removed StartActivity. The JSON now looks like this (with the signature still not populated): {"signature":{"v":""},"prevActivity":{"hashValue":{"v":"3b1abe614dd43bdb2d9a56777884e2d0f3bac9796e2d25c1ad52bb689c117286"},"hashMethod":"SHA256"},"activity":{"echoData":{"v":""},"enteredData":{"v":"l"}}} 203 bytes to send a single keystroke is not great when there's really only 1+64(hash) bytes of unique data. So, may end up adding a wire encoding on top of this. But, JSON is good to have for storage of the proofs, etc. Also, it does compress well. Two such JSON objects gzip -9 to 219 bytes, and three to 265 bytes. So, 37 bytes per keystroke. This is *exactly* as efficient as gzip -9 of $c$hash formatted data. This commit was sponsored by Jack Hill on Patreon.
* add JSON serializationJoey Hess2017-04-14
| | | | | | | Fairly straightforward, but did have to decide how to encode all the ByteStrings, since they are not necessarily utf-8. Used base64. This commit was sponsored by Henrik Riomar on Patreon.
* misc minor cleanupsJoey Hess2017-04-13
|
* squash some warningsJoey Hess2017-04-13
|
* use posix-pty, and forward SIGWINCHJoey Hess2017-04-13
| | | | | | | | | | | | | | | | I discovered the posix-pty library while looking for a way to forward SIGWINCH to the slave pty. It's taken care of a lot of nasty pty handling details, so let's use it! Unfortunately, this broke control-d exiting debug-me, which used to work great. I think that the problem is that readPty never returns B.empty, even on control-d. Or perhaps, posix-pty is doing something to the pty that prevents control-d getting through. I kept all the withoutMode code; at least withoutMode EnableEcho is still needed. This commit was sponsored by Jochen Bartl on Patreon.
* latency simulationsJoey Hess2017-04-12
|
* fix bugJoey Hess2017-04-12
| | | | Forgot to include the most recent backlog when checking echoData
* simulate laggy networkJoey Hess2017-04-12
|
* use Activity types for user<->developer communicationJoey Hess2017-04-12
| | | | | | | | | | | | | | | Still all in a single process with no serialization, but now there are separate threads for the user and developer sides, and they communicate Activity back and forth. Signatures are not checked yet, but both user and developer check that the other side is sending Activity that forms a valid hash chain with previous Activity. The echo simulation is included, but may be buggy. This seems to work well enough with 0 latency at least. This commit was sponsored by Thom May on Patreon.
* add a delay to input, simulating a laggy networkJoey Hess2017-04-11
|
* debug-me is able to run a shell in a slave ptyJoey Hess2017-04-11
| | | | | | | Lots of terminal mode fun. Has a few warts still, but it works well enough to be comfortable, and even vim works ok. This commit was sponsored by John Peloquin on Patreon.
* some basic data types and hashing to start debug-meJoey Hess2017-04-11
This commit was sponsored by Denis Dzyubenko on Patreon.