Commit Graph

7641 Commits

Author SHA1 Message Date
moneromooo-monero 1924c170d4
protocol: drop peers sending duplicate txes 2023-06-27 11:06:14 +00:00
Lee Clagett c6530d2f5d Add CLSAG serialization to ZMQ code 2023-06-16 19:00:12 -04:00
jeffro256 dc24312bc3 wallet: respect frozen key images in multisig wallets [RELEASE]
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:49:33 -05:00
SChernykh 26025cb294 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:55:47 +02:00
jeffro256 cfc62277c0 cryptonote_basic: fix amount overflow detection on 32-bit systems [RELEASE] 2023-06-02 22:15:02 -05:00
jeffro256 aa139f0334 wallet_rpc_server: dedup transfer RPC responses [RELEASE] 2023-06-02 22:06:49 -05:00
tobtoht 8dc4abdafe
common: do not use DNS to determine if address is local
Co-authored-by: j-berman <justinberman@protonmail.com>
2023-05-25 18:06:34 +02:00
Crypto City 1fad8cc919
blockchain: ensure base fee cannot reach 0
reported by sech1
2023-05-11 13:59:41 +00:00
tobtoht f983ac7780
fix missing <cstdint> includes 2023-05-08 19:29:54 +02:00
SChernykh 1d1d5fb74c Fixed RandomX initialization when mining from scratch 2023-04-27 16:24:15 +02:00
luigi1111 2f45d5c615
Merge pull request #8766
ad80f1b Handle case where a command line flag is not allowed in the config file (almalh)
2023-04-25 11:20:55 -04:00
luigi1111 e06129bb4d
Merge pull request #8805
4f1262b build: prepare v0.18.2.2 (selsta)
2023-04-02 20:53:20 -04:00
luigi1111 a371e60a30
Merge pull request #8813
059b975 cryptonote core/protocol: don't drop peers for soft offenses (jeffro256)
2023-04-02 20:46:21 -04:00
jeffro256 059b975388 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:07:15 -05:00
SChernykh c742fa4c6e 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:44:20 +02:00
selsta 4f1262bae9
build: prepare v0.18.2.2 2023-03-27 18:52:04 +02:00
Crypto City 132804811d
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-25 19:26:43 +00:00
luigi1111 25645e5d23
Merge pull request #8785
cdeb286 build: prepare v0.18.2.1 (selsta)
2023-03-24 22:55:49 -04:00
luigi1111 0e2c2ddd9c
Merge pull request #8787
c4cfaa4 p2p: do not log to global when re-blocking a subnet (moneromooo-monero)
f0e326b p2p: avoid spam blocking ipv4 addresses in a blocked subnet (moneromooo-monero)
2023-03-24 22:55:29 -04:00
moneromooo-monero c4cfaa4567
p2p: do not log to global when re-blocking a subnet 2023-03-19 02:58:38 +01:00
moneromooo-monero f0e326be58
p2p: avoid spam blocking ipv4 addresses in a blocked subnet 2023-03-19 02:58:38 +01:00
luigi1111 225e5ba571
Merge pull request #8784
5900ed3 Add a size limit for tx_extra in tx pool (tevador)
2023-03-18 18:23:14 -04:00
luigi1111 66f57299a2
Merge pull request #8781
c59e009 verRctNonSemanticsSimpleCached: fix fragility (Jeffrey Ryan)
2023-03-18 18:22:01 -04:00
selsta cdeb286359
build: prepare v0.18.2.1 2023-03-18 21:23:42 +01:00
tevador 5900ed3706
Add a size limit for tx_extra in tx pool 2023-03-18 20:01:58 +01:00
Jeffrey Ryan c59e0096b6 verRctNonSemanticsSimpleCached: fix fragility 2023-03-17 18:46:34 -05:00
Francois Beutin 14de562a6f
device: Add ledger Stax device id to device detection 2023-03-17 21:27:51 +01:00
j-berman 65e13dbef1 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-03-13 12:57:43 -07:00
almalh ad80f1b357
Handle case where a command line flag is not allowed in the config file 2023-03-06 17:41:24 -05:00
luigi1111 99be9a044f
Merge pull request #8739
dc18efa build: prepare v0.18.2.0 (selsta)
2023-02-15 10:47:13 -05:00
luigi1111 68a73a2b4d
Merge pull request #8721
988056d p2p: add plowsof seed nodes (selsta)
ce4ef6d p2p: remove offline seed nodes (selsta)
2023-02-15 10:44:56 -05:00
selsta dc18efa3d7
build: prepare v0.18.2.0 2023-02-08 22:18:30 +01:00
luigi1111 0f15707077
Merge pull request #8723
573a369 blockchain-stats: print any remaining data at end of loop (Howard Chu)
2023-02-06 12:38:11 -05:00
Howard Chu 573a369a8a
blockchain-stats: print any remaining data at end of loop
Fix #8711
2023-01-29 11:09:02 +00:00
selsta 988056dc09
p2p: add plowsof seed nodes 2023-01-27 14:17:54 +01:00
selsta ce4ef6da96
p2p: remove offline seed nodes 2023-01-27 14:17:54 +01:00
SChernykh f456b3f023 Demote large pages warning to `mdebug` 2023-01-17 18:16:47 +01:00
SChernykh 480b050cc3 RandomX: print VM allocation warnings only once 2023-01-11 19:18:41 +01:00
luigi1111 c48f572e46
Merge pull request #8676
29208a3 Cache successful erRctNonSemanticsSimple calls (SChernykh)
2023-01-11 12:28:08 -05:00
luigi1111 f73a2b1587
Merge pull request #8683
cbc297a common: add missing includes (selsta)
2023-01-11 12:13:23 -05:00
luigi1111 1d20b8171d
Merge pull request #8678
f698f2b Refactored rx-slow-hash.c (SChernykh)
2023-01-11 12:12:28 -05:00
luigi1111 153819fc4c
Merge pull request #8649
2c24322 DNSResolver: fix not handling hostnames without dot characters [release] (Jeffrey Ryan)
2023-01-11 11:41:56 -05:00
luigi1111 cbc5cf43f2
Merge pull request #8644
38d4811 p2p: fix exclusive node DNS resolution for certain hosts [release] (Jeffrey Ryan)
2023-01-11 11:40:13 -05:00
luigi1111 1976c9afa0
Merge pull request #8641
146cac0 p2p: fix back ping to discover healthy peers to connect to (j-berman)
2023-01-11 11:39:15 -05:00
SChernykh 29208a33cb Cache successful `verRctNonSemanticsSimple` calls 2022-12-20 22:19:00 +01:00
selsta cbc297acfb
common: add missing includes 2022-12-18 19:47:01 +01:00
SChernykh f698f2b708 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
2022-12-14 07:21:00 +01:00
luigi1111 abd37fcf5b
Merge pull request #8628
1bb5d25 Fix dandelion++ fluff/stem bug with local txes (Lee Clagett)
2022-12-01 01:11:14 -06:00
luigi1111 cce309512c
Merge pull request #8615
85c9fe5 wallet2: fix create view-only wallet from existing wallet (j-berman)
2022-12-01 01:06:16 -06:00
luigi1111 f5d701c550
Merge pull request #8611
401dda5 wallet_api: take priority into account when estimating fee (selsta)
2022-12-01 01:05:40 -06:00
Jeffrey Ryan 2c2432245f DNSResolver: fix not handling hostnames without dot characters [release]
Unrelated, but similar code-wise to #8643. There is a check in `DNSResolver` which automatically fails to resolve hostnames which do not contain the `.` character. This PR removes that check.
2022-11-21 21:16:16 -06:00
Jeffrey Ryan 38d4811c89 p2p: fix exclusive node DNS resolution for certain hosts [release]
Fixes #8633. The function `append_net_address` did not parse hostname + port addresses (e.g. `bar:29080`) correctly if the hostname did not contain a `'.'` character.

