summaryrefslogtreecommitdiff
path: root/src/blockchain_db
Commit message (Collapse)AuthorAgeFilesLines
* db_lmdb: fix missing mdb_dbi_close in migrationmoneromooo-monero2019-02-171-0/+2
| | | | Fixed by hyc
* Fix v3/v4 db conversionmoneromooo-monero2019-02-151-2/+6
|
* ArticMine's new block weight algorithmmoneromooo-monero2019-02-125-13/+384
| | | | | | | | | | | | | | | | | | | | | | | | | | This curbs runaway growth while still allowing substantial spikes in block weight Original specification from ArticMine: here is the scaling proposal Define: LongTermBlockWeight Before fork: LongTermBlockWeight = BlockWeight At or after fork: LongTermBlockWeight = min(BlockWeight, 1.4*LongTermEffectiveMedianBlockWeight) Note: To avoid possible consensus issues over rounding the LongTermBlockWeight for a given block should be calculated to the nearest byte, and stored as a integer in the block itself. The stored LongTermBlockWeight is then used for future calculations of the LongTermEffectiveMedianBlockWeight and not recalculated each time. Define: LongTermEffectiveMedianBlockWeight LongTermEffectiveMedianBlockWeight = max(300000, MedianOverPrevious100000Blocks(LongTermBlockWeight)) Change Definition of EffectiveMedianBlockWeight From (current definition) EffectiveMedianBlockWeight = max(300000, MedianOverPrevious100Blocks(BlockWeight)) To (proposed definition) EffectiveMedianBlockWeight = min(max(300000, MedianOverPrevious100Blocks(BlockWeight)), 50*LongTermEffectiveMedianBlockWeight) Notes: 1) There are no other changes to the existing penalty formula, median calculation, fees etc. 2) There is the requirement to store the LongTermBlockWeight of a block unencrypted in the block itself. This is to avoid possible consensus issues over rounding and also to prevent the calculations from becoming unwieldy as we move away from the fork. 3) When the EffectiveMedianBlockWeight cap is reached it is still possible to mine blocks up to 2x the EffectiveMedianBlockWeight by paying the corresponding penalty.
* Merge pull request #4487Riccardo Spagni2018-10-061-2/+2
| | | | 7c790f11 Fix rtxn usage in BlockchainLMDB::get_estimated_batch_size (Howard Chu)
* Merge pull request #4459Riccardo Spagni2018-09-291-5/+16
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bcf3f6af fuzz_tests: catch unhandled exceptions (moneromooo-monero) 3ebd05d4 miner: restore stream flags after changing them (moneromooo-monero) a093092e levin_protocol_handler_async: do not propagate exception through dtor (moneromooo-monero) 1eebb82b net_helper: do not propagate exceptions through dtor (moneromooo-monero) fb6a3630 miner: do not propagate exceptions through dtor (moneromooo-monero) 2e2139ff epee: do not propagate exception through dtor (moneromooo-monero) 0749a8bd db_lmdb: do not propagate exceptions in dtor (moneromooo-monero) 1b0afeeb wallet_rpc_server: exit cleanly on unhandled exceptions (moneromooo-monero) 418a9936 unit_tests: catch unhandled exceptions (moneromooo-monero) ea7f9543 threadpool: do not propagate exceptions through the dtor (moneromooo-monero) 6e855422 gen_multisig: nice exit on unhandled exception (moneromooo-monero) 53df2deb db_lmdb: catch error in mdb_stat calls during migration (moneromooo-monero) e67016dd blockchain_blackball: catch failure to commit db transaction (moneromooo-monero) 661439f4 mlog: don't remove old logs if we failed to rename the current file (moneromooo-monero) 5fdcda50 easylogging++: test for NULL before dereference (moneromooo-monero) 7ece1550 performance_test: fix bad last argument calling add_arg (moneromooo-monero) a085da32 unit_tests: add check for page size > 0 before dividing (moneromooo-monero) d8b1ec8b unit_tests: use std::shared_ptr to shut coverity up about leaks (moneromooo-monero) 02563bf4 simplewallet: top level exception catcher to print nicer messages (moneromooo-monero) c57a65b2 blockchain_blackball: fix shift range for 32 bit archs (moneromooo-monero)
| * db_lmdb: do not propagate exceptions in dtormoneromooo-monero2018-09-271-1/+4
| | | | | | | | | | | | Not much we can do here Coverity 161875
| * db_lmdb: catch error in mdb_stat calls during migrationmoneromooo-monero2018-09-271-4/+12
| | | | | | | | Coverity 188305
* | Fixup RENAME_DB() macroHoward Chu2018-09-251-2/+12
|/ | | | Make sure target DB's record is on a writable page
* db_lmdb: do not use base for cumulative distributionmoneromooo-monero2018-09-121-0/+2
| | | | it's confusing and needlessly complicated
* v8: per byte fee, pad bulletproofs, fixed 11 ring sizemoneromooo-monero2018-09-116-37/+42
|
* Merge pull request #4293luigi11112018-09-101-2/+6
|\ | | | | | | 9d65399 is_hdd update (p8p)
| * is_hdd updatep8p2018-08-251-2/+6
| |
* | Merge pull request #4256luigi11112018-09-102-7/+3
|\ \ | | | | | | | | | d6fc870 db_lmdb: resize blockchain database when 90% filled (moneromooo-monero)
| * | db_lmdb: resize blockchain database when 90% filledmoneromooo-monero2018-08-142-7/+3
| | | | | | | | | | | | instead of a random ratio from 60% to 90%.
* | | Merge pull request #4270luigi11112018-09-041-2/+13
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | 29dea03 epee: resize vectors where possible in serialization (moneromooo-monero) 76affd9 epee: some speedup in parsing (moneromooo-monero) dc6c069 db_lmdb: speedup the get_output_distribution common case (moneromooo-monero) 76ac5a8 wallet2: ask for a binary output distribution, for speed (moneromooo-monero)
| * | db_lmdb: speedup the get_output_distribution common casemoneromooo-monero2018-08-191-2/+13
| | |
* | | Merge pull request #4204luigi11112018-08-221-2/+2
|\ \ \ | | | | | | | | | | | | b278b83 core: sync database based on bytes added, not blocks added (moneromooo-monero)
| * | | core: sync database based on bytes added, not blocks addedmoneromooo-monero2018-08-121-2/+2
| | |/ | |/| | | | | | | | | | Blocks have a very wide range, whereas actual size is the relevant quantity to consider when syncing
* | | Merge pull request #4200luigi11112018-08-224-68/+1
|\ \ \ | |_|/ |/| | | | | 43f7110 blockchain_db: remove unused get_output_key variant (moneromooo-monero)
| * | blockchain_db: remove unused get_output_key variantmoneromooo-monero2018-07-304-68/+1
| |/ | | | | | | It was actually incorrect, as it would not return commitment
* | Merge pull request #4161luigi11112018-08-151-2/+2
|\ \ | |/ |/| | | be02eb9 db_lmdb: demote the 'batch already enabled' log, it's harmless (moneromooo-monero)
| * db_lmdb: demote the "batch already enabled" log, it's harmlessmoneromooo-monero2018-07-201-2/+2
| |
* | Merge pull request #4129luigi11112018-07-271-0/+3
|\ \ | |/ |/| | | ee31383 db_lmdb: don't sync a read only DB (moneromooo-monero)
| * db_lmdb: don't sync a read only DBmoneromooo-monero2018-07-111-0/+3
| | | | | | | | This would only throw
* | Merge pull request #4013luigi11112018-07-193-0/+20
|\ \ | | | | | | | | | e5592c4 rpc: add blockchain disk size to getinfo (moneromooo-monero)
| * | rpc: add blockchain disk size to getinfomoneromooo-monero2018-06-203-0/+20
| | | | | | | | | | | | | | | This should help new nodes predict how much disk space will be needed for a full sync
* | | Merge pull request #3981luigi11112018-07-194-7/+236
|\ \ \ | | | | | | | | | | | | 45e419b db: store cumulative rct output distribution in the db for speed (moneromooo-monero)
| * | | db: store cumulative rct output distribution in the db for speedmoneromooo-monero2018-07-134-7/+236
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | This gets rid of the temporary precalc cache. Also make the RPC able to send data back in binary or JSON, since there can be a lot of data This bumps the LMDB database format to v3, with migration.
* | | Merge pull request #3854luigi11112018-07-195-1/+39
|\ \ \ | |/ / |/| | | | | | | | | | | | | | 149da42 db_lmdb: enable batch transactions by default (stoffu) 34cb6b4 add --regtest and --fixed-difficulty for regression testing (vicsn) 9e1403e update get_info RPC and bump RPC version (vicsn) 207b66e first new functional tests (vicsn)
| * | add --regtest and --fixed-difficulty for regression testingvictorsintnicolaas2018-06-295-0/+38
| | | | | | | | | | | | | | | | | | | | | on_generateblocks RPC call combines functionality from the on_getblocktemplate and on_submitblock RPC calls to allow rapid block creation. Difficulty is set permanently to 1 for regtest. Makes use of FAKECHAIN network type, but takes hard fork heights from mainchain Default reserve_size in generate_blocks RPC call is now 1. If it is 0, the following error occurs 'Failed to calculate offset for'. Queries hard fork heights info of other network types
| * | db_lmdb: enable batch transactions by defaultstoffu2018-06-141-1/+1
| | |
* | | Merge pull request #3987luigi11112018-06-271-4/+5
|\ \ \ | | | | | | | | | | | | 2d10830 db_ldmb: print db version when complaining about incompatibility (moneromooo-monero)
| * | | db_ldmb: print db version when complaining about incompatibilitymoneromooo-monero2018-06-111-4/+5
| | |/ | |/|
* | | Merge pull request #3936luigi11112018-06-251-0/+1
|\ \ \ | |/ / |/| | | | | d81e042 tx_pool: initialize bitflags padding since it gets written to storage (moneromooo-monero)
| * | tx_pool: initialize bitflags padding since it gets written to storagemoneromooo-monero2018-06-051-0/+1
| |/ | | | | | | Avoids valgrind reporting uninitialized data usage
* / db_lmdb: warn about slowness when running off a spinning diskmoneromooo-monero2018-06-081-0/+3
|/
* Merge pull request #3876luigi11112018-05-301-0/+1
|\ | | | | | | | | 740da1b core: fix automatic safe db sync mode switching (moneromooo-monero) e942d34 protocol: do not switch to unsafe sync mode for just a few blocks (moneromooo-monero)
| * core: fix automatic safe db sync mode switchingmoneromooo-monero2018-05-281-0/+1
| |
* | db_lmdb: save pruned and prunable tx data separatelymoneromooo-monero2018-05-236-51/+375
|/ | | | This bumps DB version to 2, migration code will run for v1 DBs
* speed up get_output_distribution (and precalc common case)moneromooo-monero2018-05-213-0/+45
|
* speedup get_output_histogram for all amounts when min_count > 0moneromooo-monero2018-04-233-6/+11
| | | | | | This skips the vast majority of "dust" output amounts with just one instance on the chain. Clocks in at 0.15% of the original time on testnet.
* add RPC to get a histogram of outputs of a given amountmoneromooo-monero2018-03-163-4/+47
|
* Merge pull request #3307Riccardo Spagni2018-03-051-1/+2
|\ | | | | | | 223d7d0c db_lmdb: fix free space reporting (moneromooo-monero)
| * db_lmdb: fix free space reportingmoneromooo-monero2018-02-231-1/+2
| | | | | | | | reported by Brad Richards
* | Correct spelling mistakes.Edward Betts2018-03-051-1/+1
|/
* db_lmdb: fix return code mixup in for_all_*moneromooo-monero2018-02-191-12/+12
|
* Merge pull request #3226Riccardo Spagni2018-02-163-5/+13
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | e4646379 keccak: fix mdlen bounds sanity checking (moneromooo-monero) 2e3e90ac pass large parameters by const ref, not value (moneromooo-monero) 61defd89 blockchain: sanity check number of precomputed hash of hash blocks (moneromooo-monero) 9af6b2d1 ringct: fix infinite loop in unused h2b function (moneromooo-monero) 8cea8d0c simplewallet: double check a new multisig wallet is multisig (moneromooo-monero) 9b98a6ac threadpool: catch exceptions in dtor, to avoid terminate (moneromooo-monero) 24803ed9 blockchain_export: fix buffer overflow in exporter (moneromooo-monero) f3f7da62 perf_timer: rewrite to make it clear there is no division by zero (moneromooo-monero) c6ea3df0 performance_tests: remove add_arg call stray extra param (moneromooo-monero) fa6b4566 fuzz_tests: fix an uninitialized var in setup (moneromooo-monero) 03887f11 keccak: fix sanity check bounds test (moneromooo-monero) ad11db91 blockchain_db: initialize m_open in base class ctor (moneromooo-monero) bece67f9 miner: restore std::cout precision after modification (moneromooo-monero) 1aabd14c db_lmdb: check hard fork info drop succeeded (moneromooo-monero)
| * blockchain_db: initialize m_open in base class ctormoneromooo-monero2018-02-023-3/+7
| | | | | | | | | | | | It's cleaner this way, since it's a base class field Coverity 136568
| * db_lmdb: check hard fork info drop succeededmoneromooo-monero2018-02-021-2/+6
| | | | | | | | Coverity 136364
* | Merge pull request #3231Riccardo Spagni2018-02-162-2/+10
|\ \ | |/ |/| | | 84a8b2da Don't create readtxn until after txn_safe gate check (Howard Chu)