Commit Graph
100 Commits
Author SHA1 Message Date
moneromooo-monero 0b26d380cd link libzmq against libgssapi_krb5 if found 2020-09-17 14:51:33 +00:00
moneromooo-monero 4971219c2c blockchain: deterministic UNIX time unlock checks
Based on a patch by TheCharlatan <seb.kung@gmail.com>
2020-09-15 11:40:28 +00:00
moneromooo-monero c3f354e6c1 simplewallet fix wrong persistent-rpc-client-id name in help 2020-09-14 20:50:35 +00:00
moneromooo-monero ef4325fd41 wallet2: fix tx sanity check triggering on pre-rct outputs 2020-09-12 17:51:41 +00:00
moneromooo-monero fc2cb224a9 blockchain: fix pow skipping for old blocks without precalc hash 2020-09-07 01:57:19 +00:00
moneromooo-monero 5498142e8f rpc: assume randomx from v13 onwards 2020-09-07 01:13:06 +00:00
moneromooo-monero 1b9fe0761c Revert "unbound: update to get build fixes"
This reverts commit 541a7c81a1.

It breaks the depends build
2020-09-06 18:15:52 +00:00
moneromooo-monero 541a7c81a1 unbound: update to get build fixes 2020-09-06 11:47:55 +00:00
moneromooo-monero b09cc3d03d hardforks: add v13/v14 for testnet 2020-09-02 17:56:48 +00:00
moneromooo-monero 6a37da837e threadpool: guard against exceptions in jobs, and armour plating
Those would, if uncaught, exit run and leave the waiter to wait
indefinitely for the number of active jobs to reach 0
2020-09-01 14:33:33 +00:00
moneromooo-moneroandSarang Noether 743608ec16 wallet: allow signing a message with spend or view key 2020-08-28 19:25:17 -04:00
moneromooo-monero e6c81c5ea7 ringct: fix CLSAG serialization after boost/epee changes
also fix a an assert message refering t MLSAG
2020-08-28 11:52:54 +00:00
moneromooo-monero 1dc427def9 core_tests: fix failures after v13
v13 enforces claiming the full block reward, so we need to keep
track of tx fees to add them to the coinbase
2020-08-28 00:18:39 +00:00
moneromooo-monero 4a9bd8f70f core_tests: remove hardcoded hf version 2020-08-28 00:14:04 +00:00
moneromooo-monero d20ff4f648 functional_tests: add a large (many randomx epochs) p2p reorg test 2020-08-27 15:13:04 +00:00
moneromooo-monero 6a0b3b1f8a functional_tests: add randomx tests 2020-08-27 15:13:03 +00:00
moneromooo-monero 9d42649d58 core: fix mining from a block that's not the current top 2020-08-27 15:13:00 +00:00
moneromooo-monero 82ee01699c Integrate CLSAGs into monero
They are allowed from v12, and MLSAGs are rejected from v13.
2020-08-27 12:44:04 +00:00
moneromooo-monero 8cd1d6df8f unit_tests: add ge_triple_scalarmult_base_vartime test 2020-08-27 12:44:01 +00:00
moneromooo-monero 839e1f4bab functional_tests: add p2p functional tests
Tests tx/block propagation and reorgs
2020-08-26 23:00:27 +00:00
moneromooo-monero 844fb4e940 enforce claiming maximum coinbase amount
Claiming a slightly lesser amount does not yield the size gains
that were seen pre rct, so this closes a fingerprinting vector
2020-08-21 12:36:53 +00:00
moneromooo-monero 7175dcb107 replace most boost serialization with existing monero serialization
This reduces the attack surface for data that can come from
malicious sources (exported output and key images, multisig
transactions...) since the monero serialization is already
exposed to the outside, and the boost lib we were using had
a few known crashers.

For interoperability, a new load-deprecated-formats wallet
setting is added (off by default). This allows loading boost
format data if there is no alternative. It will likely go
at some point, along with the ability to load those.

Notably, the peer lists file still uses the boost serialization
code, as the data it stores is define in epee, while the new
serialization code is in monero, and migrating it was fairly
hairy. Since this file is local and not obtained from anyone
else, the marginal risk is minimal, but it could be migrated
later if needed.

