100 Commits
Author SHA1 Message Date
moneromooo-monero ff429c09b7 gpg_keys: bump my key's expiration to 5 years
I had missed the subkey in my recent bump
2025-05-08 17:20:06 +00:00
moneromooo-monero 59c0841b1c gpg_keys: bump my key's expiration date by another five years 2024-11-17 20:13:10 +00:00
moneromooo-monero 9f80797086 protocol: drop peers sending duplicate txes 2023-06-07 06:56:21 +00:00
moneromooo-monero 24d56c5975 bump lmdb sync threshold for performance
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-05-05 18:07:44 +00:00
moneromooo-monero 7a4a03d9d3 wallet2: do not commit transactions more than once
Fixes #8793
2023-03-21 21:05:53 +00:00
moneromooo-monero 724441a782 link against libz on non Apple/Windows
Needed by libcrypto at least
2023-03-21 14:36:48 +00:00
moneromooo-monero d7a81ccba1 p2p: do not log to global when re-blocking a subnet 2023-03-09 17:17:59 +00:00
moneromooo-monero d84a0d7430 p2p: avoid spam blocking ipv4 addresses in a blocked subnet 2023-03-01 16:56:56 +00:00
moneromooo-monero 11a836074d simplewallet: print fully qualified filename for new wallets
from time to time, some people don't realize their wallets get
created in their current working directory
2023-02-24 10:22:48 +00:00
moneromooo-monero ac9a8978ca Revert "epee: when loading a JSON RPC payload, ensure params is an object"
This reverts commit b67e931843.

