Greg Fitzgerald
74ebaf1744
Merge pull request #40 from garious/add-logger
...
Add logger
2018-03-03 14:37:15 -07:00
Greg Fitzgerald
f7496ea6d1
Make create_logger a static method
...
Allows us to share the super long type signature in impl.
2018-03-03 14:26:59 -07:00
Greg Fitzgerald
bebba7dc1f
Give logger its own crate
2018-03-03 14:24:32 -07:00
Greg Fitzgerald
afb2bf442c
Use Instant instead of SystemTime for more precise ticking
...
And convert log_event from function to method
2018-03-03 14:08:53 -07:00
Greg Fitzgerald
c7de48c982
Convert log_events from function to method
2018-03-03 14:00:37 -07:00
Greg Fitzgerald
f906112c03
Move logging thread's state into a struct
2018-03-03 13:52:57 -07:00
Greg Fitzgerald
8ef864fb39
Merge pull request #37 from garious/split-benchmark
...
Split benchmark
2018-03-03 12:13:54 -07:00
Greg Fitzgerald
1c9b5ab53c
Report performance of signature verification too
2018-03-03 11:59:34 -07:00
Greg Fitzgerald
c10faae3b5
More readable metrics
2018-03-03 11:52:50 -07:00
Greg Fitzgerald
2104dd5a0a
Fix benchmark
...
Was measuring the creation of the iterator, not running it.
2018-03-03 11:45:23 -07:00
Greg Fitzgerald
fbe64037db
Merge pull request #35 from garious/split-benchmark
...
Move key generation and signing from transaction benchmark
2018-03-03 11:25:58 -07:00
Greg Fitzgerald
d8c50b150c
Move key generation and signing from transaction benchmark
...
Key generation, signing and verification are not the performance
bottleneck. Something is probably wrong here.
2018-03-03 11:11:46 -07:00
Greg Fitzgerald
8871bb2d8e
Merge pull request #30 from garious/simplify
...
Unify Claim and Transaction handling
2018-03-02 12:24:44 -07:00
Greg Fitzgerald
a148454376
Update readme
2018-03-02 12:07:05 -07:00
Greg Fitzgerald
be518b569b
Remove cyclic dependency between event and log
2018-03-02 12:03:59 -07:00
Greg Fitzgerald
c998fbe2ae
Sign the owner's public key
...
Without this, the accountant will reject transfers from different
entities if they are for the same amount and to the same entity.
2018-03-02 11:56:42 -07:00
Greg Fitzgerald
9f12cd0c09
Purge the Claim event type
...
It's now represented as a Transaction from an unknown party.
2018-03-02 11:48:58 -07:00
Greg Fitzgerald
0d0fee1ca1
Sign Claim's 'to' field
...
Otherwise, the accountant will treat deposits of the same amount as
duplicates.
2018-03-02 11:46:22 -07:00
Greg Fitzgerald
a0410c4677
Pipe all Claim constructors through a function
2018-03-02 10:58:43 -07:00
Greg Fitzgerald
8fe464cfa3
Rename Claim's key field to match same field in Transaction
2018-03-02 10:47:21 -07:00
Greg Fitzgerald
3e2d6d9e8b
Generalize Transaction to express a Claim
...
If a Transaction doesn't have an existing address, it's being used
to create new funds.
2018-03-02 10:41:15 -07:00
Greg Fitzgerald
32d677787b
Reduce transactions sent by demo
...
We don't do retries yet, so keep tx count to something that won't
trigger any packet loss.
2018-03-02 10:35:38 -07:00
Greg Fitzgerald
dfd1c4eab3
Don't process transaction if channel.send() fails.
...
Do all input validation first, then log (which can fail). If all
goes swimmingly, process the transaction.
2018-03-02 10:17:52 -07:00
Greg Fitzgerald
36bb1f989d
More defense against a double-spend attack
...
Before this change, a client could spend funds before the accountant
processed a previous spend. With this change in place, the accountant
updates balances immediately, but that comes at an architectural cost.
The accountant now verifies signatures on behalf of the historian, so
that it can ensure logging will not fail.
2018-03-02 09:55:44 -07:00
Greg Fitzgerald
684f4c59e0
Delete commented out code
...
accountant crate shouldn't verify the log. Instead, it should
only add valid entries and leave verification to network nodes.
2018-03-02 08:51:29 -07:00
Greg Fitzgerald
1b77e8a69a
Move Event into its own crate
...
The log crate was starting to be the catch-all for all things
related to entries, events, signatures, and hashes. This split
shows us that:
* Event depends only on signatures, not on hashes [directly]
* All event testing was done via log testing (shame on me)
* Accounting depends only on events
2018-03-02 08:43:57 -07:00
Greg Fitzgerald
662e10c3e0
Merge pull request #29 from garious/simplify
...
Remove Discovery event
2018-03-01 18:53:25 -07:00
Greg Fitzgerald
c935fdb12f
Move signature duplicate detection into the historian
2018-03-01 17:44:10 -07:00
Greg Fitzgerald
9e16937914
Delete the Discovery event
...
Not useful to the accountant.
2018-03-01 17:02:41 -07:00
Greg Fitzgerald
f705202381
No need to hash data that's already hashed to create the signature
2018-03-01 16:39:09 -07:00
Greg Fitzgerald
f5532ad9f7
Merge pull request #28 from garious/go-udp
...
Switch to UDP
2018-03-01 14:25:20 -07:00
Greg Fitzgerald
570e71f050
Check for duplicate signatures
...
TODO: have client add recent hash to each message
2018-03-01 14:07:39 -07:00
Greg Fitzgerald
c9cc4b4369
Switch to UDP from TCP
...
And remove all the sleep()'ing around.
2018-03-01 13:47:53 -07:00
Greg Fitzgerald
7111aa3b18
Copy disclaimer from the loom repository
...
Per @aeyakovenko, added Loom's disclaimer.
2018-03-01 09:16:39 -07:00
Greg Fitzgerald
12eba4bcc7
Merge pull request #26 from garious/add-accountant
...
Add testnode and client-demo
2018-02-28 19:48:05 -07:00
Greg Fitzgerald
4610de8fdd
Switch to sync_channel to preserve order
2018-02-28 19:33:28 -07:00
Greg Fitzgerald
3fcc2dd944
Add testnode
...
Fixes #20
2018-02-28 18:05:20 -07:00
Greg Fitzgerald
8299bae2d4
Add accountant stub
2018-02-28 16:01:12 -07:00
Greg Fitzgerald
604ccf7552
Add network interface for accountant
2018-02-28 14:00:04 -07:00
Greg Fitzgerald
f3dd47948a
Merge pull request #25 from garious/verify-historian-input
...
Verify event signatures before adding log entries
2018-02-28 10:34:10 -07:00
Greg Fitzgerald
c3bb207488
Verify event signatures before adding log entries
2018-02-28 10:23:01 -07:00
Greg Fitzgerald
9009d1bfb3
Merge pull request #24 from garious/add-accountant
...
Add accountant
2018-02-27 11:41:40 -07:00
Greg Fitzgerald
fa4d9e8bcb
Add more tests
2018-02-27 11:28:10 -07:00
Greg Fitzgerald
34b77efc87
Sleep longer for TravisCI
2018-02-27 11:08:28 -07:00
Greg Fitzgerald
5ca0ccbcd2
Add accountant
2018-02-27 10:54:06 -07:00
Greg Fitzgerald
6aa4e52480
Merge pull request #23 from garious/add-transaction
...
Generalize the event log
2018-02-26 17:40:55 -07:00
Greg Fitzgerald
f98e9a2ad7
Fix overuse of search-and-replace
2018-02-26 17:03:50 -07:00
Greg Fitzgerald
c6134cc25b
Allow the historian to track ownership of any type of data
2018-02-26 17:01:22 -07:00
Greg Fitzgerald
0443b39264
Allow event log to hold events of any serializable (hashable) type
2018-02-26 16:42:31 -07:00
Greg Fitzgerald
8b0b8efbcb
Allow Entry to hold events of any kind of data
2018-02-26 15:37:33 -07:00