Some tests and tools also do, this will stay as is for now.
2020-08-17 16:23:58 +00:00
moneromooo-monero 55363c5941 Avoid some temporary strings when reading off the database 2020-08-17 14:02:27 +00:00
moneromooo-monero 07442a6059 Fix build with Boost 1.74
Thanks iDunk for testing
2020-08-16 16:23:26 +00:00
moneromooo-monero 85899230d1 simplewallet: allow setting tx keys when sending to a subaddress
The tx key derivation is different then
2020-08-10 21:25:51 +00:00
moneromooo-monero e916201f12 wallet2: fix setting tx keys when another is already set
insert doesn't actually insert if another element with the
same key is already in the map
2020-08-08 14:40:03 +00:00
moneromooo-monero 05ad4fa397 epee: further defending against exceptions in command handlers 2020-08-02 00:22:47 +00:00
moneromooo-monero db5d6e4602 wallet2: fix wrong name when checking RPC cost 2020-07-31 14:17:23 +00:00
moneromooo-monero 13eee1d6ab rpc: reject wrong sized txid
Reporter requested credit to be given to Decred
2020-07-30 22:52:14 +00:00
moneromooo-monero 92e6b7df2c easylogging++: fix crash with reentrant logging 2020-07-30 22:52:13 +00:00
moneromooo-monero 6dd95d5308 epee: guard against exceptions in RPC handlers 2020-07-30 22:52:12 +00:00
moneromooo-monero 90016ad744 blockchain: guard against exceptions in add_new_block/children
Reporter requested credit to be given to Decred
2020-07-30 22:52:11 +00:00
moneromooo-monero c1b03fb1a6 rpc: return empty txid get_outs rather than 00..00 when not requested
It's more obvious there's no txid, and it saves space
2020-07-25 17:01:21 +00:00
moneromooo-monero 8baa7bb238 daemon: don't print "(pruned)" for coinbase txes
Pruned coinbase txes are the same as unpruned ones, so the
prunable data is empty
2020-07-24 13:42:20 +00:00
moneromooo-monero 332d60719a tx_pool: mine stem txes in fake chain mode
This fixes the functional tests, since txes would not be mined
after being sent to the daemon (they'd be waiting for the
dandelion timeout first)
2020-07-09 14:52:13 +00:00
moneromooo-monero 0fd6ccef21 blockchain: fix timestamp/difficulty cache getting out of sync
The cache is discarded when a block is popped, but then gets
rebuilt when the difficulty for next block is requested.
While this is all properly locked, it does not take into account
the delay caused by a database transaction being only committed
(and thus its effects made visible to other threads) later on,
which means another thread could request difficulty between
the pop and the commit, which would end up using stale database
view to build the cache, but that cache would not be invalidated
again when the transaction gets committed, which would cause the
cache to not match the new database data.

To fix this, we now keep track of when the cache is invalidated
so we can invalidate it again upon database transaction commit
to ensure it gets calculated again with fresh data next time it
is nedeed.
2020-07-08 22:31:51 +00:00
moneromooo-monero afd002c31f daemon: print sampling time in print_net_stats 2020-06-25 13:03:59 +00:00
moneromooo-monero ec7bba0793 util: fix kilo prefix typo (K instead of k) 2020-06-25 13:03:24 +00:00
moneromooo-monero 3721d5688f epee: fix array underflow in unicode parsing
Reported by minerscan

Also independently found by OSS-Fuzz just recently
2020-06-21 18:22:16 +00:00
moneromooo-monero e334280127 python-rpc: fix bad in_peers parameter 2020-06-17 14:34:16 +00:00
moneromooo-monero 267ce5b718 avoid a couple needless copies 2020-06-14 18:05:35 +00:00
moneromooo-monero bde7f1c5cc fuzz_tests: fix init check in oss-fuzz mode 2020-06-14 16:10:49 +00:00
moneromooo-monero c4b74208c7 Do not use PIE with OSS-Fuzz 2020-06-14 14:03:18 +00:00
moneromooo-monero c4df8b1390 fix leaks in fuzz tests 2020-06-14 12:54:13 +00:00
moneromooo-monero 38ca1bb389 fuzz_tests: add a tx extra fuzz test 2020-06-14 12:54:10 +00:00
moneromooo-monero 795e18632c blockchain: fix total_height in getblocks.bin response 2020-06-05 15:27:07 +00:00
moneromooo-monero 4df8f9c414 rpc: fix loading rpc payment data from file
Got broken after making one of those micro optimizations requested on review..
2020-06-05 11:21:24 +00:00
moneromooo-monero b6e904e547 README: mention pruning 2020-06-01 17:48:11 +00:00
moneromooo-monero dc1a053081 rpc: fix comparison of seconds vs microseconds 2020-05-31 22:28:23 +00:00
moneromooo-monero eb1b321fe2 miner: increase min/max intervals to full extents
This prevents setting target to, eg, 65 being ignored