This turns out to be a bad idea, because we do have weird RPC which
do actually go counter to this
2023-02-07 12:12:02 +00:00
moneromooo-monero 9e09093a8d wallet_rpc_server: allow creating more than 64 addresses at once
it's too low a limit (at least one person mentioned having to
call create_address in a loop due to it)
2023-02-03 16:57:48 +00:00
moneromooo-monero d89e7a239d util: make GMT timestamps explicit for clarity
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-01 10:38:13 +00:00
moneromooo-monero bfd7c00ced heed NO_COLOR environment variable 2023-01-01 10:24:46 +00:00
moneromooo-monero b67e931843 epee: when loading a JSON RPC payload, ensure params is an object
this makes it easier to spot those mistakes by the caller
2023-01-01 10:10:28 +00:00
moneromooo-monero 934b798c74 rpc: do not misidentify coinbase txes as pruned 2023-01-01 09:30:59 +00:00
moneromooo-monero 832173a490 gpg_keys: bump my key validity by another two years 2022-11-17 17:45:14 +00:00
moneromooo-monero 959a3e627f wallet2: ensure imported outputs subaddresses are created
reported by j-berman
2022-08-24 13:52:36 +00:00
moneromooo-monero a0985044d9 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-08-18 19:29:03 +00:00
moneromooo-monero c5579ac236 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-08-18 06:53:41 +00:00
moneromooo-monero 692f1d4e3d wallet2: do not assume imported outputs must be non empty 2022-08-16 14:22:33 +00:00
moneromooo-monero 67b6d6ae2c wallet2: prevent importing outputs in a hot wallet 2022-08-16 14:22:33 +00:00
moneromooo-monero d9fc666db8 wallet2: fix missing subaddress indices in "light" exported outputs 2022-08-16 14:22:24 +00:00
moneromooo-monero d06202dcc0 blockchain_prune: faster
on my anecdotal SSD, goes from about 9 hours to 1h20.
2022-08-15 16:16:18 +00:00
moneromooo-monero e0b3507c88 tests: update block_weight for 2021 scaling
the test was still performed with consensus rules from before
that change
2022-08-08 06:04:54 +00:00
moneromooo-monero 600de07bcf wallet_rpc_server: longer timeout for stop_mining
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-21 12:00:05 +00:00
moneromooo-monero ac6db928c2 functional_tests: silence the cpu power test program
it's very spammy and drowns the test output
2022-07-21 12:00:05 +00:00
moneromooo-monero 7a31d25b67 keccak: error out if passed mdlen 100
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-11 17:43:59 +00:00
moneromooo-monero a46b6ba25c contrib: add more valgrind suppressions for spurious issues 2022-06-21 11:35:03 +00:00
moneromooo-monero 7f3e31d797 unit_tests: fix accessing invalid memory in tree_hash test 2022-06-21 11:34:26 +00:00
moneromooo-monero 4278a3a7e3 cryptonote_basic: catch crypto api errors 2022-06-20 22:17:57 +00:00
moneromooo-monero 23fde151ee wallet_rpc_server: chunk refresh to keep responding to RPC while refreshing 2022-06-03 07:15:15 +00:00
moneromooo-monero 5bb2369b55 wallet_rpc_server: add --no-initial-sync flag for quicker network binding 2022-05-25 09:02:27 +00: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
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
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
moneromooo-monero 9209880e9c add a sanity check to RPC input data size
reported by m31007
2022-04-21 22:22:56 +00: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
moneromooo-monero 9f786f0550 epee: allow copying a rolling_median_t object 2022-04-10 18:13:31 +00:00
moneromooo-monero 5acdd0e2cb bulletproofs+: some minor cleanup from vtnerd's review 2022-04-05 18:50:23 +00:00
moneromooo-monero 4c94cfecfc store outPk/8 in the tx for speed
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-05 18:50:22 +00:00
moneromooo-monero a345060ace ringct: port some of vtnerd's review changes from BP+ to BP 2022-04-05 18:50:21 +00:00
moneromooo-monero 75bd004f4e ringct: a few minor optimizations from review 2022-04-05 18:50:21 +00:00
moneromooo-monero a0d80b1f95 plug bulletproofs plus into consensus 2022-04-05 18:50:17 +00:00
moneromooo-monero ae0a840fda wallet2: decrease the amount of data exchanged for output export 2022-03-29 08:40:32 +00:00
moneromooo-monero 7dcfccbaaf wallet_rpc_server: fix make_integrated_address with no payment id 2022-03-11 17:23:19 +00:00
moneromooo-monero 06e6c8bf4a crypto: fix constant randomx exceptions in large page allocator
If allocating large pages fails, we don't try again.
This has the obvious drawback of not being able to use large pages
if they fail once.
2022-02-19 13:15:10 +00:00
moneromooo-monero bbe3b276b8 tx_pool: full tx revalidation on fork boundaries
avoids mining txes after a fork that are invalid by this fork's
rules, but were valid by the previous fork rules at the time
they were verified and added to the txpool.
2021-11-01 20:56:38 +00:00
moneromooo-monero e8e507f36f rpc: fix DoS vector in get_output_distribution
This will prevent people spending old pre-rct outputs using a
stranger's node, which may be a good thing
2021-10-24 17:17:12 +00:00
moneromooo-monero 1f81f5f5c1 protocol: fix spurious rejection of downloaded blocks
when kicking a peer for inactivity, clear the set of requested blocks,
or next time we requests blocks from it, we'll probably reject the
incoming blocks due to missing the previous requested blocks
2021-10-21 20:34:06 +00:00
moneromooo-monero 2cad563060 wallet2: fix key encryption when changing ask-password from 0/1 to 2
we reuse the wallet_keys_unlocker object, which does the right thing
in conjunction with other users of decrypt/encrypt (ie, refresh).
2021-10-19 22:01:45 +00:00
moneromooo-monero 75d05b9448 download: fix leak
A shared_ptr as by value capture will keep the object alive
2021-10-10 19:14:17 +00:00
moneromooo-monero 807cbcdbf8 easylogging++: fix missing logs 2021-09-23 20:29:22 +00:00
moneromooo-monero 5eaedb51b9 unit_tests: fix use after free in serialization test 2021-09-08 01:03:34 +00:00
moneromooo-monero 7354ffb8a7 p2p: remove blocked addresses/hosts from peerlist 2021-08-05 17:29:25 +00:00
moneromooo-monero 90d6bed804 cmake: bodge cmake failure on OSS-Fuzz 2021-07-31 19:22:57 +00:00
moneromooo-monero 0c6e1d343e wallet2: chunk get_outs.bin calls to avoid sanity limits 2021-07-15 17:25:07 +00:00
moneromooo-monero d689b946f9 protocol: fix delayed "you are now synchronized..." message 2021-06-21 15:37:40 +00:00
moneromooo-monero 4251cc0b4d unit_tests: check for ge_frombytes_vartime failure
CID 1446559
2021-06-11 07:51:45 +00:00
moneromooo-monero 67b97a5f16 easylogging++: do not delete uninitialized objects
CID 1446562
2021-06-11 07:51:29 +00:00
moneromooo-monero 7b6d959596 trezor: fix potential use of uninitialized memory
CID 1446575
2021-06-11 07:11:23 +00:00
moneromooo-monero b8b054c0f1 python-rpc: add missing python api for new freeze/thaw/frozen RPC 2021-06-11 07:00:27 +00:00
moneromooo-monero ed6f05357c blockchain: speed up repeated pops (mostly in tests)
The heavy rolling median reset only has to be performed after
all blocks are popped
2021-04-26 14:07:35 +00:00
moneromooo-monero 2b918068cc protocol: remove unreachable code 2021-04-17 15:22:26 +00:00
moneromooo-monero 4da1112967 rpc: send confirmations in get_transactions result
if the wallet does it, it would get a wrong result (possibly even
negative) if its local chain is not synced up to the daemon's yet
2021-04-15 15:31:52 +00:00
moneromooo-monero 57edfd78fd p2p: allow CIDR notation in DNS blocklist 2021-03-30 08:57:04 +00:00
moneromooo-monero a16328e853 easylogging++: in place log sanitization
saves an object ctor/dtor per log
2021-03-29 22:26:46 +00:00
moneromooo-monero 447bfae2a4 wallet2: fix unlocked mixup in light wallet mode 2021-03-25 09:33:40 +00:00
moneromooo-monero 5a2edea16b db_lmdb: catch exceptions testing for mmap support
Turns out at least one arch (armel based) does not have unique_path
implemented and throws
2021-03-25 09:24:45 +00:00
moneromooo-monero f6e2636493 blockchain_db: harden code against invalid input types
If an invalid input type were to get to this, the code could
remove key images that might be present already in the chain,
which could allow a double spend, even if this is impossible
with the current code.

