Commit Graph

7055 Commits

Author SHA1 Message Date
rbrunner7
7d0b7e83ef [master] MMS: New 'config_checksum' subcommand 2020-05-24 10:23:55 +02:00
moneromooo-monero
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
xiphon
a6803231e6 daemon: complain if data dir resides on FAT32 volume (Windows) 2020-05-21 15:23:44 +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
selsta
1d31e6c000
net_node: remove dead seed nodes 2020-05-20 01:06:03 +02: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
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
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
Lee Clagett
a11ec4ac1d Support for supercop ASM in wallet, and benchmark for supercop 2020-05-16 10:25:17 +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
Lee Clagett
67ade80055 Add randomized delay when forwarding txes from i2p/tor -> ipv4/6 2020-05-15 07:57:35 +00:00
selsta
f35ced6d7f
build: fix boost 1.73 compatibility 2020-05-14 22:57:53 +02:00
moneromooo-monero
86cf811a39
simplewallet: don't complain about incoming payment ids on change 2020-05-13 23:28:31 +00:00
selsta
4baee200a7
build: prepare v0.16.0.0 release 2020-05-13 16:15:03 +02:00
moneromooo-monero
5d882f4f14
blockchain: fix theoretical race getting bulk timestamps 2020-05-13 13:42:41 +00:00
Dusan Klinec
ab4429346d
trezor: add new firmware version support 2020-05-12 16:31:36 +02:00
sumogr
8656a8c9ff remove double includes 2020-05-11 13:53:17 +00:00
luigi1111
77a008f714
Merge pull request #6510
70609d7 cryptonote_core: take out the time based upgrade warning (moneromooo-monero)
2020-05-07 10:44:34 -05:00
luigi1111
4c2f78aeeb
Merge pull request #6506
42e1484 wallet2: fix keys file deserialization exception handling (xiphon)
2020-05-07 10:43:05 -05:00
SomaticFanatic
5ef0607da6 Update copyright year to 2020
Update copyright year to 2020
2020-05-06 22:36:54 -04: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
luigi1111
dbba6004f5
Merge pull request #6503
f80ab3e cryptonote_protocol: do not request pruned borromean sig txes (moneromooo-monero)
2020-05-06 12:22:28 -05: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
luigi1111
f2c78f6a5b
Merge pull request #6486
feee455 Fixes for ZMQ JSON-RPC endpoint names for raw tx (vtnerd)
2020-05-06 00:34:30 -05:00
luigi1111
3de804f1e9
Merge pull request #6485
7a8c1ee wallet2: fix subaddress expansion when receiving monero (moneromooo-monero)
2020-05-06 00:31:51 -05:00
luigi1111
98e3802b26
Merge pull request #6484
e7d0105 message_store: don't print an error when there is no mms file (moneromooo-monero)
2020-05-06 00:30:39 -05:00
luigi1111
de025281dc
Merge pull request #6481
119f706 rpc: fix 'use_bootstrap_daemon_if_necessary' return value (xiphon)
2020-05-06 00:29:49 -05:00
luigi1111
9e3f72c375
Merge pull request #6480
4f489fa wallet2: check_connection return false on get_version status != OK (xiphon)
2020-05-06 00:28:18 -05:00
luigi1111
0f233c6ad8
Merge pull request #6478
ee58362 Used legacy category to match insert_key_images behavior (vtnerd)
2020-05-06 00:27:13 -05:00
luigi1111
483e5cab5c
Merge pull request #6472
2efbd5f cryptonote: fix reuse of non default tx data when relaying (moneromooo-monero)
2020-05-06 00:25:18 -05:00
luigi1111
8d0f1696df
Merge pull request #6471
c6a1294 add another seed node (Gingeropolous/selsta)
9faf3d1 Add erciccione's seed node (erciccione/selsta)
2020-05-06 00:23:59 -05:00
luigi1111
1f505a5eac
Merge pull request #6468
a813c46 cryptonote_core: skip dns checkpoints on startup if not enforced (xiphon)
2020-05-06 00:22:20 -05:00
luigi1111
6d1f3c9acd
Merge pull request #6467
8b655de simplewallet: report timestamp based expected unlock time on balance (moneromooo-monero)
2020-05-05 23:40:44 -05:00
luigi1111
b4023dcfc5
Merge pull request #6441
613071f use memwipe on secret k/alpha values (moneromooo-monero)
2020-05-05 23:39:32 -05:00
xiphon
42e14840fb wallet2: fix keys file deserialization exception handling 2020-05-05 16:34:50 +00:00
Lee Clagett
e5214a2ca2 Adding ZMQ/Pub support for txpool_add and chain_main events 2020-05-04 02:06:35 +00:00
luigi1111
8185054db7
Merge pull request #6451
4ed60b6 Bulletproofs: verification speedup (SarangNoether)
2020-05-02 15:14:41 -05:00
luigi1111
ec90f9a54b
Merge pull request #6453
d2d3a81 bootstrap_daemon: fix missing virtual destructor and lambda capture (clang warning) (xiphon)
2020-05-01 15:47:47 -05:00
luigi1111
ac9f7c9bec
Merge pull request #6449
27d551d simplewallet: add sweep_account command (moneromooo-monero)
2020-05-01 15:36:19 -05:00
luigi1111
c9b800a787
Merge pull request #6446
e509ede trezor: adapt to new passphrase mechanism (ph4r05)
2020-05-01 15:32:52 -05:00
luigi1111
f020b24b02
Merge pull request #6444
b367630 simplewallet : missing function block separator (sumogr)
2020-05-01 15:24:33 -05:00
luigi1111
6e7b883212
Merge pull request #6443
145be6d p2p: startup speedup, init seed nodes on first 'connect_to_seed()' (xiphon)
2020-05-01 15:23:05 -05:00
luigi1111
6b7e88e16c
Merge pull request #6440
7c4a400 simplewallet: fix strings (show_transfers & export_transfers) (sumogr)
2020-05-01 15:21:57 -05:00
luigi1111
443f5c6bda
Merge pull request #6436
688a3e8 Add timelock verification on device (cslashm)
2020-05-01 15:20:05 -05:00
luigi1111
3e21e591b8
Merge pull request #6350
da99157 Use byte_slice for sending zmq messages - removes data copy within zmq (vtnerd)
2020-05-01 15:13:58 -05:00
Sumo Gr
dd807b8410 txpool.cpp: rename var to fix for old g++ version (xenial default) 2020-04-29 10:03:51 +00:00
Lee Clagett
feee455c9f Fixes for ZMQ JSON-RPC endpoint names for raw tx 2020-04-29 01:07:27 -04:00
moneromooo-monero
7a8c1eece9
wallet2: fix subaddress expansion when receiving monero 2020-04-27 16:48:19 +00:00
Dusan Klinec
e509ede2aa
trezor: adapt to new passphrase mechanism
- choice where to enter passphrase is now made on the host
- use wipeable string in the comm stack
- wipe passphrase memory
- protocol optimizations, prepare for new firmware version
- minor fixes and improvements
- tests fixes, HF12 support
2020-04-27 18:17:56 +02: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
xiphon
119f706921 rpc: fix 'use_bootstrap_daemon_if_necessary' return value 2020-04-27 10:32:33 +00:00
xiphon
4f489fa6a2 wallet2: check_connection return false on get_version status != OK 2020-04-26 13:08:17 +00:00
Lee Clagett
ee58362b1f Used legacy category to match insert_key_images behavior 2020-04-24 20:19:37 -04: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
Gingeropolous
c6a1294b5e
add another seed node
node is funded by random people and managed by me. currently functioning as public node at uwillrunanodesoon.moneroworld.com
2020-04-22 15:43:22 +02:00
moneromooo-monero
8b655de8ed
simplewallet: report timestamp based expected unlock time on balance 2020-04-22 13:34:58 +00:00
erciccione
9faf3d1a72
Add erciccione's seed node 2020-04-22 10:24:40 +02:00
xiphon
145be6dbdb p2p: startup speedup, init seed nodes on first 'connect_to_seed()' 2020-04-21 23:40:04 +00:00
luigi1111
378cdeaeae
Merge pull request #6470
79a1653 p2p: add seed node. (guywillett)
2020-04-21 09:14:38 -05:00
luigi1111
c846c8650e
Merge pull request #6445
5715460 Always reject duplicate key-images from second txid (vtnerd)
babf25d Allow unrestricted rpc calls to get full txpool info (vtnerd)
2020-04-21 09:03:37 -05:00
luigi1111
cc91c0221d
Merge pull request #6415
09abca7 wallet_api: checkUpdate - optional version and buildtag params (xiphon)
2020-04-21 08:52:57 -05:00
luigi1111
cb8f4280bb
Merge pull request #6408
5ef7138 daemon: fix print_net_stats RPC calls (moneromooo-monero)
2020-04-21 08:46:39 -05:00
guy
79a1653a07 p2p: add seed node. 2020-04-21 15:35:30 +02:00
luigi1111
2d729fbdf7
Merge pull request #6332
87d7558 Allow wallet2.h to run in WebAssembly (woodser)
2020-04-21 08:26:54 -05:00
luigi1111
9c660e159e
Merge pull request #6278
387fd66 Daemon: Print estimates for time until fully synced (rbrunner7)
2020-04-21 08:19:02 -05:00
xiphon
a813c46a1b cryptonote_core: skip dns checkpoints on startup if not enforced 2020-04-20 18:56:22 +00:00
xiphon
d2d3a81d0e bootstrap_daemon: fix missing virtual destructor and lambda capture (clang warning) 2020-04-15 21:22:55 +00:00
woodser
87d75584e8 Allow wallet2.h to run in WebAssembly
- Add abstract_http_client.h which http_client.h extends.
- Replace simple_http_client with abstract_http_client in wallet2,
message_store, message_transporter, and node_rpc_proxy.
- Import and export wallet data in wallet2.
- Use #if defined __EMSCRIPTEN__ directives to skip incompatible code.
2020-04-15 13:22:46 -04:00
moneromooo-monero
613071f4fa
use memwipe on secret k/alpha values
Reported by UkoeHB_ and sarang
2020-04-15 01:16:31 +00:00
Sarang Noether
4ed60b626a Bulletproofs: verification speedup 2020-04-14 20:31:30 -04: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
Lee Clagett
c26c93019a Add byte_stream for zero-copy serialization, and add support in ZMQ-JSON. 2020-04-11 04:12:11 +00:00
luigi1111
7c74e1919e
Merge pull request #6405
8d23047 p2p: add another seed node (moneromooo-monero)
2020-04-10 16:13:04 -05:00
luigi1111
228af683a7
Merge pull request #6403
5de2295 Correct key image check in tx_pool (vtnerd)
2020-04-10 16:10:33 -05:00
luigi1111
bce050ee78
Merge pull request #6394
69b5992 simplewallet: new 'address one-off <major> <minor>' command (moneromooo-monero)
2020-04-10 16:06:10 -05:00
luigi1111
7954f8cb18
Merge pull request #6358
8958b4e blockchain_db: faster fetching of consecutive txes (moneromooo-monero)
2020-04-10 16:01:37 -05:00
luigi1111
53800b3b63
Merge pull request #6341
927fd47 simplewallet: fix smart mining not starting after first setup (moneromooo-monero)
2020-04-10 15:59:14 -05:00
Sumo Gr
b367630ee8
simplewallet : missing function block separator 2020-04-10 21:27:41 +03:00
sumogr
7c4a4003a3 simplewallet: fix strings (show_transfers & export_transfers) 2020-04-08 19:17:58 +03:00
cslashm
688a3e87e7 Add timelock verification on device 2020-04-08 11:12:32 +02:00
moneromooo-monero
69b5992296
simplewallet: new "address one-off <major> <minor>" command 2020-04-07 16:25:01 +00:00
luigi1111
bbceb31044
Merge pull request #6395
ad13a4b Fixing static_asserts in ZMQ JSON (vtnerd)
2020-04-04 13:17:54 -05:00
luigi1111
d102a72027
Merge pull request #6384
ec01077 db_lmdb: fix race crash using a stale cursor (moneromooo-monero)
2020-04-04 13:14:19 -05:00
luigi1111
d1f3d3376d
Merge pull request #6381
e719760 Fix receive order leakage with tx fluffing (vtnerd)
2020-04-04 13:12:31 -05:00
luigi1111
975825a1fd
Merge pull request #6375
ebf3c10 Added logging for dropped local txes with no i2p/tor connections (vtnerd)
2020-04-04 13:11:30 -05:00
luigi1111
97af9649c9
Merge pull request #6372
7b9017f p2p: plug tor to clearnet association vector (Aaron Hook)
2020-04-04 13:09:55 -05:00
luigi1111
59ab769210
Merge pull request #6364
6e1cb5a device: Ledger - fix wide char hidapi error string conversion (xiphon)
2020-04-04 13:02:18 -05:00
luigi1111
5757d99208
Merge pull request #6361
68a6507 Fixed bug in ZMQ JSON-RPC method field (vtnerd)
2020-04-04 13:01:15 -05:00
luigi1111
0150a480fd
Merge pull request #6357
42a7a4d daemon: auto public nodes - cache and prioritize most stable nodes (xiphon)
2020-04-04 12:59:23 -05:00
luigi1111
6a6eedd842
Merge pull request #6353
6810150 daemon: if no banned IPs print something (sumogr)
2020-04-04 12:56:36 -05:00
luigi1111
cfc0f4a7fa
Merge pull request #6351
81c5943 Remove temporary std::string creation in some hex->bin calls (vtnerd)
5fcc23a Move hex->bin conversion to monero copyright files and with less includes (vtnerd)
3387f0e Reduce template bloat in hex->bin for ZMQ json (vtnerd)
2020-04-04 12:55:02 -05:00
luigi1111
44547006bf
Merge pull request #6347
fcb06f7 cryptonote_core: skip block notify on blockchain switching rollback (xiphon)
2020-04-04 12:52:46 -05:00
luigi1111
ad5200e440
Merge pull request #6342
82da832 rpc: Add check for too old timestamps in payment signatures. (glv2)
2020-04-04 12:49:02 -05:00
luigi1111
c4f75fe898
Merge pull request #6339
c61abf8 remove empty statements (shopglobal)
2020-04-04 12:47:31 -05:00
luigi1111
081d49c59f
Merge pull request #6338
80d5320 Hash domain separation (SarangNoether)
2020-04-04 12:44:45 -05:00
luigi1111
6011064693
Merge pull request #6334
cc18926 wallet2_api: wallet recovery - seed offset passphrase support (xiphon)
2020-04-04 12:41:32 -05:00
luigi1111
0bb7191fd6
Merge pull request #6328
9bde70e core: mention time being off in hash rate changes message (moneromooo-monero)
2020-04-04 12:40:18 -05:00
luigi1111
85efaeb7bf
Merge pull request #6322
29b7cd1 device_ledger: include status code name in error message (xiphon)
2020-04-04 12:39:21 -05:00
luigi1111
ab802b4b80
Merge pull request #6321
1a6e7bd wallet2: mention --daemon-ssl-allow-any-cert in --proxy error msg (xiphon)
2020-04-04 12:37:26 -05:00
luigi1111
4398facb2e
Merge pull request #6286
6d6af70 cryptonote_basic: drop unused verification_context::m_not_rct field (xiphon)
2020-04-04 12:33:32 -05:00
Lee Clagett
da99157462 Use byte_slice for sending zmq messages - removes data copy within zmq 2020-04-03 01:56:17 +00:00
xiphon
09abca76ae wallet_api: checkUpdate - optional version and buildtag params 2020-04-02 00:31:43 +00:00
Sarang Noether
80d5320fff Hash domain separation 2020-04-01 08:31:00 -04:00
xiphon
6d6af701ec cryptonote_basic: drop unused verification_context::m_not_rct field 2020-03-31 21:58:25 +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
luigi1111
6c7d928f19
Merge pull request #6336
760ecf2 console_handler: do not let exception past the dor (moneromooo-monero)
09c8111 threadpool: lock mutex in create (moneromooo-monero)
e377977 tx_pool: catch theoretical error in get_block_reward (moneromooo-monero)
2020-03-31 15:14:12 -05:00
luigi1111
94f44d4ee3
Merge pull request #6325
3627e53 rpc: fix print_pool_sh not finding local txes (moneromooo-monero)
2020-03-31 15:13:51 -05:00
luigi1111
f9de65b546
Merge pull request #6304
2e9d1e6 wallet2: fix store-tx-info loading (moneromooo-monero)
2020-03-31 15:13:19 -05:00
luigi1111
d0065f3063
Merge pull request #6302
dab604e wallet2_api: implement estimateTransactionFee (xiphon)
2020-03-31 15:12:48 -05:00
luigi1111
8a829e2cc4
Merge pull request #6301
9989cb0 simplewallet: warn about correlations if print-ring-members is not set (moneromooo-monero)
2020-03-31 13:37:19 -05:00
luigi1111
0253f86fde
Merge pull request #6298
fe92fa1 [randomx] Add missing randomx_vm_set_cache() (cohcho)
2020-03-31 13:36:21 -05:00
luigi1111
ccc3726d86
Merge pull request #6260
320bc84 rpc: add --rpc-payment-allow-free-loopback (moneromooo-monero)
2020-03-31 13:35:16 -05:00
luigi1111
096e2135dd
Merge pull request #6214
054b4c7 protocol: request txpool contents when synced (moneromooo-monero)
2020-03-31 13:32:55 -05:00
Lee Clagett
571546067f Always reject duplicate key-images from second txid 2020-03-30 17:52:42 +00:00
Lee Clagett
babf25d2ec Allow unrestricted rpc calls to get full txpool info 2020-03-30 17:52:42 +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
Alexander Blair
72262b348a
Merge pull request #6299
9c1f970b wallet2: remember daemon address overrides when loading a new wallet (moneromooo-monero)
2020-03-27 12:33:15 -07:00
Alexander Blair
5780594202
Merge pull request #6296
50e59cfa wallet2: reject zero keys in json input (moneromooo-monero)
2020-03-27 12:31:59 -07:00
Alexander Blair
3ed5e7ce9f
Merge pull request #6295
bcae95a2 p2p: do not add recently failed addresses to the peerlist (moneromooo-monero)
2020-03-27 12:30:06 -07:00
Alexander Blair
8cb005b39c
Merge pull request #6289
ffe7165e wallet: reroll fake outs selection on local tx_sanity_check failure (xiphon)
2020-03-27 12:28:29 -07:00
Alexander Blair
5ba6eef272
Merge pull request #6288
0349347e ringdb: use a different iv for key and data in rings table (moneromooo-monero)
7b882087 simplewallet: reword mixin in user message in terms of ring size (moneromooo-monero)
f507a43a wallet2: do not remove known rings when a tx fails (moneromooo-monero)
2020-03-27 12:23:59 -07:00
Alexander Blair
7d4a93fab3
Merge pull request #6285
d0641b42 net: fix incorrect less operator for top/i2p addresses (Aaron Hook)
2020-03-27 12:23:00 -07:00
Alexander Blair
aa982a51da
Merge pull request #6284
02224e71 Fix check_fee() discrepancy. (UkoeHB)
2020-03-27 12:21:26 -07:00
Alexander Blair
e160e0b517
Merge pull request #6283
a84131ce p2p: fix off by one adding fallback peers (moneromooo-monero)
2020-03-27 12:19:55 -07:00
Alexander Blair
a762084b15
Merge pull request #6282
66472074 Daemon: Guard against reporting "synchronized" too early (rbrunner7)
2020-03-27 12:19:07 -07:00
Alexander Blair
c038cc8b79
Merge pull request #6280
b818522d p2p: fix spurious warning when we're connected to at last one seed (moneromooo-monero)
2020-03-27 12:17:54 -07:00
Alexander Blair
3baa68bbab
Merge pull request #6279
36bdf402 p2p: fix adding wrong indices to the filtered peer list (moneromooo-monero)
2020-03-27 12:17:07 -07:00
Alexander Blair
a22cf5de1b
Merge pull request #6275
aa93e388 p2p: remove old debug commands (Aaron Hook)
2020-03-27 12:16:30 -07:00
Alexander Blair
338824add3
Merge pull request #6227
f8d76f39 core: move the LockedTXN class out of txpool so it may be reused (moneromooo-monero)
2020-03-27 12:15:37 -07:00
Lee Clagett
02d887c2e5 Adding Dandelion++ support to public networks:
- New flag in NOTIFY_NEW_TRANSACTION to indicate stem mode
  - Stem loops detected in tx_pool.cpp
  - Embargo timeout for a blackhole attack during stem phase
