Commit Graph
263 Commits
Author SHA1 Message Date
tobtoht 46d39a2704 Merge pull request #10811
8a744a6 tests: remove dead transactions_generation_from_blockchain (Thomas)
b5136b1 common: remove unused data_cache.h (Thomas)

ACKs: selsta, tobtoht
2026-06-29 11:43:26 +00:00
selsta 2bc67262c8 functional_tests: add debug logging to transfer 2026-06-26 14:38:36 +02:00
Thomas 8a744a6388 tests: remove dead transactions_generation_from_blockchain
Functional test commented out since 2014 (296ae46ed); never #included or
called (main.cpp only runs transactions_flow_test).
2026-06-23 22:32:17 +02:00
Thomas 02db831d01 Fix spelling typos 2026-06-18 09:30:42 +02:00
tobtoht 416804895c Merge pull request #10711
76831c2 fix: TypeError: 'method' object is not subscriptable (SNeedlewoods)
2026-06-09 17:52:37 +00:00
tobtoht ab2c0f8f8d Merge pull request #10589
f095abd wallet_rpc_server: preserve payment ID when editing address book (selsta)
2026-06-03 20:38:01 +00:00
selsta f095abd9aa wallet_rpc_server: preserve payment ID when editing address book 2026-06-03 22:36:03 +02:00
SNeedlewoods 76831c2edf fix: TypeError: 'method' object is not subscriptable 2026-06-03 22:07:49 +02: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 af4e0cf411 tests: remove psutil 2026-05-26 22:21:34 +02:00
tobtoht d1eaf54ed1 tests: replace monotonic 2026-05-20 20:00:19 +02:00
Thomas 2c327aa325 fix spelling in comments and docs 2026-05-13 21:20:05 +02:00
jeffro256 681ea9f1e9 epee: remove LOCAL_ASSERT
LOCAL_ASSERT was only defined on Windows,
only used in the `CHECK_AND_ASSERT` macro,
and was disabled in unit tests anyways,
but only in the main translation unit,
which didn't have local asserts,
since get_set_enable_assert was inline,
so the disabling didn't even do anything.
2026-05-07 13:03:13 -05: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
Thomas df2b8b4bf6 rpc: fix incomplete range check in get_coinbase_tx_sum + update test 2026-04-28 21:32:12 +02:00
tobtoht 30b5d7bd44 daemon: remove miniupnp 2026-04-26 10:54:04 +02:00
jeffro256 f684e7f3ce functional_tests: fix HTTP digest auth sporadic failures 2026-04-13 15:13:15 -05:00
tobtoht 7ef6a2247e cmake: only search for python where we need it 2026-01-03 12:33:25 +01: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
j-berman daded36823 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.
2025-09-15 14:14:50 -07:00
jeffro256 57c40b8993 functional_tests: fix piecemeal export in cold_signing, part 2
Do not mark output import as done if exception is thrown for output being past last imported output.
2025-08-26 15:38:25 -05:00
jeffro256 22433f8414 functional_tests: fix piecemeal export in cold_signing
The `while` loop condition was incorrect, which could lead to incomplete imports.
Also, setting `start` to an *undone* output speeds up the test by 16s on my machine.
2025-08-22 13:21:32 -05:00
jeffro256 78b8c83fdf functional_tests: check transfers list consistency in cold_signing 2025-08-21 11:34:58 -05:00
tobtoht 4e93cdc941 Merge pull request #9883
7b28be0 functional_tests: test PR #9863 (jeffro256)
2025-08-21 16:31:19 +00:00
tobtoht 6dc7b1f8fb Merge pull request #9921
90256c8 error out if functional tests are disabled (Crypto City)
2025-08-21 16:19:30 +00:00
tobtoht 08438b60c1 Merge pull request #9838
2f2a8c4 wallet: Improve Fee Priority Code for Clarity (tzadiko)
2025-07-10 12:45:39 +00:00
tzadiko 2f2a8c46bb wallet: Improve Fee Priority Code for Clarity 2025-07-09 20:08:42 -05:00
jeffro256andnahuhh 6d06de74b2 wallet: refactor subaddress expansion & add to transfer test 2025-07-07 22:16:11 +00:00
benevanoffandnahuhh 6f36037116 wallet: create set_subaddress_lookahead wallet rpc endpoint 2025-07-07 22:15:04 +00:00
Crypto Cityandmoneromooo-monero 90256c8208 error out if functional tests are disabled 2025-05-08 17:08:32 +00:00
jeffro256 7b28be0ef3 functional_tests: test PR #9863 2025-04-01 13:56:44 -05:00
iamamyth cb91dcee36 tests: Speed up p2p reorg test
Use a fixed, 240s deadline for the daemons to reach agreement and poll
with a suitable frequency (.25s), rather than polling up to 100 times at
roughly 10s intervals.
2025-03-24 11:18:57 -07: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
tobtoht 257db6dff2 Merge pull request #9765
ec74ff4a3 Set response limits on http server connections (Lee *!* Clagett)
2025-02-14 07:33:45 +00:00
Lee *!* Clagett ec74ff4a3d Set response limits on http server connections 2025-02-13 23:55:17 -05:00
tobtoht 28e2042b04 Merge pull request #9762
950ddbf30 tests: Improve p2p tx propagation functional test (iamamyth)
2025-02-14 04:00:24 +00:00
iamamyth 950ddbf30e tests: Improve p2p tx propagation functional test
Reduce the likelihood of false positive failures in the p2p
transaction propagation functional test by waiting up to a
maximum timeout for a transaction to propagate, rather than using a
fixed timeout, to reflect the random delay of Dandelion++ transaction
propagation. This strategy also speeds test execution in cases where
propagation occurs faster than the previously expected fixed delay.
2025-02-11 18:30:16 -08:00
iamamyth 274b5748da tests: Improve functional_tests_rpc startup
* Use a global startup timeout, and apply it to each socket's connect
  call, rather than repeating connection attempts with short timeouts.

