Commit Graph
612 Commits
Author SHA1 Message Date
tobtoht 3bd4a991a1 Merge pull request #11179
3e35bfa src: reduce unnecessary copies/allocations (jpk68)

ACKs: selsta, jeffro256
2026-08-31 18:36:37 +00:00
tobtoht f6fb95f0ff Merge pull request #11175
a496b49 rpc: further restrict and clean up get_transaction_pool (selsta)

ACKs: thomasbuilds, plowsof, jpk68
2026-08-31 18:16:29 +00:00
tobtoht 78fb311ebb Merge pull request #10605
59702e0 rpc: speedup block&tx RPC calls (jeffro256)

ACKs: thomasbuilds*, selsta, jpk68
2026-08-28 07:58:16 +00:00
jeffro256 59702e0275 rpc: speedup block&tx RPC calls
In RPC calls `get_blocks.bin` and `get_transactions`:
  1. Skip deserializing then re-serializing tx blobs
  2. Provide full unpruned transaction from mempool in `get_transactions` when `!req.prune`
  3. Change `on_get_transactions()` response sort time from O(N^2) to O(N)
  4. Generally improve memory usage and lookups in `on_get_transactions()`

Reviewed-by: selsta <selsta@sent.at>
Reviewed-by: j-berman <justinberman@protonmail.com>
Reviewed-by: jpk68 <jpk68@tutanota.com>
2026-08-27 15:08:57 -05:00
jpk68 3e35bfad7e src: reduce unnecessary copies/allocations 2026-08-27 15:59:55 -04:00
tobtoht a520681b90 Merge pull request #10820
0a47ee2 tests: harden RPC fuzz harness setup (selsta)

ACKs: thomasbuilds, jpk68
2026-08-27 17:57:49 +00:00
selsta 0a47ee2c94 tests: harden RPC fuzz harness setup
Initialize RPC server state used by direct handler calls,
let fuzz input choose restricted or unrestricted mode,
and skip iterations when the dummy core fails to initialize.

Also update the RPC fuzz harness documentation after removal
of the old RPC payment setup.
2026-08-26 20:23:47 +02:00
selsta a496b4981c rpc: further restrict and clean up get_transaction_pool 2026-08-25 19:29:30 +02:00
tobtoht ab34db1b11 Merge pull request #11146
92c8206 rpc: redact txpool age in restricted mode (selsta)
265f7b2 txpool: fix time_in_pool age calculation (selsta)

ACKs: tobtoht, jpk68
2026-08-25 16:39:10 +00:00
tobtoht 74e8614825 Merge pull request #11113
a0e1d11 rpc: avoid copying block blobs (jpk68)

ACKs: selsta, jeffro256
2026-08-20 15:07:31 +00:00
tobtoht b6f98a0dfc Merge pull request #11084
4b3eabf daemon: add unban all command (Rene Guenon)

ACKs: selsta, jpk68, thomasbuilds
2026-08-18 21:51:03 +00:00
jpk68 a0e1d119b9 rpc: avoid copying block blobs 2026-08-14 16:18:59 -04:00
Thomas 67764f675a rpc, p2p: remove pay-to-use RPC leftovers 2026-08-12 09:41:42 +05:00
Rene Guenon 4b3eabf858 daemon: add unban all command 2026-08-11 16:54:47 +04:00
tobtoht f412232c0f Merge pull request #10930
26a2379 rpc: speed up mempool lookup in get_transactions (jpk68)

ACKs: thomasbuilds*, selsta
2026-08-09 22:01:19 +00:00
jpk68 26a2379469 rpc: speed up mempool lookup in get_transactions 2026-08-09 13:32:03 -04:00
selsta 44493becb7 p2p, rpc: group public IPv6 connection limits by /64 2026-08-01 17:23:05 +02:00
selsta 92c8206e6d rpc: redact txpool age in restricted mode 2026-07-26 23:06:54 +02:00
tobtoht 42b78ee9bd Merge pull request #10694
a01b4c2 daemon: remove bootstrap mode (tobtoht)

ACKs: thomasbuilds, selsta
2026-07-22 20:03:46 +00:00
tobtoht a01b4c2a31 daemon: remove bootstrap mode 2026-07-22 20:38:20 +02:00
tobtoht e00908bc49 Merge pull request #10921
edea850 general: replace auto_scope_leave_caller with scope_guard (jeffro256)

