summaryrefslogtreecommitdiff
path: root/src/cryptonote_core
Commit message (Collapse)AuthorAgeFilesLines
* checkpoints: update to a recent block heightselsta2025-08-201-1/+1
|
* build: prepare v0.18.4.2selsta2025-08-011-1/+1
|
* build: prepare v0.18.4.1selsta2025-07-091-1/+1
|
* Merge pull request #9864v0.18.4.0tobtoht2025-03-261-1/+1
|\ | | | | | | 97e1a49dd checkpoints: update to a recent block height (selsta)
| * checkpoints: update to a recent block heightselsta2025-03-251-1/+1
| |
* | Merge pull request #9854tobtoht2025-03-241-4/+0
|\ \ | | | | | | | | | c7f01e57f Blockchain: remove skip for pruned txs in `check_tx_inputs()` (jeffro256)
| * | Blockchain: remove skip for pruned txs in `check_tx_inputs()`jeffro2562025-03-191-4/+0
| |/ | | | | | | | | | | | | | | | | I can't see how this would trigger in the current codebase, so it's not a *current* safety issue, but I can very well see it becoming on in the future if downstream code doesn't handle the passing of pruned transactions correctly. I think the safe/good choice would be to remove this skip now that all transactions that pass into the mempool are supposed to be unpruned. And for all in-block txs, `check_tx_inputs()` isn't called for checkpointed blocks, and we sync pruned blocks only if syncing checkpointed blocks.
* / cryptonote_protocol: fix handling of pruned blocks during syncjeffro2562025-03-191-1/+1
|/
* Merge pull request #9740tobtoht2025-03-108-734/+799
|\ | | | | | | 008ba966d blockchain sync: reduce disk writes from 2 to 1 per tx (jeffro256)
| * blockchain sync: reduce disk writes from 2 to 1 per txjeffro2562025-03-108-734/+799
| |
* | Fix build with boost ASIO 0.87. Support boost 1.66+Lee *!* Clagett2025-02-142-6/+8
| |
* | build: prepare v0.18.4.0selsta2025-02-131-1/+1
|/
* Merge pull request #9689tobtoht2025-01-221-72/+5
|\ | | | | | | 4d2aad837 Revert "blockchain: detect and log bad difficulty calculations" (selsta)
| * Revert "blockchain: detect and log bad difficulty calculations"selsta2025-01-141-72/+5
| | | | | | | | This reverts commit 5741b4d74de542f6f75dddad8125f4c4a5ad9143.
* | Merge pull request #9622tobtoht2025-01-141-11/+2
|\ \ | |/ |/| | | 41c4bc4 Blockchain: get height of RingCT fork programmatically (jeffro256)
| * Blockchain: get height of RingCT fork programmaticallyjeffro2562024-12-161-11/+2
| | | | | | | | | | | | Get height of the RingCT fork to start the output distributuon programmatically, instead of using a hardcoded index. If using a hardcoded index, when the hardfork tables are modified, this can cause segmentation faults or horrific privacy issues: https://codeberg.org/wownero/wownero/issues/488#issuecomment-2514880.
* | Merge pull request #9400luigi11112024-12-231-6/+0
|\ \ | |/ |/| | | f0a574c Blockchain: fix temp fails causing alt blocks to be permanently invalid (jeffro256)
| * Blockchain: fix temp fails causing alt blocks to be permanently invalidjeffro2562024-07-151-6/+0
| |
* | build: fix build with Boost 1.85 and remove instances of viewkey logging ↵jeffro2562024-09-101-2/+2
| | | | | | | | | | | | | | | | | | | | | | [RELEASE] 1. Use std::is_standard_layout and std::is_trivially_copyable instead of std::is_pod for KV byte-wise serialization, which fixes compile issue for Boost UUIDs 2. Removed reimplementation of std::hash for boost::uuids::uuid 3. Removed << operator overload for crypto::secret_key 4. Removed instances in code where private view key was dumped to the log in plaintext Release version of #9450, containing C++14 modified assertions
* | build: prepare v0.18.3.4selsta2024-07-221-1/+1
|/
* Enforce Tx unlock_time is Zero by Relay Rule [RELEASE]jeffro2562024-04-293-9/+18
| | | | | | | | | | | | | | | | Related to https://github.com/monero-project/research-lab/issues/78 Added a relay rule that enforces the `unlock_time` field is equal to 0 for non-coinbase transactions. UIs changed: * Removed `locked_transfer` and `locked_sweep_all` commands from `monero-wallet-cli` APIs changed: * Removed `unlock_time` parameters from `wallet2` transfer methods * Wallet RPC transfer endpoints send error codes when requested unlock time is not 0 * Removed `unlock_time` parameters from `construct_tx*` cryptonote core functions @tobtoht: undo rebase changes tx.dsts -> tx_dsts
* build: prepare v0.18.3.3selsta2024-03-111-1/+1
|
* Fixed mempool pruningSChernykh2024-03-082-7/+19
| | | | | - Fixed undefined behavior after a call to `remove_tx_from_transient_lists` (it used an invalid iterator) - Fixed `txCompare` (it wasn't strictly weak ordered)
* Merge pull request #9223luigi11112024-03-081-1/+1
|\ | | | | | | 36ee12b get_block_template_backlog: better sorting logic (SChernykh)
| * get_block_template_backlog: better sorting logicSChernykh2024-03-081-1/+1
| | | | | | | | std::sort is unstable, so it can return random sets of transactions when mempool has many transactions with the same fee/byte. It can result in p2pool mining empty blocks sometimes because it doesn't pick up "new" transactions immediately.
* | tx_memory_pool: make double spends a no-drop offensejeffro2562024-03-081-0/+1
|/ | | | | Nodes who see different txs in a double spend attack will drop each other, splitting the network. Issue found by @boog900.
* Merge pull request #9136luigi11112024-02-241-1/+1
|\ | | | | | | f2360a7 build: prepare v0.18.3.2 (selsta)
| * build: prepare v0.18.3.2selsta2024-02-201-1/+1
| |
* | cryptonote_core: early out on out of bounds scaling parameterselsta2024-02-201-1/+2
|/
* Merge pull request #9014v0.18.3.1luigi11112023-10-021-33/+2
|\ | | | | | | | | 69de381 add a test for the long term weight cache (Boog900) 810f6a6 Fix: long term block weight cache The long term block weight cache was doing a wrong calculation when adding a new block to the cache. (Boog900)
| * Fix: long term block weight cacheBoog9002023-10-021-33/+2
| | | | | | | | | | The long term block weight cache was doing a wrong calculation when adding a new block to the cache.
* | build: prepare v0.18.3.1selsta2023-10-021-1/+1
|/
* build: prepare v0.18.3.0selsta2023-09-101-1/+1
|
* Enforce restricted # pool txs served via RPC + optimize chunked reqs ↵j-berman2023-07-095-37/+74
| | | | | | | | | | | | | | | | | | | | | | [release-v0.18] - `/getblocks.bin` respects the `RESTRICTED_TX_COUNT` (=100) when returning pool txs via a restricted RPC daemon. - A restricted RPC daemon includes a max of `RESTRICTED_TX_COUNT` txs in the `added_pool_txs` field, and returns any remaining pool hashes in the `remaining_added_pool_txids` field. The client then requests the remaining txs via `/gettransactions` in chunks. - `/gettransactions` no longer does expensive no-ops for ALL pool txs if the client requests a subset of pool txs. Instead it searches for the txs the client explicitly requests. - Reset `m_pool_info_query_time` when a user: (1) rescans the chain (so the wallet re-requests the whole pool) (2) changes the daemon their wallets points to (a new daemon would have a different view of the pool) - `/getblocks.bin` respects the `req.prune` field when returning pool txs. - Pool extension fields in response to `/getblocks.bin` are optional with default 0'd values.
* wallet2, RPC: Optimize RPC calls for periodic refresh from 3 down to 1 call ↵rbrunner72023-07-094-19/+258
| | | | [release-v0.18]
* blockchain: ensure base fee cannot reach 0Crypto City2023-05-111-1/+1
| | | | reported by sech1
* Merge pull request #8805v0.18.2.2luigi11112023-04-021-1/+1
|\ | | | | | | 4f1262b build: prepare v0.18.2.2 (selsta)
| * build: prepare v0.18.2.2selsta2023-03-271-1/+1
| |
* | cryptonote core/protocol: don't drop peers for soft offensesjeffro2562023-03-292-1/+3
|/ | | | | | Also: txs with tx_extra which is too large will not get published to ZMQ Co-authored-by: SChernykh <sergey.v.chernykh@gmail.com>
* Merge pull request #8785luigi11112023-03-241-1/+1
|\ | | | | | | cdeb286 build: prepare v0.18.2.1 (selsta)
| * build: prepare v0.18.2.1selsta2023-03-181-1/+1
| |
* | Merge pull request #8784luigi11112023-03-182-0/+11
|\ \ | | | | | | | | | 5900ed3 Add a size limit for tx_extra in tx pool (tevador)
| * | Add a size limit for tx_extra in tx pooltevador2023-03-182-0/+11
| |/
* / verRctNonSemanticsSimpleCached: fix fragilityJeffrey Ryan2023-03-175-73/+279
|/
* build: prepare v0.18.2.0selsta2023-02-081-1/+1
|
* Merge pull request #8676luigi11112023-01-111-1/+1
|\ | | | | | | 29208a3 Cache successful erRctNonSemanticsSimple calls (SChernykh)
| * Cache successful `verRctNonSemanticsSimple` callsSChernykh2022-12-201-1/+1
| |
* | Refactored rx-slow-hash.cSChernykh2022-12-144-43/+41
|/ | | | | | | | | - Straight-forward call interface: `void rx_slow_hash(const char *seedhash, const void *data, size_t length, char *result_hash)` - Consensus chain seed hash is now updated by calling `rx_set_main_seedhash` whenever a block is added/removed or a reorg happens - `rx_slow_hash` will compute correct hash no matter if `rx_set_main_seedhash` was called or not (the only difference is performance) - New environment variable `MONERO_RANDOMX_FULL_MEM` to force use the full dataset for PoW verification (faster block verification) - When dataset is used for PoW verification, dataset updates don't stall other threads (verification is done in light mode then) - When mining is running, PoW checks now also use dataset for faster verification
* build: prepare v0.18.1.2selsta2022-09-261-1/+1
|
* Merge pull request #8588luigi11112022-09-261-4/+0
|\ | | | | | | 802c4bb Move update_checkpoints() to a later stage (SChernykh)