Commit Graph
11558 Commits
Author SHA1 Message Date
Lee Clagettandjwinterm d420c943c1 Fix ZMQ-PUB reporting of mempool txes that were initially in stem phase
(cherry picked from commit 73f1eaaed6defa6fc25fc7e74b51679e365cb7e5)
2026-05-05 18:20:53 -04:00
jeffro256andjwinterm 49983ee687 blockchain_utilities: fix --data-dir option
(cherry picked from commit 8a20fd2bc84d74917381fb50362b4d1a385256bd)
2026-05-05 18:20:53 -04:00
j-bermanandjwinterm 22818719d4 cryptonote_protocol: cleanup_handle_incoming_blocks on scope exit
(cherry picked from commit ac96d8ad3709dee5c375642c3cd8f3b8348bb0cc)
2026-05-05 18:20:53 -04:00
j-bermanandjwinterm da44d4ea4c cryptonote_basic: pruned hash return bool
(cherry picked from commit 874c771975257c82e275c17af72899b301a63d5f)
2026-05-05 18:20:53 -04:00
j-bermanandjwinterm ef41a9677c connection: try-catch handles
(cherry picked from commit 14e333217e968416a521568ed2ef4868bb162b26)
2026-05-05 18:20:53 -04:00
selstaandjwinterm 93db6154d4 wallet_rpc_server: restrict relay_tx
(cherry picked from commit 3703ec1833c3814290db7615fec2314f57ba5b8b)
2026-05-05 18:20:53 -04:00
selstaandjwinterm ffff77fe50 wallet_rpc_server: fix ssl_allowed_fingerprints hex parsing
(cherry picked from commit b635e675e699f87d0d028f6f3f6e6a2ea2c05104)
2026-05-05 18:20:53 -04:00
selstaandjwinterm af6a55c941 wallet2: add parse multisig tx sanity checks
(cherry picked from commit 2094d38c86bab8ab23bb5ddfb5cd7ce3a7957a63)
2026-05-05 18:20:53 -04:00
selstaandjwinterm ad1fb36b38 zmq: add missing restricted rpc check
(cherry picked from commit e6ce535b24c48104fb1cfebc1ae03686afe820f2)
2026-05-05 18:20:53 -04:00
Lee *!* Clagettandjwinterm c7227454e8 Add Socks v5 support to daemon and wallet
(cherry picked from commit 23e29a5074f01cbb781f7e76b0c17ad2b6797af0)
(cherry picked from commit ce5437f0677966c15d2946bc7c068975aa6bfd83)
2026-05-05 18:20:53 -04:00
Jeetrajandjwinterm 8d298b8d77 p2p: isolate regtest from mainnet bootstrap state
(cherry picked from commit 1d2ae2138a85dd93bc8a0d2c55513c5b5ba4658f)
2026-05-05 18:20:53 -04:00
hinto.janaiandjwinterm a5b524a030 rpc: restrict add_aux_pow
(cherry picked from commit 644a73867fd43420dccfe22a6cb421ac1aee7c54)
2026-05-05 18:20:53 -04:00
woodserandjwinterm 4cbc74bed0 multisig: add flag to skip refresh after multisig import
(cherry picked from commit 7b1e9ca29801d1e380291371e40c8c37ac43d18d)
2026-05-05 18:20:53 -04:00
SNeedlewoodsandjwinterm a92498563d fix: return early in sensitive methods for --restricted-rpc
(cherry picked from commit e1adf396da598581f2587d8fb55a166e2f3a1190)
2026-05-05 18:20:52 -04:00
selstaandjwinterm 33b967d231 wallet2: fix background wallet detection in verify_password()
(cherry picked from commit e7b121ac17d6e0c3bb6f17911ae9ab18132b3c67)
2026-05-05 18:20:52 -04:00
Lee *!* Clagettandjwinterm b965f61b18 Fix DNS resolve UB
(cherry picked from commit 8260f71818bf7a5a60c471792118b85fa42c8c7a)
2026-05-05 18:20:52 -04:00
j-bermanandjwinterm e69533337b p2p: fix hanging shutdown
(cherry picked from commit 7bc2d5a42e8462f2a04f71bd59111a863fa9a6d8)
2026-05-05 18:20:52 -04:00
YalingFangandjwinterm 5528bc3f3a Add support for Loongarch
(cherry picked from commit 0e45918b2b15e1e836ca986fbebb179ce18e7654)
2026-05-05 18:20:52 -04:00
selstaandjwinterm 907d6dd58d zmq: add restricted rpc mode
(cherry picked from commit 7f2cfe9294ec1fa7bece2a8069114c1b6985650f)
2026-05-05 18:20:52 -04:00
Lee *!* Clagettandjwinterm e16f0a2c28 Cleanup some of the fragmented levin handling
(cherry picked from commit 017c9022d7bbc03484191177228657b14fb09f53)
2026-05-05 18:20:52 -04:00
jeffro256andjwinterm 77cd1986ac daemon: warn user on specifiying ZMQ args with --no-zmq
Resolves https://github.com/monero-project/monero/issues/9127

(cherry picked from commit dd0fb6c7552330a088033b0cfba0ba570bbbfd15)
2026-05-05 18:19:54 -04:00
selstaandjwinterm a3a824d288 abstract_tcp_server2: add missing return
(cherry picked from commit f60b400917a6d2fecc6c03524c70fbd9e033f436)
2026-05-05 18:19:54 -04:00
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
Lee *!* Clagettandjwinterm 93381db29c Harden HTTP client auth
(cherry picked from commit f355f85e6f7bea4a4f68c7880b2b995a3c225882)
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
j-bermanandjwinterm 0544146ff3 p2p: connection patches
- Make sure the server sends a complete response when the client
includes the "Connection: close" header.
- Make sure the server terminates in `m_strand` to avoid
concurrent socket closure and ops processing.

(cherry picked from commit ee9e4a49baae0319f6cab543979e221f251339a3)
2026-05-05 18:19:53 -04:00
tobtohtandjwinterm b714190fae depends: openssl: update to 3.0.19
(cherry picked from commit c4e54fe5e0bdb9cd8b460dd7836ad61855d54ad1)
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
iamamythandjwinterm ed0267eea0 logging: Generalize terminal color detection
Assume the terminal supports color codes if TERM ends with `-color` or
`-256color`, rather than special-casing a handful of such terminals.

Co-authored-by: laanwj <126646+laanwj@users.noreply.github.com>
(cherry picked from commit 1075acee901185b47bd8cac6bd06587429a7df57)
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 e9fde467bd epee: add missing cstdint include
(cherry picked from commit 7baf2bde6ecad1e13848fdbd9d4db026ca0ff8fc)
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
tobtohtandjwinterm dd2b66fdbc depends: hidapi: update to 0.15.0
(cherry picked from commit c14a0ba43210ca029bbc240c9f093f6ec5f8f8c8)
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