Commit Graph

66 Commits

Author SHA1 Message Date
Rob Walker
999534248b fixups 2018-08-07 17:27:53 -07:00
Rob Walker
fbc754ea25 plug in LedgerWindow
fixes #872
2018-08-07 17:27:53 -07:00
Rob Walker
2a0025bb57 get buffered IO back for ledger 2018-08-07 15:34:15 -07:00
Rob Walker
3beb38ac8a /tmp/farf no good on multi-user machine 2018-08-06 14:53:40 -07:00
Rob Walker
0514f5e573 sync() apparently imposes a serious performance penalty 2018-08-06 08:51:41 -07:00
Rob Walker
9fabd34156 remove trace! calls, re-arrange replicate_requests to have the bank earlier 2018-08-06 08:51:41 -07:00
Rob Walker
039ed01abf on 2nd thought: do not copy_ledger() for this test 2018-08-06 08:51:41 -07:00
Rob Walker
ead0eb2754 move copy_ledger() back into ledger.rs
Don't recover() for copy(), as copy() is already tolerant of things
    recover() guards against.  Note: recover() is problematic if the ledger is
    "live", i.e. is currently being written to.
2018-08-06 08:51:41 -07:00
Rob Walker
c3db2df7eb tweak random access ledger
* add recover_ledger() to deal with expected common ledger corruptions
  * add verify_ledger() for future use cases (ledger-tool)
  * increase ledger testing
  * allow replicate stage to run without a ledger
  * ledger-tool to output valid json
2018-08-06 08:51:41 -07:00
Rob Walker
ee6c15d2db start on ledger recovery with a description of what that might mean 2018-08-06 08:51:41 -07:00
Rob Walker
692b125391 Revert "Revert "fixups""
This reverts commit e2c68d8775.
2018-08-06 08:51:41 -07:00
Rob Walker
5193819d8e Revert "Revert "plug in new ledger""
This reverts commit 57e928d1d0.
2018-08-06 08:51:41 -07:00
Rob Walker
57e928d1d0 Revert "plug in new ledger"
This reverts commit 46d9ba5ca0.
2018-08-03 10:24:51 -07:00
Rob Walker
e2c68d8775 Revert "fixups"
This reverts commit b72e91f681.
2018-08-03 10:24:51 -07:00
Rob Walker
b72e91f681 fixups 2018-08-02 21:50:47 -07:00
Rob Walker
46d9ba5ca0 plug in new ledger 2018-08-02 21:50:47 -07:00
Tyera Eulberg
448b8b1c17 Add Hash wrapper and supporting traits 2018-08-01 17:00:51 -07:00
Tyera Eulberg
bcfaf5d994 Rebase ledger change 2018-08-01 16:15:14 -07:00
Stephen Akridge
6693386bc5 Lower errors to warnings so they don't print during tests
Negative tests should trigger the warnings, but errors look like
something is wrong.
2018-08-01 16:56:12 -06:00
Rob Walker
0aba74935b fixups 2018-08-01 14:42:58 -07:00
Rob Walker
4eb666d4f9 provide ledger::copy() 2018-08-01 14:42:58 -07:00
Rob Walker
d5e0cf81ff fixups 2018-08-01 14:42:58 -07:00
Rob Walker
3ea784aff7 clippy fixups 2018-08-01 14:42:58 -07:00
Rob Walker
fef93958c8 fixups, tests 2018-08-01 14:42:58 -07:00
Rob Walker
cae88c90b1 add a persistent ledger of index and data files 2018-08-01 14:42:58 -07:00
Rob Walker
1a8da769b6 ... 2018-08-01 14:42:58 -07:00
Stephen Akridge
212874e155 Use BlobError for get_size return 2018-07-25 15:54:04 -07:00
Rob Walker
6fde65577e fixes #756 2018-07-25 11:07:03 -07:00
Rob Walker
9c7913ac9e trying to raise an error 2018-07-25 08:12:20 -07:00
Rob Walker
8b01e6ac0b implement Blob::get_size(), the counterpart of Blob::set_size() 2018-07-25 08:12:20 -07:00
Rob Walker
ff5854396a deserialize using get_data_size(), which refers to blob.data()'s length,
instead of using msg.meta.size, which refers to the entire blob's length

fixes #752
2018-07-25 08:12:20 -07:00
Rob Walker
33bd1229d9 make next_entries() smarter about fitting Transactions into a Blob 2018-07-24 21:38:06 -07:00
Michael Vines
195098ca2b Failure test case 2018-07-24 21:38:06 -07:00
Stephen Akridge
6bd18e18ea Add error messages to ledger verify 2018-07-24 17:35:41 -07:00
Rob Walker
54f2146429 fixups 2018-07-24 13:04:34 -07:00
Rob Walker
6656ec816c protect generate and recover from u64->usize casting issues 2018-07-24 13:04:34 -07:00
Greg Fitzgerald
3144a70b18 Move all benchmarks to benches/ 2018-07-11 11:18:18 -06:00
Stephen Akridge
1c9e7dbc45 Don't recycle in the replicate stage
Windowing stage owns all the blobs now
2018-06-29 07:14:47 -06:00
Greg Fitzgerald
56b09bf0ac cargo fmt 2018-06-26 16:51:07 -06:00
Stephen Akridge
f4c4b9df9c Only free in replicate if we did not hold the reference in window stage
And then free when we are consuming blobs
2018-06-26 16:51:07 -06:00
Rob Walker
ac40c1818f .. 2018-06-26 13:57:10 -07:00
Rob Walker
4e2f1a519e whack next_entries_batched 2018-06-26 13:57:10 -07:00
Rob Walker
55ec7f9fe9 add entry.has_more
* quick fix for really big genesis
 * longer term fix for possible parallel verification over multiple
      Blobs/Entries
2018-06-26 13:57:10 -07:00
Rob Walker
3dbbb398df use next_entries() in recorder, recycle blobs in reconstruct_from_blobs 2018-06-22 14:17:36 -07:00
Rob Walker
5e91d31ed3 issue 309 part 1
* limit the number of Tntries per Blob to at most one
* limit the number of Transactions per Entry such that an Entry will
    always fit in a Blob

With a one-to-one map of Entries to Blobs, recovery of a validator
  is a simple fast-forward from the end of the initial genesis.log
  and tx-*.logs Entries.

TODO: initialize validators' blob index with initial # of Entries.
2018-06-22 09:58:51 -07:00
Greg Fitzgerald
fad9d20820 Add assertion for now next_entry must be called 2018-06-21 21:24:32 -07:00
Greg Fitzgerald
cd6d7d5198 Remove redundant clones 2018-06-21 21:24:32 -07:00
Greg Fitzgerald
f6e70779fe Don't panic if sent a bad packet 2018-06-16 09:51:45 -06:00
Greg Fitzgerald
2b1e90b0a5 More idiomatic Rust 2018-05-29 14:04:27 -06:00
Greg Fitzgerald
cf5671d058 tr -> tx
Missed a few.
2018-05-29 10:38:58 -06:00