7516 Commits

Author SHA1 Message Date
jeffro256
eb0e4052b7 gamma picker: relax constructor requirements and test for selecting outputs from first spendable block 2023-04-02 20:06:09 -05:00
luigi1111
44ac52f929
Merge pull request #8810
d594981 Fixed deadlock and crash when syncing with full dataset on Windows (SChernykh)
2023-04-02 20:45:13 -04:00
luigi1111
5f2bbf78a0
Merge pull request #8808
caa7561 cryptonote core/protocol: don't drop peers for soft offenses (jeffro256)
2023-04-02 20:44:18 -04:00
luigi1111
441373b9ef
Merge pull request #8794
85a4558 wallet2: fix infinite loop in fake out selection (Crypto City)
2023-04-02 20:43:32 -04:00
Crypto City
85a45587f2
wallet2: fix infinite loop in fake out selection
The gamma picker and the caller code did not quite agree on the
number of rct outputs available for use - by one block - which
caused an infinite loop if the picker could never pick outputs
from that block but already had picked all other outputs from
previous blocks.

Also change the range to select from using code from UkoeHB.
2023-03-30 14:44:36 +00:00
jeffro256
caa7561705 cryptonote core/protocol: don't drop peers for soft offenses
Also: txs with tx_extra which is too large will not get published to ZMQ

Co-authored-by: SChernykh <sergey.v.chernykh@gmail.com>
2023-03-29 02:05:43 -05:00
SChernykh
d59498101c Fixed deadlock and crash when syncing with full dataset on Windows
It's not allowed to use WaitForSingleObject with _beginthread, because the thread closes its own handle before exiting.

So the wait function will either wait on an invalid handle, or on a different handle used by something else.

Or, if it starts waiting before the thread exits, the behavior is undefined according to MS: "If this handle is closed while the wait is still pending, the function's behavior is undefined."

In my test sync I observed threads getting stuck infinitely on WaitForSingleObject, and then rx_set_main_seedhash spamming new threads when RandomX seed changes again. Eventually the system ran out of resources, and monerod aborted with "Couldn't start RandomX seed thread" message.

This PR fixes it by using `_beginthreadex` instead and explicitly closing the handle when it's safe.
2023-03-29 08:43:47 +02:00
luigi1111
abe74fda35
Merge pull request #8770
d7a81cc p2p: do not log to global when re-blocking a subnet (moneromooo-monero)
d84a0d7 p2p: avoid spam blocking ipv4 addresses in a blocked subnet (moneromooo-monero)
2023-03-24 22:54:32 -04:00
luigi1111
f307621678
Merge pull request #8775
1b27fcd device: Add ledger Stax device id to device detection (Francois Beutin)
2023-03-18 18:21:02 -04:00
luigi1111
76dd14dfb1
Merge pull request #8733
3771641 Add a size limit for tx_extra in tx pool (tevador)
2023-03-18 18:18:13 -04:00
luigi1111
55fddad446
Merge pull request #8707
7159f92 verRctNonSemanticsSimpleCached: fix fragility (Jeffrey Ryan)
2023-03-18 18:17:05 -04:00
luigi1111
a511202222
Merge pull request #8076
c4af33e Enforce restricted # pool txs served via RPC + optimize chunked reqs (j-berman)
9752116 wallet2, RPC: Optimize RPC calls for periodic refresh from 3 down to 1 call (rbrunner7)
2023-03-18 17:58:27 -04:00
Jeffrey Ryan
7159f92a57 verRctNonSemanticsSimpleCached: fix fragility 2023-03-17 18:45:35 -05:00
Francois Beutin
1b27fcdf77
device: Add ledger Stax device id to device detection 2023-03-14 10:31:20 +01:00
moneromooo-monero
d7a81ccba1
p2p: do not log to global when re-blocking a subnet 2023-03-09 17:17:59 +00:00
j-berman
c4af33eded Enforce restricted # pool txs served via RPC + optimize chunked reqs
- `/getblocks.bin` respects the `RESTRICTED_TX_COUNT` (=100) when
returning pool txs via a restricted RPC daemon.
- A restricted RPC daemon includes a max of `RESTRICTED_TX_COUNT` txs
in the `added_pool_txs` field, and returns any remaining pool hashes
in the `remaining_added_pool_txids` field. The client then requests
the remaining txs via `/gettransactions` in chunks.
- `/gettransactions` no longer does expensive no-ops for ALL pool txs
if the client requests a subset of pool txs. Instead it searches for
the txs the client explicitly requests.
- Reset `m_pool_info_query_time` when a user:
  (1) rescans the chain (so the wallet re-requests the whole pool)
  (2) changes the daemon their wallets points to (a new daemon would
      have a different view of the pool)
