Commit graph

8067 commits

Author SHA1 Message Date
tobtoht
bba6aa518b
Merge pull request #10205
1fd6f27 Daemon: relay empty fluffy block on found block (j-berman)
2025-11-12 09:22:16 +00:00
j-berman
1fd6f275da Daemon: relay empty fluffy block on found block 2025-11-11 16:37:36 -08:00
j-berman
a378b59628 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
2025-11-11 16:31:01 -08:00
tobtoht
d6be783927
Merge pull request #10196
e89922a ledger: throw on secret view key export rejection (tobtoht)
2025-11-11 23:01:45 +00:00
tobtoht
cdaca019fc
Merge pull request #10201
52b4c73 cryptonote_protocol: accurate next_needed_height when there is an overlap (0xFFFC0000)
2025-11-11 22:41:41 +00:00
tobtoht
6c17c7d1ad
Merge pull request #10200
ef3fe66 src: update checkpoints to match v0.18.4.4 (selsta)
2025-11-11 21:53:12 +00:00
tobtoht
e89922a2fd
ledger: throw on secret view key export rejection 2025-11-11 21:21:41 +01:00
j-berman
c01e1fa288 Fix logging deadlock 2025-11-11 10:43:39 -08:00
0xFFFC0000
52b4c73ab4 cryptonote_protocol: accurate next_needed_height when there is an overlap 2025-11-11 00:29:23 +03:30
selsta
ef3fe664fd
src: update checkpoints to match v0.18.4.4 2025-11-10 19:00:50 +01:00
tobtoht
6bb36309d6
Merge pull request #10123
4e9d199 daemon: fix print_cn command when 0 connections (jeffro256)
2025-10-27 18:52:36 +00:00
tobtoht
b4a168b5f8
Merge pull request #10083
daded36 wallet: identify spends in pool when scanning (j-berman)
2025-10-27 18:50:40 +00:00
tobtoht
fc6170a1f7
Merge pull request #10156
0fc5e87 cryptonote_core: rm confusing/redundant BP consensus rule (jeffro256)
2025-10-27 18:47:58 +00:00
tobtoht
0237f04617
Merge pull request #10172
5905b20 wallet: sanity check ring indices only against spendable (jeffro256)
2025-10-27 18:47:03 +00:00
jeffro256
5905b202f0
wallet: sanity check ring indices only against spendable 2025-10-15 17:00:21 -05:00
jeffro256
0fc5e87f2c
cryptonote_core: rm confusing/redundant BP consensus rule
This rule is confusing/redundant because before v8, no
bulletproofs whatsoever were allowed. And during and after
v8, ONLY multi-output bulletproofs were allowed, i.e.
exactly 1 bulletproof is allowed which proves the range of
all amount commitments in the transaction.

Sources:
  * No BP before v8:
    - d32b5bfe18/src/cryptonote_core/blockchain.cpp (L3021-L3032)
  * Only 1 BP allowed:
    - d32b5bfe18/src/cryptonote_basic/cryptonote_format_utils.cpp (L174)
    - d32b5bfe18/src/cryptonote_basic/cryptonote_format_utils.cpp (L150)
  * BP must cover all outputs:
    - d32b5bfe18/src/cryptonote_basic/cryptonote_format_utils.cpp (L190-L194)
    - d32b5bfe18/src/cryptonote_basic/cryptonote_format_utils.cpp (L166-L170)
