Commit Graph
12355 Commits
Author SHA1 Message Date
tobtoht 019dcec2b5 Merge pull request #10315
2f35270 ignore: clang cache (jeffro256)
2026-02-18 22:17:12 +00:00
tobtoht ed30e9e88d Merge pull request #10316
80043b9 p2p: fix inverted ternary in peer list filter (selsta)
2026-02-18 22:16:55 +00:00
selsta 80043b928b p2p: fix inverted ternary in peer list filter 2026-02-13 18:09:02 +01:00
jeffro256 2f3527097b ignore: clang cache
https://clangd.llvm.org/design/indexing#backgroundindex
2026-02-09 12:30:59 -07:00
tobtoht f99ee72d4b Merge pull request #10264
226d6ea Clarify anonymity networks documentation (Torir)
2026-02-05 18:09:11 +00:00
tobtoht e77e3fafd0 Merge pull request #10187
d57e408 guix: use clang 19 for darwin & freebsd targets (tobtoht)
2026-02-04 11:24:07 +00:00
tobtoht 6fec7bcb9f Merge pull request #9495
508b6ee src: dynamic span, to calculate span limit dynamically (Navid Rahimi)
2026-02-04 09:54:55 +00:00
Navid Rahimiandnahuhh 508b6ee8fb src: dynamic span, to calculate span limit dynamically
Co-authored-by: nahuhh
    - jberman review
    - cryptonote_protocol: don't arbitrarily download 1000 blocks ahead
    - further restrict `proceed` to require `queue_proceed` in all cases.
      ensure queue_proceed is true if we need the next block, even if we
      already exceed the span and size limits

cryptonote_protocol: improved logging + const usage in span downloader
2026-02-04 08:54:23 +00:00
tobtoht 20ef991839 Merge pull request #9494
2a1a489 src: dynamic block sync size Co-authored-by: nahuhh (0xFFFC0000)
2026-02-03 21:25:04 +00:00
tobtoht cfb8690da5 Merge pull request #10210
b433949 depends: support building without wallet dependencies (tobtoht)
2026-02-03 21:21:54 +00:00
tobtoht 5d6ee4276d Merge pull request #10139
e658151 wallet_rpc_server: add HTTP body size limit (root)
2026-02-03 19:54:20 +00:00
tobtoht f3cdf2785b Merge pull request #10278
7d1f779 p2p: connection patches (j-berman)
2026-02-03 19:51:50 +00:00
tobtoht d380a6ac85 Merge pull request #10290
494a214 Enable IPv6 support for ZMQ server (jpk68)
2026-02-03 19:48:31 +00:00
tobtoht b433949217 depends: support building without wallet dependencies 2026-02-03 20:29:08 +01:00
tobtoht 3c7a0027e6 Merge pull request #10283
98e550e multisig: fix kex failure in monero-gen-trusted-multisig (0xFFFC0000)
2026-02-03 18:59:11 +00:00
tobtoht 087b97773a Merge pull request #10285
b90f455 blockchain_db: remove {add/get}_max_block_size() (jeffro256)
2026-02-03 18:56:49 +00:00
tobtoht 9ee2cd5713 Merge pull request #10282
6a99c22 rpc: return error gracefully on cryptonight v1 check (jeffro256)
2026-02-03 18:55:54 +00:00
tobtoht d57e40840b guix: use clang 19 for darwin & freebsd targets 2026-02-03 17:06:33 +01:00
tobtoht aac3cfd285 Merge pull request #9673
3a8937a depends: explicitely set C/CXX standard for all packages (tobtoht)
2026-02-03 14:40:26 +00:00
tobtoht 04f88f198c Merge pull request #9969
712daec guix: update gcc to 14.3.0 (tobtoht)
2026-02-03 10:14:39 +00:00
tobtoht 712daec8bc guix: update gcc to 14.3.0 2026-02-02 12:04:06 +01:00
jeffro256 6a99c22cbc rpc: return error gracefully on cryptonight v1 check 2026-01-31 10:14:05 -06:00
tobtoht 74dd968cd9 Merge pull request #10039
488bf71 cryptonote_basic: add overload for get_block_longhash() (jeffro256)
2026-01-29 15:43:22 +00:00
jpk68 494a2145d1 Enable IPv6 support for ZMQ server 2026-01-24 20:24:09 -05:00
jeffro256 b90f455e6b blockchain_db: remove {add/get}_max_block_size() 2026-01-21 11:49:46 -06:00
0xFFFC0000 98e550e854 multisig: fix kex failure in monero-gen-trusted-multisig 2026-01-21 13:47:20 +00:00
tobtoht f65b286455 Merge pull request #10272
3f964fc blockchain_db/rpc: faster is_key_image_spent (jeffro256)
2026-01-17 03:41:46 +00:00
tobtoht 24742771dc Merge pull request #10273
2d978db common: fix `apply_permutation()` for `std::vector<bool>` (jeffro256)
2026-01-17 03:39:07 +00:00
tobtoht 06847c793e Merge pull request #10277
11be390 Remove .no moneropulse domain from codebase (binaryFate)
2026-01-17 03:37:52 +00:00
j-berman 7d1f779530 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.
2026-01-15 22:30:43 -08:00
rootandOblivionsage e6581519dd wallet_rpc_server: add HTTP body size limit
Set m_max_content_length to MAX_RPC_CONTENT_LENGTH (1MB) to match
the protection already implemented in core_rpc_server. This prevents
memory exhaustion attacks via unlimited HTTP request sizes.
2026-01-15 17:14:26 +01:00
binaryFate 11be390610 Remove .no moneropulse domain from codebase 2026-01-12 11:49:46 +01:00
tobtoht d0d4184835 Merge pull request #10212
7ef6a22 cmake: only search for python where we need it (tobtoht)
2026-01-09 16:10:00 +00:00
tobtoht ab2ea4763a Merge pull request #10166
a863bf7 BlockchainDB: rm `skip_coinbase` in `get_blocks_from()` (jeffro256)
2026-01-09 16:08:54 +00:00
jeffro256 3f964fcdb5 blockchain_db/rpc: faster is_key_image_spent
Does the following to speedup the `/is_key_image_spent` RPC endpoint:
  - Reads all on-chain key images in one LMDB read transacion
  - Uses `cryptonote_core::are_key_images_spent_in_pool()` instead of `cryptonote_core::get_pool_transactions_and_spent_keys_info()` for pool querying. This only does a LMDB read per key image if in the pool.
  - Filters known on-chain spent key images before querying for key images spent in pool

