JoelKatz
67477beecb
Track the type of map in the SHAMap. This will make it easier to parse missing nodes
...
at ledger level.
2012-10-11 03:13:28 -07:00
JoelKatz
6f2e4b8172
Add RPC "accept_ledger" function which processes all pending transactions (in standalone mode only)
...
and closes the ledger, opening a new one. The sequence number of the new open ledger is returned.
2012-10-08 20:02:52 -07:00
JoelKatz
31a6177da0
More logging improvements.
2012-10-08 07:14:36 -07:00
JoelKatz
470e2c5747
Fixups.
2012-10-08 00:49:55 -07:00
JoelKatz
12c6a37cac
More log partition support.
2012-10-08 00:48:04 -07:00
JoelKatz
0630a4b7f4
We have to track the high node ID of trusted validators as a tie-breaker.
...
1) Change return from getCurrentValidations
2) Log tiebreaker logic to aid debugging
3) Change checkLastClosedLedger to use the new tie-breaker logic
4) Log when we refuse to switch to our own previous ledger
5) Track node ID in the serialized validation object
6) Simplify getCurrentValidations ledger suppression logic
2012-10-05 03:46:24 -07:00
JoelKatz
4bab95440c
Log how many peers we sent a validation to.
2012-10-04 23:44:36 -07:00
JoelKatz
015ba9f24d
Typo.
2012-10-04 12:53:38 -07:00
JoelKatz
414a44b6b5
Prevent a race condition that can cause us to miss an "I have a transaction
...
set" message if it arrives as we're in the process of generating a new
last-closed ledger.
2012-10-04 02:19:47 -07:00
JoelKatz
39cb1899d0
A few small bugfixes and some exra logging to track down a sync bug that Jed reported.
2012-10-03 22:23:32 -07:00
JoelKatz
b973f3509c
Typo fixes.
2012-09-30 23:40:21 -07:00
JoelKatz
de3b89d5c1
Fix the bug Jed reported. Need isTeRetry.
2012-09-30 23:38:29 -07:00
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