- `/getblocks.bin` respects the `req.prune` field when returning
pool txs.
- Pool extension fields in response to `/getblocks.bin` are optional
with default 0'd values.
2023-03-07 20:35:45 +01:00
moneromooo-monero
d84a0d7430
p2p: avoid spam blocking ipv4 addresses in a blocked subnet 2023-03-01 16:56:56 +00:00
tevador
3771641fc5 Add a size limit for tx_extra in tx pool 2023-02-26 10:26:53 +01:00
luigi1111
3f696f144c
Merge pull request #8720
d8a8448 p2p: add plowsof seed nodes (selsta)
69153e8 p2p: remove offline seed nodes (selsta)
2023-02-15 10:42:59 -05:00
luigi1111
cd82b4fed0
Merge pull request #8712
cb756b6 blockchain-stats: print any remaining data at end of loop (Howard Chu)
2023-02-06 12:36:39 -05:00
luigi1111
5fae6d63a8
Merge pull request #8705
b247f98 Demote large pages warning to mdebug (SChernykh)
b27a171 RandomX: print VM allocation warnings only once (SChernykh)
2023-02-06 12:35:37 -05:00
luigi1111
889951e7c5
Merge pull request #8700
3461a19 daemonizer: don't uninstall windows service on exit (selsta)
2023-02-06 12:34:41 -05:00
luigi1111
2521f0e238
Merge pull request #8697
e91f35e win-service: enable auto startup (plowsof)
2023-02-06 12:33:03 -05:00
luigi1111
672eedf9c2
Merge pull request #8691
934b798 rpc: do not misidentify coinbase txes as pruned (moneromooo-monero)
2023-02-06 12:24:17 -05:00
selsta
d8a84489d2
p2p: add plowsof seed nodes 2023-01-27 14:15:31 +01:00
selsta
69153e870d
p2p: remove offline seed nodes 2023-01-27 14:06:45 +01:00
Howard Chu
cb756b6094
blockchain-stats: print any remaining data at end of loop
Fix #8711
2023-01-17 17:20:18 +00:00
SChernykh
b247f985db Demote large pages warning to mdebug 2023-01-17 18:13:07 +01:00
SChernykh
b27a17110d RandomX: print VM allocation warnings only once 2023-01-11 19:15:11 +01:00
luigi1111
50aa0e8b7f
Merge pull request #8675
1a568de Cache successful erRctNonSemanticsSimple calls (SChernykh)
2023-01-11 12:27:40 -05:00
luigi1111
75d80d431a
Merge pull request #8686
7a3a593 common: move boost_serialization_helper.h out and cleanup includes (Jeffrey Ryan)
2023-01-11 12:13:48 -05:00
luigi1111
ac87d8dac9
Merge pull request #8682
96677ff common: add missing includes (selsta)
2023-01-11 12:12:57 -05:00
luigi1111
451ff7bd91
Merge pull request #8677
fe8522c Bump WINVER to 0x0600 (Windows Vista) (SChernykh) dab7d01 Refactored rx-slow-hash.c (SChernykh)
2023-01-11 12:10:02 -05:00
luigi1111
3854cc04be
Merge pull request #8663
b1bce85 miscellaneous crypto updates (koe)
2023-01-11 11:45:40 -05:00
luigi1111
9489586add
Merge pull request #8648
8687da6 common: DNSResolver can handle hostnames without dot characters (Jeffrey Ryan)
2023-01-11 11:41:11 -05:00
luigi1111
b363eebd52
Merge pull request #8643
faaf2af p2p: fix exclusive node DNS resolution for certain hosts (Jeffrey Ryan)
2023-01-11 11:39:42 -05:00
luigi1111
ac8580c1f5
Merge pull request #8640
1a3ae18 p2p: fix back ping to discover healthy peers to connect to (j-berman)
2023-01-11 11:38:38 -05:00
SChernykh
dab7d01dc0 Refactored rx-slow-hash.c
- Straight-forward call interface: `void rx_slow_hash(const char *seedhash, const void *data, size_t length, char *result_hash)`
- Consensus chain seed hash is now updated by calling `rx_set_main_seedhash` whenever a block is added/removed or a reorg happens
- `rx_slow_hash` will compute correct hash no matter if `rx_set_main_seedhash` was called or not (the only difference is performance)
- New environment variable `MONERO_RANDOMX_FULL_MEM` to force use the full dataset for PoW verification (faster block verification)
- When dataset is used for PoW verification, dataset updates don't stall other threads (verification is done in light mode then)
- When mining is running, PoW checks now also use dataset for faster verification
2023-01-09 07:43:07 +01:00
koe
b1bce857c9 miscellaneous crypto updates 2023-01-03 16:50:08 -06:00
selsta
3461a19940
daemonizer: don't uninstall windows service on exit 2023-01-03 03:45:43 +01:00
plowsof
e91f35e030 win-service: enable auto startup 2023-01-02 05:18:48 +00:00
moneromooo-monero
934b798c74
rpc: do not misidentify coinbase txes as pruned 2023-01-01 09:30:59 +00:00
rbrunner7
9752116ed3 wallet2, RPC: Optimize RPC calls for periodic refresh from 3 down to 1 call 2022-12-30 13:50:22 +01:00
Jeffrey Ryan
7a3a593a77 common: move boost_serialization_helper.h out and cleanup includes 2022-12-22 12:18:02 -06:00
SChernykh
1a568deacb Cache successful verRctNonSemanticsSimple calls 2022-12-20 22:16:39 +01:00
selsta
96677fffcd
common: add missing includes 2022-12-18 18:30:08 +01:00
luigi1111
7275a4d23b
Merge pull request #8627
a7bf3af Fix dandelion++ fluff/stem bug with local txes (Lee Clagett)
2022-12-01 01:10:20 -06:00
luigi1111
2f168da7f7
Merge pull request #8618
1114e7e fix(trezor-tests): fix trezor tests build, fix integrated addr test (Dusan Klinec)
2022-12-01 01:08:53 -06:00
luigi1111
179a87afae
Merge pull request #8616
cac5083 wallet2: fix create view-only wallet from existing wallet (j-berman)
2022-12-01 01:08:11 -06:00
luigi1111
1cfe69c7f1
Merge pull request #8610
97b86a0 wallet_api: take priority into account when estimating fee (selsta)
2022-12-01 01:05:14 -06:00