Stephen Akridge
f4466c8c0a
Change for cuda verify integration
2018-04-05 20:00:44 -07:00
Greg Fitzgerald
bc6d6b20fa
Merge pull request #108 from garious/parallelize-accountant
...
Reject old transactions so that we can boot old signatures
2018-04-05 15:11:22 -06:00
Greg Fitzgerald
01326936e6
Expire all transactions after some amount of time
...
Reject old transactions so that we can calculate an upper bound
for memory usage, and therefore ensure the server won't slow
down over time to crash due to memory exhaustion.
2018-04-05 10:26:45 -06: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
Greg Fitzgerald
fc69d31914
Merge pull request #106 from garious/parallelize-accountant
...
Parallelize accountant
2018-04-04 22:42:28 -06:00
Greg Fitzgerald
8d425e127b
Update benchmark to avoid write locks in sig duplicate detection
2018-04-04 17:29:22 -06:00
Greg Fitzgerald
3cfb07ea38
Sort signatures by last_id
...
This will allow for additional concurrency as well as give the server
a means of garbage-collecting old signatures.
2018-04-04 17:06:31 -06:00
Greg Fitzgerald
76679ffb92
Per-cell locking
...
This allows us to use read-locks for balances most of the time. We
only lock the full table if we need to add one.
2018-04-04 16:31:13 -06:00
Greg Fitzgerald
dc2ec925d7
Better test
2018-04-04 16:01:43 -06:00
anatoly yakovenko
81d6ba3ec5
Merge pull request #105 from garious/coverage-comments
...
Add the 'why' for code coverage to readme
2018-04-04 14:34:26 -07:00
Greg Fitzgerald
014bdaa355
Add benchmark for parallel transaction processing
2018-04-04 12:43:27 -06:00
Greg Fitzgerald
0c60fdd2ce
Make accountant thread-safe
...
Before this change, parallel transaction processing required locking
the full accountant. Since we only call one method,
process_verified_transaction, the global lock equates to doing no
parallelization at all. With this change, we only lock the data that's
being written to.
2018-04-04 12:33:03 -06:00
Greg Fitzgerald
43d986d14e
Add the 'why' for code coverage to readme
2018-04-04 09:26:38 -06:00
Greg Fitzgerald
123d7c6a37
Merge pull request #99 from aeyakovenko/subscribers
...
Blobs and windows
2018-04-03 17:12:53 -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
bc0dde696a
Merge pull request #102 from garious/rollback
...
Fix clippy warnings
2018-04-03 10:08:42 -06:00
Greg Fitzgerald
c323bd3c87
Fix clippy warnings
2018-04-03 09:55:33 -06:00
Greg Fitzgerald
5c672adc21
Merge pull request #101 from garious/rollback
...
Move tests
2018-04-02 21:58:10 -06:00
Greg Fitzgerald
2f80747dc7
Move tests
...
After we restructured for parallel verification, the tests here
were unreferenced by the accountant, but still meaningful to
transaction verification.
2018-04-02 21:45:21 -06:00
Greg Fitzgerald
95749ed0e3
Merge pull request #100 from garious/rollback
...
Cleanup use of event signatures and entry hashing
2018-04-02 21:17:37 -06:00
Greg Fitzgerald
94eea3abec
fmt
2018-04-02 21:15:21 -06:00
Greg Fitzgerald
fe32159673
Add a test to ensure witness data continues to be hashed
2018-04-02 21:07:38 -06:00
Greg Fitzgerald
07aa2e1260
Add witness data to entry hash
...
Otherwise, witnesses can be dropped or reordered by a malicious
generator.
2018-04-02 20:47:51 -06:00
Greg Fitzgerald
6fec8fad57
Adding from to the signature is redundant
2018-04-02 20:34:18 -06:00
Greg Fitzgerald
84df487f7d
Merge pull request #97 from garious/rollback
...
Refactoring for rollback
2018-04-02 15:41:33 -06:00
Greg Fitzgerald
49708e92d3
Use last_id instead of seed
...
It doesn't really matter, but was confusing since the seed points
to an entry before the mint's deposit.
2018-04-02 15:06:42 -06:00
Greg Fitzgerald
daadae7987
Move replaying ledger out of accountant
2018-04-02 14:51:55 -06:00
Greg Fitzgerald
2b788d06b7
Move the historian up to accountant_skel
2018-04-02 14:41:07 -06:00
Greg Fitzgerald
90cd9bd533
Move balance check so that log_* methods are only used to add logging
2018-04-02 14:14:49 -06:00
Greg Fitzgerald
d63506f98c
No longer allow deposits outside the constructor
2018-04-02 14:00:42 -06:00
Greg Fitzgerald
17de6876bb
Add simpler accountant constructor
2018-04-02 13:51:44 -06:00
Greg Fitzgerald
fc540395f9
Update docs
2018-04-02 11:51:56 -06:00
Greg Fitzgerald
da2b4962a9
Move verify_slice() into a trait
2018-04-02 11:43:38 -06:00
Greg Fitzgerald
3abe305a21
Move reserve_signatures into accountant
...
Reasons Transaction signatures need to be unique:
1. guard against duplicates
2. accountant uses them as IDs to link Witness signatures to transactions via the
`pending` hash map
2018-04-02 09:38:36 -06:00
Greg Fitzgerald
46e8c09bd8
Revoke API access to first_id
2018-04-02 09:30:10 -06:00
Greg Fitzgerald
e683c34a89
Version bump
2018-03-31 14:44:43 -06:00
Greg Fitzgerald
54e4f75081
Merge pull request #95 from jackson-sandland/source-documentation-review
...
94: source doc review
2018-03-30 14:50:51 -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
eaec25f940
Version bump
2018-03-29 15:05:38 -06:00
Greg Fitzgerald
6a87d8975c
Merge pull request #93 from garious/par-req-processing
...
Better benchmark, fix logging
2018-03-29 14:02:40 -06:00
Greg Fitzgerald
b8cf5f9427
Fix transaction logging
2018-03-29 13:50:32 -06:00
Greg Fitzgerald
2f1e585446
Better benchmark
...
Tolerates dropped UDP packets
2018-03-29 13:41:11 -06:00
Greg Fitzgerald
f9309b46aa
Merge pull request #92 from garious/par-req-processing
...
Parallel request verification
2018-03-29 13:28:21 -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
89f5b803c9
Merge pull request #91 from garious/more-docs
...
Add more documentation
2018-03-29 12:39:03 -06:00
Greg Fitzgerald
55179101cd
Add more documentation
2018-03-29 12:20:54 -06:00