Commit Graph
100 Commits
Author SHA1 Message Date
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
moneromooo-monero 58651d16c0 p2p: ignore incoming peer list entries when we have them blocked 2020-12-13 23:14:05 +00:00
moneromooo-monero 543733d42c protocol: include first new block in chain entry response 2020-12-12 01:36:35 +00:00
moneromooo-monero 62e8ca5eaf protocol: revert incoming chain height check against local chain
We can actually request a chain that's further away from what we
have as we buffer more and more
2020-12-11 02:37:15 +00:00
moneromooo-monero cd7e9769d8 protocol: one more sanity check on usable data from a peer 2020-12-10 23:02:06 +00:00
moneromooo-monero d660f22ed1 protocol: drop origin IP if a block fails to verify in sync mode
It would otherwise be possible for a peer to send bad blocks,
then disconnect and reconnect again, escaping bans
2020-12-10 21:59:18 +00:00
moneromooo-monero dd5e689533 protocol: add calls to reserve where appropriate 2020-12-10 20:47:35 +00:00
moneromooo-monero 5dee031b25 protocol: add a sanity check to the number of block hashes sent 2020-12-10 19:26:12 +00:00
moneromooo-monero eb77790dfb protocol: fix asking for pruned blocks for v10
Old format is still alloewd there, this is a two fork update
2020-12-10 18:10:45 +00:00
moneromooo-monero 7f30c49731 simplewallet: don't complain about connecting to the daemon when offline 2020-12-10 17:57:13 +00:00
moneromooo-monero 0f34cabb98 protocol: more restrictive checks on chain entry response 2020-12-10 17:23:50 +00:00
moneromooo-monero 47590fc80b rpc: report target height as 0 when synced
since it only makes sense when syncing, and it confuses people
2020-12-10 17:05:34 +00:00
moneromooo-monero 19f77578e0 protocol: fix switchting to adding blocks if noone's adding the next span 2020-12-10 15:46:48 +00:00
moneromooo-monero 8ee3ec7296 cmake: fix "release" version string on tagged releases
It would not say "release" if we're on a previous tag
2020-12-09 22:18:44 +00:00
moneromooo-monero 281b42a281 p2p: fix race condition accessing a deleted context 2020-12-06 12:40:07 +00:00
moneromooo-monero 14bc5c095c db_lmdb: move spammy "not found in db" message to TRACE
These are functions that check whether a tx is in the db, so whether
it is there or not is really not interesting, and it seems to scare
people from time to time
2020-12-06 01:46:21 +00:00
moneromooo-monero a4e42b2d4c bump my key expiration date by 2 more years 2020-12-05 18:19:56 +00:00
moneromooo-monero bc7cd78870 p2p: drop peers that spam peer lists
There's always some people who just want to abuse things
2020-12-05 13:12:58 +00:00
moneromooo-monero 5ed604fe5b crypto: fix non zero scalar being 0 after reducing 2020-12-04 01:00:03 +00:00