Commit graph

7652 commits

Author SHA1 Message Date
Jeffrey Ryan
70bbd2536b
core_rpc_server: new file: rpc_ssl.fingerprint 2023-07-02 19:38:51 -05:00
Jeffrey
ce863683ab
Remove src/platform
All the files in src/platform are currently unused and unnecessary. See below:

* `mingw/alloca.h`: unused throughout project
* `msc/sys/param.h`:
    1. In `fix_darwin.patch`, `sys/param.h` is well-defined to be used only in OpenBSD environment
    2. `int-util.h` already handles when `sys/param.h` is not present and injects its own values
    3. `db_drivers/liblmdb/mdb.c` is a similar situation: already explicity handles different platforms
    4. `src/crypto/chacha.h` uses `int-util.h` for endianness context
* `msc/alloca.h`: unused
* `msc/inline_c.h`: not needed. the `inline` keyword is supported for C99 I believe, and certainly for C11, C14+
* `msc/stdbool.h`: `stdbool.h` is standard since C99, and MSVC has supported it for a long time (~10 years)
2023-07-02 19:29:18 -05:00
jeffro256
ffbf9f4766
blockchain_and_pool: move to crytonote_core and enforce its usage 2023-07-01 07:12:53 -05:00
MasFlam
1104b59c5b
Update help for set command in simplewallet
Add help for max-reorg-depth and load-deprecated-formats options
2023-07-01 12:01:07 +02:00
jeffro256
e8cac61f4b
core_rpc_server: return ID of submitted block 2023-06-30 15:31:35 -05:00
lukas
d6f86e58a6
Avoid nullptr dereference when constructing Blockchain and tx_memory_pool 2023-06-30 20:27:05 +02:00
koe
16d17f6707 add crypto/generators for direct access to canonical fixed generators 2023-06-28 09:52:27 -05:00
Jeffro256
a668312cfa
wallet: remove CLI code for non default ring sizes 2023-06-27 20:18:21 +02:00
ComputeryPony
1c20198280
Fixup error message.
Looks like the extra MWARNING was supposed to be guarded by the if statement.
2023-06-27 12:56:35 -05:00
luigi1111
0a1eaf26f9
Merge pull request #8884
eeda4a8 wallet2: do not lose exception in current thread on refresh (Crypto City
 f868768 wallet2: fix missing exceptions from failing wallet refresh (Crypto City)
2023-06-27 11:48:27 -05:00
luigi1111
0fbe21e9e9
Merge pull request #8862
9f80797 protocol: drop peers sending duplicate txes (moneromooo-monero)
2023-06-27 11:44:58 -05:00
luigi1111
b86a620b4d
Merge pull request #8855
bb83eb1 daemon: remove --fluffy-blocks (tobtoht)
2023-06-27 11:41:57 -05:00
luigi1111
1153246b8a
Merge pull request #8848
6b8dfb8 daemon: remove os-version (tobtoht)
2023-06-27 11:39:33 -05:00
luigi1111
794f59b8bd
Merge pull request #8844
7206ef8 cryptonote_basic: fix amount overflow detection on 32-bit systems (jeffro256)
2023-06-27 11:37:54 -05:00
luigi1111
1df7260bd3
Merge pull request #8839
24d56c5 bump lmdb sync threshold for performance (moneromooo-monero)
2023-06-27 11:36:29 -05:00
luigi1111
a897325fcd
Merge pull request #8832
092e964 Fixed RandomX initialization when mining from scratch (SChernykh)
2023-06-27 11:35:22 -05:00
luigi1111
3d9f378ed4
Merge pull request #8804
ca6c42a Message about DNS_PUBLIC to help users with issue #8452 (OrvilleRed)
2023-06-27 11:33:45 -05:00
luigi1111
570fd364aa
Merge pull request #8772
87e2a64 Allow option 'non-interactive' in monerod config file (almalh)
2023-06-27 11:31:27 -05:00
luigi1111
57c58fd5bd
Merge pull request #8703
c90c1c3 Show IPv6 addresses in connection list (Guillaume Le Vaillant)
2023-06-27 11:28:24 -05:00
luigi1111
9480525dd2
Merge pull request #8661
f50b9e3 revisions (koe) e5aa058 vtnerd review comments (koe)
c60b11f add compare_func() method so user-defined comparison functions are easier to use (koe)
7329873 adjust is_sorted_and_unique() (koe)
3d60475 comment updates (koe) acfaaed add container helpers (koe)
2023-06-27 11:27:03 -05:00
luigi1111
e752b609fc
Merge pull request #8660
2a7435e variant: add mutable unwrap and visitation (koe)
bc3cec4 add variant class with cleaner interface than boost::variant<> (koe)
2023-06-27 11:25:52 -05:00
jeffro256
2a2cf03764
blockchain_db: add clarification to get_block_already_generated_coins 2023-06-21 22:08:22 +02:00
j-berman
e6b86af931 wallet2: fix rescanning tx via scan_tx
- Detach & re-process txs >= lowest scan height
- ensures that if a user calls scan_tx(tx1) after scanning tx2,
the wallet correctly processes tx1 and tx2
- if a user provides a tx with a height higher than the wallet's
last scanned height, the wallet will scan starting from that tx's
height
- scan_tx requires trusted daemon iff need to re-process existing
txs: in addition to querying a daemon for txids, if a user
provides a txid of a tx with height *lower* than any *already*
scanned txs in the wallet, then the wallet will also query the
daemon for all the *higher* txs as well. This is likely
unexpected behavior to a caller, and so to protect a caller from
revealing txid's to an untrusted daemon in an unexpected way,
require the daemon be trusted.
2023-06-15 02:21:29 -07:00
jeffro256
369a5a8f9a wallet: respect frozen key images in multisig wallets
Before this change, if a multisig peer asked you to sign a transaction with a frozen enote, the wallet will do it without any error or warning. This change makes it
so that wallets will refuse to sign multisig transactions with frozen enotes.

Disclaimer: This PR was generously funded by @LocalMonero.
2023-06-12 16:47:28 -05:00
Lee Clagett
2608b241c8 Add CLSAG serialization to ZMQ code 2023-06-10 11:55:48 -04:00
Crypto City
c138a28f51
wallet2: take ignored-by-value outputs into account in balance 2023-06-10 06:41:17 +00:00
SChernykh
c589e1549b Speed up perf_timer init on x86
All Monero binaries have 1 second startup delay because of this code. This is especially noticeable and affects UX in Monero GUI wallet with local node where it often starts another monerod instance to run commands and query node status.
2023-06-08 07:56:05 +02:00
moneromooo-monero
9f80797086
protocol: drop peers sending duplicate txes 2023-06-07 06:56:21 +00:00
jeffro256
7206ef8ab8 cryptonote_basic: fix amount overflow detection on 32-bit systems
On systems where `ULONG_MAX` != `ULLONG_MAX` (e.g. most 32-bit systems), the `round_money_up` function will not correctly detect overflows.
2023-06-02 22:14:26 -05:00
jeffro256
a6639df9e4 wallet_rpc_server: dedup transfer RPC responses 2023-06-02 01:07:30 -05:00
Crypto City
eeda4a8497
wallet2: do not lose exception in current thread on refresh 2023-05-30 17:08:05 +00:00
Crypto City
f8687684e3
wallet2: fix missing exceptions from failing wallet refresh 2023-05-30 16:57:48 +00:00
j-berman
a8d2a58190 wallet2: ensure transfers and sweeps use same fee calc logic
Ensures both transfers and sweeps use a fee that's calculated
from the tx's weight. Using different logic could theoretically
enable distinguishability between the two types of txs. We don't
want that.
2023-05-27 07:27:54 -07:00
tobtoht
bb83eb151a
daemon: remove --fluffy-blocks 2023-05-12 17:39:38 +02:00
tobtoht
6ff87ef89f
net: tor_address: remove support for v2 onion addresses 2023-05-12 17:09:54 +02:00
Crypto City
d391ac0f7e
blockchain: ensure base fee cannot reach 0
reported by sech1
2023-05-11 13:47:57 +00:00
tobtoht
6b8dfb8fb9
daemon: remove os-version 2023-05-10 23:15:03 +02:00
tobtoht
c32befe4f8
fix missing <cstdint> includes 2023-05-06 18:13:18 +02:00
Crypto City
503c3e06df
core: do not force sync the db when finding a block in regtest mode
for a slight performance boost in functional tests
2023-05-05 18:11:57 +00:00
moneromooo-monero
24d56c5975
bump lmdb sync threshold for performance
Force sync every 100k blocks instead of every 1k blocks. Bumping this
value is reported to make a big difference in sync performance, eg:
https://github.com/monero-project/monero/issues/8189
2023-05-05 18:07:44 +00:00
SChernykh
092e964a87 Fixed RandomX initialization when mining from scratch 2023-04-27 16:31:21 +02:00
luigi1111
a2e8d1d427
Merge pull request #8760
1698cb1 remove defunct light wallet code (tobtoht)
2023-04-26 14:02:25 -04:00
tobtoht
1698cb1f84
remove defunct light wallet code 2023-04-25 21:22:10 +02:00
Jeffrey Ryan
408079661d serialization: remove unused function dump_json 2023-04-25 11:39:55 -05:00
luigi1111
1c9686cb45
Merge pull request #8724
d2a591d wallet, simplewallet: Drop support for mine-to-use RPC system (Jeffrey Ryan)
2023-04-25 12:36:11 -04:00
luigi1111
0d9e790311
Merge pull request #8802
eb0e405 gamma picker: relax constructor requirements and test for selecting outputs from first spendable block (jeffro256)
2023-04-25 11:26:20 -04:00
luigi1111
d44350fb7f
Merge pull request #8798
f383fd3 wallet2: make m_process_pool_txs local to refresh method (jeffro256)
2023-04-25 11:25:29 -04:00
luigi1111
df2eb0da0a
Merge pull request #8796
7a4a03d wallet2: do not commit transactions more than once (moneromooo-monero)
2023-04-25 11:24:15 -04:00
luigi1111
b2d603e61f
Merge pull request #8789
df9aa6b epee: remove dead code in net_helper (Jeffro256)
2023-04-25 11:22:50 -04:00
luigi1111
0db1b4503e
Merge pull request #8788
c61d33e wallet2: fix outdated wallet check (Crypto City)
2023-04-25 11:22:11 -04:00
luigi1111
b442d5d4c1
Merge pull request #8780
4e16559 rpc: give reason when sending non-hex raw tx (jeffro256)
2023-04-25 11:21:48 -04:00
luigi1111
5387018ade
Merge pull request #8771
2eaa523 cryptonote::transaction_prefix: fix IDE parsing error (koe)
2023-04-25 11:21:22 -04:00
luigi1111
8172e4d8ad
Merge pull request #8765
630906c cryptonote_basic: remove unused struct (tobtoht)
2023-04-25 11:20:12 -04:00
luigi1111
83100b6cbe
Merge pull request #8764
b13ddb9 Handle case where a command line flag is not allowed in the config file (almalh)
2023-04-25 11:19:38 -04:00
Jeffrey Ryan
d2a591d7c6 wallet, simplewallet: Drop support for mine-to-use RPC system
Using post-PR wallet with pre-PR node will generate error message specific to this PR and not generic "command failed" mesages.
2023-04-25 10:18:20 -05:00
luigi1111
8b617064d4
Merge pull request #8748
11a8360 simplewallet: print fully qualified filename for new wallets (moneromooo-monero)
2023-04-25 11:17:56 -04:00
luigi1111
4931462d1d
Merge pull request #8730
9e09093 wallet_rpc_server: allow creating more than 64 addresses at once (moneromooo-monero)
2023-04-25 11:17:22 -04:00
luigi1111
aa5382c470
Merge pull request #8716
9c7d28b wallet2: add on_reorg callback (Crypto City)
2023-04-25 11:13:44 -04:00
luigi1111
9bf06ea75d
Merge pull request #8698
5b4fea7 Copyright: Update to 2023 (mj-xmr)
2023-04-25 11:12:56 -04:00
luigi1111
af88341272
Merge pull request #8694
d89e7a2 util: make GMT timestamps explicit for clarity (moneromooo-monero)
2023-04-25 11:11:08 -04:00
luigi1111
ecf0d01aa2
Merge pull request #8679
b986421 adjust multiexp pippenger_cached_data for better reusability (koe)
2023-04-25 11:10:27 -04:00
almalh
87e2a64327
Allow option 'non-interactive' in monerod config file 2023-04-15 18:28:12 -04:00
Guillaume Le Vaillant
c90c1c3fe1 Show IPv6 addresses in connection list 2023-04-14 13:34:30 +02:00
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
OrvilleRed
ca6c42a8e1 Message about DNS_PUBLIC to help users with issue #8452 2023-03-27 00:36:40 -04: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
jeffro256
f383fd3cd0 wallet2: make m_process_pool_txs local to refresh method 2023-03-21 19:18:48 -05:00
moneromooo-monero
7a4a03d9d3
wallet2: do not commit transactions more than once
Fixes #8793
2023-03-21 21:05:53 +00:00
Jeffro256
df9aa6bb04 epee: remove dead code in net_helper 2023-03-19 12:51:27 -05:00
Crypto City
c61d33e24c
wallet2: fix outdated wallet check
it was mistaking the number of forks in the fork table for
the last fork, and assuming the table was including every
single fork
2023-03-19 17:43:37 +00: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
jeffro256
4e16559053 rpc: give reason when sending non-hex raw tx 2023-03-17 18:18:06 -05:00
Francois Beutin
1b27fcdf77
device: Add ledger Stax device id to device detection 2023-03-14 10:31:20 +01:00
koe
2eaa523af1 cryptonote::transaction_prefix: fix IDE parsing error 2023-03-09 15:18:21 -06: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
tobtoht
630906ce5b
cryptonote_basic: remove unused struct 2023-03-06 15:15:00 +01:00
almalh
b13ddb9a16
Handle case where a command line flag is not allowed in the config file 2023-03-05 20:32:40 -05: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
moneromooo-monero
11a836074d
simplewallet: print fully qualified filename for new wallets
from time to time, some people don't realize their wallets get
created in their current working directory
2023-02-24 10:22:48 +00: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
koe
2a7435e026 variant: add mutable unwrap and visitation 2023-02-12 13:00:53 -06: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
moneromooo-monero
9e09093a8d
wallet_rpc_server: allow creating more than 64 addresses at once
it's too low a limit (at least one person mentioned having to
call create_address in a loop due to it)
2023-02-03 16:57:48 +00:00
koe
bc3cec4634 add variant class with cleaner interface than boost::variant<> 2023-01-30 22:03:35 -06:00