aboutsummaryrefslogtreecommitdiff
path: root/src/cryptonote_protocol
Commit message (Collapse)AuthorAgeFilesLines
* Establish Monzero Phase 0 and inactive assets baselinemonzero-phase0-assets-prototype-20260815Monzero Build System7 hours1-3/+6
|
* Merge pull request #10836tobtoht2026-06-301-3/+9
|\ | | | | | | | | | | fc6e4af Optimized handle_notify_new_transactions's duplicate tx check - Check sha256 digests instead of full blobs (much less memory used) - Replace `find->insert` sequence with a single `insert` - 2x fewer hashset accesses - Preallocate the required size for the hashset (no full-table rehashes) (SChernykh) ACKs: selsta, j-berman
| * Optimized handle_notify_new_transactions's duplicate tx checkSChernykh2026-06-291-3/+9
| | | | | | | | | | | | - Check sha256 digests instead of full blobs (much less memory used) - Replace `find->insert` sequence with a single `insert` - 2x fewer hashset accesses - Preallocate the required size for the hashset (no full-table rehashes)
* | Merge pull request #10611tobtoht2026-06-301-0/+5
|\ \ | | | | | | | | | | | | | | | | | | 7c543c8 daemon: fix print_cn command when 0 connections (jeffro256) 528cbac Show IPv6 addresses in connection list (Guillaume Le Vaillant) ACKs: tobtoht, j-berman
| * | Show IPv6 addresses in connection listGuillaume Le Vaillant2026-05-161-0/+5
| |/
* / p2p: restore safe sync mode when target height dropsselsta2026-06-241-0/+2
|/
* Merge pull request #10441tobtoht2026-04-221-32/+17
|\ | | | | | | ac96d8a cryptonote_protocol: cleanup_handle_incoming_blocks on scope exit (j-berman)
| * cryptonote_protocol: cleanup_handle_incoming_blocks on scope exitj-berman2026-04-211-32/+17
| |
* | Merge pull request #10439tobtoht2026-04-221-1/+1
|\ \ | | | | | | | | | 874c771 cryptonote_basic: pruned hash return bool (j-berman)
| * | cryptonote_basic: pruned hash return boolj-berman2026-04-211-1/+1
| |/
* / connection: try-catch handlesj-berman2026-04-211-3/+3
|/
* tx_memory_pool: speedup get_complement() for large requestsjeffro2562026-03-211-1/+1
| | | | | | | Changes complexity from M*N to (2*N+M)*log2(M). The FCMP++ stressnet recently hit mempool sizes of ~55k txs. If the requesting node's mempool is populated, this results in an average of (55000*55000)/2 (about 1.5 billion) comparisons for the responding node. Under this commit, this would be reduced to (55000+55000)*log2(55000) comparisons (about 2.6 million), a 99.83% reduction.
* p2p: fix race causing dropped connections during syncj-berman2025-12-111-7/+4
| | | | | | | | | | | | | Without this commit: 1) read height from DB 2) add block to chain in separate thread 3) read chain for block id's and request them from peer 4) ERR in handle_response_chain_entry, peer's first block is the one that was added to the chain, which has block idx=height from step 1. This commit reads the chain for height and highest block id's in one go while holding the m_blockchain_lock to avoid the race.
* Merge pull request #10202tobtoht2025-11-111-8/+16
|\ | | | | | | dafecd0 cryptonote_protocol: accurate next_needed_height when there is an overlap (0xFFFC0000)
| * cryptonote_protocol: accurate next_needed_height when there is an overlap0xFFFC00002025-11-111-8/+16
| |
* | Fix logging deadlockj-berman2025-11-111-2/+5
|/
* cmake: don't redefine projecttobtoht2025-06-241-3/+0
|
* cryptonote_protocol: fix handling of pruned blocks during syncjeffro2562025-03-191-7/+31
|
* Merge pull request #9740tobtoht2025-03-103-391/+223
|\ | | | | | | 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-103-391/+223
| |
* | Fix build with boost ASIO 0.87. Support boost 1.66+Lee *!* Clagett2025-02-142-19/+25
| |
* | Some cleanup in span/connection_context + few more checksLee *!* Clagett2025-02-034-34/+102
|/
* build: fix build with Boost 1.85 and remove instances of viewkey logging ↵jeffro2562024-09-101-11/+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
* cryptonote_protocol: prevent duplicate txs in fluff queue0xFFFC00002024-06-061-0/+2
| | | | | | | 1. Fix duplicate transaction #9335 2. Add test for cases where there are duplicate transaction in fluff Co-authored-by: Boog900 <boog900@tutanota.com>
* Skip privacy networks (on tx sends) that don't have outgoing connectionsLee *!* Clagett2024-03-292-3/+9
|
* protocol: drop peers sending duplicate txesmoneromooo-monero2023-06-271-0/+10
|
* cryptonote core/protocol: don't drop peers for soft offensesjeffro2562023-03-291-1/+1
| | | | | | Also: txs with tx_extra which is too large will not get published to ZMQ Co-authored-by: SChernykh <sergey.v.chernykh@gmail.com>
* Fix dandelion++ fluff/stem bug with local txesLee Clagett2022-10-251-3/+4
|
* Move update_checkpoints() to a later stageSChernykh2022-09-221-0/+8
| | | | update_checkpoints() makes a few DNS requests and can take up to 20-30 seconds to complete (3-6 seconds on average). It is currently called from core::handle_incoming_block() which holds m_incoming_tx_lock, so it blocks all incoming transactions and blocks processing while update_checkpoints() is running. This PR moves it to until after a new block has been processed and relayed, to avoid full monerod locking.
* Don't exclusively drop tor/i2p outgoing cxns in idle loopj-berman2022-05-182-24/+56
|
* Trimming FatJeffrey2022-04-181-1/+0
| | | | Remove unused include statements or unused definitions.
* Merge pull request #8223luigi11112022-04-061-1/+0
|\ | | | | | | 17772ef Eliminate dependence on boost::interprocess #8223 (Jeffrey)
| * Eliminate dependence on boost::interprocess #8223Jeffrey2022-03-301-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | In this repo, `boost::interprocess` was being used soley to make `uint32_t` operations atomic. So I replaced each instance of `boost::interprocess::ipcdetail::atomic(...)32` with `std::atomic` methods. I replaced member declarations as applicable. For example, when I needed to change a `volatile uint32_t` into a `std::atomic<uint32_t>`. Sometimes, a member was being used a boolean flag, so I replaced it with `std::atomic<bool>`. You may notice that I didn't touch `levin_client_async.h`. That is because this file is entirely unused and will be deleted in PR monero-project#8211. Additional changes from review: * Make some local variables const * Change postfix operators to prefix operators where value was not need
* | Copyright: Update to 2022mj-xmr2022-03-0412-12/+12
|/
* protocol: fix spurious rejection of downloaded blocksmoneromooo-monero2021-10-211-0/+1
| | | | | | when kicking a peer for inactivity, clear the set of requested blocks, or next time we requests blocks from it, we'll probably reject the incoming blocks due to missing the previous requested blocks
* node_server: fix race conditionanon2021-09-202-11/+46
|
* protocol: fix delayed "you are now synchronized..." messagemoneromooo-monero2021-06-211-3/+4
|
* Merge pull request #7691luigi11112021-05-121-1/+1
|\ | | | | | | cbd54ea cmake: set 3.5 as minimum version (selsta)
| * cmake: set 3.5 as minimum versionselsta2021-04-271-1/+1
| |
| * Remove payload copy in all outgoing p2p messagesLee Clagett2021-01-194-26/+20
| |
| * Revert "Merge pull request #7136"luigi11112021-04-164-20/+26
| | | | | | | | | | This reverts commit 63c7ca07fba2f063c760f786a986fb3e02fb040e, reversing changes made to 2218e23e84a89e9a1e4c0be5d50f891ab836754f.
* | protocol: remove unreachable codemoneromooo-monero2021-04-171-1/+1
|/
* Merge pull request #7136luigi11112021-04-164-26/+20
|\ | | | | | | 23aae55 Remove payload copy in all outgoing p2p messages (Lee Clagett)
| * Remove payload copy in all outgoing p2p messagesLee Clagett2021-01-164-26/+20
| |
* | Merge pull request #7620luigi11112021-03-291-27/+41
|\ \ | | | | | | | | | | | | fe63256 cryptonote_protocol_handler: fix race condition (anon) ded2f3a cryptonote_protocol_handler: add race condition demo (anon)
| * | cryptonote_protocol_handler: fix race conditionanon2021-03-221-27/+41
| |/
* | Merge pull request #7310luigi11112021-03-291-6/+3
|\ \ | |/ |/| | | 76fe73b Revert 'fix accessing an network address in a deleted context' (selsta)
| * Revert "fix accessing an network address in a deleted context"selsta2021-01-121-6/+3
| | | | | | | | This reverts commit 4e74385a1ae9eae4ae9e8d155dfd96978eb10e7a.
* | Merge pull request #7346luigi11112021-02-181-3/+0
|\ \ | | | | | | | | | 85db173 Remove unused variables in monero codebase (Kevin Barbour)
| * | Remove unused variables in monero codebaseKevin Barbour2021-02-091-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.