2020-03-26 15:01:30 +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
rbrunner7
387fd668d1 Daemon: Print estimates for time until fully synced 2020-03-21 07:32:55 +01:00
Aaron Hook
aa93e38862 p2p: remove old debug commands 2020-03-20 22:09:44 -07:00
moneromooo-monero
bcae95a22e
p2p: do not add recently failed addresses to the peerlist 2020-03-20 15:45:26 +00:00
Lee Clagett
ad13a4b2ac Fixing static_asserts in ZMQ JSON 2020-03-19 19:49:51 -04:00
Lee Clagett
5de2295f3c Correct key image check in tx_pool 2020-03-14 19:17:15 +00:00
xiphon
c075aa7a6c workaround for GetObject windows.h macro and rapidjson conflict 2020-03-14 00:46:47 +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
moneromooo-monero
320bc845b3
rpc: add --rpc-payment-allow-free-loopback
This allows RPC coming from the loopback interface to not have
to pay for service. This makes it possible to run an externally
accessible RPC server for payment while also having a local RPC
server that can be run unrestricted and payment free.
2020-03-12 11:27:34 +00:00
Alexander Blair
820ab9fdea
Merge pull request #6273
0f78b06e Various improvements to the ZMQ JSON-RPC handling: (Lee Clagett)
2020-03-12 01:13:49 -07:00
Alexander Blair
d500bbe68f
Merge pull request #6268
a6c24412 wallet: fix exceptions getting the hash of a pruned tx (moneromooo-monero)
2020-03-12 01:02:31 -07:00
Alexander Blair
092a57df99
Merge pull request #6243
4771a7ae p2p: remove obsolete local time in handshake (moneromooo-monero)
2fbbc4a2 p2p: avoid sending the same peer list over and over (moneromooo-monero)
3004835b epee: remove backward compatible endian specific address serialization (moneromooo-monero)
39a343d7 p2p: remove backward compatible peer list (moneromooo-monero)
60631802 p2p: simplify last_seen serialization now we have optional stores (moneromooo-monero)
9467b2e4 cryptonote_protocol: omit top 64 bits of difficulty when 0 (moneromooo-monero)
b595583f serialization: do not write optional fields with default value (moneromooo-monero)
5f98b46d p2p: remove obsolete local time from TIMED_SYNC (moneromooo-monero)
2020-03-12 00:32:46 -07:00
moneromooo-monero
ec01077720
db_lmdb: fix race crash using a stale cursor
If a db resize happened, the txpool meta cursor might be stale,
and was not being renewed when necessary.
It would cause this SEGSEGV:

