aboutsummaryrefslogtreecommitdiff
path: root/src/cryptonote_core/blockchain.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | blockchain: fix returned height in create_block_templatemoneromooo-monero2019-03-301-2/+4
| |/ / / | | | | | | | | | | | | It's now needed for CNv4, and was not retained when cached
* | | | Merge pull request #5123Riccardo Spagni2019-04-111-0/+6
|\ \ \ \ | |_|_|/ |/| | | | | | | 089c7637 cryptonote: rework block blob size sanity check (moneromooo-monero)
| * | | cryptonote: rework block blob size sanity checkmoneromooo-monero2019-04-051-0/+6
| | |/ | |/| | | | | | | | | | Use the actual block weight limit, assuming that weight is always greater or equal to size
* | | Merge pull request #5346Riccardo Spagni2019-04-061-4/+7
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | c84ea299 cryptonote_basic: some more minor speedups (moneromooo-monero) e40eb2ad cryptonote_basic: speedup calculate_block_hash (moneromooo-monero) 547a9708 cryptonote: block parsing + hash calculation speedup (moneromooo-monero) 11604b6d blockchain: avoid unneeded block copy (moneromooo-monero) 8461df04 save some database calls when getting top block hash and height (moneromooo-monero) 3bbc3661 Avoid repeated (de)serialization when syncing (moneromooo-monero)
| * | cryptonote: block parsing + hash calculation speedupmoneromooo-monero2019-03-251-4/+6
| | | | | | | | | | | | This saves a duplicate serialization step
| * | blockchain: avoid unneeded block copymoneromooo-monero2019-03-251-1/+2
| | |
| * | save some database calls when getting top block hash and heightmoneromooo-monero2019-03-251-0/+1
| | |
| * | Avoid repeated (de)serialization when syncingmoneromooo-monero2019-03-251-2/+1
| |/
* | Merge pull request #5352Riccardo Spagni2019-04-011-0/+44
|\ \ | | | | | | | | | | | | ae6885f6 blockchain: incremental long term block weight cache (moneromooo-monero) 9b687c78 blockchain: simple cache for the long term block weights (moneromooo-monero)
| * | blockchain: incremental long term block weight cachemoneromooo-monero2019-03-281-0/+22
| | |
| * | blockchain: simple cache for the long term block weightsmoneromooo-monero2019-03-281-0/+22
| |/
* | Merge pull request #5294Riccardo Spagni2019-04-011-0/+2
|\ \ | | | | | | | | | 77e9815d blockchain: do not try to pop the genesis block (moneromooo-monero)
| * | blockchain: do not try to pop the genesis blockmoneromooo-monero2019-03-151-0/+2
| | |
* | | Make difficulty 128 bit instead of 64 bitmoneromooo-monero2019-03-241-2/+6
| |/ |/| | | | | | | | | Based on Boolberry work by: jahrsg <jahr@jahr.me> cr.zoidberg <crypto.zoidberg@gmail.com>
* | Merge pull request #5256Riccardo Spagni2019-03-211-13/+11
|\ \ | | | | | | | | | 4b21d38d blockchain: speed up getting N blocks weights/long term weights (moneromooo-monero)
| * | blockchain: speed up getting N blocks weights/long term weightsmoneromooo-monero2019-03-081-13/+11
| | |
* | | Merge pull request #5061Riccardo Spagni2019-03-171-1/+1
|\ \ \ | |_|/ |/| | | | | 1f2930ce Update 2019 copyright (binaryFate)
| * | Update 2019 copyrightbinaryFate2019-03-051-1/+1
| | |
* | | blockchain: fix ahead of time PoW batch calcmoneromooo-monero2019-03-101-2/+2
| |/ |/|
* | Merge pull request #5232Riccardo Spagni2019-03-071-1/+1
|\ \ | |/ |/| | | | | | | | | 082149c5 fix merge errors, update recommended version to 0.14.0.2 (Riccardo Spagni) f3b368c6 update checkpoints hash (Riccardo Spagni) e518f2b1 update checkpoints, update README for 0.14.1 release (Riccardo Spagni) 8780d6b4 update readme via cherry-pick (Riccardo Spagni)
| * fix merge errors, update recommended version to 0.14.0.2Riccardo Spagni2019-03-051-1/+1
| |
| * update checkpoints hashRiccardo Spagni2019-03-051-2/+2
| |
* | cryptonote: avoid double parsing blocks when syncingmoneromooo-monero2019-03-051-10/+3
| |
* | core: avoid double parsing blocks after hohmoneromooo-monero2019-03-051-2/+2
| |
* | blockchain: avoid unneeded block copymoneromooo-monero2019-03-051-1/+2
| |
* | save some database calls when getting top block hash and heightmoneromooo-monero2019-03-051-25/+35
| |
* | blockchain: avoid pointless transaction copy and temporarymoneromooo-monero2019-03-051-3/+4
| |
* | blockchain: avoid duplicate block hash computationmoneromooo-monero2019-03-051-2/+1
| |
* | Avoid repeated (de)serialization when syncingmoneromooo-monero2019-03-051-9/+14
|/
* various: remove unused variablesmoneromooo-monero2019-03-041-2/+0
|
* Merge pull request #5092Riccardo Spagni2019-03-041-2/+2
|\ | | | | | | eec79276 blockchain: fix default genesis block timestamp (moneromooo-monero)
| * blockchain: fix default genesis block timestampmoneromooo-monero2019-01-261-2/+2
| |
* | blockchain: forbid older BP rct versions from v11moneromooo-monero2019-03-041-1/+18
| |
* | Merge pull request #5174Riccardo Spagni2019-03-041-0/+5
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | 0de14396 tests: add a CNv4 JIT test (moneromooo-monero) 24d281c3 crypto: plug CNv4 JIT into cn_slow_hash (moneromooo-monero) 78ab59ea crypto: clear cache after generating random program (moneromooo-monero) b9a61884 performance_tests: add tests for new Cryptonight variants (moneromooo-monero) fff23bf7 CNv4 JIT compiler for x86-64 and tests (SChernykh) 3dde67d8 blockchain: add v10 fork heights (moneromooo-monero)
| * | blockchain: add v10 fork heightsmoneromooo-monero2019-03-041-0/+5
| | |
* | | blockchain: include number of discarded blocks in --reorg-notifymoneromooo-monero2019-03-041-1/+2
|/ /
* | Merge pull request #5124Riccardo Spagni2019-03-041-21/+118
|\ \ | | | | | | | | | b8787f43 ArticMine's new block weight algorithm (moneromooo-monero)
| * | ArticMine's new block weight algorithmmoneromooo-monero2019-03-041-21/+118
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Note: the long term block weight is stored in the database, but not in the actual block itself, since it requires recalculating anyway for verification.
* | | cryptonote: Fix enum check in expand_transaction_2Tom Smeding2019-02-011-1/+1
|/ / | | | | | | | | This was noticed because GCC warned about using an enum value in a boolean context.
* | blockchain: add --reorg-notifymoneromooo-monero2019-01-281-0/+5
| | | | | | | | | | | | | | | | | | This will trigger if a reorg is seen. This may be used to do things like stop automated withdrawals on large reorgs. %s is replaced by the height at the split point %h is replaced by the height of the new chain %n is replaced by the number of new blocks after the reorg
* | notify: handle arbitrary tagsmoneromooo-monero2019-01-281-1/+1
| |
* | Merge pull request #5052Riccardo Spagni2019-01-281-2/+15
|\ \ | | | | | | | | | | | | | | | | | | | | | b6534c40 ringct: remove unused senderPk from ecdhTuple (moneromooo-monero) 7d375981 ringct: the commitment mask is now deterministic (moneromooo-monero) 99d946e6 ringct: encode 8 byte amount, saving 24 bytes per output (moneromooo-monero) cdc3ccec ringct: save 3 bytes on bulletproof size (moneromooo-monero) f931e16c add a bulletproof version, new bulletproof type, and rct config (moneromooo-monero)
| * | add a bulletproof version, new bulletproof type, and rct configmoneromooo-monero2019-01-221-2/+15
| |/ | | | | | | This makes it easier to modify the bulletproof format
* / Pruningmoneromooo-monero2019-01-221-3/+93
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | The blockchain prunes seven eighths of prunable tx data. This saves about two thirds of the blockchain size, while keeping the node useful as a sync source for an eighth of the blockchain. No other data is currently pruned. There are three ways to prune a blockchain: - run monerod with --prune-blockchain - run "prune_blockchain" in the monerod console - run the monero-blockchain-prune utility The first two will prune in place. Due to how LMDB works, this will not reduce the blockchain size on disk. Instead, it will mark parts of the file as free, so that future data will use that free space, causing the file to not grow until free space grows scarce. The third way will create a second database, a pruned copy of the original one. Since this is a new file, this one will be smaller than the original one. Once the database is pruned, it will stay pruned as it syncs. That is, there is no need to use --prune-blockchain again, etc.
* Merge pull request #5048Riccardo Spagni2019-01-181-1/+2
|\ | | | | | | a67b77a9 blockchain: don't propagate exception past dtor (moneromooo-monero)
| * blockchain: don't propagate exception past dtormoneromooo-monero2019-01-071-1/+2
| | | | | | | | Coverity 190660
* | Merge pull request #5032Riccardo Spagni2019-01-161-7/+5
|\ \ | | | | | | | | | | | | | | | 5ee6f037 blockchain: fix wrong hf version when popping multiple blocks (moneromooo-monero) 634d359a blockchain: use the version passed as parameter, not a new one (moneromooo-monero) 94a375d5 hardfork: remove batch transactions setup (moneromooo-monero)
| * | blockchain: fix wrong hf version when popping multiple blocksmoneromooo-monero2019-01-011-6/+4
| | | | | | | | | | | | | | | | | | Since we keep track of the hf version in the db, we pick it up from there instead of doing the full reorg call, which is quite expensive
| * | blockchain: use the version passed as parameter, not a new onemoneromooo-monero2019-01-011-1/+1
| |/
* | Merge pull request #5015Riccardo Spagni2019-01-161-58/+4
|\ \ | | | | | | | | | 6f2081f8 cryptonote_core: revert extra_tx_map (moneromooo-monero)