Greg Fitzgerald
97449cee43
Allow events to hold any kind of data
2018-02-26 15:31:01 -07:00
Greg Fitzgerald
ab5252c750
Move entry verification out of Entry impl
2018-02-26 14:39:01 -07:00
Greg Fitzgerald
05a27cb34d
Merge pull request #22 from garious/add-transaction
...
Extend the event log with a Transaction event to transfer possession
2018-02-26 11:26:58 -07:00
Greg Fitzgerald
b02eab57d2
Extend the event log with a Transaction event to transfer possession
...
This implementation assumes 'from' is the current owner of 'data'.
Once that's verified, the signature ensures that nobody modified
'data' (the asset being transferred) or 'to' the entity taking
ownership.
Fixes #14
2018-02-26 11:09:11 -07:00
Greg Fitzgerald
b8d52cc3e4
Make the Discovery event into a struct instead of a tuple
2018-02-24 11:15:03 -07:00
Greg Fitzgerald
7d9bab9508
Update rendered demo diagram
2018-02-24 11:09:00 -07:00
Greg Fitzgerald
944181a30e
Version bump
2018-02-24 11:06:08 -07:00
Greg Fitzgerald
d8dd50505a
Merge pull request #21 from garious/add-signatures
...
Add signatures
2018-02-24 10:47:25 -07:00
Greg Fitzgerald
d78082f5e4
Test bad signature
2018-02-24 10:27:51 -07:00
Greg Fitzgerald
08e501e57b
Extend the event log with a Claim event to claim possession
...
Unlike a Discovery event, a Claim event associates a public key
with a hash. It's intended to to be used to claim ownership of
some hashable data. For example, a graphic designer could claim
copyright by hashing some image they created, signing it with
their private key, and publishing the hash-signature pair via
the historian. If someone else tries to claim it as their own,
the designer can point to the historian's log as cryptographically
secure evidence that the designer's copy existed before anyone
else's.
Note there's nothing here that verifies the first claim is the actual
content owner, only that the first claim almost certainly happened
before a second.
2018-02-24 10:09:49 -07:00
Greg Fitzgerald
29a607427d
Rename UserDataKey to Discovery
...
From the perspective of the log, when some data's hash is added,
that data is "discovered" by the historian. Another event
might be a "claim" that some signed data belongs to the owner of a
public key.
2018-02-24 05:25:19 -07:00
Greg Fitzgerald
afb830c91f
Merge pull request #18 from garious/add-historian
...
self-ticking logger
2018-02-21 12:30:10 -07:00
Greg Fitzgerald
c1326ac3d5
Up the time to sleep so that ticks are generated
2018-02-21 12:22:23 -07:00
Greg Fitzgerald
513a1adf57
Version bump
2018-02-21 12:01:17 -07:00
Greg Fitzgerald
7871b38c80
Update demo to use self-ticking logger
2018-02-21 11:52:03 -07:00
Greg Fitzgerald
b34d2d7dee
Allow the logger to inject Tick events on its own
2018-02-21 11:33:42 -07:00
Greg Fitzgerald
d7dfa8c22d
Readme cleanup
2018-02-21 10:07:32 -07:00
Greg Fitzgerald
8df274f0af
Add hash seed to verify_slice()
2018-02-21 09:43:34 -07:00
Greg Fitzgerald
07c4ebb7f2
Add message sequence chart for readme demo
...
Fixes #17
2018-02-21 09:33:50 -07:00
Greg Fitzgerald
49605b257d
Merge pull request #16 from garious/add-serde
...
Add serialization/deseriation support to event log
2018-02-20 16:55:46 -07:00
Greg Fitzgerald
fa4e232d73
Add serialization/deseriation support to event log
...
See bincode and serde_json for usage:
https://github.com/TyOverby/bincode
Fixes #1
2018-02-20 16:26:13 -07:00
Greg Fitzgerald
bd84cf6586
Merge pull request #15 from garious/add-historian
...
Demo proof-of-history and reordering attack
2018-02-20 15:05:20 -07:00
Greg Fitzgerald
6e37f70d55
Test reorder attack
2018-02-20 14:46:36 -07:00
Greg Fitzgerald
d97112d7f0
Explain proof-of-history in the readme
...
Also:
* Hash userdata so that verification works as the readme describes.
* Drop itertools package. Found a way to use std::iter instead.
Fixes #8
2018-02-20 14:04:49 -07:00
Greg Fitzgerald
e57bba17c1
Version bump
2018-02-19 16:59:41 -07:00
Greg Fitzgerald
959da300cc
Shorten readme lines
2018-02-19 16:53:58 -07:00
Greg Fitzgerald
ba90e43f72
Update benchmark
...
* Add asm, though it doesn't make it faster. TODO: use avx instructions.
* Do 10x less hashes, since sha256 is more expensive.
2018-02-19 16:51:35 -07:00
Greg Fitzgerald
6effd64ab0
Update readme with sha256 usage
2018-02-19 16:48:29 -07:00
Greg Fitzgerald
e18da7c7c1
Merge pull request #13 from garious/sha256-hash
...
Use sha256 hashes instead of Rust's builtin hasher.
2018-02-19 16:43:26 -07:00
Greg Fitzgerald
0297edaf1f
Use sha256 hashes instead of Rust's builtin hasher.
...
Causes a 20x performance degradation. Enabling asm did not
speed things up.
2018-02-19 16:23:53 -07:00
Greg Fitzgerald
b317d13b44
Add codecov configuration
2018-02-19 13:02:59 -07:00
Greg Fitzgerald
bb22522e45
Remove assertions that fail in the kcov docker container
2018-02-19 12:54:01 -07:00
Greg Fitzgerald
41053b6d0b
Merge pull request #12 from garious/add-historian
...
Add historian demo
2018-02-19 12:40:44 -07:00
Greg Fitzgerald
bd3fe5fac9
Sleep a little longer to ensure Travis context switches
2018-02-19 12:33:33 -07:00
Greg Fitzgerald
10a70a238b
Cleanup demo
2018-02-19 12:25:57 -07:00
Greg Fitzgerald
0bead4d410
Fix markdown link
2018-02-19 12:12:45 -07:00
Greg Fitzgerald
4a7156de43
Move hash generation into stateless function
2018-02-19 12:09:58 -07:00
Greg Fitzgerald
d88d1b2a09
Reset historian's hasher between events
...
Hasher will generate different hashes for the same input if it
had already generated a hash.
Also add a binary to ensure the example in the README works.
2018-02-19 12:03:06 -07:00
Greg Fitzgerald
a7186328e0
Add docs
...
Fixes #11
2018-02-19 09:27:14 -07:00
Greg Fitzgerald
5e3c7816bd
Ensure verify_slice succeeds
2018-02-19 09:09:24 -07:00
Greg Fitzgerald
a2fa60fa31
Merge pull request #10 from garious/add-historian
...
Better names
2018-02-18 10:16:05 -07:00
Greg Fitzgerald
ceb65c2669
Better function names
2018-02-18 10:05:54 -07:00
Greg Fitzgerald
fd209ef1a9
Rename event crate to log
2018-02-18 09:59:33 -07:00
Greg Fitzgerald
471f036444
Better names
...
Event -> Entry
EventData -> Event
2018-02-18 09:53:40 -07:00
Greg Fitzgerald
6ec0e5834c
Merge pull request #9 from garious/add-historian
...
Add historian
2018-02-17 21:22:48 -07:00
Greg Fitzgerald
4c94754661
More coverage
2018-02-17 21:13:52 -07:00
Greg Fitzgerald
831e2cbdc9
Add historian
...
A microservice that continuously generates hashes, only stopping to
tag messages with the latest hash.
Fixes #8
2018-02-17 20:58:23 -07:00
Greg Fitzgerald
3550f703c3
Fix typo
...
We don't write test for the readme. :)
2018-02-16 12:53:46 -07:00
Greg Fitzgerald
ea1d57b461
Update description
2018-02-16 12:51:57 -07:00
Greg Fitzgerald
49386309c8
Architecture -> Specification
2018-02-16 12:44:00 -07:00