Age | Commit message (Collapse) | Author | Files | Lines |
|
- 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.
|
|
|
|
1698cb1 remove defunct light wallet code (tobtoht)
|
|
|
|
|
|
d2a591d wallet, simplewallet: Drop support for mine-to-use RPC system (Jeffrey Ryan)
|
|
eb0e405 gamma picker: relax constructor requirements and test for selecting outputs from first spendable block (jeffro256)
|
|
f383fd3 wallet2: make m_process_pool_txs local to refresh method (jeffro256)
|
|
7a4a03d wallet2: do not commit transactions more than once (moneromooo-monero)
|
|
df9aa6b epee: remove dead code in net_helper (Jeffro256)
|
|
c61d33e wallet2: fix outdated wallet check (Crypto City)
|
|
4e16559 rpc: give reason when sending non-hex raw tx (jeffro256)
|
|
2eaa523 cryptonote::transaction_prefix: fix IDE parsing error (koe)
|
|
630906c cryptonote_basic: remove unused struct (tobtoht)
|
|
b13ddb9 Handle case where a command line flag is not allowed in the config file (almalh)
|
|
Using post-PR wallet with pre-PR node will generate error message specific to this PR and not generic "command failed" mesages.
|
|
11a8360 simplewallet: print fully qualified filename for new wallets (moneromooo-monero)
|
|
9e09093 wallet_rpc_server: allow creating more than 64 addresses at once (moneromooo-monero)
|
|
9c7d28b wallet2: add on_reorg callback (Crypto City)
|
|
5b4fea7 Copyright: Update to 2023 (mj-xmr)
|
|
d89e7a2 util: make GMT timestamps explicit for clarity (moneromooo-monero)
|
|
b986421 adjust multiexp pippenger_cached_data for better reusability (koe)
|
|
from first spendable block
|
|
d594981 Fixed deadlock and crash when syncing with full dataset on Windows (SChernykh)
|
|
caa7561 cryptonote core/protocol: don't drop peers for soft offenses (jeffro256)
|
|
85a4558 wallet2: fix infinite loop in fake out selection (Crypto City)
|
|
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.
|
|
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.
|
|
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)
|
|
|
|
Fixes #8793
|
|
|
|
it was mistaking the number of forks in the fork table for
the last fork, and assuming the table was including every
single fork
|
|
1b27fcd device: Add ledger Stax device id to device detection (Francois Beutin)
|
|
3771641 Add a size limit for tx_extra in tx pool (tevador)
|
|
7159f92 verRctNonSemanticsSimpleCached: fix fragility (Jeffrey Ryan)
|
|
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)
|
|
|
|
|
|
|
|
|
|
|
|
- `/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.
|
|
|
|
|
|
|
|
|
|
from time to time, some people don't realize their wallets get
created in their current working directory
|
|
d8a8448 p2p: add plowsof seed nodes (selsta)
69153e8 p2p: remove offline seed nodes (selsta)
|
|
cb756b6 blockchain-stats: print any remaining data at end of loop (Howard Chu)
|
|
b247f98 Demote large pages warning to mdebug (SChernykh)
b27a171 RandomX: print VM allocation warnings only once (SChernykh)
|
|
3461a19 daemonizer: don't uninstall windows service on exit (selsta)
|
|
e91f35e win-service: enable auto startup (plowsof)
|
|
934b798 rpc: do not misidentify coinbase txes as pruned (moneromooo-monero)
|
|
it's too low a limit (at least one person mentioned having to
call create_address in a loop due to it)
|
|
|
|
|
|
|
|
Fix #8711
|
|
|
|
Co-authored-by: plowsof <plowsof@protonmail.com>
extra files
|
|
|
|
1a568de Cache successful erRctNonSemanticsSimple calls (SChernykh)
|
|
7a3a593 common: move boost_serialization_helper.h out and cleanup includes (Jeffrey Ryan)
|
|
96677ff common: add missing includes (selsta)
|
|
fe8522c Bump WINVER to 0x0600 (Windows Vista) (SChernykh) dab7d01 Refactored rx-slow-hash.c (SChernykh)
|
|
b1bce85 miscellaneous crypto updates (koe)
|
|
8687da6 common: DNSResolver can handle hostnames without dot characters (Jeffrey Ryan)
|
|
faaf2af p2p: fix exclusive node DNS resolution for certain hosts (Jeffrey Ryan)
|
|
1a3ae18 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
|
|
|
|
|
|
|
|
For privacy reasons, time functions use GMT, to avoid logs leaking
timezones. It'd make more sense to use localtime for wallet output
(which are not logged by default), but that adds inconsistencies
which can also be confusing. So add a Z suffix for now to make it
clear these are not local time.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
a7bf3af Fix dandelion++ fluff/stem bug with local txes (Lee Clagett)
|
|
1114e7e fix(trezor-tests): fix trezor tests build, fix integrated addr test (Dusan Klinec)
|
|
cac5083 wallet2: fix create view-only wallet from existing wallet (j-berman)
|
|
97b86a0 wallet_api: take priority into account when estimating fee (selsta)
|
|
d06202d blockchain_prune: faster (moneromooo-monero)
|
|
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
|
|
- fix integrated address test, it was not testing integrated address suport
- fix trezor test build as dependent classes were changed
- add a friend test class for Monero::WalletImpl to support wallet api tests
When using wallet_api in tests, synthetic chain is used. Without being able to set `allow_mismatched_daemon_version` in the underlying wallet, we are not able to use a synthetic chain with the tests
|
|
|
|
09d69b6 rpc: remove overwriting value (SerHack)
|
|
e988530 Remove redundant check (SerHack)
|
|
501db2c Wallet RPC: remove duplicate line (SerHack)
|
|
6f0fb76 blockchain: fix invalid memory read getting fee on empty chain (Crypto City)
|
|
23fde15 wallet_rpc_server: chunk refresh to keep responding to RPC while refreshing (moneromooo-monero) 5bb2369 wallet_rpc_server: add --no-initial-sync flag for quicker network binding (moneromooo-monero)
|
|
|
|
|
|
|
|
8e7c7af Move update_checkpoints() to a later stage (SChernykh)
|
|
e9ce347 wallet2: fail to establish daemon cxn == 'Disconnected' cxn status (j-berman)
|
|
28f25c0 Second thread pool for IO (SChernykh)
|
|
4b0785f 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.
|
|
|
|
|
|
|
|
b8271ab wallet2: check wallet compatibility with daemon's hard fork version (j-berman)
|
|
eca7f6a Fix segfault restoring encrypted multisig seed (j-berman)
f713c3c Require user ack multisig is experimental to restore (j-berman)
564a7a3 multisig: fix #8537 seed restore (suggestions by @UkoeHB) (j-berman)
|
|
|
|
76a5b54 Fix missing semi-colon in error message (j-berman)
|
|
2639c4f rpc: skip bootstrap nodes that are lower than last checkpoint (selsta)
|
|
959a3e6 wallet2: ensure imported outputs subaddresses are created (moneromooo-monero)
a098504 wallet2: better test on whether to allow output import (moneromooo-monero)
c5579ac allow exporting outputs in chunks (moneromooo-monero)
1e912ec wallet2: fixes for export/import output flow (j-berman)
692f1d4 wallet2: do not assume imported outputs must be non empty (moneromooo-monero)
67b6d6a wallet2: prevent importing outputs in a hot wallet (moneromooo-monero)
d9fc666 wallet2: fix missing subaddress indices in 'light' exported outputs (moneromooo-monero)
|
|
a4cb77f epee: update 'http_server_handlers_map2.h' macros to use fully qualified names (Jeffrey Ryan)
|
|
|
|
Co-authored-by: woodser <woodser@protonmail.com>
|
|
|
|
|
|
- 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.
|
|
reported by j-berman
|
|
f8d76ec version: bump master version number (selsta)
|
|
6b61628 dns_util: remove outdated DNSSEC DS trust anchor (selsta)
|
|
04a1e28 ledger support for hf 15 (BP+, view tags) (j-berman)
|
|
f7f1445 device: set ledger min app version (selsta)
|
|
600de07 wallet_rpc_server: longer timeout for stop_mining (moneromooo-monero)
ac6db92 functional_tests: silence the cpu power test program (moneromooo-monero)
|
|
7a31d25 keccak: error out if passed mdlen 100 (moneromooo-monero)
|
|
1fc60ca Publish submitted txs via zmq (j-berman)
|
|
628fdcd continue pool pruning even if a tx can't be found (j-berman)
|
|
f797655 Fixed get_block_template_backlog performance (SChernykh)
|
|
4a4936b Fix use of rtxn without a mdb_txn_safe wrapper (Howard Chu)
|
|
4d7f6f5 GCC: fix some unused warnings (Jeffrey Ryan)
|
|
a0df140 feat(trezor): add HF15 support, BP+ (Dusan Klinec)
|
|
|
|
|
|
|
|
|
|
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).
|
|
- only allow offline wallets to import outputs
- don't import empty outputs
- export subaddress indexes when exporting outputs
|
|
|
|
|
|
|
|
on my anecdotal SSD, goes from about 9 hours to 1h20.
|
|
Otherwise Ledger rejects the wallet.
|
|
|
|
|
|
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).
|
|
|
|
|
|
That RPC will wait for mining to actually stop, which can be a while
if randomx has just started on randomx_init_dataset.
This fixes occasional failures in the mining functional test
|
|
|
|
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)
|
|
hash_extra: don't test for success in `jh_hash` and `skein_hash` since its guaranteed
device_ledger: move anonymous global variable apdu_verbose into .cpp file
Add comments to `refreshed` method variable in wallet2
|
|
If we were to call it with 100, it would cause rsiz to be 0,
leading to an infinite loop.
This is really a pedantic patch, but since there's already a
range test, might as well make it better.
|
|
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>
|
|
|
|
|
|
- BP+ support added for Trezor
- old Trezor firmware version support removed, code cleanup
|
|
|
|
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)
|
|
|
|
|
|
quick patch which fixes the issue where if you use some macros from `http_server_handlers_map2.h` you have to be in the `epee` namespace or it doesn't compile. Now can remove `using namespace epee;` from header file `core_rpc_server.h`, which caused a couple of name qualifying mistakes
|
|
|
|
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.
|