JoelKatz
92fbff0efc
If a new transaction is discovered in the consensus process and we have not
...
relayed it recently, do so. This is not the perfect solution, it would be
better to relay it when we accept the new ledger, relaying only if it fits
in the consensus ledger.
2012-09-17 00:54:48 -07:00
JoelKatz
89518e23cc
Fix two more race conditions involving us taking our position late.
...
Remove an incorrect comment.
2012-09-17 00:38:47 -07:00
JoelKatz
7744f7c111
Cleanups and improved comments.
...
Fix a race condition if a peer ledger comes in before we take our initial position.
2012-09-16 20:58:38 -07:00
JoelKatz
d147b61530
The ledger accept process calls functions like ConnectionPool::relayMessage
...
and so must be called in the main I/O thread, at least for now.
2012-09-14 10:06:23 -07:00
JoelKatz
22f9a1a258
Don't let bow outs count as agreeing/disagreeing for consensus determination
2012-09-14 09:58:51 -07:00
JoelKatz
faece188f4
Belt and suspenders. Fix on both sides.
2012-09-14 08:41:59 -07:00
JoelKatz
c9a44e4a1a
We have to make sure someone holds a strong pointer to the acquiring
...
set when we move it from acquring to acquired.
2012-09-14 08:40:55 -07:00
JoelKatz
a4f41edf7a
Cleanup shared polymorphic downcast.
2012-09-14 07:08:01 -07:00
JoelKatz
f7e68cfc51
Fix SHAMap state when tx sync completes.
2012-09-13 20:49:48 -07:00
JoelKatz
0efe8b4892
Cleanups.
2012-09-13 20:41:25 -07:00
JoelKatz
b35f87564a
Fix a bug triggered by a acquiring a transaction set after having bowed out
...
of the consensus process.
2012-09-13 19:32:44 -07:00
JoelKatz
1faa8ccda6
Some less confusing names.
2012-09-13 19:26:40 -07:00
JoelKatz
6c016039c2
Get rid of all "const SHAMap::pointer&" -> SHAMap::ref
2012-09-13 15:36:56 -07:00
JoelKatz
7ba143b4df
Revert "Cleanup transaction set sync map creation."
...
This reverts commit de8288d4d5 .
2012-09-13 15:29:47 -07:00
JoelKatz
ec2dded961
Revert "Cleanup transaction set sync map creation."
...
This reverts commit de8288d4d5 .
2012-09-13 15:23:55 -07:00
JoelKatz
de8288d4d5
Cleanup transaction set sync map creation.
...
Remove a passthrough to NetworkOPs that doesn't make much sense.
2012-09-13 15:22:36 -07:00
JoelKatz
ca6e9cf764
Fix a case where we can get stuck in the wrong consensus window and have to
...
wait for it to timeout.
2012-09-11 21:36:23 -07:00
JoelKatz
81cd4cf820
Start of code to track network state, track overwhelmed nodes, and adjust
...
transaction fees.
2012-09-11 11:56:41 -07:00
JoelKatz
4271a9d12d
Improve comments.
...
Fix a typo in previous commit.
2012-09-08 04:14:42 -07:00
JoelKatz
9222eee1df
I believe this trivial change solves the "stuck one ledger behind" problem.
...
If the ledger is open, there should be no significant number of proposals
for a subsequent ledger. If there is, we are a ledger behind.
2012-09-08 03:51:56 -07:00
JoelKatz
e2137ea5af
Make our ledger a bit stickier to avoid the "check at the wrong time"
...
problem (when you don't have enough validations for the latest ledger and so
jump backwards when you shouldn't. This solves every known ledger consensus
issue except the "stuck one ledger behind" issue. I'm working on that now.
2012-09-08 03:49:12 -07:00
JoelKatz
cbc758db64
Fix crash
2012-09-07 15:25:47 -07:00
JoelKatz
390e628f10
Cmall cleanups and fixes.
2012-09-07 15:06:25 -07:00
JoelKatz
9f6118b795
Tiny cleanup
2012-09-07 11:25:20 -07:00
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
e557395072
Fix the bug causing ledgers to close immediately even without transactions.
...
Fix a bug that could cause the network to proceed without a consensus.
2012-09-07 10:47:15 -07:00
JoelKatz
4737b960fc
Improve comment.
2012-09-05 22:23:12 -07:00
JoelKatz
687578abd9
Get rid of "dead" ledgers. We don't need them any more and they make trouble.
...
Fix close time synch to be more accurate.
2012-09-05 21:55:00 -07:00
JoelKatz
2512eac370
Rounding was messing up the close time consensus test.
2012-09-05 14:52:55 -07:00
JoelKatz
ec625a608f
Small tweaks.
2012-09-05 14:37:42 -07:00
JoelKatz
1dfdf8e9d8
Count a validation for its previous ledger if it's during consensus time.
2012-09-05 10:05:15 -07:00
JoelKatz
7785b89b5d
Some extra debugging. Don't jump back to the ledger we just left (yeah,
...
there was another way that could happen.)
2012-09-05 07:22:04 -07:00
JoelKatz
00199d3915
An imperfect fix for the case where we get validations during the consensus process for the next ledger and
...
think it's a change in the previous ledger.
2012-09-03 20:36:51 -07:00
JoelKatz
4930ebb945
Simplify the way we handle validations. Include a signing time instead of a
...
closing time. Keep only the validation with the most recent signing time.
Sign using network time. This eliminates the ValidationPair nightmare and
makes the logic must easier to understand, increasing confidence that it
does what it's supposed to do.
2012-09-03 20:13:57 -07:00
JoelKatz
0862ed2957
Don't get stuck in consensus process.
2012-09-03 10:14:25 -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
cc4827559c
Support for proposals that contain the previous ledger hash.
...
A fix for ledger acquires not stopping when they should.
2012-09-03 06:03:09 -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
d5fe3261ab
Cleanups and simplfications.
2012-09-03 01:47:03 -07:00
JoelKatz
b950877758
Some proposal cleanups.
2012-09-03 01:19:58 -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
ee71603dec
Logic error in last close logic making us thing consensus was slow.
2012-08-30 10:29:56 -07:00
JoelKatz
e5af7072bc
Propogate a view change during consensus to the NetworkOPs code.
2012-08-30 10:04:58 -07:00
JoelKatz
c8d3de7b7d
Remove an incorrect assertion.
2012-08-30 09:48:59 -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