Commit Graph

65 Commits

Author SHA1 Message Date
JoelKatz
adf4ff998b Make it less likely that a node will get temporarily stuck in a stale consensus process. 2012-09-07 11:23:06 -07:00
JoelKatz
a3241dae56 Fix a case where we could lose deferred prposals. 2012-09-05 22:28:26 -07:00
JoelKatz
df1e5ab95a Cleanup.
Fix a bug when we incompletely remove a vote on a disputed transaction.
2012-09-03 08:35:53 -07:00
JoelKatz
4f598af582 Change 'shouldClose' to return a bool.
Clear structures on LCL view change during consensus window.
Cleaner calculation of 'rounded' close times.
Maintain close time offset.
2012-09-03 05:16:32 -07:00
JoelKatz
02bd898e51 Some const-correctness.
const SLE::pointer & -> SLE::ref
2012-08-31 18:26:45 -07:00
JoelKatz
9ef0a5491b Use "Ledger::ref" instead of "const Ledger::pointer&". 2012-08-31 18:11:41 -07:00
JoelKatz
ad12e318ba Allow a peer position to be removed from the consensus logic if the peer is
not responding. This version uses static timing. A peer takes a position
every 12 seconds and a position is valid for 20 seconds. It might make sense
to either make that timing adaptive or include a "validity time" field in
the position. However, I think this is really only going to be an issue in
fairly small networks (which is why we are seeing it).
2012-08-31 15:51:41 -07:00
JoelKatz
c3603c403d Code to determine how old a proposal is.
Low-level code to remove a peer from the consensus process.
2012-08-31 14:47:31 -07:00
JoelKatz
4d3fc5b6a5 Stash and apply proposals received with a different LCL. 2012-08-30 12:28:02 -07:00
JoelKatz
faaedb806f Start of the proposal defer/playback code.
Clean up tem codes to tap codes.
2012-08-30 11:43:20 -07:00
JoelKatz
c481bd6cba Simplify the code that handles a ledger change in the consensus window.
Remove duplicate code. Handle edge cases correctly in all code paths.
2012-08-30 09:38:44 -07:00
JoelKatz
6282ad4a88 Clean up the TransactionEngineParameter flags. Clarify the semantics for
soft failure. Note that the code will not yet invoke a transaction with a
retry flag, but the support is there for transcations to handle it.
2012-08-29 23:02:06 -07:00
JoelKatz
420ee91877 Remove more wasteful allocate/increment/decrement/free cycles. 2012-08-19 19:23:10 -07:00
JoelKatz
abf41dd4de Fix a large number of cases where we copy construct a shared_ptr just to destroy it. 2012-08-15 04:01:22 -07:00
JoelKatz
b4e63c3025 Fix a few cases where we reset the acquire timer when we should not. 2012-08-07 04:11:20 -07:00
JoelKatz
efa3653b80 Bugfix for moving from connected to tracking state.
Skeleting for getting Json info from consensus engine.
2012-08-06 03:40:52 -07:00
JoelKatz
a902134133 Don't be blind to validations during the idle time. 2012-08-01 15:00:39 -07:00
JoelKatz
93de56ae47 Fix some issues slowing down transaction convergence.
The biggest one is that a node that closes its ledger first will announce a transaction set we
have in our open ledger but don't realize we have.
2012-07-17 21:11:54 -07:00
JoelKatz
333c9896fb Cut to millisecond timing. 2012-07-17 17:48:55 -07:00
JoelKatz
69ff2e06ea Don't try to rescue transactions that made it into the closed ledger. 2012-07-17 16:06:36 -07:00
JoelKatz
40e0dba6b6 Simplify timing. 2012-07-16 13:25:38 -07:00
JoelKatz
7e7356c155 Cleanups and bugfixes. 2012-07-16 00:47:46 -07:00
JoelKatz
b516cdcf04 Bugfixes to code to get into sync during consensus phase. 2012-07-14 02:24:00 -07:00
JoelKatz
02decebe08 Rest of close time logic. 2012-07-12 21:46:13 -07:00
JoelKatz
fc48efea59 Track proposed ledger close times. 2012-07-12 01:43:02 -07:00
JoelKatz
187130fe31 Properly sequence from one converge window to the next. 2012-07-10 19:24:52 -07:00
JoelKatz
74cd8a65b8 More continuous ledger close work:
CLC code now compiles and links.
Remove dead code.
Decide when to come out of idle.
Decide when we have a convergence.
Give all state handlers access to timing information.
2012-07-10 10:25:54 -07:00
JoelKatz
632bf2e586 Updates to CLC. 2012-07-09 15:56:36 -07:00
JoelKatz
b417faa927 CLC work. 2012-07-09 10:43:11 -07:00
JoelKatz
182228b6f9 Infrastructure for continuous ledger close. 2012-06-30 16:58:05 -07:00
JoelKatz
3a77ef5c82 Begin implementing continuous ledger close.
Pretty much all remaining changes should be to LedgerConsensus.cpp
2012-06-29 16:34:16 -07:00
JoelKatz
c13c561295 Use the new accelerators to speed up ledger and transaction set synchronization 2012-06-24 05:33:53 -07:00
JoelKatz
4568302182 Fix a bug where a non-validating node couldn't recognize consensus if there
was only one vaalidating node.
2012-06-22 03:01:13 -07:00
JoelKatz
dda06d989d Begin fixing consensus without having the full consensus LCL. 2012-06-21 17:37:27 -07:00
JoelKatz
da3720baa9 Bugfixes. 2012-06-20 02:18:03 -07:00
JoelKatz
75f85ae519 Begin the code to allow a node to enter the consensus process even if it's not proposing and
even if it's not validating. This also fixes the bug Arthur reported.
2012-06-19 16:55:04 -07:00
JoelKatz
ea837ff819 Clean up some logging that was confusing. 2012-06-18 21:12:35 -07:00
JoelKatz
74ea434435 Bugfixes to consensus:
1) Don't apply to new open ledger in final mode.
2) Re-apply any NO transactions to the new open ledger.
2012-06-18 12:57:43 -07:00
JoelKatz
a0970e705f Consensus bugfixing. 2012-06-18 12:24:15 -07:00
Arthur Britto
368e5a0acc Have consensus use the config for validation and use uint160 for peerIDs. 2012-06-13 15:51:30 -07:00
JoelKatz
4b79e7dca8 New canonical transaction order code. Tested and working.
CanonicalTXSet acts much like a map, but sorts the transactions in a simple
order that makes them take fewer passed.
2012-06-08 05:09:23 -07:00
JoelKatz
bda64fac2a Tx set exchange improvements. 2012-06-07 12:25:44 -07:00
JoelKatz
b4e238a2e4 With luck, a fix for the crash. 2012-06-05 15:41:44 -07:00
JoelKatz
0e7307200e First set of efficiency improvements. 2012-06-04 07:18:57 -07:00
JoelKatz
2206ff3be6 Get rid of hash_SMN and instead extend boost::hash.
This makes the TaggedCache code cleaner.
2012-06-04 06:01:11 -07:00
JoelKatz
75ad545916 Finish the wobble rework. 2012-06-03 15:30:39 -07:00
JoelKatz
d35bb54c06 Structures to correctly handle both pre and post close wobble. 2012-06-03 12:24:10 -07:00
JoelKatz
a2be7ab180 Complete ledger consensus logic. Now to test it. 2012-05-30 22:15:20 -07:00
JoelKatz
70767a3b1a Dispatch on consensus. 2012-05-30 17:08:50 -07:00
JoelKatz
6123e3886a Refactor LedgerConsensus code. Add new LC work.
Properly sequence LC states
Properly handle wobble time.
Complete LC sequence correctly and exit it.
2012-05-29 18:02:17 -07:00