@vtnerd comments 1

clear up 2nd conditional statement
2022-11-17 18:57:04 -06:00
j-berman 146cac02ca p2p: fix back ping to discover healthy peers to connect to 2022-11-15 18:02:25 -08:00
Lee Clagett 1bb5d25e31 Fix dandelion++ fluff/stem bug with local txes 2022-10-25 16:01:09 -04:00
j-berman 85c9fe515d wallet2: fix create view-only wallet from existing wallet 2022-10-18 13:47:50 -05:00
selsta 401dda5f10
wallet_api: take priority into account when estimating fee 2022-10-13 03:36:51 +02:00
selsta 853171bbf0
build: prepare v0.18.1.2 2022-09-26 22:41:36 +02:00
luigi1111 1f27fdf6a5
Merge pull request #8588
802c4bb Move update_checkpoints() to a later stage (SChernykh)
2022-09-26 15:00:59 -05:00
luigi1111 0bef4265ac
Merge pull request #8585
5ffa31c wallet2: fail to establish daemon cxn == 'Disconnected' cxn status (j-berman)
2022-09-26 14:57:58 -05:00
luigi1111 a7b0c93c7d
Merge pull request #8582
1cd21bf add an option to force-update multisig key exchange under some circumstances (koe)
2022-09-26 14:55:28 -05:00
SChernykh 802c4bb0e4 Move update_checkpoints() to a later stage
update_checkpoints() makes a few DNS requests and can take up to 20-30 seconds to complete (3-6 seconds on average). It is currently called from core::handle_incoming_block() which holds m_incoming_tx_lock, so it blocks all incoming transactions and blocks processing while update_checkpoints() is running. This PR moves it to until after a new block has been processed and relayed, to avoid full monerod locking.
2022-09-22 13:06:39 +02:00
j-berman 5ffa31c48e wallet2: fail to establish daemon cxn == "Disconnected" cxn status 2022-09-21 20:12:16 -06:00
koe 1cd21bfba5 add an option to force-update multisig key exchange under some circumstances 2022-09-21 12:51:19 -05:00
SChernykh 6adf03cdc5 Second thread pool for IO 2022-09-20 10:22:12 +02:00
luigi1111 7cbae6ca98
Merge pull request #8545
12e7c41 Merge pull request #5 from j-berman/restore-msig-encrypted-seed (Justin Berman)
848a0c0 Fix segfault restoring encrypted multisig seed (j-berman)
401f5d9 Require user ack multisig is experimental to restore (j-berman)
fc8a5d6 multisig: fix #8537 seed restore (suggestions by @UkoeHB) (j-berman)
2022-09-15 16:25:22 -05:00
j-berman 864a78ee5f wallet2: check wallet compatibility with daemon's hard fork version 2022-09-12 21:23:08 -06:00
luigi1111 af4f97bf66
Merge pull request #8555
e29b2e9 wallet2: ensure imported outputs subaddresses are created (moneromooo-monero)
1d3657a wallet2: better test on whether to allow output import (moneromooo-monero)
0cbf557 allow exporting outputs in chunks (moneromooo-monero)
b03d709 wallet2: fixes for export/import output flow (j-berman)
4b7eb57 wallet2: do not assume imported outputs must be non empty (moneromooo-monero)
5b98beb wallet2: prevent importing outputs in a hot wallet (moneromooo-monero)
0de1571 wallet2: fix missing subaddress indices in 'light' exported outputs (moneromooo-monero)
2022-09-09 12:57:51 -05:00
luigi1111 89f3d46120
Merge pull request #8553
625147e Fix missing semi-colon in error message (j-berman)
2022-09-09 12:56:07 -05:00
luigi1111 3178bbe083
Merge pull request #8552
93db74a rpc: skip bootstrap nodes that are lower than last checkpoint (selsta)
2022-09-09 12:55:40 -05:00
moneromooo-monero e29b2e9997
wallet2: ensure imported outputs subaddresses are created
reported by j-berman
2022-09-07 06:22:31 +00:00
moneromooo-monero 1d3657afb5
wallet2: better test on whether to allow output import
Being offline is not a good enough heuristic, so we keep track
of whether the wallet ever refreshed from a daemon, which is a
lot better, and probably the best we can do without manual user
designation (which would break existing cold wallet setups till
the user designates those wallets)
2022-09-07 06:22:31 +00:00
moneromooo-monero 0cbf5571d3
allow exporting outputs in chunks
this will make it easier huge wallets to do so without hitting
random limits (eg, max string size in node).
2022-09-07 06:22:07 +00:00
j-berman 848a0c05b0 Fix segfault restoring encrypted multisig seed 2022-09-06 23:21:25 -06:00
j-berman 625147e577 Fix missing semi-colon in error message
Co-authored-by: woodser <woodser@protonmail.com>
2022-09-06 18:37:25 -06:00
j-berman b03d7091f7
wallet2: fixes for export/import output flow
- only allow offline wallets to import outputs
- don't import empty outputs
- export subaddress indexes when exporting outputs
2022-09-06 17:20:23 -06:00
selsta 93db74a91e
rpc: skip bootstrap nodes that are lower than last checkpoint 2022-09-06 22:09:39 +02:00
moneromooo-monero 4b7eb573b2
wallet2: do not assume imported outputs must be non empty 2022-09-06 18:25:48 +00:00
moneromooo-monero 5b98bebad1
wallet2: prevent importing outputs in a hot wallet 2022-09-06 18:25:48 +00:00
moneromooo-monero 0de1571abd
wallet2: fix missing subaddress indices in "light" exported outputs 2022-09-06 18:25:45 +00:00
selsta 09ee78197c
build: prepare v0.18.1.1 2022-09-06 20:22:29 +02:00
j-berman 401f5d967b Require user ack multisig is experimental to restore 2022-09-06 10:33:33 -06:00
j-berman fc8a5d68f1 multisig: fix #8537 seed restore (suggestions by @UkoeHB)
- spend secret key is no longer the sum of multisig key shares;
no need to check that is the case upon restore.
- restoring a multisig wallet from multisig info means that the
wallet must have already completed all setup rounds. Upon restore,
set the number of rounds completed accordingly.
2022-09-01 16:25:28 -07:00
luigi1111 b9e8504cfb
Merge pull request #8467
fac7c43 continue pool pruning even if a tx can't be found (j-berman)
2022-08-09 17:43:32 -05:00
luigi1111 68537fa27a
Merge pull request #8463
265d6ca device: set ledger min app version (selsta)
2022-08-09 17:42:25 -05:00
luigi1111 dc2f548a68
Merge pull request #8470
309f6ba build: prepare v0.18.1.0 (selsta)
2022-08-09 15:00:16 -05:00
luigi1111 5c33f40cd8
Merge pull request #8455
099fc1f Fixed get_block_template_backlog performance (SChernykh)
2022-08-08 20:29:56 -05:00
luigi1111 72490ca04f
Merge pull request #8483
6075be9 feat(trezor): add HF15 support, BP+ (Dusan Klinec)
2022-08-07 21:35:01 -05:00
luigi1111 a50cceb8d0
Merge pull request #8466
2b83d00 ledger support for hf 15 (BP+, view tags) (j-berman)
2022-08-07 21:34:10 -05:00
luigi1111 3b6eb11a88
Merge pull request #8454
c0f3c5b Fix use of rtxn without a mdb_txn_safe wrapper (Howard Chu)
2022-08-07 21:33:25 -05:00
j-berman 2b83d00a9b ledger support for hf 15 (BP+, view tags) 2022-08-06 15:04:16 -07:00
Dusan Klinec 6075be9cc8
feat(trezor): add HF15 support, BP+
- BP+ support added for Trezor
- old Trezor firmware version support removed, code cleanup
2022-08-05 14:27:16 +02:00
selsta 309f6ba3f5
build: prepare v0.18.1.0 2022-07-28 23:14:02 +02:00
j-berman fac7c43644 continue pool pruning even if a tx can't be found 2022-07-26 17:28:02 -07:00
selsta 265d6ca7aa
device: set ledger min app version 2022-07-26 18:23:08 +02:00
SChernykh 099fc1f8a9 Fixed get_block_template_backlog performance
Before the fix, it processed all transactions in the mempool which could be very slow when mempool grows to several MBs in size. I observed `get_block_template_backlog` taking up to 15 seconds of CPU time under high mempool load.

