7907 Commits
Author SHA1 Message Date
jeffro256andjwinterm a55faa8cfd wallet: add source info to describe_transfer RPC
(cherry picked from commit 7a4825b062d0af3fb6e7cb6e8641e1b9da715544)
2026-05-05 18:19:54 -04:00
jeffro256andjwinterm 32f0faf2e6 tx_memory_pool: speedup get_complement() for large requests
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.

(cherry picked from commit 0761024b349048ebf79dbfe71caab11826833464)
2026-05-05 18:19:54 -04:00
j-bermanandjwinterm 1c3773373e cryptonote_core: try-catch in prepare same as cleanup
(cherry picked from commit f9d089a3e45338bfbb5abf88733b15718438a576)
2026-05-05 18:19:53 -04:00
jeffro256andjwinterm e1b8e51ea7 cryptonote_basic: fix add_extra_nonce_to_tx_extra() length
Missing unit tests.

(cherry picked from commit 1e6a55109f4434b166a35a26123d7a4370a507b7)
2026-05-05 18:19:53 -04:00
selstaandjwinterm 4636e3416f windows_service: quote service executable path
(cherry picked from commit 53121587562af1abef3680060c240068a1ff2c97)
2026-05-05 18:19:53 -04:00
selstaandjwinterm 8ac909841b p2p: fix inverted ternary in peer list filter
(cherry picked from commit 54edc176d59133a1e279c4066b16983a41aba56c)
2026-05-05 18:19:53 -04:00
0xFFFC0000andjwinterm 787dacd872 multisig: fix kex failure in monero-gen-trusted-multisig
(cherry picked from commit d4d67c48dc8b5aba2f3421d8113c314ca7584374)
2026-05-05 18:19:53 -04:00
Lee *!* Clagettandjwinterm f1b948dcc5 Tweak command_line::add_arg for clang 21
(cherry picked from commit 482daa7445f89acbe74f7a37023e4b89d17a97f0)
2026-05-05 18:19:53 -04:00
j-bermanandjwinterm 0d9df28884 wallet2: fix edge case where tx's ki's remain marked unspent
If a tx is marked as failed (because it never shows up in the
daemon's pool), its key images get reset back to unspent so they
can be used in future txs.

If the tx re-enters the daemon's pool (e.g. it's removed from the
pool and then relayed back), then the wallet incorrectly maintains
that the tx's key images are unspent.

This change ensures the wallet re-marks the tx's key images as
spent if the tx re-appears in the node's pool.

(cherry picked from commit c147e2dfe2cecb241735e5e625b4cc31009a2b6e)
2026-05-05 18:19:53 -04:00
j-bermanandjwinterm 06fed93f74 p2p: fix race causing dropped connections during sync
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.

(cherry picked from commit d8d3cf97300480b9d3942c667978dd4860b76feb)
2026-05-05 18:19:53 -04:00
tobtohtandjwinterm 4f77b38ac2 ledger: add nano gen5 id
(cherry picked from commit 15fc1c840c30f31b6fca3cdbe2fa981530ed1c2a)
2026-05-05 18:19:53 -04:00
Catandjwinterm 183c5e2ef6 simplewallet: edit desc. text for transfer
(cherry picked from commit ba163d38cbcfd89a2b359ae29c233406788907dd)
2026-05-05 18:19:53 -04:00
j-bermanandjwinterm d26e1fbf09 Daemon: relay empty fluffy block on found block
(cherry picked from commit 4e4e3439c9ce5c2adc297fe8b66e69ef0848438c)
2026-05-05 18:19:53 -04:00
j-bermanandjwinterm bb3fbddb62 tx pool: only increment m_txpool_weight for newly added pool txs
Otherwise we can end up double counting txs towards the weight,
which can over-state the pool weight. E.g. relay tx to node in
stem phase, add its weight to pool weight, then receive tx
from another node, then bump the pool weight again. That double
counts the tx towards the pool weight.

If the weight exceeds the max, the node will "prune" txs from the
pool. Thus, over-counting is probably a cause of, but perhaps
not the only cause of:
https://github.com/seraphis-migration/monero/issues/148

(cherry picked from commit 90dad18bfbe3275142e2f3fe33017cd65486a20f)
2026-05-05 18:19:53 -04:00
tobtohtandjwinterm 6579225cc5 ledger: throw on secret view key export rejection
(cherry picked from commit 26cf4f914134fa0808ca539e2d0e7d17aac125e1)
2026-05-05 18:19:53 -04:00
j-bermanandjwinterm 7551a0dc04 Fix logging deadlock
(cherry picked from commit a83a46d60059a063ec953ba15f4cdcc2b3874440)
2026-05-05 18:19:53 -04:00
0xFFFC0000andjwinterm 68a1c63c73 cryptonote_protocol: accurate next_needed_height when there is an overlap
(cherry picked from commit dafecd0addb171751efd31fea417d36da84e5efe)
2026-05-05 18:19:53 -04:00
woodserandjwinterm 70235e19ff add getter for daemon proxy
(cherry picked from commit 48252dd6a9f21757e130dc93d9e47e650163381b)
2026-05-05 18:19:53 -04:00
j-bermanandjwinterm 0ea75b1e3e wallet: identify spends in pool when scanning
- Make sure to mark identified spends in the pool as spends. The
wallet might not know these have been spent if it wasn't the wallet
that relayed the tx to the daemon, or the wallet was cleared via
rescan_bc.
- Make sure to add spends to m_unconfirmed_txs if not present.
- Make sure to process the entire pool again if refreshing for
the first time. The wallet fetches pool and blocks at the same
time. The wallet scans blocks first, then pool. If the wallet
identifies received outputs in the chain, then it may have spent
those received outputs in the pool. So we make sure to re-process
the entire pool again after scanning the chain for the first time.
- Multisig wallets that know about spent key images can now detect
spend txs in the pool. Update tests for that.