Reported by KeyboardWarrior.
2021-03-24 21:43:57 +00:00
moneromooo-monero 3bd3a44aac python-rpc: add function for new scan_tx RPC 2021-03-20 17:40:46 +00:00
moneromooo-monero 71741a1ed6 blockchain_import: fix wrong reported block/tx hashes on error 2021-03-19 11:04:24 +00:00
moneromooo-monero 254a1338ad core: speed up print_coinbase_tx_sum
It only needs to parse the tx headers, not the full tx data
2021-03-18 11:16:08 +00:00
moneromooo-monero c24f185196 README: step by step detail for rpi setup commands 2021-03-11 18:28:01 +00:00
moneromooo-monero 064eeb2861 wallet_rpc_server: set seed language in generate_from_keys
Also sanity check language name
2021-03-06 10:26:15 +00:00
moneromooo-monero f9b5b521e8 fix serialization being different on mac
On Mac, size_t is a distinct type from uint64_t, and some
types (in wallet cache as well as cold/hot wallet transfer
data) use pairs/containers with size_t as fields. Mac would
save those as full size, while other platforms would save
them as varints. Might apply to other platforms where the
types are distinct.

There's a nasty hack for backward compatibility, which can
go after a couple forks.
2021-03-05 23:42:33 +00:00
moneromooo-monero b5209a09d2 functional_tests: hide check_missing_rpc_methods behind requests check 2021-02-23 20:10:03 +00:00
moneromooo-monero 035e474912 README: update libzmq minimum version to 4.2.0 for zmq_send_const 2021-02-23 19:47:57 +00:00
moneromooo-monero 556af11d3b epee: return HTTP error 400 (Bad request) on deserialization error
It's better than 404 (Not found)
2021-02-23 18:55:08 +00:00
moneromooo-monero 5984277fe3 python-rpc: adapt urlparse for python3 2021-02-23 11:43:22 +00:00
moneromooo-monero 8889f490ce easylogging++: fix potential memory corruption
The m_typedConfigurations pointer is copied from one object to the next,
but deleted in the dtor, leading to potential double free. It is also
deleted first thing in the copy ctor, deleting uninitialized memory.