After the fix, only transactions that can potentially be mined in the next block will be processed (a bit more than the current block median weight).
2022-07-22 13:50:21 +02:00
Howard Chu c0f3c5b577
Fix use of rtxn without a mdb_txn_safe wrapper 2022-07-22 12:30:14 +01:00
j-berman 8cc3c9af4d Publish submitted txs via zmq 2022-07-21 11:53:31 -07:00
luigi1111 f982163fc9
Merge pull request #8425
fe5d1be build: prepare v0.18.0.0 (selsta)
2022-07-15 11:23:54 -04:00
luigi1111 4792ceefb1
Merge pull request #8414
2ba391f hardforks: set mainnet and stagenet v15/16 fork height (selsta)
2022-07-15 11:22:01 -04:00
luigi1111 070c3d6b0f
Merge pull request #8433
db8181a wallet2: force using output distribution for ringct outs (tobtoht)
2022-07-14 22:15:27 -04:00
luigi1111 02cbccc529
Merge pull request #8432
edcc094 derive multisig tx secret keys from an entropy source plus the tx inputs' key images (koe)
2022-07-14 22:14:41 -04:00
luigi1111 d912444a4a
Merge pull request #7986
5770265 wallet2: keep around transaction prefix for confirmed transfers (tobtoht)
2022-07-14 12:54:39 -04:00
selsta fe5d1bef56
build: prepare v0.18.0.0 2022-07-13 22:07:31 +02:00
koe edcc094558 derive multisig tx secret keys from an entropy source plus the tx inputs' key images 2022-07-13 12:40:34 -05:00
luigi1111 cfdee9ba69
Merge pull request #8421
bd1e7c5 wallet2: prevent crash when reading tx w/fewer outputs than expected (j-berman)
2022-07-13 00:39:54 -04:00
luigi1111 6fed8c2d9f
Merge pull request #8149
c7b2944 multisig: fix critical vulnerabilities in signing (anon)
2022-07-13 00:38:29 -04:00
luigi1111 4476c35fc8
Merge pull request #8408
09a597b wallet2: don't use DNS to obtain segregation heights (tobtoht)
2022-07-06 00:01:59 -05:00
luigi1111 cea2498e95
Merge pull request #8404
50ccc7e wallet2: remove obsolete rpc version check (tobtoht)
2022-07-06 00:01:29 -05:00
luigi1111 7a118f08f4
Merge pull request #8394
4278a3a cryptonote_basic: catch crypto api errors (moneromooo-monero)
2022-07-06 00:00:24 -05:00
luigi1111 5a3c77be18
Merge pull request #8391
41b1a6b simplewallet: print usage when given no args (hinto.janaiyo)
2022-07-05 23:59:59 -05:00
luigi1111 45a44aa45f
Merge pull request #8388
04c0da2 Chunk /gettransactions to avoid hitting restricted RPC limit (tobtoht)
2022-07-05 23:58:46 -05:00
luigi1111 969316685b
Merge pull request #8371
16f8e04 Remove erraneous commas (Luke Parker)
da0715e Improve consistency between on_money_received and on_money_received_unconfirmed (Luke Parker)
2022-07-05 23:58:06 -05:00
j-berman bd1e7c5635 wallet2: prevent crash when reading tx w/fewer outputs than expected 2022-07-05 21:39:59 -07:00
luigi1111 b54d5ae383
Merge pull request #8384
8460fcc Revert 'Merge pull request #7937' (j-berman)
2022-07-03 17:29:46 -05:00
luigi1111 82cde936c3
Merge pull request #8356
de2f0d0 wallet_api: add scanTransactions function (selsta)
2022-07-03 17:26:35 -05:00
luigi1111 30a9183091
Merge pull request #7774
ade464a ITS#9385 fix using MDB_NOSUBDIR with nonexistent file (Kris Zyp)
033a32a Remove check is_directory check on lmdb path (Howard Chu)
b096e16 Revert 'db_lmdb: test for mmap support at init time' (Howard Chu)
493577a Silence spurious fallthru warning (Howard Chu)
b46a60e Fix rawpart flag collision (Howard Chu)
4e7586c More RAWPART support (Howard Chu)
747f5d3 Preliminary raw partition support (Howard Chu)
2022-07-03 17:24:47 -05:00
selsta 2ba391f02c
hardforks: set mainnet and stagenet v15/16 fork height 2022-07-01 01:49:59 +02:00
anon c7b2944f89 multisig: fix critical vulnerabilities in signing 2022-06-30 12:56:40 -05:00
tobtoht 09a597ba28
wallet2: don't use DNS to obtain segregation heights 2022-06-28 23:12:03 +02:00
tobtoht 04c0da2986
Chunk /gettransactions to avoid hitting restricted RPC limit 2022-06-27 21:23:56 +02:00
tobtoht db8181adf8
wallet2: force using output distribution for ringct outs
Co-authored-by: j-berman <justinberman@protonmail.com>
2022-06-25 13:06:11 +02:00
tobtoht 50ccc7e726
wallet2: remove obsolete rpc version check 2022-06-24 21:58:07 +02:00
moneromooo-monero 4278a3a7e3
cryptonote_basic: catch crypto api errors 2022-06-20 22:17:57 +00:00
hinto.janaiyo 41b1a6b0dd
simplewallet: print usage when given no args 2022-06-20 08:15:07 -04:00
j-berman 8460fcc32b Revert "Merge pull request #7937"
This reverts commit 50410d1f7d, reversing
changes made to d054def63f.
2022-06-13 18:44:09 +01:00
Howard Chu 033a32a20b
Remove check is_directory check on lmdb path
The check interferes with raw device/partition support.
2022-06-03 16:46:47 +01:00
Howard Chu b096e16699
Revert "db_lmdb: test for mmap support at init time"
This reverts commit bd96536637.