and remove an unused constant
2020-05-31 12:36:47 +00:00
moneromooo-monero 9b86e14c5a functional_tests: add simple relay_tx test 2020-05-28 12:49:17 +00:00
moneromooo-monero 6e4a55ba7e rpc: fix relay_tx error return mixup 2020-05-28 11:33:27 +00:00
moneromooo-monero 6f5411d305 tests: fix missing error on missing python entry point 2020-05-27 13:11:01 +00:00
moneromooo-monero c6dc2850c2 python-rpc: add missing sync_txpool python entry point 2020-05-27 13:11:00 +00:00
moneromooo-monero bcef52d430 daemon: remove time based "update needed" status string 2020-05-24 21:44:03 +00:00
moneromooo-moneroandrbrunner7 82d21f5b3c easylogging++: sanitize log payload
Some of it might be coming from untrusted sources

Reported by itsunixiknowthis
2020-05-24 08:38:59 +02:00
moneromooo-monero 78d435a5fa rpc: don't display invalid json errors on default log level
It's not something the user needs to know, and will display
attacker controlled data
2020-05-23 12:26:49 +00:00
moneromooo-monero 4d3c2d0b7b rpc: add a sanity limit to a few RPC in restricted mode 2020-05-20 19:17:49 +00:00
moneromooo-monero 7ebb351c2d rpc: lock access to the rpc payment object 2020-05-19 18:26:28 +00:00
moneromooo-monero f0371210e9 cryptonote_core: remove "We are most likely forked" message
It's time based and we don't have forks every 6 months anymore
2020-05-19 16:27:24 +00:00
moneromooo-monero 567402c508 protocol: move the "peer claims higher version" warning to debug
Because there's a neverending supply of cunts claiming a wrong
version just to say "look at me" I guess
2020-05-19 16:14:53 +00:00
moneromooo-monero 72cdfa4a20 fix a few typos in error messages
Reported by adrelanos
2020-05-19 15:59:26 +00:00
moneromooo-monero c17fe815a2 wallet2: fix multisig data clearing stomping on a vector 2020-05-19 10:45:40 +00:00
moneromooo-monero f1d0457523 cryptonote_protocol: stricter limit to number of objects requested
Reported by xnbya
2020-05-19 10:33:03 +00:00
moneromooo-monero bb5c5dff15 cryptonote_protocol: reject requests/notifications before handshake
Reported by xnbya
2020-05-19 10:33:02 +00:00
moneromooo-monero ca60d60fea easylogging++: sanitize log payload
Some of it might be coming from untrusted sources

Reported by itsunixiknowthis
2020-05-19 10:31:28 +00:00
moneromooo-monero bd69e3b37a testdb: add override in a couple places where it's missing 2020-05-18 14:17:48 +00:00
moneromooo-monero 5ed37ba83c serialization: fix bad rapidjson api usage 2020-05-18 14:17:23 +00:00
moneromooo-monero 5741b4d74d blockchain: detect and log bad difficulty calculations 2020-05-17 12:44:45 +00:00
moneromooo-monero eda1675858 wallet_rpc_server: use unlock_time in suggested confirmations calc 2020-05-17 01:03:32 +00:00
moneromooo-monero 35665df206 protocol: don't drop a connection if we can't get a compatible chain
This can now happen if:
- we have a pruned db
- we have not connected to the monero network for a while
- we connect to a node
- that node asks us for history
- we only have a pruned version of the most recent common block

In that case, it's better to not reply but keep the connection alive,
so we can sync off it.
2020-05-16 19:55:31 +00:00
moneromooo-monero 85164a8daf epee: use memwipe rather than memset for md5 secrets
That's used by HTTP auth now
2020-05-16 18:12:55 +00:00
moneromooo-monero 7178bb5c84 keccak: remove aligned check
Some tools report the alignment check as UB, which seems a bit
dubious, but since the performance difference between the two
versions is minimal, I'll go with the safe version
2020-05-16 12:28:27 +00:00
moneromooo-monero 5e0ea6e95c simplewallet: add missing calls to on_command
It resets the inactivity time
2020-05-16 00:48:44 +00:00
moneromooo-monero bd96536637 db_lmdb: test for mmap support at init time
It'll make it clearer when a DB init failure is due to being
on a filesystem which does not support mmap
2020-05-16 00:20:22 +00:00
moneromooo-monero cb4edc1f45 cmake: ASAN and PIE don't mix
Binaries built with both crash on startup with maybe 25% probability
2020-05-15 17:18:50 +00:00
moneromooo-monero 81773f55a4 fuzz_tests: refactor and add OSS-Fuzz compatibility 2020-05-15 17:18:27 +00:00
moneromooo-monero 86cf811a39 simplewallet: don't complain about incoming payment ids on change 2020-05-13 23:28:31 +00:00
moneromooo-monero 5d882f4f14 blockchain: fix theoretical race getting bulk timestamps 2020-05-13 13:42:41 +00:00
moneromooo-monero 70609d7681 cryptonote_core: take out the time based upgrade warning
It doesn't really work anymore since we don't have a fork soon
2020-05-06 18:27:23 +00:00
moneromooo-monero f80ab3edde cryptonote_protocol: do not request pruned borromean sig txes
We don't have a function to calculate their weight from a pruned
version (yet).
2020-05-06 12:44:00 +00:00
moneromooo-monero db8563cb46 performance_tests: some windows fixes
Too many iterations cause std::bad_alloc for the timings vector,
and the micro prefix displays as some other character, so use u.

