Stephen Akridge
f4466c8c0a
Change for cuda verify integration
2018-04-05 20:00:44 -07:00
Greg Fitzgerald
c960e8d351
Reject transactions with a `last_id` that isn't from this ledger
...
Before this patch, a client could put any value into `last_id` and
was primarily there to ensure the transaction had a globally unique
signature. With this patch, the server can use `last_id` as an
indicator of how long its been since the transaction was created.
The server may choose to reject sufficiently old transactions so
that it can forget about old signatures.
2018-04-05 09:54:03 -06:00
Anatoly Yakovenko
5ac7df17f9
Implement window service
...
Batch out of order blobs until we have a contigious window.
2018-04-03 13:53:19 -07:00
Greg Fitzgerald
c323bd3c87
Fix clippy warnings
2018-04-03 09:55:33 -06:00
Greg Fitzgerald
94eea3abec
fmt
2018-04-02 21:15:21 -06:00
Greg Fitzgerald
2b788d06b7
Move the historian up to accountant_skel
2018-04-02 14:41:07 -06:00
Greg Fitzgerald
46e8c09bd8
Revoke API access to first_id
2018-04-02 09:30:10 -06:00
Jackson Sandland
9f256f0929
94 - snakecase mod names
2018-03-30 13:10:27 -07:00
Jackson Sandland
ef169a6652
94: source doc review
2018-03-30 10:43:38 -07:00
Greg Fitzgerald
b8cf5f9427
Fix transaction logging
2018-03-29 13:50:32 -06:00
Greg Fitzgerald
22f5985f1b
Do request verification in parallel, and then process the verified requests
2018-03-29 13:18:08 -06:00
Greg Fitzgerald
c59c38e50e
Refactor for batch verification
2018-03-29 13:09:21 -06:00
Greg Fitzgerald
232e1bb8a3
Colocate packet dependencies
2018-03-29 12:55:41 -06:00
Greg Fitzgerald
1fbb34620c
Fix compiler warning
2018-03-29 12:54:10 -06:00
Greg Fitzgerald
55179101cd
Add more documentation
2018-03-29 12:20:54 -06:00
Greg Fitzgerald
0bec360a31
Revert TCP sync of ledger
...
The feature was too rushed. We technically don't need it until we
implement consensus. It'll come back another day (with many more tests!)
2018-03-28 20:16:15 -06:00
Greg Fitzgerald
849bced602
Fix up client demo
2018-03-28 14:40:58 -06:00
Greg Fitzgerald
7c9681007c
Drop support for random access to the ledger
...
No longer store the ledger locally.
2018-03-27 14:47:03 -06:00
Greg Fitzgerald
13206e4976
Let clients subscribe to the ledger over TCP
...
TODO: Add more tests
Fixes #27
2018-03-27 14:46:24 -06:00
Greg Fitzgerald
ddb21d151d
Nightly rustfmt
...
Format code with the nightly version of rustfmt, which sorts imports.
2018-03-26 22:03:28 -06:00
Anatoly Yakovenko
14239e584f
fix writer
2018-03-26 21:36:29 -06:00
Anatoly Yakovenko
c1783d77d7
fixed test
2018-03-25 16:18:27 -07:00
Anatoly Yakovenko
290960c3b5
wip
2018-03-25 08:06:33 -07:00
Anatoly Yakovenko
62af09adbe
wip
2018-03-25 08:05:03 -07:00
Anatoly Yakovenko
e39c0b34e5
update
2018-03-25 00:06:48 -07:00
Anatoly Yakovenko
8ad90807ee
responder with larger block size
2018-03-24 23:46:25 -07:00
Anatoly Yakovenko
f52f02a434
services
2018-03-24 18:01:40 -07:00
Greg Fitzgerald
9a437f0d38
Revive silk-testnode
2018-03-23 21:49:28 -06:00
Greg Fitzgerald
fa44be2a9d
Ignore some clippy advice
2018-03-22 14:59:25 -06:00
Greg Fitzgerald
60524ad5f2
Clippy review
2018-03-22 14:38:06 -06:00
Greg Fitzgerald
fad7ff8bf0
Clippy review
2018-03-22 14:31:58 -06:00
Greg Fitzgerald
383d445ba1
Clippy review
2018-03-22 14:15:29 -06:00
Greg Fitzgerald
803dcb0800
Mutex<bool> -> AtomicBool
2018-03-22 14:05:23 -06:00
Greg Fitzgerald
9f232bac58
Allow clients to sync the ledger
...
Fixes #4
2018-03-21 15:46:49 -06:00
Greg Fitzgerald
8295cc11c0
Move JSON printing up the stack
2018-03-20 23:15:44 -06:00
Greg Fitzgerald
e5bae0604b
Specialize transaction assets to i64
...
Proof-of-history is generic, but now that we're using it entirely
for tokens, we can specialize the type and start doing more interesting
things than just Eq and Serialize operations.
2018-03-17 19:56:15 -06:00
Anatoly Yakovenko
eb94613d7d
Use streaming socket interface within accountant
...
Pull messages from streamer process them and forward them to the sender.
2018-03-11 23:41:09 -05:00
Greg Fitzgerald
d1b6206858
Monomorphisize Entry and Event
...
Transaction turned out to be the only struct worth making generic.
2018-03-06 20:29:18 -07:00
Greg Fitzgerald
b725fdb093
Sha256Hash -> Hash
...
Because in Loom, there's just the one. Hopefully no worries that it
shares a name with std::Hash.
2018-03-06 17:40:01 -07:00
Greg Fitzgerald
1436bb1ff2
Move entry into its own module
...
Hmm, Logger doesn't depend on log.
2018-03-06 17:40:01 -07:00
Greg Fitzgerald
5a44c36b1f
Move hash into its own module
2018-03-06 17:40:01 -07:00
Greg Fitzgerald
624c151ca2
Add signature module
...
Because things other than transactions can be signed.
2018-03-06 12:48:28 -07:00
Greg Fitzgerald
4fcd9e3bd6
Give Transaction its own module
2018-03-06 12:18:17 -07:00
Greg Fitzgerald
66bf889c39
Rename Transfer to Transaction
...
struct names should be nouns
2018-03-06 11:54:47 -07:00
Greg Fitzgerald
a2811842c8
More cleanup
...
Far fewer branches when we process transfers outside the context
of events.
2018-03-06 11:43:55 -07:00
Greg Fitzgerald
282afee47e
Use Transfer struct on the client side too
...
Sharing is caring.
2018-03-06 11:03:43 -07:00
Greg Fitzgerald
e701ccc949
Rename Request::Transfer to Request::Transaction
2018-03-06 10:59:47 -07:00
Greg Fitzgerald
6543497c17
Move Transaction data into its own struct
...
This will allow us to add addition transfer types to the log.
2018-03-06 10:50:32 -07:00
Greg Fitzgerald
720c54a5bb
Allow balances to be negative
...
* Will allow owners to loan token to others.
* Will allow for parallel verification of balances without spilling
over 64 bits.
Fixes #43
2018-03-05 17:30:53 -07:00
Greg Fitzgerald
a4336a39d6
Initialize the testnode from a log
...
$ cargo run --bin silk-genesis-file-demo > demo-genesis.json
$ cat demo-genesis.json | cargo run --bin silk-genesis-block > demo-genesis.log
$ cat demo-genesis.log | cargo run --bin silk-testnode
2018-03-05 15:34:44 -07:00
Greg Fitzgerald
48c28c2267
Transactions now require a hash of the last entry they've seen
...
This ensures the transaction cannot be processed on a chain
that forked before that ID. It will also provide a basis for
expiration constraints. A client may want their transaction
to expire, and the generators may want to reject transactions
that have been floating in the ether for years.
2018-03-05 12:48:14 -07:00
Greg Fitzgerald
d76ecbc9c9
Don't block the server
2018-03-05 11:39:59 -07:00
Greg Fitzgerald
79fb9c00aa
Boot wait_on_signature() from accountant
...
Instead, there should be a way to query for a page of log data,
and checking whether it has a signature should be done client-side.
2018-03-05 10:45:18 -07:00
Greg Fitzgerald
608def9c78
Consolidate imports
2018-03-04 07:28:51 -07:00
Greg Fitzgerald
876d7995e1
Refactor to support loading an existing ledger
2018-03-03 22:25:40 -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
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
c9cc4b4369
Switch to UDP from TCP
...
And remove all the sleep()'ing around.
2018-03-01 13:47:53 -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