The check interferes with raw device/partition support.
2022-06-03 16:46:35 +01:00
Luke Parker 16f8e042b5
Remove erraneous commas 2022-06-01 19:38:42 -04:00
Luke Parker da0715e503
Improve consistency between on_money_received and on_money_received_unconfirmed
unconfirmed solely uses a - b, and received now accepts b so it can 
provide more detailed logs on what occurred (printing a - b, yet with a 
and b).
2022-06-01 18:20:11 -04:00
luigi1111 9750e1fa10
Merge pull request #8340
08080df unit_tests: add more sha256sum test cases (Jeffrey Ryan)
a66a52d common: update sha256sum to use OpenSSL 3.0 API (Jeffrey Ryan)
2022-05-26 21:26:42 -05:00
luigi1111 e8252ef99b
Merge pull request #8337
1164874 src, epee: fix a couple compiler warnings (selsta)
2022-05-26 21:25:06 -05:00
luigi1111 1ff2b02064
Merge pull request #8331
fde7c96 wallet2: fix spurious reorg detection with untrusted nodes (moneromooo-monero)
2022-05-26 21:24:38 -05:00
luigi1111 f9d789d68c
Merge pull request #8330
2dab31f Don't exclusively drop tor/i2p outgoing cxns in idle loop (j-berman)
2022-05-26 21:23:38 -05:00
luigi1111 f96cf86532
Merge pull request #8328
2979474 disable multisig by default (moneromooo-monero)
2022-05-26 21:22:52 -05:00
luigi1111 d52b7d0e99
Merge pull request #8326
b9d2c78 fix backoff delay logic when re-relaying txs (j-berman)
2022-05-26 21:21:18 -05:00
luigi1111 7f2f7ce404
Merge pull request #8324
bae4a1a Don't send peerlist larger than max allowed (j-berman)
2022-05-26 21:20:23 -05:00
selsta de2f0d0102
wallet_api: add scanTransactions function 2022-05-26 03:51:31 +02:00
j-berman 2dab31f62f Don't exclusively drop tor/i2p outgoing cxns in idle loop 2022-05-18 09:54:21 -07:00
Jeffrey Ryan a66a52d144
common: update sha256sum to use OpenSSL 3.0 API
As of OpenSSL 3.0, `SHA256_Init`, `SHA256_Update`, and `SHA256_Final`
are deprectaed in favor of the higher-level `EVP_*` class of functions.
This causes compiler warnings, and sooner or later, will cause build
errors as these functions are excluded from distro headers.