This RPC endpoint was causing major daemon slowdowns in the Carrot/FCMP++ Alpha Stressnet when using the `rescan_spent` command, especially for large wallets.
The effect was much worse if the mempool was full.
2026-01-07 00:49:44 -06:00
jeffro256 2d978db016 common: fix apply_permutation() for std::vector<bool> 2026-01-05 18:51:01 -06:00
tobtoht 7ef6a2247e cmake: only search for python where we need it 2026-01-03 12:33:25 +01:00
tobtoht 4286fbe6cd Merge pull request #10157
022fb8e unit_tests: @j-berman unit tests for #10157 (jeffro256)
40eb828 cryptonote_core: cache input verification results directly in mempool (jeffro256)
2026-01-03 11:31:27 +00:00
tobtoht a15fa548e4 Merge pull request #10211
a0b8a32 cmake: remove iwyu target (tobtoht)
2026-01-03 11:25:54 +00:00
jeffro256andj-berman 022fb8e390 unit_tests: @j-berman unit tests for #10157
Co-authored-by: j-berman <justinberman@protonmail.com>
2026-01-02 15:47:31 -06:00
jeffro256 40eb82873e cryptonote_core: cache input verification results directly in mempool
This replaces `ver_rct_non_semantics_simple_cached()` with an API that offloads
the responsibility of tracking input verification successes to the caller. The
main caller of this function in the codebase, `cryptonote::Blockchain()` instead
keeps track of the verification results for transaction in the mempool by
storing a "verification ID" in the mempool metadata table (with `txpool_tx_meta_t`).
This has several benefits, including:

* When the mempool is large (>8192 txs), we no longer experience cache misses and unnecessarily re-verify ring signatures. This greatly improves block propagation time for FCMP++ blocks under load
* For the same reason, reorg handling can be sped up by storing verification IDs of transactions popped from the chain
* Speeds up re-validating every mempool transaction on fork change (monerod revalidates the whole tx-pool on HFs #10142)
* Caches results for every single type of Monero transaction, not just latest RCT type
* Cache persists over a node restart
* Uses 512KiB less RAM (8192*2*32B)
* No additional storage or DB migration required since `txpool_tx_meta_t` already had padding allocated
* Moves more verification logic out of `cryptonote::Blockchain`

Furthermore, this opens the door to future multi-threaded block verification
speed-ups. Right now, transactions' input proof verification is limited to one
transaction at a time. However, one can imagine a scenario with verification IDs
where input proofs are optimistically multi-threaded in advance of block
processing. Then, even though ring member fetching and verification is
single-threaded inside of `cryptonote::Blockchain::check_tx_inputs()`, the
single thread can skip the CPU-intensive cryptographic code if the verification
ID allows it.

Also changes the default log category in `tx_verification_utils.cpp` from "blockchain" to "verify".
2026-01-02 15:47:19 -06:00
tobtoht 02357fe53f Merge pull request #10263
5905589 src: update checkpoints to match v0.18.4.5 (selsta)
2025-12-29 22:42:09 +00:00
tobtoht d761ceb02f Merge pull request #10256
d7c5f95 p2p: fix race causing dropped connections during sync (j-berman)
2025-12-29 22:23:20 +00:00
tobtoht 8a09084fb0 Merge pull request #10254
ab9bc64 wallet2: fix edge case where tx's ki's remain marked unspent (j-berman)
2025-12-29 22:20:55 +00:00
selsta 590558960f src: update checkpoints to match v0.18.4.5 2025-12-29 22:29:17 +01:00
Torir 226d6ea711 Clarify anonymity networks documentation
This change better explains how --proxy and --tx-proxy
interact and adds more examples on Monerod configurations
2025-12-19 09:13:25 +00:00
j-berman ab9bc6499c 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.
2025-12-12 09:15:48 -08:00
j-berman d7c5f95704 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.
2025-12-11 21:36:42 -08:00
tobtoht 48ad374b0d Merge pull request #10242
b937f86 ledger: add nano gen5 id (tobtoht)
2025-12-09 17:58:31 +00:00
tobtoht 6c958f40fa Merge pull request #10236
4741792 debug_utilities: fix build with Boost ASIO 1.87+ (tobtoht)
2025-12-09 17:53:13 +00:00