in mdb_cursor_set ()
in mdb_cursor_get ()
in cryptonote::BlockchainLMDB::get_txpool_tx_blob(crypto::hash const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, cryptonote::relay_category) const ()
in cryptonote::tx_memory_pool::get_transaction(crypto::hash const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, cryptonote::relay_category) const ()
in cryptonote::t_cryptonote_protocol_handler<cryptonote::core>::handle_notify_new_fluffy_block(int, epee::misc_utils::struct_init<cryptonote::NOTIFY_NEW_FLUFFY_BLOCK::request_t>&, cryptonote::cryptonote_connection_context&) ()
2020-03-12 00:57:32 +00:00
Lee Clagett
e719760253 Fix receive order leakage with tx fluffing 2020-03-10 22:30:07 -04:00
Lee Clagett
3387f0e327 Reduce template bloat in hex->bin for ZMQ json 2020-03-09 17:55:55 +00:00
Lee Clagett
5fcc23ae0a Move hex->bin conversion to monero copyright files and with less includes 2020-03-09 05:23:59 +00:00
Aaron Hook
7b9017f671
p2p: plug tor to clearnet association vector
During the handshake for an incoming connection, the peer id is checked against the local node's peer id only for the specific zone of the incoming peer, in order to avoid linking public addresses to tor addresses:
5d7ae2d279/src/p2p/net_node.inl (L2343)

However, on handshakes for outgoing connections, all zones are checked:
5d7ae2d279/src/p2p/net_node.inl (L1064)

If an attacker wanted to link a specific tor node to a public node, they could potentially connect to as many public nodes as possible, get themselves added to the peer whitelist, maybe stuff some more attacker-owned addresses into the greylist, then disconnect, and for any future incoming connections, respond with the tor node's id in an attempt to link the public/tor addresses.
2020-03-07 18:12:59 +00:00
moneromooo-monero
9c1f970b82
wallet2: remember daemon address overrides when loading a new wallet 2020-03-07 18:09:31 +00:00
Lee Clagett
ebf3c10fcb Added logging for dropped local txes with no i2p/tor connections 2020-03-07 00:03:17 +00:00
Lee Clagett
0f78b06e8c Various improvements to the ZMQ JSON-RPC handling:
- Finding handling function in ZMQ JSON-RPC now uses binary search
  - Temporary `std::vector`s in JSON output now use `epee::span` to
    prevent allocations.
  - Binary -> hex in JSON output no longer allocates temporary buffer
  - C++ structs -> JSON skips intermediate DOM creation, and instead
    write directly to an output stream.
2020-03-05 14:20:56 +00:00
xiphon
6e1cb5a4d0 device: Ledger - fix wide char hidapi error string conversion 2020-03-01 11:42:48 +00:00
Alexander Blair
4764d18eeb
Merge pull request #6248
21c3d42e p2p: drop the peerlist dump to TRACE (moneromooo-monero)
2020-02-28 20:21:27 -08:00
Alexander Blair
da617ac1b0
Merge pull request #6238
f717d593 wallet2: guard against race with multiple decrypt_keys users (moneromooo-monero)
2020-02-28 20:21:06 -08:00
Alexander Blair
ea6396ea66
Merge pull request #6222
a6a2ad6c simplewallet: set manual refresh mode in rescan_bc (moneromooo-monero)
2020-02-28 19:59:43 -08:00
Alexander Blair
8c2939a7cb
Merge pull request #6058
88b82bef simplewallet: point to "set help" in the lock screen message (moneromooo-monero)
f19c9f23 util: allow newlines in string to be split (moneromooo-monero)
2020-02-28 19:54:37 -08:00
Alexander Blair
f3fddd935f
Merge pull request #6259
69336931 rpc: fill miner_tx_hash again (moneromooo-monero)
2020-02-28 19:51:15 -08:00
Alexander Blair
9ea7df3b31
Merge pull request #6242
716012ca rpc: drop the obsolete and wrong "unpruned size" log (moneromooo-monero)
2020-02-28 19:50:02 -08:00
Alexander Blair
5bd496e8ef
Merge pull request #6241
ae84ec90 wallet-cli/rpc: allow sweep_all to use outputs in all subaddresses within an account (stoffu)
2020-02-28 19:49:41 -08:00
Alexander Blair
19ce033299
Merge pull request #6236
bc6d8aa3 Corrected message typo (palomato)
2020-02-28 19:49:07 -08:00
Alexander Blair
a6cf4b09e7
Merge pull request #6235
5cbb17b9 wallet2: fix hang in wallet refresh (moneromooo-monero)
2020-02-28 19:48:41 -08:00
Alexander Blair
4371ac4265
Merge pull request #6225
987c3139 print_coinbase_tx_sum now supports 128 bits sums (moneromooo-monero)
2020-02-28 19:48:11 -08:00
Alexander Blair
2deb02f81d
Merge pull request #6224
d93e1dff simplewallet: warn on refresh if refresh-from-block-height seems off (moneromooo-monero)
2020-02-28 19:46:33 -08:00
Alexander Blair
6742c4acb7
Merge pull request #6223
c3613031 Silence miner debugmsg spam (Howard Chu)
2020-02-28 19:45:55 -08:00
Alexander Blair
afff9e7041
Merge pull request #6219
72ca7e3b Fix time comparison math (Jason Rhinelander)
2020-02-28 19:43:44 -08:00
Alexander Blair
e22655a187
Merge pull request #6215
a2578892 --disable-ban-rpc option to prevent RPC users from banning (naughtyfox)
2020-02-28 19:43:06 -08:00
Alexander Blair
5e492c4cbc
Merge pull request #6213
94266eeb simplewallet: fix output age display with duplicate heights (moneromooo-monero)
f1d379d2 simplewallet: fix "outputs in same tx" detector (moneromooo-monero)
2020-02-28 19:36:41 -08:00
Alexander Blair
4da37daf67
Merge pull request #6211
5985c5af rpc: add bad-blocks to flush_cache RPC (moneromooo-monero)
2020-02-28 19:36:16 -08:00
Alexander Blair
8606b1a14a
Merge pull request #6203
ef95a76d remove unused variable 'ptx' from on_describe_transfer() (woodser)
2020-02-28 19:34:41 -08:00
xiphon
42a7a4dd32 daemon: auto public nodes - cache and prioritize most stable nodes 2020-02-28 08:06:43 +00:00
moneromooo-monero
8958b4e7aa
blockchain_db: faster fetching of consecutive txes
Useful for wallet refresh or node sync
2020-02-27 15:05:34 +00:00
sumogr
6810150d46 daemon: if no banned IPs print something 2020-02-24 20:52:55 +00:00
luigi1111
39e1890276
Merge pull request #6198
5f2a32c daemon: run with -rpc-payment-address and --rpc-restricted-bind-port (moneromooo-monero)
2020-02-19 22:25:44 -05:00
luigi1111
04187e5968
Merge pull request #6197
f812783 simplewallet: fix encrypted payment id note triggering on dummy ones (moneromooo-monero)
2020-02-19 22:24:44 -05:00
luigi1111
2de1137e60
Merge pull request #6194
316ab7b wallet2: better error when restoring a wallet with the wrong keys (moneromooo-monero)
2020-02-19 22:23:46 -05:00
luigi1111
22a0367398
Merge pull request #6190
096a9db Wallet: Distingush amounts for a single subaddress (tmoravec)
2020-02-19 22:22:36 -05:00
xiphon
fcb06f7a82 cryptonote_core: skip block notify on blockchain switching rollback 2020-02-19 16:19:29 +00:00
Interchained
c61abf87c0 remove empty statements
Cleaning up a little around the code base.
2020-02-17 11:55:15 -05:00
Guillaume Le Vaillant
82da832368 rpc: Add check for too old timestamps in payment signatures. 2020-02-17 15:10:19 +01:00
moneromooo-monero
927fd47934
simplewallet: fix smart mining not starting after first setup
Also avoid rewriting the wallet if the setting is already was we need
2020-02-17 13:16:09 +00:00
moneromooo-monero
e3779775d7
tx_pool: catch theoretical error in get_block_reward
Coverity 196626
2020-02-12 21:05:28 +00:00
moneromooo-monero
09c8111c53
threadpool: lock mutex in create
In some contrived case, it might theoretically be the case that
destroy is called from another thread, which would modify the
threads array from two threads.

