summaryrefslogtreecommitdiffhomepage
path: root/debug-me.hs
Commit message (Collapse)AuthorAge
* --verify modeJoey Hess2017-05-04
| | | | This commit was sponsored by Thom May on Patreon.
* add license headers to all source filesJoey Hess2017-04-30
|
* reorgJoey Hess2017-04-28
|
* control window and chattingJoey Hess2017-04-28
| | | | Works!
* added debug-me --watch modeJoey Hess2017-04-21
| | | | This commit was sponsored by Ewen McNeill.
* add --download modeJoey Hess2017-04-21
| | | | | | | Nice, was able to reuse all the protocol stuff from Role.Developer for this. This commit was sponsored by Fernando Jimenez on Patreon.
* initial http serverJoey Hess2017-04-21
| | | | | | | | | | | | Incomplete, but the client is able to connect and send messages which get logged. Split up debug-me.hs into Role/* Switched from cereal to binary, since websockets operate on lazy ByteStrings, and using cereal would involve a copy on every receive. This commit was sponsored by Boyd Stephen Smith Jr. on Patreon.
* http server scaffoldingJoey Hess2017-04-21
|
* add missing logJoey Hess2017-04-19
|
* fully working signaturesJoey Hess2017-04-19
| | | | This commit was sponsored by Ethan Aubin.
* reorganized message typesJoey Hess2017-04-19
| | | | | | | | | Make Control messages be out-of-band async messages, without a pointer to a previous message. And then followed the type change through the code for hours.. This commit was sponsored by Nick Daly on Patreon.
* clarify contentJoey Hess2017-04-18
| | | | backlog is not only Seen activities now
* initial CryptoJoey Hess2017-04-18
| | | | | Will use Ed25519 because it's from DJB and well regarded and in common use now.
* memory DOS preventionJoey Hess2017-04-18
| | | | | | | | | | | | Prevent DOS of user side by limiting the size of the BackLog that is maintained. This should not cause problems in even high latency environments, and should prevent memory use > 16 mb. The developer side does not keep much data, other than a list of the Hashes of things it has recently sent, so is not susceptable to memory DOS. This commit was sponsored by Brock Spratlen on Patreon.
* add --replay optionJoey Hess2017-04-18
| | | | This commit was sponsored by Ole-Morten Duesund on Patreon.
* 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.