Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
932bba3 depends: remove libiconv: unused (tobtoht)
|
|
9b231c9 add account_generators for mapping public EC generators to account keys (koe)
|
|
759293d wallet2: fix version check at hf version 1 (j-berman)
|
|
8190f25 KV_SERIALIZE: remove extraneous semicolons in DSL (jeffro256)
|
|
f71e2dc multisig: better errors for small malformed kex msgs (jeffro256)
|
|
b0bf49a blockchain_db: add k-anonymity to txid fetching (jeffro256)
|
|
c444a7e trezor: support v2.5.2+, add more trezor tests, fix chaingen and tests (Dusan Klinec)
056c996 fix chaingen tests (Dusan Klinec)
|
|
The long term block weight cache was doing a wrong calculation when
adding a new block to the cache.
|
|
- passphrase logic: remove backward compatibility for 2.4.3, code cleanup.
- fix LibUSB cmake for static builds on OSX
- tests: all tests now work with passphrase logic enabled. Passphrase test added with different passphrase. no_passphrase test added, Trezor pin test added. Testing wallet opening with correct and incorrect passphrase. Trezor test chain revamp, cleanup. Smaller chain, chain file versioning added.
- tests: Trezor tests support TEST_MINING_ENABLED, TEST_MINING_TIMEOUT env vars to change mining-related tests behaviour.
- requires protobuf@21 on osx for now (c++14), building with unlinked protobuf: `CMAKE_PREFIX_PATH=$(find /opt/homebrew/Cellar/protobuf@21 -maxdepth 1 -type d -name "21.*" -print -quit) \
make debug-test-trezor -j8`
|
|
|
|
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.
|
|
|
|
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
|
|
|
|
f7fb5c7 scan_tx: fix custom comparator for == case; fixes #8951 (j-berman)
|
|
192d87c remove more 'using namespace' statements from headers (jeffro256)
|
|
a0e5c3c wallet2: when checking frozen multisig tx set, don't assume order (jeffro256)
|
|
1104b59 Update help for set command in simplewallet Add help for max-reorg-depth and load-deprecated-formats options (MasFlam)
|
|
ffbf9f4 blockchain_and_pool: move to crytonote_core and enforce its usage (jeffro256)
d6f86e5 Avoid nullptr dereference when constructing Blockchain and tx_memory_pool (lukas)
|
|
45b52de wallet-rpc: restore from multisig seed (jeffro256)
|
|
2a2cf03 blockchain_db: add clarification to get_block_already_generated_coins (jeffro256)
|
|
e8cac61 core_rpc_server: return ID of submitted block (jeffro256)
|
|
a8d2a58 wallet2: ensure transfers and sweeps use same fee calc logic (j-berman)
|
|
6ff87ef net: tor_address: remove support for v2 onion addresses (tobtoht)
|
|
503c3e0 core: do not force sync the db when finding a block in regtest mode (Crypto City)
|
|
Prereq of https://github.com/monero-project/monero/pull/8867
|
|
Resolves https://github.com/monero-project/monero/issues/8493
|
|
Read more about k-anonymity [here](https://en.wikipedia.org/wiki/K-anonymity). We implement this feature in the monero daemon for transactions
by providing a "Txid Template", which is simply a txid with all but `num_matching_bits` bits zeroed out, and the number `num_matching_bits`. We add an operation to `BlockchainLMDB` called
`get_txids_loose` which takes a txid template and returns all txids in the database (chain and mempool) that satisfy that template. Thus, a client can
ask about a specific transaction from a daemon without revealing the exact transaction they are inquiring about. The client can control the statistical
chance that other TXIDs (besides the one in question) match the txid template sent to the daemon up to a power of 2. For example, if a client sets their `num_matching_bits`
to 5, then statistically any txid has a 1/(2^5) chance to match. With `num_matching_bits`=10, there is a 1/(2^10) chance, so on and so forth.
Co-authored-by: ACK-J <60232273+ACK-J@users.noreply.github.com>
|
|
|
|
Co-authored-by: woodser <woodser@protonmail.com>
|
|
|
|
|
|
1c20198 Fixup error message. (ComputeryPony)
|
|
369a5a8 wallet: respect frozen key images in multisig wallets (jeffro256)
|
|
2608b24 Add CLSAG serialization to ZMQ code (Lee Clagett)
|
|
c138a28 wallet2: take ignored-by-value outputs into account in balance (Crypto City)
|
|
c589e15 Speed up perf_timer init on x86 (SChernykh)
|
|
d9c7cd5 common: do not use DNS to determine if address is local (tobtoht)
|
|
d391ac0 blockchain: ensure base fee cannot reach 0 (Crypto City)
|
|
a668312 wallet: remove CLI code for non default ring sizes (Jeffro256)
|
|
16d17f6 add crypto/generators for direct access to canonical fixed generators (koe)
|
|
70bbd25 core_rpc_server: new file: rpc_ssl.fingerprint (Jeffrey Ryan)
|
|
ce86368 Remove src/platform (Jeffrey)
|
|
a6639df wallet_rpc_server: dedup transfer RPC responses (jeffro256)
Very special PR.
|
|
Co-authored-by: j-berman <justinberman@protonmail.com>
|
|
|
|
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)
|
|
|
|
Add help for max-reorg-depth and load-deprecated-formats options
|
|
|
|
|
|
|
|
|
|
Looks like the extra MWARNING was supposed to be guarded by the if statement.
|
|
eeda4a8 wallet2: do not lose exception in current thread on refresh (Crypto City
f868768 wallet2: fix missing exceptions from failing wallet refresh (Crypto City)
|
|
9f80797 protocol: drop peers sending duplicate txes (moneromooo-monero)
|
|
bb83eb1 daemon: remove --fluffy-blocks (tobtoht)
|
|
6b8dfb8 daemon: remove os-version (tobtoht)
|
|
7206ef8 cryptonote_basic: fix amount overflow detection on 32-bit systems (jeffro256)
|
|
24d56c5 bump lmdb sync threshold for performance (moneromooo-monero)
|
|
092e964 Fixed RandomX initialization when mining from scratch (SChernykh)
|
|
ca6c42a Message about DNS_PUBLIC to help users with issue #8452 (OrvilleRed)
|
|
87e2a64 Allow option 'non-interactive' in monerod config file (almalh)
|
|
c90c1c3 Show IPv6 addresses in connection list (Guillaume Le Vaillant)
|
|
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)
|
|
2a7435e variant: add mutable unwrap and visitation (koe)
bc3cec4 add variant class with cleaner interface than boost::variant<> (koe)
|
|
|
|
- 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.
|
|
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.
|
|
|
|
On systems where `ULONG_MAX` != `ULLONG_MAX` (e.g. most 32-bit systems), the `round_money_up` function will not correctly detect overflows.
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
reported by sech1
|
|
|
|
|
|
for a slight performance boost in functional tests
|
|
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
|
|
|
|
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.
|