aboutsummaryrefslogtreecommitdiff
path: root/src/blockchain_db/lmdb/db_lmdb.cpp
Commit message (Collapse)AuthorAgeFilesLines
* persist asset outputs and spent key imagescenobite pinhead11 hours1-1/+155
|
* persist experimental asset registry in LMDBcenobite pinhead12 hours1-1/+130
|
* BlockchainLMDB: fix data.mdb nuking on Windowsjeffro2562025-02-171-2/+3
|
* Merge pull request #9705tobtoht2025-01-181-5/+3
|\ | | | | | | 36c5987 Fix get_database_size on Windows (iamamyth)
| * Fix get_database_size on Windowsiamamyth2025-01-141-5/+3
| | | | | | | | | | | | | | | | Replace all calls to epee::file_io::get_file_size with boost::filesystem::file_size in order to avoid lossy conversions from paths to strings, which tend to break filename resolution. This commit fixes a bug on Windows where the get_info RPC call reported a zero database size because BlockchainLMBD::get_database_size returned zero.
* | check for windows NTFS compression on database fileseversinc332025-01-141-0/+64
|/
* Fix use of rtxn without a mdb_txn_safe wrapperHoward Chu2022-07-221-40/+46
|
* 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-031-30/+0
| | | | | | This reverts commit bd96536637724413173271e8d5df1777f7879c29. The check interferes with raw device/partition support.
* 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.
* Copyright: Update to 2022mj-xmr2022-03-041-1/+1
|
* 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-221-3/+12
|/
* 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
* 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-291-3/+8
|
* 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-171-25/+20
|
* 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 #6536Alexander Blair2020-07-191-0/+29
|\ \ | | | | | | | | | bd9653663 db_lmdb: test for mmap support at init time (moneromooo-monero)
| * | db_lmdb: test for mmap support at init timemoneromooo-monero2020-05-161-0/+29
| |/ | | | | | | | | 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-191-0/+38
|\ \ | | | | | | | | | 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-091-0/+38
| |/ | | | | | | | | | | 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-061-1/+1
|/ | | | Update copyright year to 2020
* Merge pull request #6358luigi11112020-04-101-0/+98
|\ | | | | | | 8958b4e blockchain_db: faster fetching of consecutive txes (moneromooo-monero)
| * blockchain_db: faster fetching of consecutive txesmoneromooo-monero2020-02-271-0/+98
| | | | | | | | 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&) ()
* / remove empty statementsInterchained2020-02-171-2/+2
|/ | | | Cleaning up a little around the code base.
* Merge pull request #6140Alexander Blair2020-01-251-0/+42
|\ | | | | | | 08635a08 blockchain: speedup fetching pruned contiguous tx blobs (moneromooo-monero)
| * blockchain: speedup fetching pruned contiguous tx blobsmoneromooo-monero2019-11-151-0/+42
| | | | | | | | 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
| |/
* / Adding support for hidden (anonymity) txpoolLee Clagett2019-11-021-12/+36
|/
* db_lmdb: an empty prunable data record means the tx is not prunedmoneromooo-monero2019-10-171-2/+0
| | | | as opposed to an absent record
* monerod can now sync from pruned blocksmoneromooo-monero2019-09-271-2/+4
| | | | | | | | | | | | | | 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
* db_lmdb: print percentages as percentages, not ratiosmoneromooo-monero2019-09-041-1/+1
|
* Increase max_dbs from 20 to 32Howard Chu2019-08-181-1/+1
| | | | | We've added a lot of new indices recently, and 20 isn't enough for them plus new DBs opened during format migrations.
* Merge pull request #5524luigi11112019-07-241-0/+155
|\ | | | | | | 06b8f29 blockchain: keep alternative blocks in LMDB (moneromooo-monero)
| * blockchain: keep alternative blocks in LMDBmoneromooo-monero2019-05-081-0/+155
| | | | | | | | | | Alternative blocks are cleared on startup unless --keep-alt-blocks is passed on the command line
* | Merge pull request #5502luigi11112019-07-241-1/+1
|\ \ | | | | | | | | | | | | 25a7cfd add a few checks where it seems appropriate (moneromooo-monero) 1a66a86 remove unused code (moneromooo-monero)
| * | add a few checks where it seems appropriatemoneromooo-monero2019-04-291-1/+1
| |/
* | db_lmdb: commit pruning txn at checkpointsmoneromooo-monero2019-06-151-1/+50
| | | | | | | | to avoid errors when the txn is too large
* | ensure no NULL is passed to memcpymoneromooo-monero2019-06-141-2/+2
| | | | | | | | | | NULL is valid when size is 0, but memcpy uses nonnull attributes, so let's not poke the bear
* | fix wide difficulty conversion with some versions of boostmoneromooo-monero2019-05-011-2/+2
|/
* blockchain_db: fix db txn ending too earlymoneromooo-monero2019-04-141-44/+32
| | | | | | | | | | The db txn in add_block ending caused the entire overarching batch txn to stop. Also add a new guard class so a db txn can be stopped in the face of exceptions. Also use a read only db txn in init when the db itself is read only, and do not save the max tx size in that case.
* cryptonote: rework block blob size sanity checkmoneromooo-monero2019-04-051-0/+52
| | | | | Use the actual block weight limit, assuming that weight is always greater or equal to size
* Make difficulty 128 bit instead of 64 bitmoneromooo-monero2019-03-241-7/+152
| | | | | | Based on Boolberry work by: jahrsg <jahr@jahr.me> cr.zoidberg <crypto.zoidberg@gmail.com>