Age | Commit message (Collapse) | Author | Files | Lines |
|
69de381 add a test for the long term weight cache (Boog900)
810f6a6 Fix: long term block weight cache The long term block weight cache was doing a wrong calculation when adding a new block to the cache. (Boog900)
|
|
fbcd8da build: prepare v0.18.3.1 (selsta)
|
|
03d51b7 wallet2: fix refresh function parameters (selsta)
|
|
The long term block weight cache was doing a wrong calculation when
adding a new block to the cache.
|
|
|
|
max_blocks is last on master branch
|
|
The Monero GUI code was calling `Monero::wallet::setPassword()` on every open/close for some reason,
and the old `store_to()` code called `store_keys()` with `watch_only=false`, even for watch-only wallets.
This caused a bug where the watch-only keys file got saved with with the JSON field `watch_only` set to 0,
and after saving a watch-only wallet once, a user could never open it back up against because `load()` errored out.
This never got brought up before this because you would have to change the file location of the watch-only
wallet to see this bug, and I guess that didn't happen often, but calling the new `store_to()` function with the
new `force_rewrite` parameter set to `true` triggers key restoring and the bug appeared.
|
|
64ed938 build: prepare v0.18.3.0 (selsta)
|
|
356e687 wallet_rpc_server: chunk refresh to keep responding to RPC while refreshing (moneromooo-monero) 633e1b7 wallet_rpc_server: add --no-initial-sync flag for quicker network binding (moneromooo-monero)
|
|
|
|
Resolves #8932 and:
2. Not storing cache when new path is different from old in `store_to()` and
3. Detecting same path when new path contains entire string of old path in `store_to()` and
4. Changing your password / decrypting your keys (in this method or others) and providing a bad original password and getting no error and
5. Changing your password and storing to a new file
|
|
|
|
|
|
b51f4a9 scan_tx: fix custom comparator for == case; fixes #8951 (j-berman)
|
|
ed05ac6 wallet2: when checking frozen multisig tx set, don't assume order (jeffro256)
|
|
78348bc wallet-rpc: restore from multisig seed (jeffro256)
|
|
842478c core_rpc_server: return ID of submitted block (jeffro256)
|
|
|
|
Co-authored-by: woodser <woodser@protonmail.com>
|
|
|
|
[release-v0.18]
- `/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.
|
|
[release-v0.18]
|
|
835896e wallet2: do not lose exception in current thread on refresh (Crypto City)
62bb95b wallet2: fix missing exceptions from failing wallet refresh (Crypto City)
|
|
1924c17 protocol: drop peers sending duplicate txes (moneromooo-monero)
|
|
c6530d2 Add CLSAG serialization to ZMQ code (Lee Clagett)
|
|
dc24312 wallet: respect frozen key images in multisig wallets [RELEASE] (jeffro256)
|
|
26025cb Speed up perf_timer init on x86 (SChernykh)
|
|
aa139f0 wallet_rpc_server: dedup transfer RPC responses [RELEASE] (jeffro256)
|
|
|
|
8dc4abd common: do not use DNS to determine if address is local (tobtoht)
|
|
1fad8cc blockchain: ensure base fee cannot reach 0 (Crypto City)
|
|
cfc6227 cryptonote_basic: fix amount overflow detection on 32-bit systems [RELEASE] (jeffro256)
|
|
1d1d5fb Fixed RandomX initialization when mining from scratch (SChernykh)
|
|
65e13db wallet2: fix rescanning tx via scan_tx (j-berman)
|
|
|
|
|
|
|
|
|
|
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.
|
|
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.
|
|
|
|
|
|
Co-authored-by: j-berman <justinberman@protonmail.com>
|
|
reported by sech1
|
|
|
|
|
|
ad80f1b Handle case where a command line flag is not allowed in the config file (almalh)
|
|
4f1262b build: prepare v0.18.2.2 (selsta)
|
|
059b975 cryptonote core/protocol: don't drop peers for soft offenses (jeffro256)
|
|
Also: txs with tx_extra which is too large will not get published to ZMQ
Co-authored-by: SChernykh <sergey.v.chernykh@gmail.com>
|
|
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.
|
|
|
|
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.
|
|
cdeb286 build: prepare v0.18.2.1 (selsta)
|
|
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)
|
|
|
|
|
|
5900ed3 Add a size limit for tx_extra in tx pool (tevador)
|
|
c59e009 verRctNonSemanticsSimpleCached: fix fragility (Jeffrey Ryan)
|
|
|
|
|
|
|
|
|
|
- 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.
|
|
|
|
dc18efa build: prepare v0.18.2.0 (selsta)
|
|
988056d p2p: add plowsof seed nodes (selsta)
ce4ef6d p2p: remove offline seed nodes (selsta)
|
|
|
|
573a369 blockchain-stats: print any remaining data at end of loop (Howard Chu)
|
|
Fix #8711
|
|
|
|
|
|
|
|
|
|
29208a3 Cache successful erRctNonSemanticsSimple calls (SChernykh)
|
|
cbc297a common: add missing includes (selsta)
|
|
f698f2b Refactored rx-slow-hash.c (SChernykh)
|
|
2c24322 DNSResolver: fix not handling hostnames without dot characters [release] (Jeffrey Ryan)
|
|
38d4811 p2p: fix exclusive node DNS resolution for certain hosts [release] (Jeffrey Ryan)
|
|
146cac0 p2p: fix back ping to discover healthy peers to connect to (j-berman)
|
|
|
|
|
|
- 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
|
|
1bb5d25 Fix dandelion++ fluff/stem bug with local txes (Lee Clagett)
|
|
85c9fe5 wallet2: fix create view-only wallet from existing wallet (j-berman)
|
|
401dda5 wallet_api: take priority into account when estimating fee (selsta)
|
|
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.
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
802c4bb Move update_checkpoints() to a later stage (SChernykh)
|
|
5ffa31c wallet2: fail to establish daemon cxn == 'Disconnected' cxn status (j-berman)
|
|
1cd21bf add an option to force-update multisig key exchange under some circumstances (koe)
|
|
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.
|
|
|
|
|
|
|
|
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)
|
|
|
|
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)
|
|
625147e Fix missing semi-colon in error message (j-berman)
|
|
93db74a rpc: skip bootstrap nodes that are lower than last checkpoint (selsta)
|
|
reported by j-berman
|
|
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)
|
|
this will make it easier huge wallets to do so without hitting
random limits (eg, max string size in node).
|
|
|
|
Co-authored-by: woodser <woodser@protonmail.com>
|
|
- only allow offline wallets to import outputs
- don't import empty outputs
- export subaddress indexes when exporting outputs
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- 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.
|
|
fac7c43 continue pool pruning even if a tx can't be found (j-berman)
|
|
265d6ca device: set ledger min app version (selsta)
|
|
309f6ba build: prepare v0.18.1.0 (selsta)
|
|
099fc1f Fixed get_block_template_backlog performance (SChernykh)
|
|
6075be9 feat(trezor): add HF15 support, BP+ (Dusan Klinec)
|
|
2b83d00 ledger support for hf 15 (BP+, view tags) (j-berman)
|
|
c0f3c5b Fix use of rtxn without a mdb_txn_safe wrapper (Howard Chu)
|
|
|
|
- BP+ support added for Trezor
- old Trezor firmware version support removed, code cleanup
|
|
|
|
|
|
|
|
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).
|
|
|
|
|
|
fe5d1be build: prepare v0.18.0.0 (selsta)
|
|
2ba391f hardforks: set mainnet and stagenet v15/16 fork height (selsta)
|
|
db8181a wallet2: force using output distribution for ringct outs (tobtoht)
|
|
edcc094 derive multisig tx secret keys from an entropy source plus the tx inputs' key images (koe)
|
|
5770265 wallet2: keep around transaction prefix for confirmed transfers (tobtoht)
|
|
|
|
key images
|
|
bd1e7c5 wallet2: prevent crash when reading tx w/fewer outputs than expected (j-berman)
|
|
c7b2944 multisig: fix critical vulnerabilities in signing (anon)
|
|
09a597b wallet2: don't use DNS to obtain segregation heights (tobtoht)
|
|
50ccc7e wallet2: remove obsolete rpc version check (tobtoht)
|
|
4278a3a cryptonote_basic: catch crypto api errors (moneromooo-monero)
|
|
41b1a6b simplewallet: print usage when given no args (hinto.janaiyo)
|
|
04c0da2 Chunk /gettransactions to avoid hitting restricted RPC limit (tobtoht)
|
|
16f8e04 Remove erraneous commas (Luke Parker)
da0715e Improve consistency between on_money_received and on_money_received_unconfirmed (Luke Parker)
|
|
|
|
8460fcc Revert 'Merge pull request #7937' (j-berman)
|
|
de2f0d0 wallet_api: add scanTransactions function (selsta)
|
|
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)
|
|
|
|
|
|
|
|
|
|
Co-authored-by: j-berman <justinberman@protonmail.com>
|
|
|
|
|
|
|
|
This reverts commit 50410d1f7d04bf60053f2263410c39e81d3ddad1, reversing
changes made to d054def63f9b8950fe20b2d8e841f5a9ae09418f.
|
|
The check interferes with raw device/partition support.
|
|
This reverts commit bd96536637724413173271e8d5df1777f7879c29.
The check interferes with raw device/partition support.
|
|
|
|
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).
|
|
08080df unit_tests: add more sha256sum test cases (Jeffrey Ryan)
a66a52d common: update sha256sum to use OpenSSL 3.0 API (Jeffrey Ryan)
|
|
1164874 src, epee: fix a couple compiler warnings (selsta)
|
|
fde7c96 wallet2: fix spurious reorg detection with untrusted nodes (moneromooo-monero)
|
|
2dab31f Don't exclusively drop tor/i2p outgoing cxns in idle loop (j-berman)
|
|
2979474 disable multisig by default (moneromooo-monero)
|
|
b9d2c78 fix backoff delay logic when re-relaying txs (j-berman)
|
|
bae4a1a Don't send peerlist larger than max allowed (j-berman)
|
|
|
|
|
|
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.
|
|
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.
|
|
|
|
1ddb1ee Give better error messages when missing SSL files (Jeffrey Ryan)
|
|
f63f7dc wallet2: fix a couple unused variable warnings (selsta)
|
|
b7978cf Remove src/serialization/list.h (Jeffrey)
|
|
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.
|
|
2.8 seconds -> 2.6 seconds on a test case
|
|
3.3 seconds -> 2.8 seconds on a test case
|
|
4.1 seconds -> 3.3 seconds on a test case
|
|
5.2 seconds -> 4.1 seconds on a test case
|
|
5.9 second -> 5.2 seconds on a test case
|
|
|
|
|
|
7d6c748 Set hf v15 testnet fork heights (j-berman)
|
|
41da2fe Update copyright to 2022 for Hardfork files (Akrit)
|
|
070e41d Change Github to GitHub (Abdullah)
|
|
4f08bcd refactor(bp+): save one inversion, use sc_muladd (Dusan Klinec)
|
|
baee2c0 Preserve commitment format inside transactions (kayabaNerve)
|
|
268a039 Optimized keccak implementation (SChernykh)
|
|
0d6ecb1 multisig: add post-kex verification round to check that all participants have completed the multisig address (koe)
|
|
|
|
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.
|
|
|
|
Unused ;)
Also a comment from serialization.h
|
|
have completed the multisig address
|