* Avoid leaking sockets by closing them.
2025-01-31 21:15:20 -08:00
j-berman 3b64d1f558 functional tests: fix race in restore wallet refresh 2025-01-23 11:37:48 -08:00
j-berman 98decee8ac wallet2: remove refresh() from scan_tx
Fixes #9354
2025-01-14 13:37:46 -08:00
tobtoht 484ece1c08 tests: remove python2 compatibility 2024-10-23 14:09:59 +02:00
jeffro256 ed955bf751 build: fix build with Boost 1.85 and remove instances of viewkey logging
1. Use `std::is_standard_layout` and `std::is_trivially_copyable` instead of `std::is_pod` for KV byte-wise serialization, which fixes compile issue for Boost UUIDs
2. Use `std::has_unique_object_representations` instead of `alignof(T) == 1` for epee byte spans and epee hex functions
3. Removed reimplementation of `std::hash` for `boost::uuids::uuid
4. Removed `<<` operator overload for `crypto::secret_key`
5. Removed instances in code where private view key was dumped to the log in plaintext
2024-09-06 11:46:22 -05:00
jeffro256 ac0af73222 rpc: add cumul weight field to block template resp
Resolves #9415
2024-08-01 01:03:41 -05:00
luigi1111 040bccc22f Merge pull request #9338
4a376d6 copyright: fix vector.h typo (hinto.janaiyo)
d61e8e9 workflows: delete copyright.yml (plowsof)
341771a copyright: bump to 2024 (copyCat)
2024-07-16 18:42:49 -04:00
j-berman e71c8bf190 wallet: background sync with just the view key
- When background syncing, the wallet wipes the spend key
from memory and processes all new transactions. The wallet saves
all receives, spends, and "plausible" spends of receives the
wallet does not know key images for.
- When background sync disabled, the wallet processes all
background synced txs and then clears the background sync cache.
- Adding "plausible" spends to the background sync cache ensures
that the wallet does not need to query the daemon to see if any
received outputs were spent while background sync was enabled.
This would harm privacy especially for users of 3rd party daemons.
- To enable the feature in the CLI wallet, the user can set
background-sync to reuse-wallet-password or
custom-background-password and the wallet automatically syncs in
the background when the wallet locks, then processes all
background synced txs when the wallet is unlocked.
- The custom-background-password option enables the user to
open a distinct background wallet that only has a view key saved
and can be opened/closed/synced separately from the main wallet.
When the main wallet opens, it processes the background wallet's
cache.
- To enable the feature in the RPC wallet, there is a new
`/setup_background_sync` endpoint.
- HW, multsig and view-only wallets cannot background sync.
2024-05-24 23:11:58 -07:00
copyCat 341771ac3e copyright: bump to 2024 2024-05-21 16:29:33 +00:00
luigi1111 2603a034cf Merge pull request #9245
8e80585 functional_tests: test HTTP digest auth (jeffro256)
2024-05-20 23:25:50 -05:00
jeffro256 8e80585ef5 functional_tests: test HTTP digest auth
Test:
  1. Can't login to RPC server with --rpc-login enabled, but no auth provided
  2. Can access RPC server with correct login
  3. Can use internal HTTP client to access RPC server with correct login

With commit 0ae5c91e50 not reverted, we fail test 3.
2024-03-11 23:54:50 -05:00
jeffro256 38f354e89f Enforce Tx unlock_time is Zero by Relay Rule
Related to https://github.com/monero-project/research-lab/issues/78

Added a relay rule that enforces the `unlock_time` field is equal to 0 for non-coinbase transactions.

UIs changed:
* Removed `locked_transfer` and `locked_sweep_all` commands from `monero-wallet-cli`

APIs changed:
* Removed `unlock_time` parameters from `wallet2` transfer methods
* Wallet RPC transfer endpoints send error codes when requested unlock time is not 0
* Removed `unlock_time` parameters from `construct_tx*` cryptonote core functions
2024-02-24 14:27:17 -06:00