This code does not assume the new previous ledger is valid
or trusted.
1) Validate sequence numbers and basic information.
2) Create a new ledger based on the new previous ledger.
3) Compare the old previous ledger and the new previous
ledger.
4) Try to include any missing, valid transactions in
the current ledger.
5) Traverse the old ledger based on the old previous ledger,
try to import any transactions into the new ledger.
work with no parameters. Fix a bug where the ledger's account/txn
hashes didn't get properly synchronized to the SHA maps. Add function
to get ledger as json object.
accounts. Remove the LocalAccountEntry class and make some huge
simplifications.
Ledger.cpp | 14 +++++--
LocalAccount.h | 80 +++++++++++++++------------------------------
Wallet.cpp | 101 +++++++++++++++++++--------------------------------------
and SQL code. This uses some of the 'magic' properties of elliptic
curves to create related families of public and private keys.
Wallet encryption is not needed because the private keys do not
need to be stored.
Track whether ledger is accepted.
Assert on modifications to an accepted ledger.
Save accepted ledgers to DB.
Load ledger by hash/index.
Ledger history functions, ledger canonicalization.
'Push' ledger to history.
account, creates an initial ledger, closes the initial ledger and opens a
new ledger, creates a second account, and adds a transaction to transfer
funds to the open ledger.