Age | Commit message (Collapse) | Author | Files | Lines |
|
For consistency.
|
|
|
|
Replace temporary assignment that used hardcoded values.
|
|
Ensures the database is consistent.
Also simplifes blockchain_import in that verify mode off has less to
work around.
|
|
This will later allow the HardFork object's DB update functions to be
called when the DB transaction that persists across block add/remove is
open.
|
|
Move block-scope txn start and stop from BlockchainLMDB to BlockchainDB.
|
|
|
|
Note that this doesn't yet cause them to be called during block add.
|
|
|
|
|
|
The HardFork object is needed for the importer to update the hard fork
data when verify mode is off.
|
|
|
|
|
|
|
|
|
|
f6abc53 simplewallet: check watch-only view key matches standard address (moneromooo-monero)
|
|
c7b96b9 wallet: check a key image isn't already present when adding one (moneromooo-monero)
|
|
d9f4b39 daemon: remove leftover debug log (moneromooo-monero)
|
|
05bfb51 core: move the db lock to the data directory (moneromooo-monero)
|
|
7658ac0 blockchain: revert handle_get_objects adding block id on tx not found (moneromooo-monero)
3a0f4d8 berkeleydb: fix delete/free mismatch (moneromooo-monero)
1642be2 minor bugfixes and refactoring (Thomas Winget)
098dcf2 unit_tests: fix mnemonics unit test testing invalid seeds (moneromooo-monero)
|
|
|
|
|
|
If it is, it points to reuse of a tx key, which isn't meant to happen.
If it does, a key image collision means that only one of those
outputs is spendable, so the wallet selects the larger amount,
unless that output was spent already.
This causes a discrepancy betewen reported received inputs and
payment total.
Since tx keys are 256 bits, this should never happen except if
done on purpose, or if a sender uses a bad PRNG.
|
|
Locking just one db turns out to not have been a good idea, since
the pool and p2p state fdles have to be used anyway.
Also ensure the directory exists before tring to lock.
|
|
This differs from the original CN code, and there seems to be
no reason to include the block itself, if it was found
|
|
Despite being C++, the stats object is allocated by the underlying
C layer using malloc(3).
|
|
- Blockchain should store if it's running on testnet or not
- moved loading compiled-in block hashes to its own function for clarity
- on handle_get_objects, should now correctly return false if a block's
transactions are missing
- replace instances of BOOST_FOREACH with C++11 for loops in Blockchain.
|
|
|
|
This reverts commit 58f890652e86039e98dff2d48d217c9ea9e84eca, reversing
changes made to 39d73d2a27730e6a5844c259d81a0ed9d4ee3000.
|
|
8b3539b core: prevent the database from being used by multiple daemons (moneromooo-monero)
|
|
7fc6fa3 wallet: forbid dust altogether in output selection where appropriate (moneromooo-monero)
5e1a739 blockchain: log number of outputs available for a new tx (moneromooo-monero)
|
|
80882ac wallet: guard against exception in process_blocks (moneromooo-monero)
|
|
2cf8b32 wallet: guard against exception in process_blocks (moneromooo-monero)
|
|
bcac101 daemon: fix a few issues reported by valgrind (moneromooo-monero)
a7e8174 tx_pool: fix serialization of new relayed data (moneromooo-monero)
601ad76 hardfork: fix mixup in indexing variable in get_voting_info (moneromooo-monero)
444e22f blockchain: remove unused timer (moneromooo-monero)
7edfdd8 blockchain: fix m_sync_counter uninitialized variable use (moneromooo-monero)
d97582c epee: use generate_random_bytes for new random uuids (moneromooo-monero)
17c7c9c epee: remove dodgy random code that nobody uses (moneromooo-monero)
|
|
A boost lock is used to determine whether more than one process
wants to access the database. The boost file_lock doesn't seem
to like locking directories, so we use an arbitrary file in it.
This allows to still run two daemons if they have different
database directories (ie, LMDB/BDB, different data directories).
|
|
|
|
|
|
If an exception occurs, the thread needs to be joined, or it
will be deleted while still live, and terminate the process.
|
|
If an exception occurs, the thread needs to be joined, or it
will be deleted while still live, and terminate the process.
|
|
In particular, ensure we check the status of RPC response structures,
as some functions will return success, but with a BUSY status, when
the daemon is not yet synced, and the response will not filled.
|
|
|
|
|
|
|
|
It counts the number of blocks added since last zeroing
|
|
It can flush a particular tx, or the whole pool (the RPC command
can flush a list of transactions too)
|
|
|
|
|
|
When a transaction is not found in the pool anymore, it is marked
as failed, and displayed as such in show_transfers.
|
|
|
|
94b98fb tx_pool: do not accept txes not in a block if they timed out before (moneromooo-monero)
eadbdf3 tx_pool: fix use of invalidated iterator (moneromooo-monero)
3b1d7e0 Fix V1/V2 use of hard fork related parameters (moneromooo-monero)
|
|
This is intended to avoid cases where a timed out tx will be
re-relayed by another peer for which it has not timed out yet,
which would cause the tx to stay in the network's pool for a
long time (until all peers time it out before another one
tries to relay it again).
|
|
|
|
Some of it uses hardcoded height, which will need some thinking
for next (voted upon) fork.
|
|
See 24b66243c2767726ea4b279fcf447c7cd82c13e5
|
|
This improves blockchain reorganization time by allowing one of the more
expensive DB lookups when popping a block to not have to seek through a
long dup list in the "output_amounts" db. This is most noticeable for
HDDs.
See ffcf6bdb95abe2dab37d5f8d9acc134fdc6b4d36
|
|
Data should be removed in the reverse order it was added.
This matches the order of removal in
blockchain_storage::pop_transaction_from_global_index.
See f11def012f38106b0ffeb7010a2f749de1e5b640
|
|
|
|
e514f0a even more typos (Henning Kopp)
9abc4b8 more typos fixed (Henning Kopp)
0693f3c fixed typo (Henning Kopp)
|
|
f76f656 simplewallet: remove leftover command line refresh-type handling (moneromooo-monero)
|
|
15d9ac8 wallet2: update spent comparison now that we have two spent states (moneromooo-monero)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Delete the hf tables, so the next open will rescan and regenerate
|
|
|
|
|
|
945ac78 hardfork: fix accepting v2 blocks too early (moneromooo-monero)
|
|
|
|
|
|
|
|
8ce12a9 Fix arm asm (Howard Chu)
94de39f Tweak arm6 flags (Howard Chu)
|
|
c5baf30 use load_file_to_string and exit with error on file read errors (Fabian Hirschmann)
7b2d27f remove new lines at the end of the password only (Fabian Hirschmann)
302cc9c add --password-file option (Fabian Hirschmann)
|
|
About 10% faster than plain C mul128 on raspi1B
|
|
which fixes the status command via RPC too.
Turns out there are two versions of the GET_INFO call.
I'd never noticed before.
|
|
|
|
The value will be different depending on whether we've reached
the first hard fork, which allows a larger size, or not.
This fixes transactions being rejected by the daemon on mainnet
where the first hard fork is not yet active.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1e07110 Nicer looking exit when blockchain.bin is found (moneromooo-monero)
|
|
Do not print the exception message, and write the important bit
in red, since people will only read the last line otherwise.
|
|
Fixes intermittent test failures when the pool contains
unexpected transactions that were brought in from the
live pool.
|
|
5c67c48 wallet: don't forget to close the file after storing cache (moneromooo-monero)
|
|
Also add some flags to open, as epee's save_string_to_file does,
to truncate file, etc.
|
|
|
|
|
|
This ensures this will be done without fail, as the error prone
matching of every return with a call to KILL_IOSERVICE leads to
hard to debug corruption when one is missing.
|
|
- only try to stop if actually started
- print number of threads before zeroing it
This fixes the suspiciously doubled "Mining has been stopped"
message on exit.
|
|
Blockchain hashes and key images are flushed, and blocks are
pulled anew from the daemon.
The console command is shortened to match bc_height.
This should make it a lot easier on users who are currently
told to remove this particular cache file but keep the keys
one, etc, etc.
|
|
This can happen when the daemon exits, which would also cause
the wallet to crash via unhandled exception
|
|
They do not take the object lock, and are meant to be used only
internally, called from a function which does take the lock.
|
|
|
|
61befc2 wallet: store cache to file without unnecessary memory buffer (moneromooo-monero)
|
|
61ce8d6 wallet_rpc_server: exit async, so we reply to stop_wallet RPC (moneromooo-monero)
9847db6 wallet: do not return error if incoming_transfers finds none (moneromooo-monero)
|
|
0953355 blockchain_db: inform user about new format if blockchain.bin is found (moneromooo-monero)
|
|
b39aae7 Tweak 45800a25e9374e63caaabba05c89585c86acd668 (hyc)
4a5a5ff blockchain: always stop the ioservice before returning (moneromooo-monero)
78b65cf db_lmdb: safety close db at exit (moneromooo-monero)
45800a2 db_lmdb: fix a strdup/delete[] mistmatch (moneromooo-monero)
|
|
fc34132 Remove assert from status command (hyc)
|
|
ee9d71e BlockchainDB: skip fixup check if read-only database (warptangent)
|
|
b0541a5 blockchain: remove obsolete containers (moneromooo-monero)
18a5211 blockchain: Fix height in call to on_blockchain_dec (moneromooo-monero)
|
|
|
|
trivial cleanup
|
|
Reported by saddam
|
|
|
|
Fixes a use after free
|
|
reported by saddam
|
|
Noticed by hyc
Also set m_open to false when closed
|
|
|
|
Crashes every time...
|
|
|
|
|
|
It was a noop anyway
|
|
|
|
79beed2 tests: fix various tests by using parameters better suited to monero (moneromooo-monero)
d0a8362 tests: fix some double spending tests (moneromooo-monero)
2358d0d tests: use 255 as a "too high" block version (moneromooo-monero)
f33a88c blockchain: fix a few block addition bugs (moneromooo-monero)
a9ff11c blockchain: fix an off by one error in unlocked time check (moneromooo-monero)
f294be3 blockchain: reinstate double spending checks in check_tx_inputs (moneromooo-monero)
737b6d6 blockchain: make some flag twiddling code closer to the original (moneromooo-monero)
81cb0fc blockchain: fix bitflipping test with quantized block rewards (moneromooo-monero)
22ddf09 blockchain: add missing m_tx_pool.on_blockchain_dec (moneromooo-monero)
d837c0c blockchain: fix switch to alternative blockchain for more than one block (moneromooo-monero)
5cec076 blockchain: add a missing validity check to rollback_blockchain_switching (moneromooo-monero)
3cabdb5 core: catch exceptions from get_output_key (moneromooo-monero)
5eef645 db: throw when given a non txout_to_key output to add (moneromooo-monero)
|
|
If the block reward was too high, the verification failed flag
was set, but the function continued. The code which was supposed
to trap this flag and return failure failed to trap it, and,
while the block was not added to the chain, the function would
return success.
The reason for avoiding returning when the block reward problem
was detected was to be able to return any transactions to the
pool if needed. This is now mooted by moving the transaction
return code to a separate function, which is now called at all
appropriate points, making the logic much simpler, and hopefully
correct now.
We also move the hard fork version check after the prev_id check,
as block which does not go on the top of the chain might not
have the expected version there, without being invalid just for
this reason.
Last, we trap the case where a block fails to be added due to
using already spent key images, to set the verification failed
flag.
|
|
|
|
This fixes some double spending tests.
This may or may not be unneeded in normal (non test) circumstances,
to be determined later. Keeping these for now may be slower, but safer.
|
|
Probably paranoid and unnecessary
|
|
Block reward may now be less than the full amount allowed.
This was breaking the bitflipping test.
We now keep track of whether a block which was accepted by the core
has a lower than allowed block reward, and allow this in the test.
|
|
It was missing in the port to DB.
This is actually a noop, so should not have functional changes.
|
|
When rolling over more than one block, the db height will decrease,
but the split height should be constant, as per the original code.
|
|
It was present in the original code
|
|
This can happen when trying to find an amount that does not exist,
and fixes a core test.
|
|
The check was explicit in the original version, so it seems
safer to make it explicit here, especially as it is now done
implicitely in a different place, away from the original check.
|
|
d4c2fae BlockchainDB: Remove txs in reverse order (warptangent)
|
|
ffcf6bd BlockchainLMDB: When removing, find amount output index fast by starting at end (warptangent)
f11def0 BlockchainLMDB: Remove tx outputs in reverse order (warptangent)
|
|
791e7fb changed height to uint64_t (Brendan Telzrow)
4cd7913 added RPC wallet command getheight (Brendan Telzrow)
|
|
Data should be removed in the reverse order it was added. Not doing so
breaks assumptions and can cause problems in other DB implementations.
This matches the order of tx removal in
blockchain_storage::purge_block_data_from_blockchain.
|
|
This improves blockchain reorganization time by allowing one of the more
expensive DB lookups when popping a block to not have to seek through a
long dup list in the "output_amounts" subdb. This is most noticeable for
HDDs.
As before, the dup list is still walked if necessary (but in reverse),
and the global output index still confirmed to be the one looked for.
But under proper use, the result will be found at the end of the dup
list, so we start there.
Removing an amount output index is always done in the context of popping
a block, so the global output index being looked for should be the last
one in that amount key's dup list. Even if the txs themselves aren't
removed in reverse order (supposed to be according to original
implementation), the specified amount output index will still be near
the end, because the txs are in the same block.
TEST:
Pop blocks with blockchain_import.
Blocks should be successfully removed with no errors shown.
bitmonerod should be able to start syncing from the reduced blockchain
height.
|
|
Data should be removed in the reverse order it was added.
This matches the order of removal in
blockchain_storage::pop_transaction_from_global_index.
|
|
|
|
wallet generation
|
|
|
|
|
|
One loop was not paying attention to the stop signal, and could
end up looping forever
|
|
9428d53 Strip redundant includes (hyc)
|
|
8c93608 wallet: fix load/save versioning bug for recently added tx data (moneromooo-monero)
|
|
8ea7af1 Allow the wallet to access hard fork information (moneromooo-monero)
760331b epee: make log macros behave like statements (moneromooo-monero)
3f2970f Add missing semicolons after log statements (moneromooo-monero)
|
|
0ab56b8 print top block hash in daemon diff command (moneromooo-monero)
|
|
In particular, <boost/program_options.hpp> blows up daemon.cpp.obj,
making it too big to compile in debug mode on Win32. Even on a
release build it drops daemon.cpp.o on Linux from 31MB to 20MB.
This has no effect on the final linked binary size.
|
|
The version number passed to those data's serialize function
was always 0, not the wallet's version as I had expected.
A version number now exists for these structures so they're
versioned correctly.
|
|
And make it change behavior slightly when close/after first hard fork
|
|
|
|
and add top block hash in get_info RPC
|
|
01e92eb replace std::auto_ptr with std::unique_ptr (moneromooo-monero)
|
|
63cb1a5 move another non user useful log to L1 (moneromooo-monero)
02827d5 p2p: minor log formatting fix (moneromooo-monero)
|
|
9b4f8b4 wallet: save to a temporary file, then rename (moneromooo-monero)
|
|
The former is obsolete
|
|
|
|
|
|
This should avoid most of wallet cache corruption cases
|
|
5131b26 Replace tabs and remove trailing whitespace (warptangent)
0d40de4 Optionally restrict DNS queries to TCP (warptangent)
|
|
9079a32 Fix typo (warptangent)
3796941 blockchain.cpp: Change indentation from 4 to 2 spaces (warptangent)
725acc7 Replace tabs with two spaces for consistency with rest of codebase (warptangent)
|
|
|
|
Sample use:
DNS_PUBLIC=tcp torsocks bin/bitmonerod --p2p-bind-ip 127.0.0.1
Test:
Run above with --log-level 4 with and without DNS_PUBLIC environment
variable set.
DNS debugging info should show successful DNS lookups only when
DNS_PUBLIC is set to "tcp":
DNS lookup for seeds.moneroseeds.se: 17 results
DNS lookup for seeds.moneroseeds.ae.org: 17 results
DNS lookup for seeds.moneroseeds.ch: 12 results
DNS lookup for seeds.moneroseeds.li: 12 results
|
|
|
|
|
|
Remove trailing whitespace in same files.
|
|
75fd96d Revert connection limit to more customary 8 (Javier Smooth)
|
|
d462c62 db_lmdb: always use a batch tx if possible (moneromooo-monero)
|
|
a74cc1b hardfork: only accept major versions we know about (moneromooo-monero)
|
|
cb4ee1b Tone down L0 logs during daemon sync some more (moneromooo-monero)
2177923 Tone down a bit L0 logs during daemon sync (moneromooo-monero)
|
|
|
|
Also wrap that code in two prefix/suffix macros so they are
easier to use and not forget. Also add consts to returned data
casts where applicable.
|
|
|
|
|
|
|
|
We need to stop the p2p layer, which causes the rest to shutdown
gracefully. Hitting ^C was still going through another path.
|
|
7f77b23 posix_daemonizer: only create the main daemon object in the last child (moneromooo-monero)
|
|
79ff6a5 Add LMDB error string to database transaction exception message (warptangent)
|
|
cbded43 core_tests: fix ring_signature_1 tests (moneromooo-monero)
c3d208f core_tests: bump default test fee to 0.02 monero (moneromooo-monero)
10da0a0 add a --fakechain argument for tests (moneromooo-monero)
eee44e6 unit_tests: fix block reward test using post hard fork settings (moneromooo-monero)
595893f blockchain: log block (not chain) height in "BLOCK SUCCESFULLY ADDED" (moneromooo-monero)
2369968 blockchain: fix off by one in get_blocks (moneromooo-monero)
8af913a db_lmdb: implement BlockchainLMDB::reset (moneromooo-monero)
4833f4f db_bdb: implement BlockchainBDB::reset (moneromooo-monero)
18bf06e tx_pool: fix "minumim" typo in message (moneromooo-monero)
44f1267 tests: fix a typo in test name (moneromooo-monero)
1494557 db_lmdb: create all needed directories, not just the leaf one (moneromooo-monero)
015b68a db_bdb: create all needed directories, not just the leaf one (moneromooo-monero)
f141869 tests: remove data-dir argument registration (moneromooo-monero)
|
|
0198306 Stop displaying internal commands for --help (luigi1111)
189d516 simplewallet help & error cleanup (luigi1111)
|
|
This prevents the intermediate thread from exiting properly, as
fork creates a child process with only one thread, so any existing
data_logger thread will not be in the child. Since this thread
sets a flag the data_logger dtor blocks on, all children threads
will hang on exit.
|
|
When throwing an exception from being unable to begin an LMDB
transaction, include the reason.
It's often been due to a write transaction attempted within a write
transaction (batch mode), but there can be other reasons such as write
transaction attempted while database was opened read only, or
environment's map needs to be resized.
|
|
The core tests use the blockchain, and reset it to be able
to add test data to it. This does not play nice with the
databases, since those will save that data without an explicit
save call.
We add a fakechain flag that the tests will set, which tells
the core and blockchain code to use a separate database, as
well as skip a few things like checkpoints and fixup, which
only make sense for real data.
|
|
This makes it log the same height as the original code, which is
less confusing when comparing behaviors.
|
|
|
|
It is needed by the core tests
|
|
It is needed by the core tests
|
|
|
|
|
|
|
|
Displaying in-program commands with --help doesn't match daemon
behaviour (or make sense)
|
|
Typos, grammar, consistency. I don't claim to have gotten everything.
|
|
Data is only guaranteed to be valid within the lifetime of a txn.
You cannot use data returned from LMDB after the txn ends.
Also, fixed a missing txn.commit BlockchainLMDB::get_tx_unlock_time()
|
|
336b375 Register daemon command line arguments to core if they're used in core (moneromooo-monero)
|
|
This fixes coretests, which does not register daemon specific arguments,
but uses core, which uses those arguments. Also gets rid of an unwanted
dependency on daemon code from core.
|
|
2c83055 net_node: add a --offline argument (moneromooo-monero)
|
|
f746434 daemon: add mining status to the status command (moneromooo-monero)
|
|
1c8262c db_bdb: move log_set_config call before open (moneromooo-monero)
|
|
8620b31 db_bdb: support for libdb without DB_FORCESYNC (moneromooo-monero)
|
|
34e3889 p2p: failure to load p2pstate.bin is not fatal anymore (moneromooo-monero)
|