aboutsummaryrefslogtreecommitdiff
path: root/src/cryptonote_core
Commit message (Collapse)AuthorAgeFilesLines
...
* | | 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-052-12/+14
| |
* | core: avoid double parsing blocks after hohmoneromooo-monero2019-03-054-16/+23
| |
* | 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
| |
* | core: avoid calculating tx prefix hash when we don't need itmoneromooo-monero2019-03-052-20/+17
| |
* | Avoid repeated (de)serialization when syncingmoneromooo-monero2019-03-054-13/+19
|/
* 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
| | |
* | | Merge pull request #5132Riccardo Spagni2019-03-042-41/+10
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 2dbc487e Add support for V10 protocol with BulletProofV2 and short amount. (cslashm) 63cc02c0 Fix dummy decryption in debug mode (cslashm) f0e55ceb fix log namespace (cslashm) 460da140 New scheme key destination contrfol (cslashm)
| * | | New scheme key destination contrfolcslashm2019-02-082-41/+10
| | | | | | | | | | | | | | | | Implies protocol version management.
* | | | Print the reason why a notification spec failed to parsemoneromooo-monero2019-03-041-2/+2
| | | |
* | | | blockchain: include number of discarded blocks in --reorg-notifymoneromooo-monero2019-03-042-3/+5
| | | |
* | | | core: add a few more block rate window sizesmoneromooo-monero2019-03-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The 10 minute one will never trigger for 0 blocks, as it's still fairly likely to happen even without the actual hash rate changing much, so we add a 20 minute window, where it will (for 0 blocks) and a one hour window.
* | | | core: add --block-rate-notifymoneromooo-monero2019-03-042-0/+33
| |/ / |/| | | | | | | | | | | This runs a command whenever the block rate deviates too much from the expectation
* | | Merge pull request #5124Riccardo Spagni2019-03-044-24/+137
|\ \ \ | | | | | | | | | | | | b8787f43 ArticMine's new block weight algorithm (moneromooo-monero)
| * | | ArticMine's new block weight algorithmmoneromooo-monero2019-03-044-24/+137
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | cryptonote: Add const-qualifier on comparison functorTom Smeding2019-02-011-1/+1
|/ / | | | | | | | | The original code did not compile with GCC 8.2.1 in C++17 mode, since comparison functions for std::set's must be invocable as const.
* | blockchain: add --reorg-notifymoneromooo-monero2019-01-283-1/+32
| | | | | | | | | | | | | | | | | | 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-284-12/+26
|\ \ | | | | | | | | | | | | | | | | | | | | | 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-224-12/+26
| |/ | | | | | | This makes it easier to modify the bulletproof format
* / Pruningmoneromooo-monero2019-01-224-3/+185
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 #5008Riccardo Spagni2019-01-182-11/+57
|\ | | | | | | | | | | c6d38718 core: include a dummy encrypted payment id when no payment is used (moneromooo-monero) b7441c4a core, wallet: remember original text version of destination address (moneromooo-monero) a9b1c04a crptonote_core: do not error out sending unparsable extra field (moneromooo-monero)
| * core: include a dummy encrypted payment id when no payment is usedmoneromooo-monero2019-01-181-6/+40
| | | | | | | | For better transaction uniformity, even though this wastes space.
| * core, wallet: remember original text version of destination addressmoneromooo-monero2019-01-181-3/+15
| |
| * crptonote_core: do not error out sending unparsable extra fieldmoneromooo-monero2019-01-181-2/+2
| | | | | | | | extra is arbitrary, and the user may well want to send custom data
* | 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-162-59/+5
|\ \ | | | | | | | | | 6f2081f8 cryptonote_core: revert extra_tx_map (moneromooo-monero)
| * | cryptonote_core: revert extra_tx_mapmoneromooo-monero2018-12-252-59/+5
| | | | | | | | | | | | | | | | | | | | | | | | While the lookups are faster, the zeroCommit calls have to be done again when storing the new outputs in the db, which ends up making the whole thing slower after all, and the ways this can be cached aren't very nice code wise, so let's forget it since the gains aren't very large anyway.
* | | Merge pull request #4993Riccardo Spagni2019-01-161-1/+3
|\ \ \ | | | | | | | | | | | | b8342dd5 blockchain: fix block rate check for empty blockchains (moneromooo-monero)
| * | | blockchain: fix block rate check for empty blockchainsmoneromooo-monero2018-12-181-1/+3
| |/ /
* | | Merge pull request #4984Riccardo Spagni2019-01-164-8/+25
|\ \ \ | |_|/ |/| | | | | 008647d7 blockchain_db: speedup tx output gathering (moneromooo-monero)
| * | blockchain_db: speedup tx output gatheringmoneromooo-monero2018-12-184-8/+25
| |/ | | | | | | We know all the data we'll want for getblocks.bin is contiguous
* | Merge pull request #4946luigi11112018-12-311-8/+15
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | 6644b9b blockchain_db: remove a couple unused functions (moneromooo-monero) ce594f5 blockchain_db: allocate known size vector only once (moneromooo-monero) 8332698 db_lmdb: inline check_open, it's trivial and called everywhere (moneromooo-monero) 5511563 db_lmdb: avoid pointless division (moneromooo-monero) d1efe3d cryptonote: set tx hash on newly parsed txes when known (moneromooo-monero) 9cc68a2 tx_pool: add a few std::move where it can make a difference (moneromooo-monero)
| * | tx_pool: add a few std::move where it can make a differencemoneromooo-monero2018-12-051-3/+4
| | |