(cherry picked from commit 9239d36691bfe94dda12cc925903fed5e761fbe3)
2026-05-05 18:19:53 -04:00
j-bermanandwowario cfd2a69624 wallet2: warn instead of throw when RingDB doesn't include spend
A reorg can end up causing an output's position in the chain to
move. Since the wallet doesn't update the RingDB on reorg, it
may refer to the output's stale position in the chain.

This seems a reasonable solution rather than introducing complex
logic to update the stale ring member's value on rerog, since
RingDB can be deprecated with FCMP++.
2025-10-10 08:49:03 +03:00
jeffro256andwowario 2e1fdd9f48 cryptonote_basic: remove redundant call to get_transaction_hash() in overload
Issue noticed by DataHoarder.
2025-10-10 08:48:06 +03:00
j-bermanandwowario 48e34c2336 Cleaner validation (faster and saner) 2025-10-10 08:47:44 +03:00
j-bermanandwowario 4bfb5acd8f Daemon RPC: fix on_getblockhash error return on too high height 2025-10-10 08:47:20 +03:00
j-bermanandwowario 28e8844d3d Daemon RPC: add max_block_count field to /getblocks.bin 2025-09-29 06:25:45 +03:00
nahuhhandwowario 4f10510f68 simplewallet: batch address creation limit to match rpc 2025-09-29 06:25:14 +03:00
WeebDataHoarderandwowario 7a5cc4afb9 Send ZMQ miner notifications after txpool additions
Bug was introduced in c069c04ede, before this txpool additions were not notified on block addition

When receiving blocks with previously unknown conditions, miner data was sent first, but txpool add events for already-added transactions in previous block were sent afterward. Miners would then include already-mined transactions in their new templates due to receiving the mistimed txpool add event.

The fix is to send miner notifications AFTER txpool events are sent, and before normal block notifications are sent (for mining switch speed purposes)

Fixes c069c04ede / #9135
Fixes dfee15eee1 / #7891
2025-09-29 06:24:51 +03:00
rbrunner7andwowario 95c1fd7679 p2p: Improved peer selection with /24 subnet deduplication to disadvantage 'spy nodes' [v0.18] 2025-09-29 06:23:55 +03:00
nahuhhandwowario 5b0bed2950 cryptonote_core: --dns-versions-check is deprecated 2025-09-25 11:24:14 +03:00
moneromooo-moneroandwowario 77ba1f2c6a wallet_rpc_server: allow creating more than 64 addresses at once
it's too low a limit (at least one person mentioned having to
call create_address in a loop due to it)
2025-09-25 11:23:37 +03:00
wowario 1a94126ae4 update checkpoints 2025-09-19 21:01:46 +03:00
wowario 5049ad3d6f v0.11 ASCII art 2025-09-19 21:01:45 +03:00
wowario 9f429cfc89 wownero skin pack 2025-09-19 21:01:45 +03:00
wowario 4a80a4a693 add checkpoints and fork heights 2025-09-19 21:01:45 +03:00
wowario a65fd1b3e1 change to debug level 2025-09-19 21:01:44 +03:00
wowario e0f486f7b2 add clear screen command 2025-09-19 21:01:44 +03:00
wowario 34bc7d2b63 show full version 2025-09-19 21:01:44 +03:00
wowario de22caa968 cleanup old bp 2025-09-19 21:01:43 +03:00
wowario f7299beb66 vote by block 2025-09-19 21:01:43 +03:00
wowario 88e126db9c miner block header signing 2025-09-19 21:01:43 +03:00
wowario 2c544dee74 add nettype to diff algo 2025-09-19 21:01:43 +03:00
wowario 8077b9473a difficulty is fun 2025-09-19 21:01:42 +03:00
wowario 9c11ef2292 only allocate slow hash before RX 2025-09-19 21:01:42 +03:00
wowario ed340c208e mod variant4_random_math 2025-09-19 21:01:42 +03:00
wowario b7fb278873 set pow variants 2025-09-19 21:01:41 +03:00
wowario 945e4c9644 bump RX block version 2025-09-19 21:01:41 +03:00
wowario b7fb563f83 shorten timestamp check window 2025-09-19 21:01:41 +03:00
wowario bf12e2745d limit future blk time to 10 min 2025-09-19 21:01:40 +03:00
wowario 30dba37f1f bump unlock time to 288 blks 2025-09-19 21:01:40 +03:00
wowario 076254eb38 config wallet2 settings 2025-09-19 21:01:40 +03:00
wowario 220c474ac1 fix mismatched daemon check bug 2025-09-19 21:01:38 +03:00