Coverity 208372
2020-02-12 21:05:28 +00:00
xiphon
cc18926eba wallet2_api: wallet recovery - seed offset passphrase support 2020-02-11 23:36:50 +00:00
moneromooo-monero
9bde70e567
core: mention time being off in hash rate changes message 2020-02-10 16:56:10 +00:00
moneromooo-monero
3627e53aab
rpc: fix print_pool_sh not finding local txes 2020-02-08 12:56:00 +00:00
xiphon
29b7cd1351 device_ledger: include status code name in error message 2020-02-08 01:46:39 +00:00
xiphon
1a6e7bd40f wallet2: mention --daemon-ssl-allow-any-cert in --proxy error msg 2020-02-07 10:02:27 +00:00
moneromooo-monero
c2095fc27b
miner: use verification mode for low diff one block nonce searches
This avoids lengthy init times when testing
2020-02-06 14:27:10 +00:00
Alexander Blair
bd4acbf44c
Merge pull request #6183
3813a992 download: catch exceptions checking for size (moneromooo-monero)
2020-02-06 00:34:58 -08:00
Alexander Blair
af27276452
Merge pull request #6178
7ac7d5d3 updates: fix source code URL on _WIN32 (selsta)
2020-02-06 00:33:49 -08:00
Alexander Blair
e552ba14b2
Merge pull request #6127
67b4a19e simplewallet: noob-friendly help menu (wowario)
2020-02-06 00:33:31 -08:00
Alexander Blair
995f34b538
Merge pull request #6103
4b384003 wallet2: don't try to lock an empty filename (moneromooo-monero)
2020-02-06 00:33:18 -08:00
Alexander Blair
756f06cd83
Merge pull request #6102
b328de6b wallet_rpc_server: add tx weight in transfer commands responses (moneromooo-monero)
2020-02-06 00:32:47 -08:00
Alexander Blair
8136bf37e2
Merge pull request #6096
a633f85d daemon: allow printing N blocks from the end of the chain (moneromooo-monero)
2020-02-06 00:31:50 -08:00
Alexander Blair
b8e5c769c7
Merge pull request #6095
7ba31191 daemon: add +meta print_tx parameter (moneromooo-monero)
2020-02-06 00:31:17 -08:00
Alexander Blair
78d4d5ab79
Merge pull request #6094
236d2a88 blockchain_stats: make it work on pruned blockchains (moneromooo-monero)
2020-02-06 00:30:48 -08:00
Alexander Blair
2532567091
Merge pull request #6078
b9fc2066 Add a --keep-fakechain option to keep fakechain databases (JamesWrigley)
2020-02-06 00:30:15 -08:00
Alexander Blair
cd1610bc37
Merge pull request #6076
22d30866 simplewallet: add missing inactivity-lock-timeout to set help blurb (moneromooo-monero)
9f57f0df simplewallet: do not mention inactivity if a lock was manual (moneromooo-monero)
2020-02-06 00:29:52 -08:00
Alexander Blair
3b224bb99d
Merge pull request #6069
d64e5aa7 wallet: allow message sign/verify for subaddresses (moneromooo-monero)
2020-02-06 00:29:32 -08:00
Alexander Blair
34d7ea62f6
Merge pull request #6053
deb350b7 always print peer IDs in the same format (moneromooo-monero)
2020-02-06 00:28:47 -08:00
Alexander Blair
9a08ac98c0
Merge pull request #6050
65301c40 core: point out when we hit the block rate visibility limit (moneromooo-monero)
2020-02-06 00:28:18 -08:00
Alexander Blair
9658f5d7fc
Merge pull request #6040
2f8f3a94 rpc: base flush_cache request/response on the new base structs (moneromooo-monero)
2020-02-06 00:26:34 -08:00
Alexander Blair
25c1bd4714
Merge pull request #6035
b90c4bc3 rpc: error out from get_info if the proxied call errors out (moneromooo-monero)
fa16df99 make_test_signature: exit nicely on top level exception (moneromooo-monero)
054b2621 node_rpc_proxy: init some new rpc payment fields in invalidate (moneromooo-monero)
d0faae2a rpc: init a few missing client_info members (moneromooo-monero)
d56a483a rpc: do not propagate exceptions out of a dtor (moneromooo-monero)
3c849188 rpc: always set the update field in update on sucess (moneromooo-monero)
2020-02-06 00:26:13 -08:00
luigi1111
d7aeb5a9f8
Merge pull request #6233
8a27645 blockchain: fix flushing txes from the txpool (moneromooo-monero)
2020-02-04 14:38:35 -05:00
moneromooo-monero
b818522d29
p2p: fix spurious warning when we're connected to at last one seed 2020-01-31 15:11:22 +00:00
moneromooo-monero
4771a7aec1
p2p: remove obsolete local time in handshake
Also removes a potential fingerprinting vector
2020-01-29 14:39:58 +00:00
moneromooo-monero
2fbbc4a2d3
p2p: avoid sending the same peer list over and over
Nodes remember which connections have been sent which peer addresses
and won't send it again. This causes more addresses to be sent as
the connection lifetime grows, since there is no duplication anymore,
which increases the diffusion speed of peer addresses. The whole
white list is now considered for sending, not just the most recent
seen peers. This further hardens against topology discovery, though
it will more readily send peers that have been last seen earlier
than it otherwise would. While this does save a fair amount of net
bandwidth, it makes heavy use of std::set lookups, which does bring
network_address::less up the profile, though not too aggressively.
2020-01-29 14:39:56 +00:00
moneromooo-monero
39a343d76e
p2p: remove backward compatible peer list 2020-01-26 18:37:33 +00:00
moneromooo-monero
606318026e
p2p: simplify last_seen serialization now we have optional stores 2020-01-26 18:37:32 +00:00
moneromooo-monero
9467b2e44c
cryptonote_protocol: omit top 64 bits of difficulty when 0 2020-01-26 18:37:31 +00:00
moneromooo-monero
5f98b46d58
p2p: remove obsolete local time from TIMED_SYNC 2020-01-26 18:37:26 +00:00
Alexander Blair
8eedc8a390
Merge pull request #6140
08635a08 blockchain: speedup fetching pruned contiguous tx blobs (moneromooo-monero)
2020-01-25 16:55:18 -08:00
Alexander Blair
40f82b35ae
Merge pull request #6170
56a4469e network: log traffic and add a simple traffic analysis script (moneromooo-monero)
2020-01-25 16:54:24 -08:00
moneromooo-monero
56a4469ef3
network: log traffic and add a simple traffic analysis script 2020-01-26 00:33:41 +00:00
moneromooo-monero
dd8c6b1703
wallet: do not split integrated addresses in address book api 2020-01-26 00:03:53 +00:00
xiphon
dab604e010 wallet2_api: implement estimateTransactionFee 2020-01-25 05:34:51 +00:00
Alexander Blair
59e7d5686b
Merge pull request #6093
2e58eb5c lmdb: Remove meaningless const qualifier on function type (Nathan Dorfman)
2020-01-24 20:24:44 -08:00
Alexander Blair
e8f94e7f1d
Merge pull request #6173
8231c7cd rpc: fix bootstrap RPC payment RPC being made in raw JSON, not JSON RPC (moneromooo-monero)
81c26589 rpc: don't auto fail RPC needing payment in bootstrap mode (moneromooo-monero)
2020-01-24 20:19:41 -08:00
Alexander Blair
93d49c1a54
Merge pull request #6172
d7cf8727 rpc: add received_timestamp for pool txes in gettransactions (moneromooo-monero)
2020-01-24 20:17:39 -08:00
Alexander Blair
e51ce477db
Merge pull request #6157
402dd207 db_lmdb: guard against non NUL terminated keys (moneromooo-monero)
2020-01-24 20:07:37 -08:00
Alexander Blair
159c78758a
Merge pull request #6154
3b419333 wallet: don't issue node rpc proxy requests in '--offline' mode (xiphon)
2020-01-24 20:07:01 -08:00
Alexander Blair
f20a962774
Merge pull request #6153
24adee4a p2p: don't request flags after closing connection (moneromooo-monero)
2020-01-24 20:06:46 -08:00
Alexander Blair
d1b08c00cf
Merge pull request #6146
70c9cd3c Change to Tx diffusion (Dandelion++ fluff) instead of flooding (Lee Clagett)
2020-01-24 20:06:34 -08:00
Alexander Blair
5558919e56
Merge pull request #6128
9fe8a76c perf_timer: fix pause/resume macros dereferencing too much (moneromooo-monero)
2020-01-24 20:06:12 -08:00
moneromooo-monero
2e9d1e6e1f
wallet2: fix store-tx-info loading
The backward compatibility code was always setting it to 1
in modern wallets since store_tx_keys was not present and thus
assumed to be 1 by default.

Reported by SeventhAlpaca
2020-01-24 16:34:07 +00:00
Aaron Hook
d0641b42fe net: fix incorrect less operator for top/i2p addresses 2020-01-18 19:18:56 -08:00
cohcho
fe92fa1391 [randomx] Add missing randomx_vm_set_cache() 2020-01-17 19:25:26 +00:00
Alexander Blair
beb815a81d
Merge pull request #6144
0e0351c4 wallet_rpc_server: add count parameter to create_address (Matt Smith)
2020-01-16 17:51:25 -08:00
Alexander Blair
c39ea485a0
Merge pull request #6141
b9b5c473 threadpool: use std::move when taking an element off the queue (moneromooo-monero)
2020-01-16 17:45:44 -08:00
Alexander Blair
2ce5529680
Merge pull request #6134
a7a40e28 Actually concatenate error strings. (Bert Peters)
2020-01-16 17:42:27 -08:00
Alexander Blair
f1ca98a7ef
Merge pull request #6133
b2ad757f Replace memset with memwipe. (Bert Peters)
2020-01-16 17:41:35 -08:00
Alexander Blair
e4e70b57ca
Merge pull request #6130
6dec0013 simplewallet: fix restore height warning (selsta)
2020-01-16 17:39:03 -08:00
Alexander Blair
c4abfbfbe7
Merge pull request #6124
21d4c216 blockchain: error out if the builtin hashes data size is wrong (moneromooo-monero)
2020-01-16 17:31:35 -08:00
Alexander Blair
c6f4113265
Merge pull request #6119
6f45cfa5 p2p: zero last seen timestamp when inserting a new peer (moneromooo-monero)
2020-01-16 17:29:27 -08:00
Alexander Blair
3acb22b889
Merge pull request #6115
27522aaa core_tests: reset thread pool between tests (moneromooo-monero)
2020-01-16 17:27:15 -08:00
moneromooo-monero
50e59cfada
wallet2: reject zero keys in json input
Because the user might do this for reasons unknown.
Values beyond l-1 will be reduced, so are accepted.

Reported by who-biz.
2020-01-16 19:58:21 +00:00
xiphon
ffe7165ebf wallet: reroll fake outs selection on local tx_sanity_check failure 2020-01-14 22:56:23 +00:00
Alexander Blair
e49a055e89
Merge pull request #6112
7c1d31b0 build: fix IOS, build blockchain_db and rpc, skip wallet_rpc_server (xiphon)
2020-01-11 18:10:44 -08:00
Alexander Blair
d024695772
Merge pull request #6105
0de8a0d3 wallet_rpc_server: new estimate_tx_size_and_weight RPC (moneromooo-monero)
2020-01-11 18:04:49 -08:00
Tadeas Moravec
096a9dbdf9
Wallet: Distingush amounts for a single subaddress
Adding a new `amounts` field ot the output of `get_transfers` RPC
method. This field specifies individual payments made to a single
subaddress in a single transaction, e.g., made by this command:

    transfer <addr1> <amount1> <addr1> <amount2>
2020-01-11 11:48:27 +01:00
rbrunner7
664720747f Daemon: Guard against reporting "synchronized" too early
The added condition "hshd.current_height >= target" guards against
reporting "synchronized" too early in the special situation that the
very first peer sending us data is synced to a lower height than
ourselves.
2020-01-10 15:49:49 +01:00
moneromooo-monero
0349347e6d
ringdb: use a different iv for key and data in rings table
This is technically a record encrypted in two pieces,
so the iv needs to be different.
Some backward compatibility is added to read data written
by existing code, but new data is written with the new code.
2020-01-09 17:32:21 +00:00
moneromooo-monero
7b88208722
simplewallet: reword mixin in user message in terms of ring size 2020-01-09 17:32:21 +00:00
moneromooo-monero
f507a43a23
wallet2: do not remove known rings when a tx fails
Even if it fails, the ring composition is known to a potential
adversary, and so we should reuse the same ring next time
2020-01-09 17:32:21 +00:00
UkoeHB
02224e714d Fix check_fee() discrepancy.
M100 = max{300kb, min{100block_median, m_long_term_effective_median_block_weight}}
not
M100 = max{300kb, m_long_term_effective_median_block_weight}

Fix base reward in get_dynamic_base_fee_estimate().

get_dynamic_base_fee_estimate() should match check_fee()

Fee is calculated based on block reward, and the reward penalty takes into account 0.5*max_block_weight (both before and after HF_VERSION_EFFECTIVE_SHORT_TERM_MEDIAN_IN_PENALTY).