Also add some documentation.
2022-05-18 01:34:16 +02:00
moneromooo-monero 2979474221
disable multisig by default
There are vulnerabilities in multisig protocol if the parties do not
trust each other, and while there is a patch for it, it has not been
throroughly reviewed yet, so it is felt safer to disable multisig by
default for now.
If all parties in a multisig setup trust each other, then it is safe
to enable multisig.
2022-05-17 19:52:03 +00:00
selsta 1164874afc
src, epee: fix a couple compiler warnings 2022-05-17 00:33:10 +02:00
luigi1111 6e60919e6d
Merge pull request #8315
1ddb1ee Give better error messages when missing SSL files (Jeffrey Ryan)
2022-05-16 13:53:16 -05:00
luigi1111 5b9724b03d
Merge pull request #8308
f63f7dc wallet2: fix a couple unused variable warnings (selsta)
2022-05-16 13:51:18 -05:00
luigi1111 3d1e5db44d
Merge pull request #8307
b7978cf Remove src/serialization/list.h (Jeffrey)
2022-05-16 13:50:52 -05:00
moneromooo-monero fde7c96b5c
wallet2: fix spurious reorg detection with untrusted nodes
When forced to deal with an untrusted node, a wallet will quantize
its current height to disguise the real height to the adversary, to
try and minimize the daemon's ability to distinguish returning
wallets.
Daemons will thus return more blocks than the wallet needs, starting
from earlier in the chain. These extra blocks will be disregarded
by the wallet, which had already scanned them.
However, for the purposes of reorg size detection, the wallet assumes
all blocks the daemon sends are different, which is only correct if
the wallet hasn't been coy, which is only the case for trusted
daemons (which you should use). This causes an issue when the size
of this "fake reorg" is above the sanity check threshold at which
the wallet refuses a reorg.
To fix this, the reorg size check is moved later on, when the reorg
is about to actually happen, after the wallet has checked which
blocks are actually different from the ones it expects.
2022-05-15 11:57:37 +00:00
moneromooo-monero df2e680825
wallet2: speedup large tx construction: reserve vector memory
2.8 seconds -> 2.6 seconds on a test case
2022-05-13 17:43:22 +00:00
Crypto City 38cdf01c64
wallet2: speedup large tx construction: batch ringdb lookups
3.3 seconds -> 2.8 seconds on a test case
2022-05-13 17:43:22 +00:00
Crypto City 353cd5355e
wallet2: speedup large tx construction: no pointless clsag generation
4.1 seconds -> 3.3 seconds on a test case
2022-05-13 17:43:21 +00:00
Crypto City 2b95178897
wallet2: speedup large tx construction: batch ringdb updates
5.2 seconds -> 4.1 seconds on a test case
2022-05-13 17:43:20 +00:00
moneromooo-monero c9cf0b78f8
wallet2: speedup large tx construction: cache public key validity
5.9 second -> 5.2 seconds on a test case
2022-05-13 17:43:16 +00:00
j-berman b9d2c788bc fix backoff delay logic when re-relaying txs 2022-05-12 08:39:51 -07:00
j-berman bae4a1ad8f Don't send peerlist larger than max allowed 2022-05-11 18:41:24 -07:00
luigi1111 8349cfe4a6
Merge pull request #8321
7d6c748 Set hf v15 testnet fork heights (j-berman)
2022-05-10 16:57:53 -05:00
luigi1111 d58ea37a8d
Merge pull request #8302
41da2fe Update copyright to 2022 for Hardfork files (Akrit)
2022-05-10 16:56:39 -05:00
luigi1111 8480575cec
Merge pull request #8300
070e41d Change Github to GitHub (Abdullah)
2022-05-10 16:53:48 -05:00
luigi1111 fbd1f1e476
Merge pull request #8293
4f08bcd refactor(bp+): save one inversion, use sc_muladd (Dusan Klinec)
2022-05-10 16:51:59 -05:00
luigi1111 436ca13722
Merge pull request #8277
baee2c0 Preserve commitment format inside transactions (kayabaNerve)
2022-05-10 16:49:13 -05:00
luigi1111 156151396e
Merge pull request #8262
268a039 Optimized keccak implementation (SChernykh)
2022-05-10 16:47:13 -05:00
luigi1111 c1625a8928
Merge pull request #8220
0d6ecb1 multisig: add post-kex verification round to check that all participants have completed the multisig address (koe)
2022-05-10 16:41:02 -05:00
j-berman 7d6c7489a7 Set hf v15 testnet fork heights 2022-05-09 14:38:54 -07:00
Jeffrey Ryan 1ddb1ee819 Give better error messages when missing SSL files
While copying my data dir to another drive, I missed copying the rpc_ssl.key file b/c of the file permissions.
This change will give a much more clear, descriptive error in that scenario.
2022-05-05 21:48:19 -05:00
selsta f63f7dc7e2
wallet2: fix a couple unused variable warnings 2022-05-02 21:28:40 +02:00
Jeffrey b7978cfd4e Remove src/serialization/list.h
Unused ;)

