Commit Graph

12343 Commits

Author SHA1 Message Date
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
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
root
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
jeffro256
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
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
tobtoht
d37fc7acc2 Merge pull request #10235
c55949d cmake: don't redefine static_assert for cxx (tobtoht)
2025-12-09 17:41:21 +00:00
tobtoht
1d8f5d8523 Merge pull request #10244
24ef337 simplewallet: report file writing failure for export_transfers command (WHR)
2025-12-09 17:39:21 +00:00
tobtoht
37dcdebfad Merge pull request #10248
86927f3 Remove invalid constexpr (Lee *!* Clagett)
2025-12-09 17:38:26 +00:00
Lee *!* Clagett
86927f33ae Remove invalid constexpr 2025-12-04 16:13:57 -05:00
WHR
24ef33768c simplewallet: report file writing failure for export_transfers command 2025-12-03 12:26:12 +08:00
tobtoht
b937f8616d ledger: add nano gen5 id 2025-12-01 01:48:32 +01:00
tobtoht
41ad5238a0 Merge pull request #10198
47345d1 CMake: override option with toolchain variable (tobtoht)
2025-11-26 20:43:27 +00:00
tobtoht
bf233c5652 Merge pull request #9203
b7b9bce simplewallet: edit desc. text for transfer (Cat)
2025-11-26 20:43:03 +00:00
tobtoht
481443039a Merge pull request #10216
b03899f depends: boost: update to 1.89.0 (tobtoht)
2025-11-26 20:07:46 +00:00
Cat
b7b9bce9f7 simplewallet: edit desc. text for transfer 2025-11-26 20:04:40 +00:00
tobtoht
b3614d6b3f Merge pull request #10170
ece0342 epee: align container pod as blob serialization (jeffro256)
2025-11-26 19:39:45 +00:00