Moved median calculation according to best practice of 'keep definitions close to where they are used'.
2020-01-09 09:11:09 -06:00
moneromooo-monero
a84131cea3
p2p: fix off by one adding fallback peers
The code would ignore the first one to be added
2020-01-07 14:40:26 +00:00
moneromooo-monero
36bdf40288
p2p: fix adding wrong indices to the filtered peer list 2020-01-03 17:56:54 +00:00
moneromooo-monero
d64e5aa719
wallet: allow message sign/verify for subaddresses 2019-12-31 08:44:36 +00:00
moneromooo-monero
a6c24412e5
wallet: fix exceptions getting the hash of a pruned tx 2019-12-30 15:14:57 +00:00
moneromooo-monero
6933693179
rpc: fill miner_tx_hash again
It was removed to save duplicated generation time, but it can
be copied from another instance instead
2019-12-20 14:16:31 +00:00
moneromooo-monero
21c3d42eb9
p2p: drop the peerlist dump to TRACE
It's spammy
2019-12-17 20:27:04 +00:00
moneromooo-monero
f717d5936c
wallet2: guard against race with multiple decrypt_keys users
If more than one thread wants to make sure of the spend secret key,
then we decrypt on the first caller and reencrypt on the last caller,
otherwise we could use an invalid secret key.
2019-12-17 01:38:29 +00:00
moneromooo-monero
716012ca3a
rpc: drop the obsolete and wrong "unpruned size" log
Since we now get pruned data in the first place, the "unpruned" data
size will in fact be the pruned data size, leading to confusion
2019-12-16 14:50:07 +00:00
stoffu
ae84ec90c8
wallet-cli/rpc: allow sweep_all to use outputs in all subaddresses within an account 2019-12-16 21:10:11 +09:00
palomato
bc6d8aa343
Corrected message typo
Message was "peer claims higher version that we think"
Requested change "peer claims higher version than we think"
2019-12-14 13:06:09 -05:00
moneromooo-monero
5cbb17b946
wallet2: fix hang in wallet refresh
If the hashes received would move the current blockchain past the
stop point, the short history would not be updated, since we do
not expect another loop, but the daemon might return earlier hashes,
causing the end index to not be enough to reach the threshold and
this require another loop, which will download the same hashes and
cause an infinite loop.
2019-12-14 16:24:04 +00:00
moneromooo-monero
8a276451b2
blockchain: fix flushing txes from the txpool 2019-12-14 02:13:39 +00:00
luigi1111
b4e1dc83d2
Merge pull request #6057
3b8dcc2 wallet2: make keys unlocker reentrant (moneromooo-monero)
2019-12-12 13:49:58 -06:00
luigi1111
e5cc6d39a9
Merge pull request #6055
886ed25 blockchain: fix comment wrongly refering to SHA-3 rather than Keccak (moneromooo-monero)
2019-12-12 13:47:04 -06:00
luigi1111
ccde60838b
Merge pull request #6054
017f816 daemon: handle printing higher hash rates (moneromooo-monero)
2019-12-12 13:45:50 -06:00
luigi1111
fb64463c4c
Merge pull request #6052
c96b7ee tx_pool: fix error message assuming incorrectly (moneromooo-monero)
2019-12-12 13:44:50 -06:00
luigi1111
e629db18f4
Merge pull request #6049
45fd72b Updated paper references (SarangNoether)
277003f Minor prover simplification (SarangNoether)
2019-12-12 13:43:57 -06:00
luigi1111
a61db51aae
Merge pull request #6027
9768e96 simplewallet: remove remaining payment id dead code (moneromooo-monero)
2019-12-12 13:38:00 -06:00
luigi1111
dad4cf121e
Merge pull request #6018
dce6f05 rpc: Only show version string if it matches expected pattern (ndorf)
3293780 daemon: Use rpc for 'version' command (ndorf)
2019-12-12 13:36:05 -06:00
moneromooo-monero
987c3139dc
print_coinbase_tx_sum now supports 128 bits sums
The tail emission will bring the total above 64 bits
2019-12-12 01:56:59 +00:00
Howard Chu
c361303184
Silence miner debugmsg spam
Don't try to allocate the dataset repeatedly if it has already failed.
2019-12-09 15:59:52 +00:00
moneromooo-monero
d93e1dffa9
simplewallet: warn on refresh if refresh-from-block-height seems off 2019-12-09 14:09:39 +00:00
moneromooo-monero
a6a2ad6cac
simplewallet: set manual refresh mode in rescan_bc
This ensures we get asked for the password if needed
2019-12-07 13:57:26 +00:00
Jason Rhinelander
72ca7e3b0f Fix time comparison math
Dividing `dt` here by 1e6 converts it to seconds, but that is clearly
wrong since `REQUEST_NEXT_SCHEDULED_SPAN_THRESHOLD_STANDBY` is measured
in microseconds.  As a result, this if statement was effectively never
used.
2019-12-05 21:02:18 -04:00
naughtyfox
a2578892c0 --disable-ban-rpc option to prevent RPC users from banning 2019-12-04 17:45:27 +03:00
moneromooo-monero
94266eeb89
simplewallet: fix output age display with duplicate heights
The highlight check was based on height, so would highlight
any output at that height, resulting in several matches if
a fake out was picked at the same height as the real spend
2019-12-03 18:50:28 +00:00
moneromooo-monero
f1d379d27d
simplewallet: fix "outputs in same tx" detector
It was comparing source txids, but txids were empty,
so all checks triggered
2019-12-03 18:50:22 +00:00
moneromooo-monero
5985c5afe8
rpc: add bad-blocks to flush_cache RPC
Flushes m_invalid_blocks in Blockchain.
2019-12-02 18:53:30 +00:00
woodser
ef95a76d0d remove unused variable 'ptx' from on_describe_transfer() 2019-12-01 13:07:26 -05:00
moneromooo-monero
5f2a32c15a
daemon: run with -rpc-payment-address and --rpc-restricted-bind-port 2019-11-29 20:07:01 +00:00
moneromooo-monero
f8127831c7
simplewallet: fix encrypted payment id note triggering on dummy ones 2019-11-29 20:02:46 +00:00
moneromooo-monero
316ab7b56e
wallet2: better error when restoring a wallet with the wrong keys 2019-11-28 18:22:29 +00:00
moneromooo-monero
b90c4bc39e
rpc: error out from get_info if the proxied call errors out
Coverity 205410
2019-11-27 19:52:39 +00:00
moneromooo-monero
054b2621b1
node_rpc_proxy: init some new rpc payment fields in invalidate
The cache time would take care of these, but it's cleaner that way

Coverity 205412
2019-11-27 19:52:37 +00:00
moneromooo-monero
d0faae2a92
rpc: init a few missing client_info members
Coverity 205414
2019-11-27 19:52:37 +00:00
moneromooo-monero
d56a483abe
rpc: do not propagate exceptions out of a dtor
Coverity 205415
2019-11-27 19:52:36 +00:00
moneromooo-monero
3c849188ab
rpc: always set the update field in update on sucess
Coverity 205416
2019-11-27 19:52:33 +00:00
moneromooo-monero
3813a992e4
download: catch exceptions checking for size
Happens on at least one windows box
2019-11-26 18:42:00 +00:00
moneromooo-monero
8231c7cd04
rpc: fix bootstrap RPC payment RPC being made in raw JSON, not JSON RPC 2019-11-25 19:28:43 +00:00
moneromooo-monero
88b82befc7
simplewallet: point to "set help" in the lock screen message 2019-11-25 13:17:21 +00:00
moneromooo-monero
f19c9f2307
util: allow newlines in string to be split 2019-11-25 13:17:18 +00:00
selsta
7ac7d5d32f
updates: fix source code URL on _WIN32 2019-11-25 00:37:54 +01:00
moneromooo-monero
81c2658989
rpc: don't auto fail RPC needing payment in bootstrap mode 2019-11-22 18:12:29 +00:00
moneromooo-monero
d7cf872767
rpc: add received_timestamp for pool txes in gettransactions 2019-11-22 15:53:40 +00:00
Matt Smith
0e0351c456 wallet_rpc_server: add count parameter to create_address 2019-11-22 12:00:01 +00:00
moneromooo-monero
402dd2078c
db_lmdb: guard against non NUL terminated keys 2019-11-19 11:12:49 +00:00
Jethro Grassie
d8fc8d8868
make d2h et al. constant-time 2019-11-19 04:21:02 -05:00
xiphon
3b41933335 wallet: don't issue node rpc proxy requests in '--offline' mode 2019-11-19 03:26:42 +00:00
moneromooo-monero
24adee4a08
p2p: don't request flags after closing connection 2019-11-19 02:03:39 +00:00
Lee Clagett
68a6507c3f Fixed bug in ZMQ JSON-RPC method field 2019-11-18 12:59:41 +00:00
Howard Chu
47d094c0c4
Fix #6147 DB corruption from child process overwrite
Don't leave stdout/stderr dangling on a fork.
2019-11-17 14:04:22 +00:00
luigi1111
df9843212a
Merge pull request #6135
09f59ec wallet: set non-empty error string on connection failure (xiphon)
2019-11-16 11:00:33 -06:00
moneromooo-monero
b9b5c473d1
threadpool: use std::move when taking an element off the queue
It has a std::function, which can have a capture context, and
the function runtime might be small
2019-11-15 13:24:34 +00:00
moneromooo-monero
08635a0875
blockchain: speedup fetching pruned contiguous tx blobs
About twice as fast, very roughly
2019-11-15 13:23:30 +00:00
xiphon
09f59eccad wallet: set non-empty error string on connection failure 2019-11-14 19:49:57 +00:00
Bert Peters
a7a40e285c Actually concatenate error strings. 2019-11-14 10:36:49 +01:00
selsta
6dec001359
simplewallet: fix restore height warning 2019-11-14 03:00:20 +01:00
Bert Peters
b2ad757f48 Replace memset with memwipe. 2019-11-13 18:00:50 +01:00
moneromooo-monero
9fe8a76c59
perf_timer: fix pause/resume macros dereferencing too much 2019-11-13 12:08:40 +00:00
wowario
67b4a19edf
simplewallet: noob-friendly help menu 2019-11-13 10:24:10 +03:00
Nathan Dorfman
dce6f055f9 rpc: Only show version string if it matches expected pattern 2019-11-12 18:19:24 -07:00
Nathan Dorfman
3293780992 daemon: Use rpc for "version" command 2019-11-12 17:57:36 -07:00
moneromooo-monero
21d4c21619
blockchain: error out if the builtin hashes data size is wrong 2019-11-12 12:43:08 +00:00
moneromooo-monero
6f45cfa5c5
p2p: zero last seen timestamp when inserting a new peer 2019-11-11 12:44:35 +00:00
moneromooo-monero
27522aaa12
core_tests: reset thread pool between tests
Avoids a DB error (leading to an assert) where a thread uses
a read txn previously created with an environment that was
since closed and reopened. While this usually works since
BlockchainLMDB renews txns if it detects the environment has
changed, this will not work if objects end up being allocated
at the same address as the previous instance, leading to stale
data usage.

Thanks hyc for the LMDB debugging.
2019-11-10 12:58:49 +00:00
xiphon
7c1d31b0a1 build: fix IOS, build blockchain_db and rpc, skip wallet_rpc_server 2019-11-09 14:21:22 +00:00
moneromooo-monero
0de8a0d37d
wallet_rpc_server: new estimate_tx_size_and_weight RPC 2019-11-06 15:18:21 +00:00
moneromooo-monero
4b38400336
wallet2: don't try to lock an empty filename 2019-11-05 15:33:01 +00:00
moneromooo-monero
b328de6b7a
wallet_rpc_server: add tx weight in transfer commands responses 2019-11-05 14:25:06 +00:00
moneromooo-monero
27457a2268
wallet2: fix pool txes not being flushed when mined 2019-11-04 19:32:48 +00:00
moneromooo-monero
a633f85da9
daemon: allow printing N blocks from the end of the chain
It's a very common usage (for my anyway) and avoids the need to
get the current height, paste, subtract one, etc
2019-11-04 17:38:14 +00:00
moneromooo-monero
7ba31191f3
daemon: add +meta print_tx parameter
prints size, weight and (if mined) height
2019-11-04 15:57:56 +00:00
moneromooo-monero
236d2a88e2
blockchain_stats: make it work on pruned blockchains
It reports the actual size as pruned, however
2019-11-04 15:10:01 +00:00
Nathan Dorfman
2e58eb5cdb lmdb: Remove meaningless const qualifier on function type 2019-11-04 02:28:45 -07:00
Lee Clagett
70c9cd3c9c Change to Tx diffusion (Dandelion++ fluff) instead of flooding 2019-11-04 09:23:20 +00:00
Riccardo Spagni
06b0441762
Merge pull request #6074
38f691048 simplewallet: plug a timing leak (moneromooo-monero)
dcff02e4c epee: allow a random component in once_a_time timeouts (moneromooo-monero)
e10833024 wallet: reuse cached height when set after refresh (moneromooo-monero)
5956beaa1 wallet2: fix is_synced checking target height, not height (moneromooo-monero)
fd35e2304 wallet: fix another facet of "did I get some monero" information leak (moneromooo-monero)
d5472bd87 wallet2: do not send an unnecessary last getblocks.bin call on refresh (moneromooo-monero)
97ae7bb5c wallet2: do not repeatedly ask for pool txes sent to us (moneromooo-monero)
2019-11-03 14:52:16 -08:00
Lee Clagett
5d7ae2d279 Adding support for hidden (anonymity) txpool 2019-11-02 20:36:03 +00:00
Riccardo Spagni
eaadbbdab0
Merge pull request #6079
e4d1674e8 0.15.0.0 release engineering (Riccardo Spagni)
2019-11-02 17:31:22 +02:00
Riccardo Spagni
da31077bed
Merge pull request #6047
ebc6ce44f cryptonote: untangle dependency from miner to blockchain (moneromooo-monero)
2019-11-02 17:30:09 +02:00
Riccardo Spagni
e4d1674e8c
0.15.0.0 release engineering 2019-11-02 17:21:52 +02:00
moneromooo-monero
38f6910481
simplewallet: plug a timing leak
As reported by Tramèr et al, timing of refresh requests can be used
to see whether a password was requested (and thus at least one output
received) since this will induce a delay in subsequent calls.
To avoid this, we schedule calls at a given time instead of sleeping
for a set time (which would make delays additive).
To further avoid a scheduled call being during the time in which a
password is prompted, the actual scheduled time is now randomized.
2019-11-02 11:41:41 +00:00
JamesWrigley
b9fc206660 Add a --keep-fakechain option to keep fakechain databases
This is handy when doing tests that generate a lot of transactions, since that
takes time it's preferable to re-use the database for future runs.
2019-11-01 23:56:08 +01:00
moneromooo-monero
e108330248
wallet: reuse cached height when set after refresh
Refreshing sets cached height, which is otherwise got by calling
get_info. Since get_info is called upon needing to display a prompt
after a command has finished, it can be used to determine how much
time a given command took to run if the cache timeout lapses while
the command runs. Refreshing caches the height as a side effect, so
get_info will never be called as a result of displaying a prompt
after refreshing (and potentially leaking how much time it took to
process a set of transactions, therefore leaking whether we got
some monero in them).
2019-11-01 18:59:41 +00:00
moneromooo-monero
5956beaa15
wallet2: fix is_synced checking target height, not height
Target height would be appropriate for the daemon, which syncs
off other daemons, but the wallet syncs off the daemon it's
connected to, and its target is the daemon's current height.
2019-11-01 18:59:39 +00:00
moneromooo-monero
fd35e2304a
wallet: fix another facet of "did I get some monero" information leak
We get new pool txes before processing any tx, pool or not.
This ensures that if we're asked for a password, this does not
cause a measurable delay in the txpool query after the last
block query.
2019-11-01 18:59:38 +00:00
moneromooo-monero
d5472bd87b
wallet2: do not send an unnecessary last getblocks.bin call on refresh
The "everything refreshed" state was detected when a refresh call did
not return any new blocks. This can be detected without that extra
"empty" call by comparing the claimed node height to the height of
the last block retrieved. Doing this avoids that last call, saves
some bandwidth, and makes the common refresh case use only one call
rather than two.