2025-10-09 15:57:54 -05:00
luigi1111
a5aa602dce
Merge pull request #10147
292c053 Cleaner validation (faster and saner) (j-berman)
2025-10-07 15:22:35 -04:00
luigi1111
8e98fa954c
Merge pull request #10146
ca27d51 cryptonote_basic: remove redundant call to get_transaction_hash() in overload (jeffro256)
2025-10-07 15:21:02 -04:00
luigi1111
e0d83e0ebb
Merge pull request #10109
be79b83 Daemon RPC: fix on_getblockhash error return on too high height (j-berman)
2025-10-07 15:18:26 -04:00
luigi1111
df90240542
Merge pull request #10107
0fb4a8f src: update checkpoints to match v0.18.4.3 (selsta)
2025-10-07 15:17:44 -04:00
luigi1111
44b242d56f
Merge pull request #10086
1dbb4a7 wallet2: warn instead of throw when RingDB doesn't include spend (j-berman)
2025-10-07 15:15:23 -04:00
selsta
0fb4a8f9b1
src: update checkpoints to match v0.18.4.3 2025-10-07 16:37:18 +02:00
j-berman
292c053280 Cleaner validation (faster and saner) 2025-10-06 12:51:16 -07:00
jeffro256
ca27d519df
cryptonote_basic: remove redundant call to get_transaction_hash() in overload
Issue noticed by DataHoarder.
2025-10-05 16:47:57 -05:00
jeffro256
4e9d199913
daemon: fix print_cn command when 0 connections
Deferencing the result of `std::max_element()` when `res.connections` has 0 elements leads to UB, and segfaults in practice.

Co-authored-by: iamamyth <user@example.com>
2025-09-28 13:55:44 -05:00
tobtoht
8e9ab9677f
Merge pull request #10097
9308fd7 simplewallet: batch address creation limit to match rpc (nahuhh)
2025-09-28 18:34:44 +00:00
tobtoht
adc395577a
Merge pull request #10103
bc8b210 Send ZMQ miner notifications after txpool additions (WeebDataHoarder)
2025-09-28 18:33:35 +00:00
tobtoht
a6d0ac3fdb
Merge pull request #10110
5e5a52e removing lza_menace seed nodes (lza_menace)
2025-09-28 18:32:52 +00:00
tobtoht
5240ee5438
Merge pull request #9939
ae489ba p2p: Improved peer selection with /24 subnet deduplication to disadvantage 'spy nodes' (rbrunner7)
2025-09-28 18:30:41 +00:00
tobtoht
0cc56f6373
Merge pull request #10114
6c49352 net_node: add hinto seed nodes (hinto.janai)
2025-09-28 18:29:09 +00:00
hinto.janai
6c493528e0
net_node: add hinto seed nodes 2025-09-26 19:26:33 +00:00
rbrunner7
ae489ba6ef p2p: Improved peer selection with /24 subnet deduplication to disadvantage 'spy nodes' 2025-09-26 14:16:55 +02:00
lza_menace
5e5a52e583 removing lza_menace seed nodes 2025-09-25 19:16:54 -07:00
j-berman
be79b83b4e Daemon RPC: fix on_getblockhash error return on too high height 2025-09-25 16:18:22 -07:00
tobtoht
1d9a201980
Merge pull request #10088
dc759e8 minimal changes to remove improper binding to temporary variable (dabbonda)
2025-09-24 20:50:55 +00:00
tobtoht
ef38c7cc6d
Merge pull request #10089
92c8bd5 remove 66.85.74.134 as seed node (Gingeropolous)
2025-09-24 20:50:06 +00:00
WeebDataHoarder
bc8b210aff
Send ZMQ miner notifications after txpool additions
Bug was introduced in c069c04ede, before this txpool additions were not notified on block addition

When receiving blocks with previously unknown conditions, miner data was sent first, but txpool add events for already-added transactions in previous block were sent afterward. Miners would then include already-mined transactions in their new templates due to receiving the mistimed txpool add event.

The fix is to send miner notifications AFTER txpool events are sent, and before normal block notifications are sent (for mining switch speed purposes)

