summaryrefslogtreecommitdiff
path: root/src/blockchain_db
Commit message (Collapse)AuthorAgeFilesLines
* Fix use of rtxn without a mdb_txn_safe wrapperHoward Chu2022-07-222-47/+55
|
* Remove check is_directory check on lmdb pathHoward Chu2022-06-031-8/+2
| | | | The check interferes with raw device/partition support.
* Revert "db_lmdb: test for mmap support at init time"Howard Chu2022-06-032-31/+0
| | | | | | This reverts commit bd96536637724413173271e8d5df1777f7879c29. The check interferes with raw device/partition support.
* Preserve commitment format inside transactionsLuke Parker2022-04-211-8/+1
|
* Add view tags to outputs to reduce wallet scanning timej-berman2022-04-181-3/+4
| | | | | | | | | | | | | Implements view tags as proposed by @UkoeHB in MRL issue https://github.com/monero-project/research-lab/issues/73 At tx construction, the sender adds a 1-byte view tag to each output. The view tag is derived from the sender-receiver shared secret. When scanning for outputs, the receiver can check the view tag for a match, in order to reduce scanning time. When the view tag does not match, the wallet avoids the more expensive EC operations when deriving the output public key using the shared secret.
* CMake: Add missing headers via monero_find_all_headers macromj-xmr2022-04-061-4/+1
|
* Merge pull request #8197luigi11112022-04-067-7/+7
|\ | | | | | | da9aa1f Copyright: Update to 2022 (mj-xmr)
| * Copyright: Update to 2022mj-xmr2022-03-047-7/+7
| |
* | store outPk/8 in the tx for speedmoneromooo-monero2022-04-051-1/+8
|/ | | | | | It avoids dividing by 8 when deserializing a tx, which is a slow operation, and multiplies by 8 when verifying and extracing the amount, which is much faster as well as less frequent
* Merge pull request #7859luigi11112021-10-171-5/+5
|\ | | | | | | 514f8fa LMDB: protection against UB, by not calling virtual methods from destructor (mj-xmr)
| * LMDB: protection against UB, by not calling virtual methods from destructormj-xmr2021-09-081-5/+5
| |
* | LMDB: fix deadlock in resized detectionHoward Chu2021-09-222-3/+13
|/
* Merge pull request #7634luigi11112021-06-241-1/+2
|\ | | | | | | 5a2edea db_lmdb: catch exceptions testing for mmap support (moneromooo-monero)
| * db_lmdb: catch exceptions testing for mmap supportmoneromooo-monero2021-03-251-1/+2
| | | | | | | | | | Turns out at least one arch (armel based) does not have unique_path implemented and throws
* | blockchain_db: harden code against invalid input typesmoneromooo-monero2021-03-241-9/+2
|/ | | | | | | | | If an invalid input type were to get to this, the code could remove key images that might be present already in the chain, which could allow a double spend, even if this is impossible with the current code. Reported by KeyboardWarrior.
* Merge pull request #7355luigi11112021-02-181-1/+1
|\ | | | | | | | | bd12984 Remove copies from foreach loops (thanks to Clang) (Lee Clagett) 1572df9 Removing unused namespace alias (Lee Clagett)
| * Remove copies from foreach loops (thanks to Clang)Lee Clagett2021-01-281-1/+1
| |
* | Remove unused variables in monero codebaseKevin Barbour2021-02-091-11/+4
|/ | | | | | | | | | | There are quite a few variables in the code that are no longer (or perhaps never were) in use. These were discovered by enabling compiler warnings for unused variables and cleaning them up. In most cases where the unused variables were the result of a function call the call was left but the variable assignment removed, unless it was obvious that it was a simple getter with no side effects.
* rpc: limit the number of txes for get_blocks.binmoneromooo-monero2020-12-294-8/+16
|
* db_lmdb: move spammy "not found in db" message to TRACEmoneromooo-monero2020-12-061-2/+2
| | | | | | These are functions that check whether a tx is in the db, so whether it is there or not is really not interesting, and it seems to scare people from time to time
* Avoid some temporary strings when reading off the databasemoneromooo-monero2020-08-175-44/+40
|
* Merge pull request #6354Alexander Blair2020-08-092-13/+35
|\ | | | | | | 67ade8005 Add randomized delay when forwarding txes from i2p/tor -> ipv4/6 (Lee Clagett)
| * Add randomized delay when forwarding txes from i2p/tor -> ipv4/6Lee Clagett2020-05-152-13/+35
| |
* | Merge pull request #6565Alexander Blair2020-07-191-1/+1
|\ \ | | | | | | | | | 72cdfa4a2 fix a few typos in error messages (moneromooo-monero)
| * | fix a few typos in error messagesmoneromooo-monero2020-05-191-1/+1
| |/ | | | | | | Reported by adrelanos
* | Merge pull request #6557Alexander Blair2020-07-191-2/+2
|\ \ | | | | | | | | | bd69e3b37 testdb: add override in a couple places where it's missing (moneromooo-monero)
| * | testdb: add override in a couple places where it's missingmoneromooo-monero2020-05-181-2/+2
| |/
* | Merge pull request #6536Alexander Blair2020-07-192-0/+30
|\ \ | | | | | | | | | bd9653663 db_lmdb: test for mmap support at init time (moneromooo-monero)
| * | db_lmdb: test for mmap support at init timemoneromooo-monero2020-05-162-0/+30
| |/ | | | | | | | | It'll make it clearer when a DB init failure is due to being on a filesystem which does not support mmap
* | Merge pull request #6534Alexander Blair2020-07-194-0/+51
|\ \ | | | | | | | | | 7bd66b01b daemon: guard against rare 'difficulty drift' bug with checkpoints and recalculation (stoffu)
| * | daemon: guard against rare 'difficulty drift' bug with checkpoints and ↵stoffu2020-06-094-0/+51
| |/ | | | | | | | | | | recalculation On startup, it checks against the difficulty checkpoints, and if any mismatch is found, recalculates all the blocks with wrong difficulties. Additionally, once a week it recalculates difficulties of blocks after the last difficulty checkpoint.
* / Update copyright year to 2020SomaticFanatic2020-05-067-7/+7
|/ | | | Update copyright year to 2020
* Adding Dandelion++ support to public networks:Lee Clagett2020-03-262-5/+29
| | | | | | - New flag in NOTIFY_NEW_TRANSACTION to indicate stem mode - Stem loops detected in tx_pool.cpp - Embargo timeout for a blackhole attack during stem phase
* Merge pull request #6358luigi11112020-04-104-0/+119
|\ | | | | | | 8958b4e blockchain_db: faster fetching of consecutive txes (moneromooo-monero)
| * blockchain_db: faster fetching of consecutive txesmoneromooo-monero2020-02-274-0/+119
| | | | | | | | Useful for wallet refresh or node sync
* | Merge pull request #6384luigi11112020-04-041-0/+1
|\ \ | | | | | | | | | ec01077 db_lmdb: fix race crash using a stale cursor (moneromooo-monero)
| * | db_lmdb: fix race crash using a stale cursormoneromooo-monero2020-03-121-0/+1
| |/ | | | | | | | | | | | | | | | | | | | | | | If a db resize happened, the txpool meta cursor might be stale, and was not being renewed when necessary. It would cause this SEGSEGV: in mdb_cursor_set () in mdb_cursor_get () in cryptonote::BlockchainLMDB::get_txpool_tx_blob(crypto::hash const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, cryptonote::relay_category) const () in cryptonote::tx_memory_pool::get_transaction(crypto::hash const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, cryptonote::relay_category) const () in cryptonote::t_cryptonote_protocol_handler<cryptonote::core>::handle_notify_new_fluffy_block(int, epee::misc_utils::struct_init<cryptonote::NOTIFY_NEW_FLUFFY_BLOCK::request_t>&, cryptonote::cryptonote_connection_context&) ()
* | Merge pull request #6339luigi11112020-04-041-2/+2
|\ \ | | | | | | | | | c61abf8 remove empty statements (shopglobal)
| * | remove empty statementsInterchained2020-02-171-2/+2
| |/ | | | | | | Cleaning up a little around the code base.
* / core: move the LockedTXN class out of txpool so it may be reusedmoneromooo-monero2020-03-121-0/+53
|/ | | | for example, in the RPC server
* Merge pull request #6140Alexander Blair2020-01-254-0/+60
|\ | | | | | | 08635a08 blockchain: speedup fetching pruned contiguous tx blobs (moneromooo-monero)
| * blockchain: speedup fetching pruned contiguous tx blobsmoneromooo-monero2019-11-154-0/+60
| | | | | | | | About twice as fast, very roughly
* | Merge pull request #6157Alexander Blair2020-01-241-1/+9
|\ \ | | | | | | | | | 402dd207 db_lmdb: guard against non NUL terminated keys (moneromooo-monero)
| * | db_lmdb: guard against non NUL terminated keysmoneromooo-monero2019-11-191-1/+9
| |/
* | Change to Tx diffusion (Dandelion++ fluff) instead of floodingLee Clagett2019-11-042-4/+4
| |
* | Adding support for hidden (anonymity) txpoolLee Clagett2019-11-025-30/+171
|/
* db_lmdb: an empty prunable data record means the tx is not prunedmoneromooo-monero2019-10-171-2/+0
| | | | as opposed to an absent record
* Merge pull request #5915luigi11112019-10-082-3/+6
|\ | | | | | | 8330e77 monerod can now sync from pruned blocks (moneromooo-monero)
| * monerod can now sync from pruned blocksmoneromooo-monero2019-09-272-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | If the peer (whether pruned or not itself) supports sending pruned blocks to syncing nodes, the pruned version will be sent along with the hash of the pruned data and the block weight. The original tx hashes can be reconstructed from the pruned txes and theur prunable data hash. Those hashes and the block weights are hashes and checked against the set of precompiled hashes, ensuring the data we received is the original data. It is currently not possible to use this system when not using the set of precompiled hashes, since block weights can not otherwise be checked for validity. This is off by default for now, and is enabled by --sync-pruned-blocks
* | Merge pull request #5878luigi11112019-09-246-2852/+3
|\ \ | |/ |/| | | f9b3f6e Removed Berkeley DB and db switching logic (JesusRami)