Commit Graph

50 Commits

Author SHA1 Message Date
JoelKatz
4b2b75b367 Fix the bug Andrey reported. A reference into an array can become invalid if
the array changes size. This happened in the txn metadata code when we had
to thread while handling a node.
2012-10-20 12:52:25 -07:00
JoelKatz
25d888ff48 Include the transaction result in the metadata. 2012-10-16 14:36:36 -07:00
JoelKatz
a9447fdfd1 Use new metadata code. 2012-10-16 13:56:13 -07:00
JoelKatz
50ce067d04 Whitespace changes. 2012-10-14 18:27:19 -07:00
JoelKatz
19b518a0af Quick fix for the bug that was causing ledgers to diverge.
LES used an unordered map, causing the traverse of modified ledger nodes to
be in random order. This meant different nodes would thread transactions
differently, causing ledger divergence. This change switches the LES code to
use a standard map. This adds more overhead to LES search functions (because
ordered map operations like search and insert are more expensive than
unordered map opreations, so it may be worth a separate ordering step just
for calcRawMeta instead.
2012-10-12 17:01:37 -07:00
JoelKatz
6bde384e06 Log partition support. 2012-10-08 00:52:00 -07:00
Arthur Britto
2ae5a92fa1 Cosmetic. 2012-10-05 18:01:39 -07:00
JoelKatz
9c637aedb9 Clean up some expensive logging. 2012-10-04 12:54:20 -07:00
Arthur Britto
5b1ac0b1e5 Add transfer support to offer taking. 2012-10-03 14:44:59 -07:00
JoelKatz
e04b695434 Burninate "Value" in "*ValueField*" functions. It was just pointless extra typing.
What else would you set/get in a field, by name, other than its value?
2012-10-01 15:35:30 -07:00
JoelKatz
79c35f2689 Remove all IField/ITField functions. They are now obsolete.
Use the correponding STObject functions.
2012-10-01 15:21:22 -07:00
JoelKatz
cfa0f129d9 Merge branch 'master' of github.com:jedmccaleb/NewCoin into serialize
Conflicts:
	src/LedgerFormats.cpp
	src/SerializedLedger.cpp
	src/Version.h

Merge with master
2012-09-28 19:22:30 -07:00
Arthur Britto
7bd25b8688 Remove LowID and HighID from ripple state nodes. 2012-09-28 14:59:34 -07:00
JoelKatz
6d58bd52b1 Missing from SField::ref commit. 2012-09-26 12:47:42 -07:00
Arthur Britto
521f47c330 Merge branch 'master' of github.com:jedmccaleb/NewCoin 2012-09-24 19:51:02 -07:00
Arthur Britto
8cc760ad8d Clean up offer processing. 2012-09-24 19:50:57 -07:00
JoelKatz
a4070de73e Some work on the new binary formats that doesn't break current code. 2012-09-24 13:04:24 -07:00
JoelKatz
02b3bcb089 Put the threading in the correct owner node for unthreaded nodes.
Add some additional debug to threading.
2012-09-20 00:15:48 -07:00
JoelKatz
f8e107a4be Extra debug. 2012-09-13 15:30:21 -07:00
JoelKatz
499d9b5536 Log metadata in debug builds. 2012-09-13 13:12:21 -07:00
JoelKatz
38dd9f3f88 Add metadata JSON to set JSON.
Fix a bug where we try to access the existing node when we're creating a node.
Extra asserts to catch original node mishandlig.
2012-09-13 12:29:06 -07:00
JoelKatz
db85d87ff2 Must modify nodes. 2012-09-13 01:39:03 -07:00
JoelKatz
953f0ad63f Don't charge for transactions twice. Have the "old" getTransaction handle metadata sanely.
Fix calcRawMeta to fit the new model where an LES holds a reference to its ledger
Don't put metadata in open ledger txn sets to avoid breaking the proposal mechanism.
2012-09-13 01:01:40 -07:00
JoelKatz
1ba5b02f14 Don't track metadata for directory nodes. 2012-09-12 09:18:10 -07:00
Arthur Britto
b7f3baee15 Split up TransactionEngine, part 1. 2012-09-09 19:54:46 -07:00
Arthur Britto
4adfce51a3 Create TransactionErr.* and move dir functions to LedgerEntrySet. 2012-09-08 15:37:22 -07:00
JoelKatz
1a1952ea7b You can now create a LedgerEntrySet without a TransactionEngine. You can
call all the various entry* functions on it directly. You can throw it out
when you're done. The constructor is:

    LedgerEntrySet(Ledger::ref ledger)

All the normal checkpointing, caching, and swapping will work. Of course,
you cannot commit the results. The TransactionEngine::entry* functions now
just directly call the corresponding functions on the LedgerEntrySet. You
can call them in code that will only be used in the context of a
transaction.
2012-09-08 00:48:26 -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
bcd08c368c This should complete the code to build the transaction meta data based on
the ledger entry set.
2012-08-28 04:05:19 -07:00
JoelKatz
9148127083 Fix threading. 2012-08-27 03:04:33 -07:00
JoelKatz
4633aa019c Mid-level threading code. 2012-08-24 09:35:35 -07:00
JoelKatz
e00426a3be Finalizing of metadata building. 2012-08-22 14:56:01 -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
Arthur Britto
872314f933 Remove more Account from AccountStateNode and LedgerEntrySet revision. 2012-08-14 17:17:28 -07:00
Arthur Britto
2f3f51b0ee Merge branch 'master' into ripple
Conflicts:
	src/LedgerEntrySet.cpp
2012-08-10 13:15:34 -07:00
JoelKatz
e3c77d2c0c More LedgerEntrySet code. Retrieve as Json. Finalize before serializing. 2012-08-09 19:21:08 -07:00
JoelKatz
9eaf052ee8 Make this compile temporarily. 2012-08-03 03:22:32 -07:00
Arthur Britto
db8775729f Merge branch 'master' into ripple 2012-08-01 14:34:24 -07:00
Arthur Britto
4f8ada17c7 Work towards ripple. 2012-07-28 17:38:37 -07:00
JoelKatz
1167ba2cc0 Set up for ledger diffs to populate the metadata.
Special case for unfunded offers -- need to know how much was taken before deletion
2012-07-28 14:49:34 -07:00
JoelKatz
ce2e1cea33 Beging merging transaction metadata code with ledger entry set code. 2012-07-27 12:56:28 -07:00
JoelKatz
ad77087ee5 Remove some unneeded reference count bumps. 2012-07-26 16:38:42 -07:00
JoelKatz
c5995e9e1e Add some asserts. 2012-07-26 16:35:36 -07:00
JoelKatz
061460b1f8 Fix a case I mishandled. 2012-07-26 16:25:51 -07:00
JoelKatz
487590b938 Fixes. 2012-07-26 16:22:40 -07:00
Arthur Britto
073f3904ec LedgerEntrySet fixes. 2012-07-26 16:13:39 -07:00
JoelKatz
5fa4bad9b5 Switch to the new LedgerEntrySet code. This provides more sophisticated checkpointing and rewinding. 2012-07-26 04:07:37 -07:00
JoelKatz
de6ef42baf Complete the basic API for LedgerEntrySet's. 2012-07-25 04:01:42 -07:00
JoelKatz
40c4d686fb LedgerEntrySet work. 2012-07-25 02:46:19 -07:00