moneromooo-monero
356e6877dc
wallet_rpc_server: chunk refresh to keep responding to RPC while refreshing
2023-08-17 15:35:00 +00:00
moneromooo-monero
633e1b7359
wallet_rpc_server: add --no-initial-sync flag for quicker network binding
2023-08-17 15:34:57 +00:00
moneromooo-monero
1924c170d4
protocol: drop peers sending duplicate txes
2023-06-27 11:06:14 +00:00
moneromooo-monero and selsta
c4cfaa4567
p2p: do not log to global when re-blocking a subnet
2023-03-19 02:58:38 +01:00
moneromooo-monero and selsta
f0e326be58
p2p: avoid spam blocking ipv4 addresses in a blocked subnet
2023-03-19 02:58:38 +01:00
moneromooo-monero
e29b2e9997
wallet2: ensure imported outputs subaddresses are created
...
reported by j-berman
2022-09-07 06:22:31 +00:00
moneromooo-monero
1d3657afb5
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-09-07 06:22:31 +00:00
moneromooo-monero
0cbf5571d3
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-09-07 06:22:07 +00:00
moneromooo-monero
4b7eb573b2
wallet2: do not assume imported outputs must be non empty
2022-09-06 18:25:48 +00:00
moneromooo-monero
5b98bebad1
wallet2: prevent importing outputs in a hot wallet
2022-09-06 18:25:48 +00:00
moneromooo-monero
0de1571abd
wallet2: fix missing subaddress indices in "light" exported outputs
2022-09-06 18:25:45 +00:00
moneromooo-monero
4278a3a7e3
cryptonote_basic: catch crypto api errors
2022-06-20 22:17:57 +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
moneromooo-monero
31c69923ba
protocol: don't reset last request time on an idle timer
...
this prevents losing time of "idle time" for a peer, which could
otherwise be reset by another timed sync command from the peer
2020-12-30 14:22:10 +00:00
moneromooo-monero
1eb14af1a3
rpc: limit the number of txes for get_blocks.bin
2020-12-29 04:31:58 +00:00
moneromooo-monero
353f93ee1a
portable_storage: remove array element limit
...
some people don't want it
2020-12-28 21:04:58 +00:00
moneromooo-monero
bcdc6c62b7
protocol: fix false positives dropping peers
...
it'd trigger on reorgs
2020-12-27 14:41:19 +00:00
moneromooo-monero
bc97eb8a33
portable_storage: remove overly aggressive cutoff
2020-12-27 12:44:38 +00:00
moneromooo-monero
4310780c08
cryptonote_basic: guess what got lost porting patches to branches again
2020-12-26 23:43:59 +00:00
moneromooo-monero
95575cda6e
epee: fix some issues using connections after shutdown
2020-12-26 14:14:55 +00:00
moneromooo-monero
7f407c0274
portable_storage: add some sanity checks on data size
...
especially when allocated size is >> serialized data size
2020-12-26 03:22:59 +00:00
moneromooo-monero
efe83982d3
protocol: drop nodes if they claim new data but only give stale data
...
Some joker is spending time actually doing this
2020-12-25 20:30:39 +00:00
moneromooo-monero
d2fda6c25f
restrict public node checks a little
...
do not include blocked hosts in peer lists or public node lists by default,
warn about no https on clearnet and about untrusted peers likely being spies
2020-12-22 23:39:07 +00:00
moneromooo-monero
56748e1d74
ban lists may now include subnets
2020-12-22 02:12:41 +00:00
moneromooo-monero
e9abfea165
Optional DNS based blocklist
...
If enabled, pulls IPs to block on blocklist.moneropulse.*, and
blocks then for 8 days (so IPs dropping from the list will
eventually get unblocked, and DNS failures don't result in
instant clearing of the blocklist).
Enable with --enable-dns-blocklist
2020-12-20 02:09:58 +00:00
moneromooo-monero
5a1ac9c0ef
rpc: add a busy_syncing field to get_info
...
true if and pretty much only if new blocks are being added
2020-12-17 18:03:11 +00:00
moneromooo-monero
cf7e1571d3
protocol: reject claimed block hashes that already are in the chain
2020-12-17 02:54:02 +00:00
moneromooo-monero
af0a25544e
protocol: drop peers we can't download anything from in sync mode
...
instead of the (incorrect) check for whether we think we might have
a user for it at some point in the near future. We can reconnect.
2020-12-16 20:19:52 +00:00
moneromooo-monero
f3c0d4f9df
protocol: remove unused (and cunningly uninitialized) field
2020-12-15 01:32:18 +00:00
moneromooo-monero
8e62362cd3
p2p: ifx getting seed nodes for uncommon cases
...
The code is technically correct, but liable to easily become incorrect with changes
2020-12-15 01:32:15 +00:00
moneromooo-monero
0660db3e7a
fuzz_tests: add a test for utf8canonical
2020-12-14 19:40:24 +00:00
moneromooo-monero
9de3787c47
daemon: the ban command can now load IPs from a file (ban @filename)
2020-12-14 12:26:23 +00:00
moneromooo-monero
68637bca3f
p2p: remove peers from grey and anchors lists when blocked
2020-12-13 23:27:44 +00:00