moneromooo-monero
88fde0309a
blockchain: fix sync at v14 boundary
...
Miners with MLSAG txes which they'd already verified included
a couple in that block, but the consensus rules had changed
in the meantime, so that block is technically invalid and any
node which did not already have those two txes in their txpool
could not sync. Grandfather them in, since it has no effect in
practice.
2020-10-18 11:52:33 +00:00
moneromooo-monero
fcbfb0a00a
wallet2: fix missing m_state field in wallet serialization
2020-10-12 15:35:52 +00:00
moneromooo-monero
11b20229c9
tx_pool: silence spammy harmless warning till we fix the bug
2020-10-12 14:07:40 +00:00
moneromooo-monero
b6c4f8cd54
fix a couple bugs found by OSS-fuzz
...
- index out of bounds when importing outputs
- accessing invalid CLSAG data
2020-09-24 15:30:38 +00:00
moneromooo-monero
6ee9f12607
fuzz_tests: fix build error in signature fuzz test
2020-09-24 15:17:57 +00:00
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-monero and Sarang 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-monero and rbrunner7
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