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
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
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
Greg Fitzgerald
132495b1fc
A simple consensus diagram to guide rollback/coalescing
...
Diagram for what's described in #84 for rollback support.
2018-03-29 10:52:02 -06:00
Greg Fitzgerald
a03d7bf5cd
Missed a couple
2018-03-28 22:20:31 -06:00
Greg Fitzgerald
3bf225e85f
Don't require install to run demo
2018-03-28 22:18:33 -06:00
Greg Fitzgerald
cc2bb290c4
Merge pull request #89 from garious/sig-verify-bench
...
Add microbenchmark for signature verification
2018-03-28 22:15:10 -06:00
Greg Fitzgerald
878ca8c5c5
Add microbenchmark for signature verification
2018-03-28 22:02:47 -06:00
Greg Fitzgerald
4bc41d81ee
Fix compiler warning
2018-03-28 21:05:21 -06:00
Greg Fitzgerald
f6ca176fc8
Merge pull request #88 from garious/revert-tcp-client
...
Revert TCP sync of ledger
2018-03-28 20:28:05 -06:00