| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| |\
| |
| |
| |
| |
| | |
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
|
| | |
| |
| |
| |
| |
| | |
- 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)
|
| |\ \
| | |
| | |
| | |
| | |
| | |
| | | |
7c543c8 daemon: fix print_cn command when 0 connections (jeffro256)
528cbac Show IPv6 addresses in connection list (Guillaume Le Vaillant)
ACKs: tobtoht, j-berman
|
| | |/ |
|
| |/ |
|
| |\
| |
| |
| | |
ac96d8a cryptonote_protocol: cleanup_handle_incoming_blocks on scope exit (j-berman)
|
| | | |
|
| |/ |
|
| |
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| | |
|
| | |
|
| |\
| |
| |
| | |
008ba966d blockchain sync: reduce disk writes from 2 to 1 per tx (jeffro256)
|
| | | |
|
| |/ |
|
| | |
|
| |
|
|
|
|
| |
Also: txs with tx_extra which is too large will not get published to ZMQ
Co-authored-by: SChernykh <sergey.v.chernykh@gmail.com>
|
| |
|
|
| |
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.
|
| | |
|
| |\
| |
| |
| | |
17772ef Eliminate dependence on boost::interprocess #8223 (Jeffrey)
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |/ |
|
| |
|
|
|
|
| |
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
|
| | |
|
| | |
|
| |\
| |
| |
| | |
23aae55 Remove payload copy in all outgoing p2p messages (Lee Clagett)
|
| | | |
|
| |\ \
| | |
| | |
| | |
| | | |
fe63256 cryptonote_protocol_handler: fix race condition (anon)
ded2f3a cryptonote_protocol_handler: add race condition demo (anon)
|
| | |/ |
|
| |\ \
| |/
|/|
| | |
76fe73b Revert 'fix accessing an network address in a deleted context' (selsta)
|
| | |
| |
| |
| | |
This reverts commit 4e74385a1ae9eae4ae9e8d155dfd96978eb10e7a.
|
| |\ \
| | |
| | |
| | | |
85db173 Remove unused variables in monero codebase (Kevin Barbour)
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| |\ \ \
| |/ /
|/| |
| | | |
f10c9a1 remove obsolete pruning debug code (moneromooo-monero)
|
| | | | |
|
| |\ \ \
| |_|/
|/| |
| | | |
dd5e689 protocol: add calls to reserve where appropriate (moneromooo-monero)
|
| | | | |
|
| |\ \ \
| |_|/
|/| |
| | | |
927141bcc Command max_bytes moved from dynamic map to static switch (Lee Clagett)
|
| | | | |
|
| |\ \ \
| |/ /
|/| |
| | | |
38a6e6e protocol: handle receiving a block hash we've not added yet (moneromooo-monero)
|
| | | | |
|
| |\ \ \
| | | |
| | | |
| | | | |
4e74385a1 fix accessing an network address in a deleted context (moneromooo-monero)
|
| | |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Both drop_connection and add_host_fail can drop the connection,
which invalidates the context, and thus the address it contains.
Thanks to wfaressuissia[m] for lots of help and prodding when
debugging this
|
| |/ / |
|
| |\ \
| | |
| | |
| | | |
61b6e4cc6 Add aggressive restrictions to pre-handshake p2p buffer limit (Lee Clagett)
|
| | | | |
|
| |\ \ \
| | | |
| | | |
| | | | |
0aa541b36 protocol: more sanity checks in new chain block hashes (moneromooo-monero)
|
| | |/ / |
|
| |/ /
| |
| |
| |
| | |
this prevents losing time of "idle time" for a peer, which could
otherwise be reset by another timed sync command from the peer
|