Also a comment from serialization.h
2022-05-02 12:08:05 -05:00
koe 0d6ecb1136 multisig: add post-kex verification round to check that all participants have completed the multisig address 2022-04-29 14:04:59 -05:00
Akrit 41da2fe6f3 Update copyright to 2022 for Hardfork files
Update Makefile and LICENSE
2022-04-29 11:12:36 +02:00
Abdullah 070e41d88b Change "Github" to "GitHub" 2022-04-27 18:53:03 +01:00
Dusan Klinec 4f08bcd800
refactor(bp+): save one inversion, use sc_muladd 2022-04-26 13:37:11 +02:00
luigi1111 67e5ca9ad6
Merge pull request #8275
9209880 add a sanity check to RPC input data size (moneromooo-monero)
2022-04-25 10:22:03 -05:00
luigi1111 a092b943d5
Merge pull request #8249
a14fdf8 Remove /include (Jeffrey)
2022-04-25 10:20:10 -05:00
luigi1111 e13244ea9c
Merge pull request #8178
5d388eb Bump ring size to 16 for v15 & remove set default in wallet cli (j-berman)
2022-04-25 10:18:26 -05:00
Luke Parker baee2c06ec
Preserve commitment format inside transactions 2022-04-21 18:58:47 -04:00
moneromooo-monero 9209880e9c
add a sanity check to RPC input data size
reported by m31007
2022-04-21 22:22:56 +00:00
luigi1111 9f814edbd7
Merge pull request #8254
9df7179 wallet2: use BP+ for cold signing (moneromooo-monero)
2022-04-19 22:21:21 -05:00
luigi1111 4abbf442b4
Merge pull request #8245
3593a98 simplewallet: fix integrated_address output string (selsta)
2022-04-19 22:18:42 -05:00
luigi1111 8ddbe18277
Merge pull request #8232
0f7b20a Added support for Ledger Nano S Plus (Mathias Herberts)
2022-04-19 22:15:10 -05:00
luigi1111 96758a7d05
Merge pull request #8061
ea87b30 Add view tags to outputs to reduce wallet scanning time (j-berman)
2022-04-19 22:14:03 -05:00
j-berman 5d388eb74d Bump ring size to 16 for v15 & remove set default in wallet cli 2022-04-18 14:36:28 -07:00
Jeffrey 11371425f5 "Change C-cast to static_cast in net_peerlist.h"
Thanks @mj-xmr: https://github.com/monero-project/monero/pull/8211#discussion_r823870855
2022-04-18 09:55:21 -05:00
Jeffrey 1f25aa27c5 Factor out move_it_backward from misc_language.h
Relevant commit from old PR:
330df2952cb2863a591158b984c0fb7f652887ac
2022-04-18 09:55:21 -05:00
Jeffrey 7764d69782 Move copyable_atomic into connection_context
Relevant commit from old PR:
bd0a5119957d3ef9130a0b82599e1696995ef235
2022-04-18 09:55:21 -05:00
Jeffrey 441c860738 Merge functionality of misc_os_dependent into time_helper.h
Actions:
1. Remove unused functions from misc_os_dependent.h
2. Move three remaining functions, get_gmt_time, get_ns_count, and get_tick_count into time_helper.h
3. Remove unused functions from time_helper.h
4. Refactor get_ns_count and get_internet_time_str and get_time_interval_string
5. Remove/add includes as needed