This does not seem to actually happen in practice (those functions do
not get called), but seems safer that way.

Coverity 1446562
2021-02-16 09:43:18 +00:00
moneromooo-monero d643a865f3 p2p: add --max-connections-per-ip daemon option
Helps daemons behind a proxy get more than one connection.
Defaults to 1 (no change)
2021-02-15 19:08:07 +00:00
moneromooo-monero 494f2e1c21 rpc: fix some error return codes/status
Some RPC return an error string in status, and the code must return
true on error (with a status string).
2021-02-15 12:27:19 +00:00
moneromooo-monero 19b228393f New add_aux_pow RPC to support merge mining 2021-02-09 11:58:21 +00:00
moneromooo-monero c26cca6f14 console: fix syntax for python3 2021-01-18 22:23:34 +00:00
moneromooo-monero f10c9a16c4 remove obsolete pruning debug code 2021-01-08 15:41:59 +00:00
moneromooo-monero 372754a66e storages: overridable limits for loading portable_storage from binary 2021-01-07 20:24:29 +00:00
moneromooo-monero b9092ddb5c epee: also limit number of strings in portable_storage
They require at least 24 bytes
2021-01-05 17:54:25 +00:00
moneromooo-monero f815740403 p2p: make REQUEST_SUPPORT_FLAGS optional, pass flags in node data
removes a back and forth on connect, and the RPC can be removed
once all peers have updated
2021-01-04 13:33:34 +00:00
moneromooo-monero daf023de6e epee: don't log raw packet data 2021-01-03 14:41:01 +00:00
moneromooo-monero b652d598d1 add a max levin packet size by command type 2021-01-03 14:07:45 +00:00
moneromooo-monero 4e74385a1a fix accessing an network address in a deleted context
Both drop_connection and add_host_fail can drop the connection,
which invalidates the context, and thus the address it contains.

Thanks to wfaressuissia[m] for lots of help and prodding when
debugging this
2021-01-03 13:04:55 +00:00
moneromooo-monero 1e27f7101e blockchain: lock access to m_blocks_hash_of_hashes
it is accessed both when adding and when prevalidating a set
of new hashes from a peer
2021-01-02 22:19:54 +00:00
moneromooo-monero 38a6e6eb26 protocol: handle receiving a block hash we've not added yet 2021-01-02 22:10:31 +00:00
moneromooo-monero 5cd6fda1ee portable_storage: better sanity checking 2021-01-02 12:34:28 +00:00
moneromooo-monero c5c278c339 p2p: only log to global when a blocked IP is not already blocked 2021-01-01 19:54:51 +00:00
moneromooo-monero f208d98492 p2p: ignore empty IP from DNS block list
ie, if the list ends in ;
2021-01-01 12:30:45 +00:00
moneromooo-monero 0aa541b361 protocol: more sanity checks in new chain block hashes 2020-12-31 23:33:18 +00:00
moneromooo-monero ab5e185140 protocol: fix wrong command in logs
this is not a levin packet, this is just its payload
2020-12-30 21:08:28 +00:00