As a side effect, it prevents an information leak reported by
Tramèr et al: if the wallet retrieves a set of blocks which includes
an output sent to the refreshing wallet, the wallet will prompt the
user for the password to decode the amount and calculate the key
image for the new output, and this will delay subsequent calls to
getblocks.bin, allowing a passive adversary to note the delay and
deduce when the wallet receives at least one output.

This can still happen if the wallet downloads more than 1000 blocks,
since this will be split in several calls, but then the most the
adversary can tell is which 1000 block section the user received
some monero (the adversary can estimate the heights of the blocks
by calculating how many "large" transfers are done, which will be
sections of blocks, the last of which will usually be below 1000,
but the size of the data should allow the actual number of blocks
sent to be determined fairly accurately).

This timing trick still be used via the subsequent scan for incoming
txes in the txpool, which will be fixed later.
2019-11-01 18:59:37 +00:00
moneromooo-monero
22d30866ca
simplewallet: add missing inactivity-lock-timeout to set help blurb 2019-11-01 15:37:55 +00:00
moneromooo-monero
9f57f0df92
simplewallet: do not mention inactivity if a lock was manual 2019-11-01 14:36:57 +00:00
moneromooo-monero
97ae7bb5cb
wallet2: do not repeatedly ask for pool txes sent to us
This lets a passive attacker with access to the network link
between node and wallet perform traffic analysis to deduce
when an idle wallet receives a transaction.

Reported by Tramèr et al.
2019-11-01 10:42:01 +00:00
moneromooo-monero
ebc6ce44f4
cryptonote: untangle dependency from miner to blockchain
It causes link errors at least on mac
2019-10-31 01:06:42 +00:00
moneromooo-monero
3b8dcc290d
wallet2: make keys unlocker reentrant
protects against having your keys mangled
2019-10-29 13:53:57 +00:00
moneromooo-monero
886ed25055
blockchain: fix comment wrongly refering to SHA-3 rather than Keccak 2019-10-29 11:37:08 +00:00
moneromooo-monero
017f816897
daemon: handle printing higher hash rates 2019-10-29 11:33:15 +00:00
moneromooo-monero
deb350b783
always print peer IDs in the same format 2019-10-29 11:30:20 +00:00
moneromooo-monero
c96b7ee619
tx_pool: fix error message assuming incorrectly 2019-10-29 10:43:59 +00:00
xiphon
2e2bf8a207 daemon: always use bootstrap daemon (if set) in '--no-sync' mode 2019-10-28 21:52:19 +00:00
Sarang Noether
45fd72b0d7 Updated paper references 2019-10-28 12:34:44 -04:00
moneromooo-monero
65301c406e
core: point out when we hit the block rate visibility limit 2019-10-28 16:06:15 +00:00
Sarang Noether
277003f145 Minor prover simplification 2019-10-28 09:34:49 -04:00
luigi1111
4c9fd8d86d
Merge pull request #6044
eb16755 blockchain: fix unwanted error when probing the pool for a tx (moneromooo-monero)
2019-10-27 16:28:33 -05:00
moneromooo-monero
eb16755083
blockchain: fix unwanted error when probing the pool for a tx 2019-10-27 19:23:25 +00:00
moneromooo-monero
2f8f3a9432
rpc: base flush_cache request/response on the new base structs 2019-10-27 16:14:28 +00:00
moneromooo-monero
e8964c26cc
wallet: do not warn if the rpc cost was free 2019-10-27 10:59:31 +00:00
luigi1111
ef8b3a15b4
Merge pull request #6017
5734686 rpc: Include tag in get_info version string (ndorf)
2019-10-25 20:48:04 -05:00
moneromooo-monero
f7f7513ec3
rpc: fix PRIx64 build error on some systems 2019-10-26 00:05:21 +00:00
luigi1111
7caa2b0d3e
Merge pull request #6024
296ec7c device: bounds checking in Ledger send_secret/receive_secret (xiphon)
2019-10-25 16:06:37 -05:00
luigi1111
07c6789148
Merge pull request #5958
d25acd7 Add hmac over encrypted value during transaction (clashm)
34f28a7 Add display address (clashm)
235b94e Revert PR #5835 (export view key) (clashm)
32febd2 Fix debug feature (clashm)
2019-10-25 16:03:24 -05:00
luigi1111
86d085e988
Merge pull request #6028
174a6ac tx_pool: fix divide by 0 in log (moneromooo-monero)
2019-10-25 14:29:15 -05:00
luigi1111
f253bf3846
Merge pull request #6007
a4dc575 rpc: add a flush_cache RPC (moneromooo-monero)
2019-10-25 14:20:20 -05:00
luigi1111
9a995f338a
Merge pull request #6023
643dcb9 net: link with libzmq (moneromooo-monero)
2019-10-25 13:56:06 -05:00
luigi1111
68b03abdc5
Merge pull request #6021
65e8a89 Change monerod --proxy to --tx-proxy (vtnerd)
2019-10-25 13:52:19 -05:00
luigi1111
4a67bdbde4
Merge pull request #6019
d60c1b6 changed 'batttery' to 'battery' (jakehemmerle)
2019-10-25 13:45:59 -05:00
luigi1111
711625c467
Merge pull request #6014
93e7426 wallet2: error out when we need a daemon password but have no prompt function (moneromooo-monero)
2019-10-25 13:44:31 -05:00
luigi1111
59439f8113
Merge pull request #6013
635401b wallet2: fix the logged number of detached transfers (moneromooo-monero)
2019-10-25 13:43:00 -05:00
moneromooo-monero
a4dc575ccb
rpc: add a flush_cache RPC
This allows flushing internal caches (for now, the bad tx cache,
which will allow debugging a stuck monerod after it has failed to
verify a transaction in a block, since it would otherwise not try
again, making subsequent log changes pointless)
2019-10-25 18:41:54 +00:00
luigi1111
960c215801
Merge pull request #5357
b3a9a4d add a quick early out to get_blocks.bin when up to date (moneromooo-monero)
2899379 daemon, wallet: new pay for RPC use system (moneromooo-monero)
ffa4602 simplewallet: add public_nodes command (moneromooo-monero)
2019-10-25 13:38:21 -05:00
moneromooo-monero
174a6ac9c5
tx_pool: fix divide by 0 in log
Coverity 205394
2019-10-25 16:56:55 +00:00
moneromooo-monero
9768e96d74
simplewallet: remove remaining payment id dead code
pointed out by coverity
2019-10-25 16:53:15 +00:00
xiphon
296ec7c9bb device: bounds checking in Ledger send_secret/receive_secret 2019-10-25 13:13:23 +00:00
moneromooo-monero
643dcb9700
net: link with libzmq 2019-10-25 12:06:16 +00:00
moneromooo-monero
ffa46026b5
simplewallet: add public_nodes command
Lists nodes exposing their RPC port for public use
2019-10-25 09:34:41 +00:00
moneromooo-monero
2899379791
daemon, wallet: new pay for RPC use system
Daemons intended for public use can be set up to require payment
in the form of hashes in exchange for RPC service. This enables
public daemons to receive payment for their work over a large
number of calls. This system behaves similarly to a pool, so
payment takes the form of valid blocks every so often, yielding
a large one off payment, rather than constant micropayments.

This system can also be used by third parties as a "paywall"
layer, where users of a service can pay for use by mining Monero
to the service provider's address. An example of this for web
site access is Primo, a Monero mining based website "paywall":
https://github.com/selene-kovri/primo

This has some advantages:
 - incentive to run a node providing RPC services, thereby promoting the availability of third party nodes for those who can't run their own
 - incentive to run your own node instead of using a third party's, thereby promoting decentralization
 - decentralized: payment is done between a client and server, with no third party needed
 - private: since the system is "pay as you go", you don't need to identify yourself to claim a long lived balance
 - no payment occurs on the blockchain, so there is no extra transactional load
 - one may mine with a beefy server, and use those credits from a phone, by reusing the client ID (at the cost of some privacy)
 - no barrier to entry: anyone may run a RPC node, and your expected revenue depends on how much work you do
 - Sybil resistant: if you run 1000 idle RPC nodes, you don't magically get more revenue
 - no large credit balance maintained on servers, so they have no incentive to exit scam
 - you can use any/many node(s), since there's little cost in switching servers
 - market based prices: competition between servers to lower costs
 - incentive for a distributed third party node system: if some public nodes are overused/slow, traffic can move to others
 - increases network security
 - helps counteract mining pools' share of the network hash rate
 - zero incentive for a payer to "double spend" since a reorg does not give any money back to the miner

And some disadvantages:
 - low power clients will have difficulty mining (but one can optionally mine in advance and/or with a faster machine)
 - payment is "random", so a server might go a long time without a block before getting one
 - a public node's overall expected payment may be small

Public nodes are expected to compete to find a suitable level for
cost of service.

The daemon can be set up this way to require payment for RPC services:

  monerod --rpc-payment-address 4xxxxxx \
    --rpc-payment-credits 250 --rpc-payment-difficulty 1000

These values are an example only.

The --rpc-payment-difficulty switch selects how hard each "share" should
be, similar to a mining pool. The higher the difficulty, the fewer
shares a client will find.
The --rpc-payment-credits switch selects how many credits are awarded
for each share a client finds.
Considering both options, clients will be awarded credits/difficulty
credits for every hash they calculate. For example, in the command line
above, 0.25 credits per hash. A client mining at 100 H/s will therefore
get an average of 25 credits per second.
For reference, in the current implementation, a credit is enough to
sync 20 blocks, so a 100 H/s client that's just starting to use Monero
and uses this daemon will be able to sync 500 blocks per second.

The wallet can be set to automatically mine if connected to a daemon
which requires payment for RPC usage. It will try to keep a balance
of 50000 credits, stopping mining when it's at this level, and starting
again as credits are spent. With the example above, a new client will
mine this much credits in about half an hour, and this target is enough
to sync 500000 blocks (currently about a third of the monero blockchain).

There are three new settings in the wallet:

 - credits-target: this is the amount of credits a wallet will try to