Reported by iDunk
2020-05-03 14:11:45 +00:00
moneromooo-monero 7a8c1eece9 wallet2: fix subaddress expansion when receiving monero 2020-04-27 16:48:19 +00:00
moneromooo-monero e7d01056f4 message_store: don't print an error when there is no mms file
It confuses people
2020-04-27 15:44:29 +00:00
moneromooo-monero 2efbd5f0cc cryptonote: fix reuse of non default tx data when relaying
An automatic tx variable is initialized properly on the first
run through the loop, but not the second. Moving the variable
inside the loop ensures the ctor is called again to init it.
2020-04-22 16:50:20 +00:00
moneromooo-monero 8b655de8ed simplewallet: report timestamp based expected unlock time on balance 2020-04-22 13:34:58 +00:00
moneromooo-monero 613071f4fa use memwipe on secret k/alpha values
Reported by UkoeHB_ and sarang
2020-04-15 01:16:31 +00:00
moneromooo-monero 27d551d12f simplewallet: add sweep_account command
Expects an account number, then the usual sweep_all options

Useful to move monero that was accidentally sent to a subaddress
with a very large account index.
2020-04-14 15:06:46 +00:00
moneromooo-monero 69b5992296 simplewallet: new "address one-off <major> <minor>" command 2020-04-07 16:25:01 +00:00
moneromooo-monero 7326b691d3 functional_tests: ensure signatures never reuse a timestamp 2020-04-06 16:11:36 +00:00
moneromooo-monero 082dd2c373 functional_tests: ensure signed timestamps are fresh
This fixes a test failure now that timestamps are more constrained
2020-04-06 14:06:36 +00:00
moneromooo-monero 21fe6a289b p2p: fix frequent weak_ptr exception on connection
When a handshake fails, it can fail due to timeout or destroyed
connection, in which case the connection will be, or already is,
closed, and we don't want to do it twice.
Additionally, when closing a connection directly from the top
level code, ensure the connection is gone from the m_connects
list so it won't be used again.

AFAICT this is now clean in netstat, /proc/PID/fd and print_cn.

This fixes a noisy (but harmless) exception.
2020-03-31 20:29:41 +00:00
moneromooo-monero 5ef7138d86 daemon: fix print_net_stats RPC calls 2020-03-29 13:45:58 +00:00
moneromooo-monero 9989cb087e simplewallet: warn about correlations if print-ring-members is not set
The warning about spending more than one output with similar creation
time was skipped if print-ring-members was not set, and it defaults to
false, which means most people probably aren't getting this warning if
they spend correlated outputs.

Reported by SeventhAlpaca.
2020-03-28 11:46:06 +00:00
moneromooo-monero 8d230473ef p2p: add another seed node
Node from syksy, administered by mooo
2020-03-27 22:51:44 +00:00
moneromooo-monero f5a11f05fe functional_tests: speed up signature generation
Executing a new binary for each signature can get really slow
2020-03-26 11:33:58 +00:00
moneromooo-monero e69acffdc8 functional_tests: update cookie at 10 seconds interval
Otherwise the daemon will start rejecting
2020-03-26 11:33:55 +00:00
moneromooo-monero 054b4c7f41 protocol: request txpool contents when synced
A newly synced Alice sends a (typically quite small) list of
txids in the local tpxool to a random peer Bob, who then uses
the existing tx relay system to send Alice any tx in his txpool
which is not in the list Alice sent
2020-03-22 16:03:31 +00:00
moneromooo-monero bcae95a22e p2p: do not add recently failed addresses to the peerlist 2020-03-20 15:45:26 +00:00
moneromooo-monero f8d76f395b core: move the LockedTXN class out of txpool so it may be reused
for example, in the RPC server
2020-03-12 11:30:05 +00:00