Relevant commits on the old PR:
a9fbe52b02ffab451e90c977459fea4642731cd1
9a59b131c4ed1be8afe238fff3780fe203c65a46
7fa9e2817df9b9ef3f0290f7f86357939829e588
2022-04-18 09:55:21 -05:00
Jeffrey 40f02f9d73 Add Include statements 2022-04-18 09:55:20 -05:00
Jeffrey 12b1b74d32 Trimming Fat
Remove unused include statements or unused definitions.
2022-04-18 09:55:20 -05:00
Jeffrey 690ce560b0 Boring Old Deletes
Here lies dozens of unused files. This commit is ONLY file deletions except
for the removing of a couple of #includes and removing filenames from CmakeLists
where appropriate.
2022-04-18 09:55:20 -05:00
SChernykh 268a0393e9 Optimized keccak implementation
All tests were conducted on the same PC (Ryzen 5 5600X running at fixed 4.65 GHz).

Before:
test_cn_fast_hash<32> (100000 calls) - OK: 1 us/call
test_cn_fast_hash<16384> (1000 calls) - OK: 164 us/call

After:
test_cn_fast_hash<32> (100000 calls) - OK: 0 us/call
test_cn_fast_hash<16384> (1000 calls) - OK: 31 us/call

More than 5 times speedup for cn_fast_hash.