reach before stopping mining. The default of 0 means 50000 credits.

 - auto-mine-for-rpc-payment-threshold: this controls the minimum
credit rate which the wallet considers worth mining for. If the
daemon credits less than this ratio, the wallet will consider mining
to be not worth it. In the example above, the rate is 0.25

 - persistent-rpc-client-id: if set, this allows the wallet to reuse
a client id across runs. This means a public node can tell a wallet
that's connecting is the same as one that connected previously, but
allows a wallet to keep their credit balance from one run to the
other. Since the wallet only mines to keep a small credit balance,
this is not normally worth doing. However, someone may want to mine
on a fast server, and use that credit balance on a low power device
such as a phone. If left unset, a new client ID is generated at
each wallet start, for privacy reasons.

To mine and use a credit balance on two different devices, you can
use the --rpc-client-secret-key switch. A wallet's client secret key
can be found using the new rpc_payments command in the wallet.
Note: anyone knowing your RPC client secret key is able to use your
credit balance.

The wallet has a few new commands too:

 - start_mining_for_rpc: start mining to acquire more credits,
regardless of the auto mining settings
 - stop_mining_for_rpc: stop mining to acquire more credits
 - rpc_payments: display information about current credits with
the currently selected daemon

The node has an extra command:

 - rpc_payments: display information about clients and their
balances

The node will forget about any balance for clients which have
been inactive for 6 months. Balances carry over on node restart.
2019-10-25 09:34:38 +00:00
Lee Clagett
65e8a89e1c Change monerod --proxy to --tx-proxy 2019-10-24 21:06:31 -04:00
luigi1111
cc46f05f1f
Merge pull request #6002
0136bf7 v12 fork heights (tevador)
2019-10-24 18:57:05 -05:00
Jake Hemmerle
d60c1b6312 changed 'batttery' to 'battery' 2019-10-24 19:55:28 -04:00
Nathan Dorfman
57346864a3 rpc: Include tag in get_info version string 2019-10-24 13:48:35 -06:00
luigi1111
81f6c3745e
Merge pull request #5495
28a627c gen_ssl_cert: new tool to generate SSL certs for Monero (moneromooo-monero)
2019-10-24 13:02:39 -05:00
moneromooo-monero
28a627c5ac
gen_ssl_cert: new tool to generate SSL certs for Monero 2019-10-24 17:47:52 +00:00
luigi1111
2200767963
Merge pull request #6004
951ceab daemon: print difficulty in decimal, as it used to be (moneromooo-monero)
2019-10-24 12:43:38 -05:00
luigi1111
87171916ee
Merge pull request #5998
0da09ed protocol: fix syncing from peers being too choosy about peers (moneromooo-monero)
2019-10-24 12:38:35 -05:00
moneromooo-monero
951ceab4f6
daemon: print difficulty in decimal, as it used to be
It got switched to hexadecimal when we went to 128 bit values
2019-10-24 17:37:05 +00:00
luigi1111
f9b5af85ea
Merge pull request #6001
705edd8 daemon: fix coinbase txes always being seen as pruned (moneromooo-monero)
2019-10-24 10:57:30 -05:00
luigi1111
8926829569
Merge pull request #6000
641c9cf daemon: add miner tx hash in print_block output (moneromooo-monero)
2019-10-24 10:56:20 -05:00
luigi1111
bef8d3e381
Merge pull request #5999
fbf8168 utils: Increase max block size for import/export (ndorf)
2019-10-24 10:53:53 -05:00
luigi1111
5f6a06e74c
Merge pull request #5997
37cccb8 db_lmdb: an empty prunable data record means the tx is not pruned (moneromooo-monero)
2019-10-24 10:52:04 -05:00
moneromooo-monero
b3a9a4d99d
add a quick early out to get_blocks.bin when up to date 2019-10-24 11:30:54 +00:00
moneromooo-monero
93e74269b3
wallet2: error out when we need a daemon password but have no prompt function 2019-10-23 18:36:53 +00:00
moneromooo-monero
635401b077
wallet2: fix the logged number of detached transfers 2019-10-23 18:29:13 +00:00
luigi1111
4233d88341
Merge pull request #5973
abd3763 cryptonote: fill in tx weight when syncing from pruned blocks (moneromooo-monero)
2019-10-22 10:54:46 -05:00
luigi1111
bb2bcf3521
Merge pull request #5972
9447e72 cryptonote: add function to get weight from a pruned tx (moneromooo-monero)
2019-10-22 10:52:14 -05:00
luigi1111
2c497bc411
Merge pull request #5989
4f583d5 daemon: fix print_pl synopsis missing recent options (moneromooo-monero)
2019-10-22 10:24:09 -05:00
luigi1111
1e9b577f2a
Merge pull request #5985
6fdaaba node.inl, add xmrchain.net IP to hardcoded peers (Gingeropolous)
2019-10-22 10:22:02 -05:00
luigi1111
35da1ce307
Merge pull request #5983
32d6376 simplewallet: add --restore-from-seed alias (moneromooo-monero)
2019-10-22 10:20:46 -05:00
luigi1111
8a88d9186a
Merge pull request #5982
bba5bae implewallet: don't trigger idle lock right after a foreground refresh (moneromooo-monero)
2019-10-22 10:19:35 -05:00
luigi1111
426d2ac8ee
Merge pull request #5981
88c9d90 protocol: initialize block_weight in block_complete_entry ctor (moneromooo-monero)
fe443bb cryptonote: don't leave block_weight uninitialized (moneromooo-monero)
1ba9baf tx_pool: do not divide by 0 (moneromooo-monero)
2019-10-22 10:18:28 -05:00
luigi1111
3fb85857e0
Merge pull request #5980
ea813cf RandomX: update to v1.1.4 (tevador)
2019-10-22 10:16:39 -05:00
luigi1111
99e4c403cb
Merge pull request #5977
e85c838 simplewallet: do not print warning for locked coinbase txes (moneromooo-monero)
2019-10-22 10:14:33 -05:00
luigi1111
cf2d4d9a16
Merge pull request #5974
7fcd0b5 blockchain: initialize pow to ff..ff (moneromooo-monero)
2019-10-22 10:13:34 -05:00
luigi1111
8bb3c6a8e6
Merge pull request #5970
ab96181 blockchain: use effective median block weight for penalty from v12 (moneromooo-monero)
2019-10-22 10:09:56 -05:00
luigi1111
84ce43a239
Merge pull request #5966
be82c40 Support median block size > 4 GB (moneromooo-monero)
2019-10-22 10:08:32 -05:00
luigi1111
c81884f088
Merge pull request #5964
fd48461 Print cdifficulty and don't serialize miner tx hash twice (Doy-lee)
2019-10-22 10:07:17 -05:00
luigi1111
6f202844b5
Merge pull request #5919
01f660f blockchain: fill in cumulative block weight for alt blocks (moneromooo-monero)
2019-10-22 10:06:10 -05:00
moneromooo-monero
be82c40703
Support median block size > 4 GB
add a 128/64 division routine so we can use a > 32 bit median block
size in calculations
2019-10-21 10:41:07 +00:00
tevador
0136bf7448 v12 fork heights 2019-10-18 20:32:25 +02:00
moneromooo-monero
705edd81d9
daemon: fix coinbase txes always being seen as pruned 2019-10-18 12:25:08 +00:00
moneromooo-monero
641c9cf19d
daemon: add miner tx hash in print_block output 2019-10-18 12:21:30 +00:00
Nathan Dorfman
fbf81689d4 utils: Increase max block size for import/export 2019-10-17 19:14:41 -06:00
moneromooo-monero
0da09ede86
protocol: fix syncing from peers being too choosy about peers 2019-10-17 17:40:47 +00:00
moneromooo-monero
37cccb8cfb
db_lmdb: an empty prunable data record means the tx is not pruned
as opposed to an absent record
2019-10-17 17:39:05 +00:00
luigi1111
6c05723981
Merge pull request #5984
7fdaa82 Fix build on FreeBSD/!x86 (pkubaj)
0f4fddc Add also ifdef __x86_64__ (pkubaj)
2019-10-16 13:53:14 -05:00
luigi1111
461a25e1b5
Merge pull request #5962
ec14abd tx_pool: make spent return-by-reference as intended (stoffu)
2019-10-16 13:51:34 -05:00
luigi1111
824521b7bc
Merge pull request #5959
4d22317 wallet2: don't delete file that may not exist (selsta)
2019-10-16 13:45:22 -05:00
luigi1111
017baeeab5
Merge pull request #5956
ec7f2ff p2p: reject invalid rpc_port in peer lists (xiphon)
2019-10-16 13:44:25 -05:00
luigi1111
67043d642d
Merge pull request #5954
4ce40ed p2p: reject invalid pruning seeds in peer lists (moneromooo-monero)
2019-10-16 13:42:23 -05:00
luigi1111
40e71742a0
Merge pull request #5952
93d5cf2 wallet2: add ignore-outputs-{above/below} option (stoffu)
2019-10-16 13:40:44 -05:00
luigi1111
75f7959fa9
Merge pull request #5946
16498dc simplewallet.cpp - clean up welcome message (SomaticFanatic)
2019-10-16 13:38:18 -05:00
moneromooo-monero
7fcd0b55ea
blockchain: initialize pow to ff..ff
as a safety to reject if it somehow does not get initialised
2019-10-16 09:00:30 +00:00
moneromooo-monero
4f583d564c
daemon: fix print_pl synopsis missing recent options 2019-10-15 13:35:52 +00:00
luigi1111
fcb4c72bb5
Merge pull request #5943
d4d2b5c p2p+rpc: don't skip p2p or rpc port bind failure by default (xiphon)
2019-10-14 20:05:25 -05:00
luigi1111
37a72fd6ae
Merge pull request #5941
d37d30f blockchain: tweak fee as a function of median values (moneromooo-monero)
2019-10-14 18:11:13 -05:00
luigi1111
dd24d7f7fd
Merge pull request #5940
6b4bc0d RPC on_transfer_split error consistent with on_transfer if no tx sent (binaryFate)
2019-10-14 18:09:44 -05:00
luigi1111
dc48cdc998
Merge pull request #5933
3455efa ban peers sending bad pow outright (moneromooo-monero)
2019-10-14 18:07:54 -05:00
moneromooo-monero
4d0aadc081
wallet_rpc_server: don't report integrated addresses for 0 payment ID
These are dummy ones
2019-10-14 11:43:48 +00:00
moneromooo-monero
19c0506e14
wallet: remove long payment ID sending support 2019-10-14 11:43:47 +00:00
moneromooo-monero
455f9e3e9f
wallet2: ignore received unencrypted payment IDs (but warn hard) 2019-10-14 11:43:46 +00:00
moneromooo-monero
b295e3cff6
simplewallet: reinstate short payment id nag, only if non default 2019-10-14 11:43:42 +00:00
Gingeropolous
6fdaaba935
node.inl, add xmrchain.net IP to hardcoded peers
added for mainnet, testnet, and stagenet. 

server is owner by snipa, both snipa and I have access to it. No idea where its hosted. 

