There are quite a few debug prints in this commit that will need removed
later, but for posterity (in case someone wants to debug this while I'm
away), I left them in.
Currently errors when syncing on the first block that has a "real"
transaction. Seems to not be able to validate the ring signature, but I
can't for the life of me figure out what's going wrong.
Blockchain and BlockchainLMDB classes now have a debug print at the
beginning of each function at log level 2. These can be removed at any
time, but for now are quite useful.
Blockchain runs, and adds the genesis block just fine, but for some
reason isn't getting new blocks.
Probably needs more looking at -- lot of things were done...in a rushed
sort of way. That said, it all builds and *should* be at least
testable.
update for rebase (warptangent 2015-01-04)
fix conflicts with upstream CMakeLists.txt files
src/CMakeLists.txt (remove edits from original commit)
tests/CMakeLists.txt (remove edits from original commit)
src/cryptonote_core/CMakeLists.txt (edit)
- use blockchain db .cpp and .h files
- add LMDB_LIBRARIES
All of the functionality for the LMDB implementation of BlockchainDB is
implemented, but only what is in tests/unit_tests/BlockchainDB.cpp has
been tested. This is basically add a block, see if you can get the
block and a tx from the block. More tests should be added at some
point.
Still needs testing (and need to write a few more unit tests), but
everything should be there. Lots of unfortunate duplication,
but...well, I can't see a way around it using LMDB.
A couple of other minor changes in this commit, only slightly relevant.
Some BlockchainDB unit testing fleshed out (and working), rudimentary
linker flag for lmdb in CMakeLists, but should probably be done
"correctly" at some point (find it on whatever system you're building on
and all that jazz).
update for rebase (warptangent 2015-01-04)
fix conflicts with upstream CMakeLists.txt files
tests/CMakeLists.txt (remove edits from original commit)
libglim is an Apache-licensed C++ wrapper for lmdb, and rather than
rolling our own it seems prudent to use it.
Note: lmdb is not included in it, and unless something happens as did
with libunbound, should be installed via each OS' package manager or
equivalent.
tried rebasing, tree-filter, and many other things. at this point,
the history of these files previous to this can live on
in my bc2 branch, as I'm importing them as-is to here.
b261448 revert the removal of the 'arch' flag from the release-static target (Riccardo Spagni)
a956f07 added gpg key for warptangent (Riccardo Spagni)
ac19084 revert the removal of the 'arch' flag from the release-static target (Riccardo Spagni)
simplewallet run without a wallet path argument should prompt again if
an invalid path was entered.
Validity here currently means the string isn't empty.
Allow pre-JSON wallet format to load without depending on existing bin
file.
Don't write bin file while inside keys rewrite, so bin file write
behavior here matches that of regular wallet load.
Fix for simplewallet loading a wallet with a keys file but no bin file.
- this situation previously required a user to restart simplewallet
before it would refresh its blockchain from the server.
f9822c4 wallet JSON update for non-deterministic wallet data (warptangent)
4c6230d Checking and handling for deterministic vs non-deterministic wallet (warptangent)
1beedb9 Extract check for deterministic keys to wallet2::is_deterministic() (warptangent)
359ede3 indentation (warptangent)
2290eff replace lines with call to recently added print_seed() (warptangent)
wallet2::store_keys() and wallet2::load_keys() should only use the JSON
attribute "seed_language" when applicable. That is only for
deterministic wallets.
- store_keys() don't add JSON attribute "seed_language" if
seed_language is empty
- load_keys() don't call set_seed_language if JSON attribute
"seed_language" not present
simple_wallet::seed()
- Check that wallet is deterministic.
simple_wallet::new_wallet()
- Prompt for seed language only if it's a non-deterministic wallet,
along with previous conditions.
simple_wallet::open_wallet()
- Fixed check for deterministic wallet (flag based on command line
non-deterministic argument was used before, but it's inapplicable to
opening an existing wallet).
- As with deterministic wallet, non-deterministic also included to be
rewritten to new JSON format file. That's what's done for newly
generated non-deterministic wallets, so old versions should be
updated to same format.