Fixes c069c04ede / #9135
Fixes dfee15eee1 / #7891
2025-09-24 09:13:25 +02:00
nahuhh
9308fd7113 simplewallet: batch address creation limit to match rpc 2025-09-22 13:54:15 +00:00
nahuhh
935f2d20ec cryptonote_core: --dns-versions-check is deprecated 2025-09-21 18:52:25 +00:00
dabbonda
dc759e89f9 minimal changes to remove improper binding to temporary variable 2025-09-21 12:36:28 -04:00
Gingeropolous
92c8bd53a4
remove 66.85.74.134 as seed node
remove 66.85.74.134 as seed node. bastards doubled the price of the server.
2025-09-21 10:04:28 -04:00
j-berman
1dbb4a7928 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-09-17 15:21:46 -07: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
tobtoht
8d4c625713
Merge pull request #10004
36bdfad rpc-fuzz: Add new fuzzers for RPC endpoints (Arthur Chan)
2025-09-09 17:39:15 +00:00
Arthur Chan
36bdfad073
rpc-fuzz: Add new fuzzers for RPC endpoints
Signed-off-by: Arthur Chan <arthur.chan@adalogics.com>

Add macro definition for fuzzers

Signed-off-by: Arthur Chan <arthur.chan@adalogics.com>

Fix FuzzedDataProvider header missing problem

Signed-off-by: Arthur Chan <arthur.chan@adalogics.com>

Add README

Signed-off-by: Arthur Chan <arthur.chan@adalogics.com>

Provide static FuzzedDataProvider.h

Signed-off-by: Arthur Chan <arthur.chan@adalogics.com>

Update and enhance fuzzer

Signed-off-by: Arthur Chan <arthur.chan@adalogics.com>

Activate UBSan

Signed-off-by: Arthur Chan <arthur.chan@adalogics.com>

Fix fuzz target retrieval

Signed-off-by: Arthur Chan <arthur.chan@adalogics.com>

Remove bias selector and fix protocol lifespan

Signed-off-by: Arthur Chan <arthur.chan@adalogics.com>

Drop SIGALARM handling and fix bug on selectors

Signed-off-by: Arthur Chan <arthur.chan@adalogics.com>

Fix rpc request changes

Signed-off-by: Arthur Chan <arthur.chan@adalogics.com>

Add a new fuzzer profile that catch all expcetions

Signed-off-by: Arthur Chan <arthur.chan@adalogics.com>

Fix typo

Signed-off-by: Arthur Chan <arthur.chan@adalogics.com>

Add warning

Signed-off-by: Arthur Chan <arthur.chan@adalogics.com>
2025-09-08 18:35:55 +00:00
tobtoht
8259df0d1d
Merge pull request #9860
dbc8402 wallet: fix wallet_keys_unlocker (jeffro256)
2025-09-08 18:08:22 +00:00
jeffro256
dbc8402da6
wallet: fix wallet_keys_unlocker
Fix four issues with wallet_keys_unlocker:
1. It won't decrypt if there are unlockers open simulataneously on multiple `wallet2` instances
2. It won't decrypt if the first unlocker was disabled (i.e. `locked=false`), even with a second non-disabled unlocker
3. If a destructor of an earlier unlocker is triggered before the destructor of a later unlocker, it will re-encrypt too early, while the second unlocker is still in scope
4. Calling the 3-parameter constructor with `locked=true` after an unlocker already exists will "double-encrypt"  the spend key after its destructor since the local variable is `locked=false` and the field member is `locked=true`

Also, replace `wallet2::decrypt_account_for_multisig` with `wallet_keys_unlocker`.
2025-09-04 15:43:38 -05:00
tobtoht
0229f6fdde
Merge pull request #10046
a5b2ad0 BlockchainLMDB: do not assume alignment for alt block entries (jeffro256)
2025-08-30 17:08:26 +00:00
tobtoht
c8f3566dbb
Merge pull request #10050
cc444a9 checkpoints: update to a recent block height (selsta)
2025-08-21 16:28:37 +00:00
tobtoht
a344bb5989
Merge pull request #10042
d979031 fix typo in CHECK_AND_ASSERT_MES (Leonardo Faoro)
2025-08-21 16:26:06 +00:00