ACKs: selsta, tobtoht
2026-07-22 16:31:31 +00:00
jeffro256 edea8505db general: replace auto_scope_leave_caller with scope_guard
And replace unused inclusions of misc_language.h
2026-07-15 19:54:58 -05:00
selsta 85b38a52a6 rpc: replace get_blocks.bin Levin pool budget
/get_blocks.bin is HTTP binary RPC serialized with portable storage, not a
P2P Levin message. The previously added pool limiter used
LEVIN_DEFAULT_MAX_PACKET_SIZE as a response budget, but that constant does
not apply to the RPC path.
2026-07-15 01:58:59 +02:00
Samy 2d4e1547fd rpc: fix block template reserved offset 2026-07-05 13:45:29 +02:00
j-berman 13db615bb8 Daemon RPC: /getblocks.bin incremental pool fetch even when no new blocks 2026-06-30 12:15:22 -07:00
Thomas 02db831d01 Fix spelling typos 2026-06-18 09:30:42 +02:00
akildemirandselsta 1bd4dfe43a rpc: return prunable hashes in pruned getblocks
Co-authored-by: selsta <selsta@sent.at>
2026-06-11 20:37:13 +02:00
tobtoht 17891e9157 Merge pull request #10512
b8cc5b6 blockchain_db: hide sensitive txs in get_txids_loose (jeffro256)
2026-06-09 18:40:12 +00:00
jeffro256 9dbce17bb5 Blockchain: option for fast manual block popping 2026-06-07 14:59:57 -05:00
9b337ca01f rpc: remove pay-to-use RPC on node side
Co-authored-by: tobtoht <tob@featherwallet.org>
Co-authored-by: SNeedlewoods <sneedlewoods_1@protonmail.com>
2026-05-26 22:54:30 +02:00
tobtoht c982fe1e51 Merge pull request #9473
1aea9cc tx_pool: track sensitive flag per-tx in added_txs_by_id (j-berman)
8cecfc8 src: fix rpc limit (Navid Rahimi)
2026-05-21 19:58:24 +00:00
Navid Rahimiandjeffro256 8cecfc8d1b src: fix rpc limit
Co-authored-by: jeffro256 <jeffro256@tutanota.com>
2026-05-21 20:37:53 +01:00
tobtoht b745be7235 Merge pull request #10587
2c327aa fix spelling in comments and docs (Thomas)
2026-05-19 19:53:51 +00:00
jeffro256andselsta b8cc5b6a4b blockchain_db: hide sensitive txs in get_txids_loose
Co-authored-by: selsta <selsta@sent.at>
2026-05-13 14:20:50 -05:00
Thomas 2c327aa325 fix spelling in comments and docs 2026-05-13 21:20:05 +02:00
selsta fe9b5de85f rpc: remove unused origin flag 2026-05-09 20:33:36 +02:00
tobtoht 2e0dcb3d95 Merge pull request #10422
df2b8b4 rpc: fix incomplete range check in get_coinbase_tx_sum + update test (Thomas)
2026-04-29 13:52:50 +00:00
tobtoht b84aee62a4 Merge pull request #10143
4a2d6eb Daemon RPC: getblocks.bin block_ids_exclusive req param (j-berman)
2026-04-29 12:35:26 +00:00
Thomas df2b8b4bf6 rpc: fix incomplete range check in get_coinbase_tx_sum + update test 2026-04-28 21:32:12 +02:00
hinto.janai 3aa793fec4 rpc: restrict add_aux_pow 2026-04-10 13:49:09 +00:00
Lee *!* Clagett 44869250bd Transition asio::deadline_timer to asio::steady_timer 2026-02-17 11:28:57 -05:00
jeffro256 6a99c22cbc rpc: return error gracefully on cryptonight v1 check 2026-01-31 10:14:05 -06: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
j-berman 4a2d6eb3da Daemon RPC: getblocks.bin block_ids_exclusive req param
When the request includes block_ids, the daemon uses
find_blockchain_supplement to identify the highest block hash
passed in block_ids that the daemon also knows about, and then
serves subsequent blocks contiguous to that block.

When block_ids_skip_exclusive is false (default current
behavior), the daemon includes the highest block requested in the
response, in addition to contiguous blocks after it.

When block_ids_skip_exclusive is true (new param), the daemon
serves blocks starting from the block 1 higher than the highest
known block included in block_ids. Thus, the daemon skips the
common block known to the client and daemon. Clients can make sure
the daemon is serving expected contiguous blocks to its highest
known block by checking the first block's prev_id included in the
response, and making sure it is equivalent to the block the client
already knows about that was included in block_ids. This avoids
the daemon serving 1 extra block it does not need to serve to the
client, since the client should already know about that block.

bl
2025-10-10 01:21:52 -07:00
j-berman be79b83b4e Daemon RPC: fix on_getblockhash error return on too high height 2025-09-25 16:18:22 -07:00
j-berman a8959f2c9b Daemon RPC: rm high_height_ok field from getblocks.bin
Since current behavior on release is to ban clients with too
high a height included in the request, it seems reasonably
justified to modify that behavior to instead return a successful
response that includes the chain height and top block hash.
2025-08-06 12:45:49 -07:00
jeffro256 6131ddef10 rpc: return error correctly on bad key image string
Because of the missing `return` statement, the status is set to "OK" later on in the method when it shouldn't be.

Thank you to ADA Logics and the MAGIC Monero Fund for reporting this!
2025-07-11 10:39:03 -05:00
tsinghuacoder 9d4dd0ef8d chore: fix some typos
Signed-off-by: tsinghuacoder <tsinghuacoder@icloud.com>
2025-04-11 17:05:25 +08:00
tobtoht 44523cafff Merge pull request #9135
c069c04ed blockchain sync: reduce disk writes from 2 to 1 per tx (jeffro256)
2025-03-10 16:16:18 +00:00
jeffro256 c069c04ede blockchain sync: reduce disk writes from 2 to 1 per tx 2025-03-10 01:02:37 -05:00