Also noticed consistent 1-2% improvement in test_construct_tx results.
2022-04-18 10:01:13 +02:00
j-berman ea87b30f89 Add view tags to outputs to reduce wallet scanning time
Implements view tags as proposed by @UkoeHB in MRL issue
https://github.com/monero-project/research-lab/issues/73

At tx construction, the sender adds a 1-byte view tag to each
output. The view tag is derived from the sender-receiver
shared secret. When scanning for outputs, the receiver can
check the view tag for a match, in order to reduce scanning
time. When the view tag does not match, the wallet avoids the
more expensive EC operations when deriving the output public
key using the shared secret.
2022-04-18 00:49:53 -07:00
luigi1111 6694597974
Merge pull request #8207
4db6aed CMake: Add missing headers via monero_find_all_headers macro (mj-xmr)
2022-04-18 02:14:04 -05:00
moneromooo-monero 9df7179aaf
wallet2: use BP+ for cold signing
reported by ukoehb
2022-04-10 21:03:09 +00:00
moneromooo-monero b030f20751
Fee changes from ArticMine
https://github.com/ArticMine/Monero-Documents/blob/master/MoneroScaling2021-02.pdf

with a change to use 1.7 instead of 2.0 for the max long term increase rate
2022-04-10 18:13:34 +00:00
Jeffrey a14fdf8d5a Remove /include
* `IWallet.h` hasn't been touched since 2014, and has been replaced by `src/wallet/api/wallet2_api.h`
* `INode.h` is in a similar situation with `src/p2p/net_node.h`
2022-04-09 23:47:02 -05:00
selsta 3593a986d8
simplewallet: fix integrated_address output string 2022-04-08 16:20:37 +02:00
mj-xmr 4db6aed98c CMake: Add missing headers via monero_find_all_headers macro 2022-04-06 08:12:44 +02:00
luigi1111 bb093ec9a8
Merge pull request #8223
17772ef Eliminate dependence on boost::interprocess #8223 (Jeffrey)
2022-04-06 00:19:59 -04:00
luigi1111 f096ac1349
Merge pull request #8215
d1f1947 wallet_rpc_server: support regex for get_accounts tag (reemuru)
2022-04-06 00:16:20 -04:00
luigi1111 9a124f6811
Merge pull request #8213
7dcfccb wallet_rpc_server: fix make_integrated_address with no payment id (moneromooo-monero)
2022-04-06 00:15:40 -04:00
luigi1111 627f04c19a
Merge pull request #8212
591c174 Remove footgun doc comment in miner TX validation (Luke Parker)
2022-04-06 00:14:44 -04:00
luigi1111 04e490c8da
Merge pull request #8205
0d6fce8 Compil. time: cryptonote_core minus portable_storage header (mj-xmr)
2022-04-06 00:11:14 -04:00
luigi1111 0eb1b570b6
Merge pull request #8197
da9aa1f Copyright: Update to 2022 (mj-xmr)
2022-04-06 00:08:53 -04:00
luigi1111 88a5606795
Merge pull request #8195
3c82958 wallet2: update stagenet rollback blocks (selsta)
2022-04-06 00:07:36 -04:00
luigi1111 ffe439d38a
Merge pull request #8180
3f88fdd simplewallet: add option for exporting tx keys (reemuru)
2022-04-06 00:06:58 -04:00