aboutsummaryrefslogtreecommitdiff
path: root/src/cryptonote_core/blockchain.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Fake outs set is now decided by the walletmoneromooo-monero2016-08-111-0/+19
| | | | | | | | | | | | | | | | | | This plugs a privacy leak from the wallet to the daemon, as the daemon could previously see what input is included as a transaction input, which the daemon hadn't previously supplied. Now, the wallet requests a particular set of outputs, including the real one. This can result in transactions that can't be accepted if the wallet happens to select too many outputs with non standard unlock times. The daemon could know this and select another output, but the wallet is blind to it. It's currently very unlikely since I don't think anything uses non default unlock times. The wallet requests more outputs than necessary so it can use spares if any of the returns outputs are still locked. If there are not enough spares to reach the desired mixin, the transaction will fail.
* new unlocked parameter to output_histogrammoneromooo-monero2016-08-011-2/+2
| | | | | | | | This constrains the number of instances of any amount to the unlocked ones (as defined by the default unlock time setting: outputs with non default unlock time are not considered, so may be counted as unlocked even if they are not actually unlocked).
* Merge branch 'performance' of https://github.com/LMDB/bitmoneroRiccardo Spagni2016-04-291-2/+3
|\
| * Merge branch 'performance' into masterHoward Chu2016-04-051-2/+3
| |\
| | * Schema update: tx_indices - improve further with less indirectionwarptangent2016-04-051-2/+3
| | |
* | | add a --max-concurrency flagmoneromooo-monero2016-04-281-3/+3
| | | | | | | | | | | | | | | | | | It sets the max number of threads to use for a parallel job. This is different that the number of total threads, since monero binaries typically start a lot of them.
* | | blockchain: add missing overflow check for already generated coinsmoneromooo-monero2016-04-171-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | When reaching the tail emission phase, the amount of coins will eventually go over MONEY_SUPPLY, overflowing 64 bits. There was a check added to blockchain_storage, but this was not ported to the blockchain DB version. Reported by smooth.
* | | blockchain: update cumulative block limit when popping a blockmoneromooo-monero2016-04-171-0/+1
| | | | | | | | | | | | | | | | | | | | | Avoids possible issues with accepting a tx too large to fit in an actual block. Reported by smooth.
* | | Merge pull request #784Riccardo Spagni2016-04-141-0/+1
|\ \ \ | | | | | | | | | | | | 087373e Fix potential race with parallel processing of txes/signatures/blocks (moneromooo-monero)
| * | | Fix potential race with parallel processing of txes/signatures/blocksmoneromooo-monero2016-04-021-0/+1
| |/ /
* / / blockchain: remove the tx validation result cachemoneromooo-monero2016-04-061-18/+0
|/ / | | | | | | | | As pointed out by smooth, a transaction's validity may change over time as the blockchain changes.
* | Merge pull request #767Riccardo Spagni2016-04-021-5/+10
|\ \ | | | | | | | | | 24b3e90 Convey tx verification failure reasons to the RPC client (moneromooo-monero)
| * | Convey tx verification failure reasons to the RPC clientmoneromooo-monero2016-03-271-5/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows appropriate action to be taken, like displaying the reason to the user. Do just that in simplewallet, which should help a lot in determining why users fail to send. Also make it so a tx which is accepted but not relayed is seen as a success rather than a failure.
* | | Merge pull request #765Riccardo Spagni2016-03-271-0/+5
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | d5d46e6 tests: obligatory hardfork unit build fix after interface change (moneromooo-monero) 25672d3 wallet: pass std::function by const ref, not value (moneromooo-monero) 0be6e08 wallet: do not leak owned amounts to the daemon unless --trusted-daemon (moneromooo-monero) 12146da wallet: change sweep_dust to sweep_unmixable (moneromooo-monero) 600a3cf New RPC and daemon command to get output histogram (moneromooo-monero) f9a2fd2 wallet: handle rare case where fee adjustment can bump to the next kB (moneromooo-monero) f26651a wallet: factor fee calculation (moneromooo-monero)
| * | New RPC and daemon command to get output histogrammoneromooo-monero2016-03-261-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a list of existing output amounts along with the number of outputs of that amount in the blockchain. The daemon command takes: - no parameters: all outputs with at least 3 instances - one parameter: all outputs with at least that many instances - two parameters: all outputs within that many instances The default starts at 3 to avoid massive spamming of all dust outputs in the blockchain, and is the current minimum mixin requirement. An optional vector of amounts may be passed, to request histogram only for those outputs.
* | | blockchain: for v3, require miner tx to have well behaved outsmoneromooo-monero2016-03-251-2/+11
|/ / | | | | | | | | | | This was meant to go in v2, but the miner tx slipped through the cracks as it doesn't go through the main tx verification since it doesn't get added to the pool.
* | Merge pull request #749Riccardo Spagni2016-03-251-10/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | bfd4a28 Update BlockchainDB documentation (Thomas Winget) 797357e Change Doxyfile, Blockchain not blockchain_storage (Thomas Winget) c835215 remove defunct code from cryptonote::core (Thomas Winget) 50dba6d cryptonote::core doxygen documentation (Thomas Winget) 8ac329d doxygen documentation for difficulty functions (Thomas Winget) 540a76c Move checkpoint functions into checkpoints class (Thomas Winget) 1b0c98e doxygen documentation for checkpoints.{h,cpp} (Thomas Winget) 89c24ac Remove unnecessary or defunct code (Thomas Winget) ab0ed14 doxygen include private and static members (Thomas Winget) 3a48449 Updated documentation for blockchain.* (Thomas Winget)
* | Revert "Merge pull request #749"Riccardo Spagni2016-03-251-39/+10
| | | | | | | | | | This reverts commit 7fa63a82a1c3a0243f6757c1689855ed3ca61695, reversing changes made to cb6be986c36b78eddb4b7f16e9ad440af8567dc4.
* | Merge pull request #749Riccardo Spagni2016-03-251-10/+39
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bfd4a28 Update BlockchainDB documentation (Thomas Winget) 797357e Change Doxyfile, Blockchain not blockchain_storage (Thomas Winget) c835215 remove defunct code from cryptonote::core (Thomas Winget) 50dba6d cryptonote::core doxygen documentation (Thomas Winget) 8ac329d doxygen documentation for difficulty functions (Thomas Winget) 540a76c Move checkpoint functions into checkpoints class (Thomas Winget) 1b0c98e doxygen documentation for checkpoints.{h,cpp} (Thomas Winget) 89c24ac Remove unnecessary or defunct code (Thomas Winget) ab0ed14 doxygen include private and static members (Thomas Winget) 3a48449 Updated documentation for blockchain.* (Thomas Winget)
| * | Move checkpoint functions into checkpoints classThomas Winget2016-03-241-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | The functions in src/cryptonote_core/checkpoints_create.{h,cpp} should be member functions of the checkpoints class, if nothing else for the sake of keeping their documentation together. This commit covers moving those functions to be member functions of the checkpoints class as well as documenting those functions.
| * | Remove unnecessary or defunct codeThomas Winget2016-03-221-1/+0
| | |
| * | Updated documentation for blockchain.*Thomas Winget2016-03-221-5/+35
| | | | | | | | | | | | | | | | | | | | | | | | All functions are now documented in doxygen format. Comments have been updated to reflect the current state of the code. Many areas for improvement in clarity and design have been noted, as well as cruft to be removed. These changes are not reflected in this commit both to allow time for comment and to keep commits organized by purpose.
* | | blockchain: fix partial block reward detectionmoneromooo-monero2016-03-221-1/+1
|/ /
* | also maybe do the block height this time, you know, just so that it actually ↵Riccardo Spagni2016-03-211-1/+1
| | | | | | | | works.
* | also update the timestamp for the hard forkRiccardo Spagni2016-03-211-1/+1
| |
* | set fork date for September, add hyc's GPG key, remove aabramov'sRiccardo Spagni2016-03-211-0/+3
| |
* | Fix issue #706Howard Chu2016-03-191-0/+1
| |
* | Use boost::thread instead of std::threadHoward Chu2016-03-111-3/+3
|/ | | | and all other associated IPC
* Blockchain: Omit verbose time stats messages by defaultwarptangent2016-03-031-1/+1
| | | | | | | | | This is already the default for the daemon, but by checking a command line argument and calling a Blockchain member function setter. Initialize the variable to false so it's not dependent on an external command-line argument check. This allows utilities like blockchain_import to have a reasonable default without code changes.
* Wrap some more actions in a larger read txnHoward Chu2016-02-231-11/+25
|
* read txn/cursor stuffHoward Chu2016-02-231-0/+9
| | | | Could wrap more later.
* blockchain: initialize m_hardfork to NULLmoneromooo-monero2016-02-081-1/+1
| | | | It can now be set by some other code, and is thus tested
* core_tests: add tests for hard fork behaviors (MRL-0004)moneromooo-monero2016-02-081-5/+15
| | | | | | We also replace the --fakechain option with an optional structure containing details about configuration for the core/blockchain, for test purposes. This seems more future friendly.
* blockchain: reset hardfork object when resetting blockchainmoneromooo-monero2016-02-081-0/+1
| | | | | Not doing so will prevent the new genesis block from being reset if a switch past v1 had occured already.
* Blockchain: Update comments on removing blockwarptangent2016-02-081-0/+5
|
* Move HardFork DB update to BlockchainDB::add_block()warptangent2016-02-081-3/+0
| | | | | | | Ensures the database is consistent. Also simplifes blockchain_import in that verify mode off has less to work around.
* Make HardFork object available to BlockchainDB and derived DB implementationswarptangent2016-02-081-0/+2
| | | | | | 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.
* Blockchain: Optionally pass in HardFork objectwarptangent2016-02-081-4/+20
|
* blockchain: revert handle_get_objects adding block id on tx not foundmoneromooo-monero2016-02-031-1/+0
| | | | | This differs from the original CN code, and there seems to be no reason to include the block itself, if it was found
* minor bugfixes and refactoringThomas Winget2016-02-021-56/+77
| | | | | | | | | | | - 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.
* Merge pull request #634Riccardo Spagni2016-01-311-0/+1
|\ | | | | | | | | 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)
| * blockchain: log number of outputs available for a new txmoneromooo-monero2016-01-311-0/+1
| |
* | Merge pull request #631Riccardo Spagni2016-01-311-2/+1
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 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)
| * | blockchain: remove unused timermoneromooo-monero2016-01-301-1/+0
| | |
| * | blockchain: fix m_sync_counter uninitialized variable usemoneromooo-monero2016-01-301-1/+1
| |/ | | | | | | It counts the number of blocks added since last zeroing
* / new flush_txpool command, and associated RPC callmoneromooo-monero2016-01-301-0/+19
|/ | | | | It can flush a particular tx, or the whole pool (the RPC command can flush a list of transactions too)
* Fix V1/V2 use of hard fork related parametersmoneromooo-monero2016-01-291-6/+13
| | | | | Some of it uses hardcoded height, which will need some thinking for next (voted upon) fork.
* updated copyright yearRiccardo Spagni2015-12-311-1/+1
|
* blockchain: kill ioservice on scope end, rather than manuallymoneromooo-monero2015-12-301-6/+7
| | | | | | 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.
* Merge pull request #572Riccardo Spagni2015-12-301-0/+2
|\ | | | | | | | | | | | | 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)