xmrchain.net is a block explorer thats been around a while.
2019-10-13 17:13:57 -04:00
pkubaj
0f4fddc2f8
Add also ifdef __x86_64__ 2019-10-13 19:08:23 +00:00
tevador
ea813cfb1b RandomX: update to v1.1.4
* Faster cache initialization with SSSE3/AVX2
* Automatic detection of CPU capabilities in RandomX
* Fixed a possible out-of-bounds access in superscalar program generator
* Use MONERO_RANDOMX_UMASK to manually disable RandomX flags in monerod
2019-10-13 18:43:27 +02:00
pkubaj
7fdaa8285e
Fix build on FreeBSD/!x86
Checking battery status uses x86-only headers and functions. Remove this functionality to get it to build on other architectures.
2019-10-13 16:43:18 +00:00
xiphon
d4d2b5c79a p2p+rpc: don't skip p2p or rpc port bind failure by default 2019-10-13 13:27:46 +00:00
moneromooo-monero
32d6376673
simplewallet: add --restore-from-seed alias
It may be more intuitive for some people
2019-10-11 14:39:38 +00:00
moneromooo-monero
bba5baec37
simplewallet: don't trigger idle lock right after a foreground refresh 2019-10-11 14:30:20 +00:00
moneromooo-monero
ab96181e91
blockchain: use effective median block weight for penalty from v12
It was using the raw block weight median, which was not what was
intended in ArticMine's design
2019-10-11 14:16:09 +00:00
moneromooo-monero
1ba9bafd33
tx_pool: do not divide by 0
In case of a 0 tx weight, we use a placeholder value to insert in the
fee-per-byte set. This is used for pruning and mining, and those txes
are pruned, so will not be too large, nor added to the block template
if mining, so this is safe.

CID 204465
2019-10-11 14:09:31 +00:00
moneromooo-monero
fe443bbdec
cryptonote: don't leave block_weight uninitialized
CID 204467
2019-10-11 14:09:31 +00:00
moneromooo-monero
88c9d90ac4
protocol: initialize block_weight in block_complete_entry ctor
CID 204479
2019-10-11 14:09:31 +00:00
moneromooo-monero
9447e7276d
cryptonote: add function to get weight from a pruned tx
The weight of the prunable data is deterministic from the
unpruned data, so it can be determined from a pruned tx
2019-10-11 12:08:36 +00:00
moneromooo-monero
01f660f60f
blockchain: fill in cumulative block weight for alt blocks 2019-10-10 20:26:40 +00:00
moneromooo-monero
e85c838154
simplewallet: do not print warning for locked coinbase txes
since they're all locked for a fixed amount
2019-10-10 18:29:30 +00:00
moneromooo-monero
abd376313b
cryptonote: fill in tx weight when syncing from pruned blocks 2019-10-10 11:08:02 +00:00
luigi1111
bf525793c7
Merge pull request #5915
8330e77 monerod can now sync from pruned blocks (moneromooo-monero)
2019-10-08 15:55:03 -05:00
luigi1111
5920913171
Merge pull request #5948
1c600a4 Fix randomx cache selection for RPCs (hyc)
2675cf4 Update to RandomX v1.1.3, simplify (hyc)
f54301d Fix for miners on reorg (hyc)
2019-10-08 14:48:36 -05:00
luigi1111
b0840a8e01
Merge pull request #5932
f3b65c6 Request a thread stack size that is large enough for unbound (omartijn)
2019-10-08 14:45:21 -05:00
luigi1111
a74a82c8b2
Merge pull request #5926
74a23e9 protocol: only print sync complete message when out of precompiled hashes (moneromooo-monero)
2019-10-08 14:42:41 -05:00
luigi1111
342e7f844f
Merge pull request #5921
2a7d915 Fixed i2p/tor tx flooding bug (white noise disabled) (vtnerd)
2019-10-08 14:31:53 -05:00
Howard Chu
f54301dd75
Fix for miners on reorg
Make sure dataset gets re-init'd if a reorg changes the epoch
2019-10-07 09:50:00 +01:00
Doyle
fd4846134d Print cdifficulty and don't serialize miner tx hash twice 2019-10-07 12:50:05 +11:00
stoffu
ec14abdbe8
tx_pool: make spent return-by-reference as intended 2019-10-06 12:28:30 +09:00
Howard Chu
2675cf4483
Update to RandomX v1.1.3, simplify
We don't need to detect if the cache has changed, just always
call to set it on the VM. The call will be a no-op if the cache
hasn't changed.
2019-10-05 18:51:20 +01:00
selsta
4d22317dee
wallet2: don't delete file that may not exist 2019-10-04 20:43:40 +02:00
Howard Chu
1c600a492f
Fix randomx cache selection for RPCs
Was using the wrong cache slot, and returning invalid PoW hashes to RPC clients
2019-10-03 20:05:17 +01:00
cslashm
32febd277d Fix debug feature 2019-10-03 16:05:40 +02:00
cslashm
235b94eb59 Revert PR #5835 (export view key) 2019-10-03 16:05:40 +02:00
cslashm
34f28a79bc Add display address 2019-10-03 16:05:32 +02:00
cslashm
d25acd7a1d Add hmac over encrypted value during transaction 2019-10-03 16:01:34 +02:00
moneromooo-monero
4ce40edb27
p2p: reject invalid pruning seeds in peer lists 2019-10-02 19:29:05 +00:00
xiphon
ec7f2ff9ed p2p: reject invalid rpc_port in peer lists 2019-10-02 19:04:57 +00:00
stoffu
93d5cf2441
wallet2: add ignore-outputs-{above/below} option
https://github.com/aeonix/aeon/pull/131
2019-10-02 13:04:24 +09:00
SomaticFanatic
16498dc8ef
simplewallet.cpp - clean up welcome message
Fixed a typo ("and -are- not visible to the world by default"), removed a few redundant commas, and capitalized words inside the URL.
2019-10-01 02:32:32 +00:00
luigi1111
b60cf6a938
Merge pull request #5939
9baf2a7 build: link wallet_merged against blockchain_db and hardforks obj (xiphon)
2019-09-30 18:57:54 -05:00
luigi1111
3f732841f5
Merge pull request #5906
bd9c12e simplewallet: remove erroneously added line under subaddress-lookahead (stoffu)
2019-09-30 18:53:10 -05:00
luigi1111
17f063a50f
Merge pull request #5902
b9da023 blockchain: keep block template timestamp not below recent median (moneromooo-monero)
2019-09-30 18:52:11 -05:00
luigi1111
d9cb50870d
Merge pull request #5900
6bbc646 Fix bug in mempool get_transaction_stats histogram calculation (tomsmeding)
2019-09-30 18:49:09 -05:00
luigi1111
e23b9847d0
Merge pull request #5894
c89f7ef wallet2_api: fix load unsigned tx from file error propagation (xiphon)
2019-09-30 18:45:41 -05:00
luigi1111
c6430f9dd0
Merge pull request #5893
Coverity fixes [3a81639, 1bd962d, 2825f07, d099658, d46f701, cd57a10] (anonimal)
2019-09-30 18:43:48 -05:00
moneromooo-monero
d37d30f79a
blockchain: tweak fee as a function of median values
Use the lesser of the short and long terms medians, rather then
the long term median alone

From ArticMine:

I found a bug in the new fee calculation formula with using only the long term median
It actually needs to be the lesser of the long term median and the old (modified short term median)
short term median with the last 10 blocks calculated as empty
Yes the issue occurs if there is a large long term median and, the short term median then falls and tries to then rise again
The fees are could be not high enough
for example LTM and STM rise to say 2000000 bytes
STM falls back to 300000 bytes
Fees are now based on 2000000 bytes until LTM also falls
So the STM is could prevented from rising back up
STM short term median LTM long term median
2019-09-28 22:53:41 +00:00
binaryFate
6b4bc0d389 RPC on_transfer_split error consistent with on_transfer if no tx sent 2019-09-28 19:22:15 +02:00
xiphon
9baf2a7caa build: link wallet_merged against blockchain_db and hardforks obj 2019-09-28 12:35:33 +00:00
moneromooo-monero
8330e772f1
monerod can now sync from pruned blocks
If the peer (whether pruned or not itself) supports sending pruned blocks
to syncing nodes, the pruned version will be sent along with the hash
of the pruned data and the block weight. The original tx hashes can be
reconstructed from the pruned txes and theur prunable data hash. Those
hashes and the block weights are hashes and checked against the set of
precompiled hashes, ensuring the data we received is the original data.
It is currently not possible to use this system when not using the set
of precompiled hashes, since block weights can not otherwise be checked
for validity.

This is off by default for now, and is enabled by --sync-pruned-blocks
2019-09-27 00:10:37 +00:00
Howard Chu
81c2ad6d5b
RandomX integration
Support RandomX PoW algorithm
2019-09-25 21:29:42 +01:00
moneromooo-monero
3455efafa8
ban peers sending bad pow outright
PoW is expensive to verify, so be strict
2019-09-25 16:00:43 +00:00
Martijn Otto
f3b65c66f8
Request a thread stack size that is large enough for unbound
Unbound uses a 64 kb large character array on the stack, which
leads to a stack overflow for some libc implementations. musl
only gives 80 kb in total. This PR changes the stack size for
these threads to 1mb, which solves the segmentation fault.
2019-09-25 16:37:06 +02:00
luigi1111
3f6096867d
Merge pull request #5916
7b076d5 p2p: fix bans taking port into account (moneromooo-monero)
2019-09-24 10:42:29 -05:00
luigi1111
5fe38977b5
Merge pull request #5905
Revert a96c1a4 and adc16d2 (moneromooo-monero)
2019-09-24 10:39:28 -05:00
moneromooo-monero
74a23e9a59
protocol: only print sync complete message when out of precompiled hashes
This avoids most premature triggers
2019-09-24 15:29:59 +00:00
luigi1111
44aa7d5439
Merge pull request #5882
a444f06 blockchain: enforce 10 block age for spending outputs (moneromooo-monero)
2019-09-24 10:27:22 -05:00
luigi1111
06bee964a8
Merge pull request #5878
f9b3f6e Removed Berkeley DB and db switching logic (JesusRami)
2019-09-24 10:10:28 -05:00
luigi1111
ee6e849627
Merge pull request #5877
2cd4fd8 Changed the use of boost:value_initialized for C++ list initializer (JesusRami)
4ad191f Removed unused boost/value_init header (whyamiroot)
928f4be Make null hash constants constexpr (whyamiroot)
2019-09-24 10:08:44 -05:00
luigi1111
8c41d36a08
Merge pull request #5864
32f725d Properly format multiline logs (moneromooo-monero)
2019-09-24 10:05:21 -05:00
luigi1111
a1736a9429
Merge pull request #5848
functional_tests (moneromooo-monero)
2019-09-24 10:04:03 -05:00
moneromooo-monero
d0663837d2
core: move hardforks into its own lib
So it can be used by others without encumbrance
2019-09-19 11:28:18 +00:00
moneromooo-monero
a444f06e53
blockchain: enforce 10 block age for spending outputs
Some custom wallet code apparently ignores this, which causes users
of that code to be fingerprinted
2019-09-17 11:39:25 +00:00
moneromooo-monero
d53a55204f
functional_tests: add get_transaction_pool_stats
Also fix part of the RPC results being returned as binary.
This makes the RPC backward incompatible.
2019-09-17 11:38:29 +00:00
moneromooo-monero
cc4be4fa15
wallet: add edit_address_book RPC 2019-09-17 11:38:23 +00:00
moneromooo-monero
7b076d5170
p2p: fix bans taking port into account 2019-09-16 22:45:45 +00:00
moneromooo-monero
32f725d32f
Properly format multiline logs
As a side effect, colouring on Windows should now work
regardless of version
2019-09-16 16:58:01 +00:00
Jesus Ramirez
f9b3f6ef3b Removed Berkeley DB and db switching logic 2019-09-16 16:18:05 +02:00
luigi1111
2c171a9b02
Merge pull request #5861
f0356f7 wallet2: enable ignoring fractional outputs also when sweeping (stoffu)
2019-09-14 13:27:18 -05:00
luigi1111
d663e1e3db
Merge pull request #5818
f91a06c Dropping cppzmq dependency; adding some zmq utils (vtnerd)
2019-09-14 13:25:14 -05:00
luigi1111
dbe31f63e1
Merge pull request #5899
7d3bba5 wallet2_api: add missing parameter (selsta)
2019-09-14 13:23:28 -05:00
luigi1111
76805b62ce
Merge pull request #5874
f380f69 simplewallet: warn if invalid default ring size is set and actually ignore the setting (stoffu)
2019-09-14 13:19:01 -05:00