aboutsummaryrefslogtreecommitdiff
path: root/src (unfollow)
AgeCommit message (Collapse)AuthorFilesLines
2023-10-26device: boost -> std locks to fix c++17 compilationselsta3-18/+13
2023-10-01Fix: long term block weight cacheBoog9001-33/+2
The long term block weight cache was doing a wrong calculation when adding a new block to the cache.
2023-09-30trezor: support v2.5.2+, add more trezor tests, fix chaingen and testsDusan Klinec8-53/+102
- 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`
2023-09-25depends: remove libiconv: unusedtobtoht1-0/+3
2023-09-21wallet: store watch-only wallet correctly when `change_password()` is calledjeff1-2/+2
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.
2023-09-10add account_generators for mapping public EC generators to account keyskoe1-0/+71
2023-08-23wallet2: fix `store_to()` and `change_password()`jeffro2562-34/+90
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
2023-08-17wallet2: fix version check at hf version 1j-berman1-1/+1
2023-08-10`KV_SERIALIZE`: remove extraneous semicolons in DSLjeffro2563-91/+91
Prereq of https://github.com/monero-project/monero/pull/8867
2023-08-08multisig: better errors for small malformed kex msgsjeffro2561-3/+6
Resolves https://github.com/monero-project/monero/issues/8493
2023-08-01blockchain_db: add k-anonymity to txid fetchingjeffro2569-0/+257
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>
2023-07-28wallet-rpc: restore from multisig seedjeffro2564-25/+59
2023-07-19scan_tx: fix custom comparator for == case; fixes #8951j-berman1-4/+9
Co-authored-by: woodser <woodser@protonmail.com>
2023-07-18remove more 'using namespace' statements from headersjeffro2564-19/+5
2023-07-16wallet2: when checking frozen multisig tx set, don't assume orderjeffro2561-4/+4
2023-07-03common: do not use DNS to determine if address is localtobtoht1-20/+15
Co-authored-by: j-berman <justinberman@protonmail.com>
2023-07-02core_rpc_server: new file: rpc_ssl.fingerprintJeffrey Ryan2-25/+29
2023-07-02Remove src/platformJeffrey5-176/+0
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-01blockchain_and_pool: move to crytonote_core and enforce its usagejeffro25612-52/+46
2023-07-01Update help for set command in simplewalletMasFlam1-0/+4
Add help for max-reorg-depth and load-deprecated-formats options
2023-06-30core_rpc_server: return ID of submitted blockjeffro2562-2/+7
2023-06-30Avoid nullptr dereference when constructing Blockchain and tx_memory_poollukas8-60/+83
2023-06-28add crypto/generators for direct access to canonical fixed generatorskoe3-0/+234
2023-06-27wallet: remove CLI code for non default ring sizesJeffro2563-24/+2
2023-06-27Fixup error message.ComputeryPony1-0/+2
Looks like the extra MWARNING was supposed to be guarded by the if statement.
2023-06-21blockchain_db: add clarification to get_block_already_generated_coinsjeffro2561-1/+1
2023-06-15wallet2: fix rescanning tx via scan_txj-berman8-56/+402
- 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-12wallet: respect frozen key images in multisig walletsjeffro2562-2/+40
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-10Add CLSAG serialization to ZMQ codeLee Clagett2-0/+29
2023-06-10wallet2: take ignored-by-value outputs into account in balanceCrypto City1-0/+4
2023-06-08Speed up perf_timer init on x86SChernykh1-1/+1
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-07protocol: drop peers sending duplicate txesmoneromooo-monero1-0/+10
2023-06-02cryptonote_basic: fix amount overflow detection on 32-bit systemsjeffro2561-1/+1
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-02wallet_rpc_server: dedup transfer RPC responsesjeffro2561-157/+59
2023-05-30wallet2: do not lose exception in current thread on refreshCrypto City1-0/+1
2023-05-30wallet2: fix missing exceptions from failing wallet refreshCrypto City1-0/+1
2023-05-27wallet2: ensure transfers and sweeps use same fee calc logicj-berman1-3/+3
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-12daemon: remove --fluffy-blockstobtoht1-9/+0
2023-05-12net: tor_address: remove support for v2 onion addressestobtoht2-5/+2
2023-05-11blockchain: ensure base fee cannot reach 0Crypto City1-1/+1
reported by sech1
2023-05-10daemon: remove os-versiontobtoht3-284/+0
2023-05-06fix missing <cstdint> includestobtoht2-0/+2
2023-05-05core: do not force sync the db when finding a block in regtest modeCrypto City1-1/+2
for a slight performance boost in functional tests
2023-05-05bump lmdb sync threshold for performancemoneromooo-monero1-0/+4
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-04-27Fixed RandomX initialization when mining from scratchSChernykh1-1/+8
2023-04-25remove defunct light wallet codetobtoht6-1185/+21
2023-04-25serialization: remove unused function dump_jsonJeffrey Ryan3-49/+0
2023-04-25wallet, simplewallet: Drop support for mine-to-use RPC systemJeffrey Ryan13-1022/+32
Using post-PR wallet with pre-PR node will generate error message specific to this PR and not generic "command failed" mesages.
2023-04-15Allow option 'non-interactive' in monerod config filealmalh5-11/+7
2023-04-14Show IPv6 addresses in connection listGuillaume Le Vaillant3-4/+16
2023-04-02gamma picker: relax constructor requirements and test for selecting outputs ↵jeffro2561-2/+2
from first spendable block
2023-03-30wallet2: fix infinite loop in fake out selectionCrypto City2-3/+4
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-29cryptonote core/protocol: don't drop peers for soft offensesjeffro2564-3/+10
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-29Fixed deadlock and crash when syncing with full dataset on WindowsSChernykh2-5/+8
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-27Message about DNS_PUBLIC to help users with issue #8452OrvilleRed1-0/+1
2023-03-21wallet2: make m_process_pool_txs local to refresh methodjeffro2562-12/+11
2023-03-21wallet2: do not commit transactions more than oncemoneromooo-monero1-0/+18
Fixes #8793
2023-03-19epee: remove dead code in net_helperJeffro2561-3/+0
2023-03-19wallet2: fix outdated wallet checkCrypto City1-4/+9
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-17verRctNonSemanticsSimpleCached: fix fragilityJeffrey Ryan9-111/+288
2023-03-17rpc: give reason when sending non-hex raw txjeffro2561-0/+1
2023-03-14device: Add ledger Stax device id to device detectionFrancois Beutin1-0/+1
2023-03-09cryptonote::transaction_prefix: fix IDE parsing errorkoe1-1/+1
2023-03-09p2p: do not log to global when re-blocking a subnetmoneromooo-monero1-1/+5
2023-03-07Enforce restricted # pool txs served via RPC + optimize chunked reqsj-berman12-168/+243
- `/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-06cryptonote_basic: remove unused structtobtoht1-9/+0
2023-03-05Handle case where a command line flag is not allowed in the config filealmalh1-0/+13
2023-03-01p2p: avoid spam blocking ipv4 addresses in a blocked subnetmoneromooo-monero1-1/+17
2023-02-26Add a size limit for tx_extra in tx pooltevador6-1/+22
2023-02-24simplewallet: print fully qualified filename for new walletsmoneromooo-monero1-0/+2
from time to time, some people don't realize their wallets get created in their current working directory
2023-02-12variant: add mutable unwrap and visitationkoe1-7/+18
2023-02-03wallet_rpc_server: allow creating more than 64 addresses at oncemoneromooo-monero1-2/+2
it's too low a limit (at least one person mentioned having to call create_address in a loop due to it)
2023-01-30add variant class with cleaner interface than boost::variant<>koe2-0/+159
2023-01-27p2p: add plowsof seed nodesselsta1-1/+11
2023-01-27p2p: remove offline seed nodesselsta1-8/+0
2023-01-19wallet2: add on_reorg callbackCrypto City2-1/+5
2023-01-17blockchain-stats: print any remaining data at end of loopHoward Chu1-74/+83
Fix #8711
2023-01-17Demote large pages warning to `mdebug`SChernykh1-4/+7
2023-01-16Copyright: Update to 2023mj-xmr419-419/+419
Co-authored-by: plowsof <plowsof@protonmail.com> extra files
2023-01-11RandomX: print VM allocation warnings only onceSChernykh1-2/+10
2023-01-09Refactored rx-slow-hash.cSChernykh10-256/+401
- 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
2023-01-03miscellaneous crypto updateskoe5-6/+18
2023-01-03daemonizer: don't uninstall windows service on exitselsta1-3/+0
2023-01-02win-service: enable auto startupplowsof1-1/+1
2023-01-01util: make GMT timestamps explicit for claritymoneromooo-monero1-1/+1
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.
2023-01-01rpc: do not misidentify coinbase txes as prunedmoneromooo-monero1-1/+11
2022-12-30wallet2, RPC: Optimize RPC calls for periodic refresh from 3 down to 1 callrbrunner79-205/+759
2022-12-29revisionskoe1-16/+24
2022-12-24vtnerd review commentskoe1-19/+60
2022-12-22common: move boost_serialization_helper.h out and cleanup includesJeffrey Ryan4-127/+2
2022-12-20Cache successful `verRctNonSemanticsSimple` callsSChernykh4-1/+104
2022-12-19add compare_func() method so user-defined comparison functions are easier to usekoe1-0/+14
2022-12-18common: add missing includesselsta2-0/+3
2022-12-18adjust is_sorted_and_unique()koe1-12/+11
2022-12-16adjust multiexp pippenger_cached_data for better reusabilitykoe2-45/+55
2022-12-15comment updateskoe1-1/+3
2022-12-01add container helperskoe1-0/+106
2022-11-21common: DNSResolver can handle hostnames without dot charactersJeffrey Ryan2-24/+0
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-17p2p: fix exclusive node DNS resolution for certain hostsJeffrey Ryan3-14/+20
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-17fix(trezor-tests): fix trezor tests build, fix integrated addr testDusan Klinec1-0/+2
- 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
2022-11-14p2p: fix back ping to discover healthy peers to connect toj-berman1-1/+1
2022-10-25Fix dandelion++ fluff/stem bug with local txesLee Clagett1-3/+4
2022-10-18wallet2: fix create view-only wallet from existing walletj-berman2-8/+4
2022-10-13wallet_api: take priority into account when estimating feeselsta1-1/+1
2022-09-22Move update_checkpoints() to a later stageSChernykh2-4/+8
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-21wallet2: fail to establish daemon cxn == "Disconnected" cxn statusj-berman3-4/+5
2022-09-21add an option to force-update multisig key exchange under some circumstanceskoe13-90/+178
2022-09-20Second thread pool for IOSChernykh7-12/+16
2022-09-12wallet2: check wallet compatibility with daemon's hard fork versionj-berman12-26/+246
2022-09-07Fix segfault restoring encrypted multisig seedj-berman2-17/+17
2022-09-06Fix missing semi-colon in error messagej-berman1-1/+1
Co-authored-by: woodser <woodser@protonmail.com>
2022-09-06rpc: skip bootstrap nodes that are lower than last checkpointselsta4-0/+24
2022-09-06Require user ack multisig is experimental to restorej-berman1-0/+13
2022-09-06multisig: fix #8537 seed restore (suggestions by @UkoeHB)j-berman5-10/+25
- 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-08-24wallet2: ensure imported outputs subaddresses are createdmoneromooo-monero1-0/+4
reported by j-berman
2022-08-22rpc: remove overwriting valueSerHack1-1/+0
2022-08-22Remove redundant checkSerHack1-1/+1
2022-08-21Wallet RPC: remove duplicate lineSerHack1-1/+0
2022-08-19blockchain: fix invalid memory read getting fee on empty chainCrypto City1-1/+1
2022-08-18wallet2: better test on whether to allow output importmoneromooo-monero2-6/+25
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-08-18allow exporting outputs in chunksmoneromooo-monero9-56/+303
this will make it easier huge wallets to do so without hitting random limits (eg, max string size in node).
2022-08-16wallet2: fixes for export/import output flowj-berman2-2/+8
- only allow offline wallets to import outputs - don't import empty outputs - export subaddress indexes when exporting outputs
2022-08-16wallet2: do not assume imported outputs must be non emptymoneromooo-monero1-2/+2
2022-08-16wallet2: prevent importing outputs in a hot walletmoneromooo-monero1-0/+2
2022-08-16wallet2: fix missing subaddress indices in "light" exported outputsmoneromooo-monero2-2/+8
2022-08-15blockchain_prune: fastermoneromooo-monero1-41/+87
on my anecdotal SSD, goes from about 9 hours to 1h20.
2022-08-09version: bump master version numberselsta1-1/+1
Otherwise Ledger rejects the wallet.
2022-08-06ledger support for hf 15 (BP+, view tags)j-berman8-12/+94
2022-08-06dns_util: remove outdated DNSSEC DS trust anchorselsta1-1/+0
2022-07-26Fixed get_block_template_backlog performanceSChernykh2-17/+56
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-24device: set ledger min app versionselsta1-1/+1
2022-07-21Publish submitted txs via zmqj-berman4-5/+67
2022-07-21wallet_rpc_server: longer timeout for stop_miningmoneromooo-monero1-1/+1
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
2022-07-20Fix use of rtxn without a mdb_txn_safe wrapperHoward Chu2-47/+55
2022-07-13build: prepare v0.18.0.0selsta4-3/+4
2022-07-13derive multisig tx secret keys from an entropy source plus the tx inputs' ↵koe5-13/+144
key images
2022-07-11GCC: fix some unused warningsJeffrey Ryan5-8/+16
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
2022-07-11keccak: error out if passed mdlen 100moneromooo-monero1-1/+1
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.
2022-07-05wallet2: prevent crash when reading tx w/fewer outputs than expectedj-berman1-0/+2
2022-07-01continue pool pruning even if a tx can't be foundj-berman2-5/+31
2022-07-01hardforks: set mainnet and stagenet v15/16 fork heightselsta1-2/+4
2022-06-30multisig: fix critical vulnerabilities in signinganon13-263/+1743
2022-06-28wallet2: don't use DNS to obtain segregation heightstobtoht1-37/+0
2022-06-27Chunk /gettransactions to avoid hitting restricted RPC limittobtoht1-7/+11
2022-06-25wallet2: force using output distribution for ringct outstobtoht1-9/+14
Co-authored-by: j-berman <justinberman@protonmail.com>
2022-06-24wallet2: remove obsolete rpc version checktobtoht1-26/+1
2022-06-20cryptonote_basic: catch crypto api errorsmoneromooo-monero3-7/+12
2022-06-20feat(trezor): add HF15 support, BP+Dusan Klinec3-163/+135
- BP+ support added for Trezor - old Trezor firmware version support removed, code cleanup
2022-06-20simplewallet: print usage when given no argshinto.janaiyo1-0/+16
2022-06-13Revert "Merge pull request #7937"j-berman1-36/+14
This reverts commit 50410d1f7d04bf60053f2263410c39e81d3ddad1, reversing changes made to d054def63f9b8950fe20b2d8e841f5a9ae09418f.
2022-06-03Remove check is_directory check on lmdb pathHoward Chu1-8/+2
The check interferes with raw device/partition support.
2022-06-03Revert "db_lmdb: test for mmap support at init time"Howard Chu2-31/+0
This reverts commit bd96536637724413173271e8d5df1777f7879c29. The check interferes with raw device/partition support.
2022-06-03wallet_rpc_server: chunk refresh to keep responding to RPC while refreshingmoneromooo-monero3-5/+11
2022-06-01Remove erraneous commasLuke Parker1-3/+3
2022-06-01Improve consistency between on_money_received and on_money_received_unconfirmedLuke Parker5-10/+17
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-05-26wallet_api: add scanTransactions functionselsta3-0/+44
2022-05-25wallet_rpc_server: add --no-initial-sync flag for quicker network bindingmoneromooo-monero1-1/+5
2022-05-23epee: update 'http_server_handlers_map2.h' macros to use fully qualified namesJeffrey Ryan3-6/+2
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
2022-05-18Don't exclusively drop tor/i2p outgoing cxns in idle loopj-berman3-27/+63
2022-05-18common: update sha256sum to use OpenSSL 3.0 APIJeffrey Ryan2-13/+26
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-17disable multisig by defaultmoneromooo-monero7-1/+104
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-17src, epee: fix a couple compiler warningsselsta2-4/+0
2022-05-15wallet2: fix spurious reorg detection with untrusted nodesmoneromooo-monero1-9/+5
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-13wallet2: speedup large tx construction: reserve vector memorymoneromooo-monero1-1/+7
2.8 seconds -> 2.6 seconds on a test case
2022-05-13wallet2: speedup large tx construction: batch ringdb lookupsCrypto City4-5/+58
3.3 seconds -> 2.8 seconds on a test case
2022-05-13wallet2: speedup large tx construction: no pointless clsag generationCrypto City1-1/+12
4.1 seconds -> 3.3 seconds on a test case
2022-05-13wallet2: speedup large tx construction: batch ringdb updatesCrypto City4-5/+30
5.2 seconds -> 4.1 seconds on a test case
2022-05-13wallet2: speedup large tx construction: cache public key validitymoneromooo-monero2-28/+36
5.9 second -> 5.2 seconds on a test case
2022-05-12fix backoff delay logic when re-relaying txsj-berman1-4/+4
2022-05-11Don't send peerlist larger than max allowedj-berman1-2/+6
2022-05-09Set hf v15 testnet fork heightsj-berman1-0/+2
2022-05-05Give better error messages when missing SSL filesJeffrey Ryan1-5/+16
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-02wallet2: fix a couple unused variable warningsselsta1-6/+1
2022-05-02Remove src/serialization/list.hJeffrey2-65/+0
Unused ;) Also a comment from serialization.h
2022-04-29multisig: add post-kex verification round to check that all participants ↵koe6-148/+276
have completed the multisig address
2022-04-29Update copyright to 2022 for Hardfork filesAkrit8-8/+8
Update Makefile and LICENSE
2022-04-27Change "Github" to "GitHub"Abdullah1-1/+1
2022-04-26refactor(bp+): save one inversion, use sc_muladdDusan Klinec1-3/+3
2022-04-21Preserve commitment format inside transactionsLuke Parker4-28/+6
2022-04-21add a sanity check to RPC input data sizemoneromooo-monero2-0/+3
reported by m31007
2022-04-18Bump ring size to 16 for v15 & remove set default in wallet clij-berman5-74/+25
2022-04-18"Change C-cast to static_cast in net_peerlist.h"Jeffrey1-1/+1
Thanks @mj-xmr: https://github.com/monero-project/monero/pull/8211#discussion_r823870855
2022-04-18Factor out move_it_backward from misc_language.hJeffrey1-8/+15
Relevant commit from old PR: 330df2952cb2863a591158b984c0fb7f652887ac
2022-04-18Move copyable_atomic into connection_contextJeffrey1-4/+35
Relevant commit from old PR: bd0a5119957d3ef9130a0b82599e1696995ef235
2022-04-18Merge functionality of misc_os_dependent into time_helper.hJeffrey2-2/+2
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-18Add Include statementsJeffrey2-0/+2
2022-04-18Trimming FatJeffrey2-2/+0
Remove unused include statements or unused definitions.
2022-04-18Boring Old DeletesJeffrey4-56/+0
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-18Optimized keccak implementationSChernykh1-33/+62
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-18Add view tags to outputs to reduce wallet scanning timej-berman25-210/+562
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-10wallet2: use BP+ for cold signingmoneromooo-monero1-1/+1
reported by ukoehb
2022-04-10Fee changes from ArticMinemoneromooo-monero12-44/+306
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-09Remove /includeJeffrey1-1/+0
* `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-08simplewallet: fix integrated_address output stringselsta1-1/+1
2022-04-06CMake: Add missing headers via monero_find_all_headers macromj-xmr15-138/+15
2022-04-05Make RPC server functions that read db thread safej-berman1-14/+36
- grab an lmdb db_rtxn_guard to ensure consistent data from the db - fixed on_getblockhash error resp when requested height >= blockchain height - left functions that read shared memory untouched for now
2022-04-05bulletproofs+: some minor cleanup from vtnerd's reviewmoneromooo-monero1-11/+2
2022-04-05store outPk/8 in the tx for speedmoneromooo-monero4-7/+29
It avoids dividing by 8 when deserializing a tx, which is a slow operation, and multiplies by 8 when verifying and extracing the amount, which is much faster as well as less frequent
2022-04-05ringct: port some of vtnerd's review changes from BP+ to BPmoneromooo-monero1-13/+11
2022-04-05ringct: a few minor optimizations from reviewmoneromooo-monero1-18/+15