aboutsummaryrefslogtreecommitdiff
path: root/src (follow)
AgeCommit message (Collapse)AuthorFilesLines
2020-03-14Correct key image check in tx_poolLee Clagett1-16/+7
2020-03-14workaround for GetObject windows.h macro and rapidjson conflictxiphon1-1/+1
2020-03-12Merge pull request #6273Alexander Blair9-1006/+781
0f78b06e Various improvements to the ZMQ JSON-RPC handling: (Lee Clagett)
2020-03-12Merge pull request #6268Alexander Blair4-13/+13
a6c24412 wallet: fix exceptions getting the hash of a pruned tx (moneromooo-monero)
2020-03-12Merge pull request #6243Alexander Blair5-79/+32
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-05Various improvements to the ZMQ JSON-RPC handling:Lee Clagett9-1006/+781
- 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-02-28Merge pull request #6248Alexander Blair1-1/+1
21c3d42e p2p: drop the peerlist dump to TRACE (moneromooo-monero)
2020-02-28Merge pull request #6238Alexander Blair2-0/+9
f717d593 wallet2: guard against race with multiple decrypt_keys users (moneromooo-monero)
2020-02-28Merge pull request #6222Alexander Blair1-0/+2
a6a2ad6c simplewallet: set manual refresh mode in rescan_bc (moneromooo-monero)
2020-02-28Merge pull request #6058Alexander Blair2-2/+15
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-28Merge pull request #6259Alexander Blair1-0/+1
69336931 rpc: fill miner_tx_hash again (moneromooo-monero)
2020-02-28Merge pull request #6242Alexander Blair1-6/+4
716012ca rpc: drop the obsolete and wrong "unpruned size" log (moneromooo-monero)
2020-02-28Merge pull request #6241Alexander Blair3-6/+24
ae84ec90 wallet-cli/rpc: allow sweep_all to use outputs in all subaddresses within an account (stoffu)
2020-02-28Merge pull request #6236Alexander Blair1-1/+1
bc6d8aa3 Corrected message typo (palomato)
2020-02-28Merge pull request #6235Alexander Blair1-1/+1
5cbb17b9 wallet2: fix hang in wallet refresh (moneromooo-monero)
2020-02-28Merge pull request #6225Alexander Blair7-16/+45
987c3139 print_coinbase_tx_sum now supports 128 bits sums (moneromooo-monero)
2020-02-28Merge pull request #6224Alexander Blair1-0/+8
d93e1dff simplewallet: warn on refresh if refresh-from-block-height seems off (moneromooo-monero)
2020-02-28Merge pull request #6223Alexander Blair1-7/+14
c3613031 Silence miner debugmsg spam (Howard Chu)
2020-02-28Merge pull request #6219Alexander Blair1-2/+2
72ca7e3b Fix time comparison math (Jason Rhinelander)
2020-02-28Merge pull request #6215Alexander Blair4-1/+9
a2578892 --disable-ban-rpc option to prevent RPC users from banning (naughtyfox)
2020-02-28Merge pull request #6213Alexander Blair2-11/+15
94266eeb simplewallet: fix output age display with duplicate heights (moneromooo-monero) f1d379d2 simplewallet: fix "outputs in same tx" detector (moneromooo-monero)
2020-02-28Merge pull request #6211Alexander Blair10-6/+46
5985c5af rpc: add bad-blocks to flush_cache RPC (moneromooo-monero)
2020-02-28Merge pull request #6203Alexander Blair1-1/+0
ef95a76d remove unused variable 'ptx' from on_describe_transfer() (woodser)
2020-02-19Merge pull request #6198luigi11114-7/+11
5f2a32c daemon: run with -rpc-payment-address and --rpc-restricted-bind-port (moneromooo-monero)
2020-02-19Merge pull request #6197luigi11111-12/+20
f812783 simplewallet: fix encrypted payment id note triggering on dummy ones (moneromooo-monero)
2020-02-19Merge pull request #6194luigi11111-1/+1
316ab7b wallet2: better error when restoring a wallet with the wrong keys (moneromooo-monero)
2020-02-19Merge pull request #6190luigi11114-2/+38
096a9db Wallet: Distingush amounts for a single subaddress (tmoravec)
2020-02-06miner: use verification mode for low diff one block nonce searchesmoneromooo-monero1-1/+1
This avoids lengthy init times when testing
2020-02-06Merge pull request #6183Alexander Blair1-5/+9
3813a992 download: catch exceptions checking for size (moneromooo-monero)
2020-02-06Merge pull request #6178Alexander Blair1-1/+1
7ac7d5d3 updates: fix source code URL on _WIN32 (selsta)
2020-02-06Merge pull request #6127Alexander Blair4-14/+48
67b4a19e simplewallet: noob-friendly help menu (wowario)
2020-02-06Merge pull request #6103Alexander Blair1-0/+6
4b384003 wallet2: don't try to lock an empty filename (moneromooo-monero)
2020-02-06Merge pull request #6102Alexander Blair3-7/+18
b328de6b wallet_rpc_server: add tx weight in transfer commands responses (moneromooo-monero)
2020-02-06Merge pull request #6096Alexander Blair3-4/+43
a633f85d daemon: allow printing N blocks from the end of the chain (moneromooo-monero)
2020-02-06Merge pull request #6095Alexander Blair3-4/+31
7ba31191 daemon: add +meta print_tx parameter (moneromooo-monero)
2020-02-06Merge pull request #6094Alexander Blair1-2/+2
236d2a88 blockchain_stats: make it work on pruned blockchains (moneromooo-monero)
2020-02-06Merge pull request #6078Alexander Blair1-1/+8
b9fc2066 Add a --keep-fakechain option to keep fakechain databases (JamesWrigley)
2020-02-06Merge pull request #6076Alexander Blair1-2/+5
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-06Merge pull request #6069Alexander Blair5-10/+41
d64e5aa7 wallet: allow message sign/verify for subaddresses (moneromooo-monero)
2020-02-06Merge pull request #6053Alexander Blair4-13/+11
deb350b7 always print peer IDs in the same format (moneromooo-monero)
2020-02-06Merge pull request #6050Alexander Blair1-2/+3
65301c40 core: point out when we hit the block rate visibility limit (moneromooo-monero)
2020-02-06Merge pull request #6040Alexander Blair1-5/+4
2f8f3a94 rpc: base flush_cache request/response on the new base structs (moneromooo-monero)
2020-02-06Merge pull request #6035Alexander Blair3-6/+18
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-04Merge pull request #6233luigi11111-1/+1
8a27645 blockchain: fix flushing txes from the txpool (moneromooo-monero)
2020-01-29p2p: remove obsolete local time in handshakemoneromooo-monero2-5/+0
Also removes a potential fingerprinting vector
2020-01-29p2p: avoid sending the same peer list over and overmoneromooo-monero3-4/+17
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-26p2p: remove backward compatible peer listmoneromooo-monero1-58/+2
2020-01-26p2p: simplify last_seen serialization now we have optional storesmoneromooo-monero1-2/+1
2020-01-26cryptonote_protocol: omit top 64 bits of difficulty when 0moneromooo-monero1-2/+8
2020-01-26p2p: remove obsolete local time from TIMED_SYNCmoneromooo-monero3-8/+4
2020-01-25Merge pull request #6140Alexander Blair5-3/+70
08635a08 blockchain: speedup fetching pruned contiguous tx blobs (moneromooo-monero)
2020-01-25Merge pull request #6170Alexander Blair2-4/+20
56a4469e network: log traffic and add a simple traffic analysis script (moneromooo-monero)
2020-01-26network: log traffic and add a simple traffic analysis scriptmoneromooo-monero2-4/+20
2020-01-26wallet: do not split integrated addresses in address book apimoneromooo-monero6-161/+71
2020-01-24Merge pull request #6093Alexander Blair1-2/+2
2e58eb5c lmdb: Remove meaningless const qualifier on function type (Nathan Dorfman)
2020-01-24Merge pull request #6173Alexander Blair1-6/+10
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-24Merge pull request #6172Alexander Blair2-1/+6
d7cf8727 rpc: add received_timestamp for pool txes in gettransactions (moneromooo-monero)
2020-01-24Merge pull request #6157Alexander Blair1-1/+9
402dd207 db_lmdb: guard against non NUL terminated keys (moneromooo-monero)
2020-01-24Merge pull request #6154Alexander Blair1-0/+1
3b419333 wallet: don't issue node rpc proxy requests in '--offline' mode (xiphon)
2020-01-24Merge pull request #6153Alexander Blair1-1/+1
24adee4a p2p: don't request flags after closing connection (moneromooo-monero)
2020-01-24Merge pull request #6146Alexander Blair13-81/+196
70c9cd3c Change to Tx diffusion (Dandelion++ fluff) instead of flooding (Lee Clagett)
2020-01-24Merge pull request #6128Alexander Blair1-2/+2
9fe8a76c perf_timer: fix pause/resume macros dereferencing too much (moneromooo-monero)
2020-01-16Merge pull request #6144Alexander Blair2-7/+33
0e0351c4 wallet_rpc_server: add count parameter to create_address (Matt Smith)
2020-01-16Merge pull request #6141Alexander Blair1-1/+1
b9b5c473 threadpool: use std::move when taking an element off the queue (moneromooo-monero)
2020-01-16Merge pull request #6134Alexander Blair1-8/+8
a7a40e28 Actually concatenate error strings. (Bert Peters)
2020-01-16Merge pull request #6133Alexander Blair1-4/+5
b2ad757f Replace memset with memwipe. (Bert Peters)
2020-01-16Merge pull request #6130Alexander Blair1-1/+1
6dec0013 simplewallet: fix restore height warning (selsta)
2020-01-16Merge pull request #6124Alexander Blair1-1/+6
21d4c216 blockchain: error out if the builtin hashes data size is wrong (moneromooo-monero)
2020-01-16Merge pull request #6119Alexander Blair1-0/+1
6f45cfa5 p2p: zero last seen timestamp when inserting a new peer (moneromooo-monero)
2020-01-16Merge pull request #6115Alexander Blair2-7/+27
27522aaa core_tests: reset thread pool between tests (moneromooo-monero)
2020-01-11Merge pull request #6112Alexander Blair2-36/+35
7c1d31b0 build: fix IOS, build blockchain_db and rpc, skip wallet_rpc_server (xiphon)
2020-01-11Merge pull request #6105Alexander Blair5-0/+72
0de8a0d3 wallet_rpc_server: new estimate_tx_size_and_weight RPC (moneromooo-monero)
2020-01-11Wallet: Distingush amounts for a single subaddressTadeas Moravec4-2/+38
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>
2019-12-31wallet: allow message sign/verify for subaddressesmoneromooo-monero5-10/+41
2019-12-30wallet: fix exceptions getting the hash of a pruned txmoneromooo-monero4-13/+13
2019-12-20rpc: fill miner_tx_hash againmoneromooo-monero1-0/+1
It was removed to save duplicated generation time, but it can be copied from another instance instead
2019-12-17p2p: drop the peerlist dump to TRACEmoneromooo-monero1-1/+1
It's spammy
2019-12-17wallet2: guard against race with multiple decrypt_keys usersmoneromooo-monero2-0/+9
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-16rpc: drop the obsolete and wrong "unpruned size" logmoneromooo-monero1-6/+4
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-16wallet-cli/rpc: allow sweep_all to use outputs in all subaddresses within an ↵stoffu3-7/+25
account
2019-12-14Corrected message typopalomato1-1/+1
Message was "peer claims higher version that we think" Requested change "peer claims higher version than we think"
2019-12-14wallet2: fix hang in wallet refreshmoneromooo-monero1-1/+1
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-14blockchain: fix flushing txes from the txpoolmoneromooo-monero1-1/+1
2019-12-12Merge pull request #6057luigi11112-3/+23
3b8dcc2 wallet2: make keys unlocker reentrant (moneromooo-monero)
2019-12-12Merge pull request #6055luigi11111-1/+1
886ed25 blockchain: fix comment wrongly refering to SHA-3 rather than Keccak (moneromooo-monero)
2019-12-12Merge pull request #6054luigi11111-1/+1
017f816 daemon: handle printing higher hash rates (moneromooo-monero)
2019-12-12Merge pull request #6052luigi11111-2/+2
c96b7ee tx_pool: fix error message assuming incorrectly (moneromooo-monero)
2019-12-12Merge pull request #6049luigi11111-34/+27
45fd72b Updated paper references (SarangNoether) 277003f Minor prover simplification (SarangNoether)
2019-12-12Merge pull request #6027luigi11111-26/+0
9768e96 simplewallet: remove remaining payment id dead code (moneromooo-monero)
2019-12-12Merge pull request #6018luigi11116-3/+139
dce6f05 rpc: Only show version string if it matches expected pattern (ndorf) 3293780 daemon: Use rpc for 'version' command (ndorf)
2019-12-12print_coinbase_tx_sum now supports 128 bits sumsmoneromooo-monero7-16/+45
The tail emission will bring the total above 64 bits
2019-12-09Silence miner debugmsg spamHoward Chu1-7/+14
Don't try to allocate the dataset repeatedly if it has already failed.
2019-12-09simplewallet: warn on refresh if refresh-from-block-height seems offmoneromooo-monero1-0/+8
2019-12-07simplewallet: set manual refresh mode in rescan_bcmoneromooo-monero1-0/+2
This ensures we get asked for the password if needed
2019-12-05Fix time comparison mathJason Rhinelander1-2/+2
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-04--disable-ban-rpc option to prevent RPC users from banningnaughtyfox4-1/+9
2019-12-03simplewallet: fix output age display with duplicate heightsmoneromooo-monero2-11/+14
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-03simplewallet: fix "outputs in same tx" detectormoneromooo-monero1-0/+1
It was comparing source txids, but txids were empty, so all checks triggered
2019-12-02rpc: add bad-blocks to flush_cache RPCmoneromooo-monero10-7/+47
Flushes m_invalid_blocks in Blockchain.
2019-12-01remove unused variable 'ptx' from on_describe_transfer()woodser1-1/+0
2019-11-29daemon: run with -rpc-payment-address and --rpc-restricted-bind-portmoneromooo-monero4-7/+11
2019-11-29simplewallet: fix encrypted payment id note triggering on dummy onesmoneromooo-monero1-12/+20
2019-11-28wallet2: better error when restoring a wallet with the wrong keysmoneromooo-monero1-1/+1
2019-11-27rpc: error out from get_info if the proxied call errors outmoneromooo-monero1-2/+1
Coverity 205410
2019-11-27node_rpc_proxy: init some new rpc payment fields in invalidatemoneromooo-monero1-0/+4
The cache time would take care of these, but it's cleaner that way Coverity 205412
2019-11-27rpc: init a few missing client_info membersmoneromooo-monero1-0/+4
Coverity 205414
2019-11-27rpc: do not propagate exceptions out of a dtormoneromooo-monero1-4/+8
Coverity 205415
2019-11-27rpc: always set the update field in update on sucessmoneromooo-monero1-0/+1
Coverity 205416
2019-11-26download: catch exceptions checking for sizemoneromooo-monero1-5/+9
Happens on at least one windows box
2019-11-25rpc: fix bootstrap RPC payment RPC being made in raw JSON, not JSON RPCmoneromooo-monero1-5/+5
2019-11-25simplewallet: point to "set help" in the lock screen messagemoneromooo-monero1-1/+1
2019-11-25util: allow newlines in string to be splitmoneromooo-monero1-1/+14
2019-11-25updates: fix source code URL on _WIN32selsta1-1/+1
2019-11-22rpc: don't auto fail RPC needing payment in bootstrap modemoneromooo-monero1-1/+5
2019-11-22rpc: add received_timestamp for pool txes in gettransactionsmoneromooo-monero2-1/+6
2019-11-22wallet_rpc_server: add count parameter to create_addressMatt Smith2-7/+33
2019-11-19db_lmdb: guard against non NUL terminated keysmoneromooo-monero1-1/+9
2019-11-19make d2h et al. constant-timeJethro Grassie1-30/+8
2019-11-19wallet: don't issue node rpc proxy requests in '--offline' modexiphon1-0/+1
2019-11-19p2p: don't request flags after closing connectionmoneromooo-monero1-1/+1
2019-11-17Fix #6147 DB corruption from child process overwriteHoward Chu1-1/+6
Don't leave stdout/stderr dangling on a fork.
2019-11-16Merge pull request #6135luigi11111-1/+1
09f59ec wallet: set non-empty error string on connection failure (xiphon)
2019-11-15threadpool: use std::move when taking an element off the queuemoneromooo-monero1-1/+1
It has a std::function, which can have a capture context, and the function runtime might be small
2019-11-15blockchain: speedup fetching pruned contiguous tx blobsmoneromooo-monero5-3/+70
About twice as fast, very roughly
2019-11-14wallet: set non-empty error string on connection failurexiphon1-1/+1
2019-11-14Actually concatenate error strings.Bert Peters1-8/+8
2019-11-14simplewallet: fix restore height warningselsta1-1/+1
2019-11-13Replace memset with memwipe.Bert Peters1-4/+5
2019-11-13perf_timer: fix pause/resume macros dereferencing too muchmoneromooo-monero1-2/+2
2019-11-13simplewallet: noob-friendly help menuwowario4-14/+48
2019-11-12rpc: Only show version string if it matches expected patternNathan Dorfman4-1/+102
2019-11-12daemon: Use rpc for "version" commandNathan Dorfman3-3/+38
2019-11-12blockchain: error out if the builtin hashes data size is wrongmoneromooo-monero1-1/+6
2019-11-11p2p: zero last seen timestamp when inserting a new peermoneromooo-monero1-0/+1
2019-11-10core_tests: reset thread pool between testsmoneromooo-monero2-7/+27
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-09build: fix IOS, build blockchain_db and rpc, skip wallet_rpc_serverxiphon2-36/+35
2019-11-06wallet_rpc_server: new estimate_tx_size_and_weight RPCmoneromooo-monero5-0/+72
2019-11-05wallet2: don't try to lock an empty filenamemoneromooo-monero1-0/+6
2019-11-05wallet_rpc_server: add tx weight in transfer commands responsesmoneromooo-monero3-7/+18
2019-11-04wallet2: fix pool txes not being flushed when minedmoneromooo-monero1-1/+1
2019-11-04daemon: allow printing N blocks from the end of the chainmoneromooo-monero3-4/+43
It's a very common usage (for my anyway) and avoids the need to get the current height, paste, subtract one, etc
2019-11-04daemon: add +meta print_tx parametermoneromooo-monero3-4/+31
prints size, weight and (if mined) height
2019-11-04blockchain_stats: make it work on pruned blockchainsmoneromooo-monero1-2/+2
It reports the actual size as pruned, however
2019-11-04lmdb: Remove meaningless const qualifier on function typeNathan Dorfman1-2/+2
2019-11-04Change to Tx diffusion (Dandelion++ fluff) instead of floodingLee Clagett13-81/+196
2019-11-03Merge pull request #6074Riccardo Spagni7-38/+110
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-02Adding support for hidden (anonymity) txpoolLee Clagett24-279/+631
2019-11-02Merge pull request #6079Riccardo Spagni4-3/+4
e4d1674e8 0.15.0.0 release engineering (Riccardo Spagni)
2019-11-02Merge pull request #6047Riccardo Spagni5-12/+18
ebc6ce44f cryptonote: untangle dependency from miner to blockchain (moneromooo-monero)
2019-11-020.15.0.0 release engineeringRiccardo Spagni4-3/+4
2019-11-02simplewallet: plug a timing leakmoneromooo-monero2-10/+31
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-01Add a --keep-fakechain option to keep fakechain databasesJamesWrigley1-1/+8
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-01wallet: reuse cached height when set after refreshmoneromooo-monero2-0/+11
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-01wallet2: fix is_synced checking target height, not heightmoneromooo-monero1-1/+1
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-01wallet: fix another facet of "did I get some monero" information leakmoneromooo-monero4-15/+50
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-01wallet2: do not send an unnecessary last getblocks.bin call on refreshmoneromooo-monero2-7/+17
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-01simplewallet: add missing inactivity-lock-timeout to set help blurbmoneromooo-monero1-1/+3
2019-11-01simplewallet: do not mention inactivity if a lock was manualmoneromooo-monero1-1/+2
2019-11-01wallet2: do not repeatedly ask for pool txes sent to usmoneromooo-monero1-5/+0
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-10-31cryptonote: untangle dependency from miner to blockchainmoneromooo-monero5-12/+18
It causes link errors at least on mac
2019-10-29wallet2: make keys unlocker reentrantmoneromooo-monero2-3/+23
protects against having your keys mangled
2019-10-29blockchain: fix comment wrongly refering to SHA-3 rather than Keccakmoneromooo-monero1-1/+1
2019-10-29daemon: handle printing higher hash ratesmoneromooo-monero1-1/+1
2019-10-29always print peer IDs in the same formatmoneromooo-monero4-13/+11
2019-10-29tx_pool: fix error message assuming incorrectlymoneromooo-monero1-2/+2
2019-10-28daemon: always use bootstrap daemon (if set) in '--no-sync' modexiphon2-3/+6
2019-10-28Updated paper referencesSarang Noether1-24/+22
2019-10-28core: point out when we hit the block rate visibility limitmoneromooo-monero1-2/+3
2019-10-28Minor prover simplificationSarang Noether1-10/+5
2019-10-27Merge pull request #6044luigi11111-2/+11
eb16755 blockchain: fix unwanted error when probing the pool for a tx (moneromooo-monero)
2019-10-27blockchain: fix unwanted error when probing the pool for a txmoneromooo-monero1-2/+11
2019-10-27rpc: base flush_cache request/response on the new base structsmoneromooo-monero1-5/+4
2019-10-27wallet: do not warn if the rpc cost was freemoneromooo-monero1-1/+1
2019-10-25Merge pull request #6017luigi11111-1/+1
5734686 rpc: Include tag in get_info version string (ndorf)
2019-10-26rpc: fix PRIx64 build error on some systemsmoneromooo-monero1-1/+1
2019-10-25Merge pull request #6024luigi11111-0/+4
296ec7c device: bounds checking in Ledger send_secret/receive_secret (xiphon)
2019-10-25Merge pull request #5958luigi11113-108/+217
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-25Merge pull request #6028luigi11111-1/+1
174a6ac tx_pool: fix divide by 0 in log (moneromooo-monero)
2019-10-25Merge pull request #6007luigi111110-1/+97
a4dc575 rpc: add a flush_cache RPC (moneromooo-monero)
2019-10-25Merge pull request #6023luigi11111-1/+1
643dcb9 net: link with libzmq (moneromooo-monero)
2019-10-25Merge pull request #6021luigi11113-14/+14
65e8a89 Change monerod --proxy to --tx-proxy (vtnerd)
2019-10-25Merge pull request #6019luigi11112-3/+3
d60c1b6 changed 'batttery' to 'battery' (jakehemmerle)
2019-10-25Merge pull request #6014luigi11111-0/+5
93e7426 wallet2: error out when we need a daemon password but have no prompt function (moneromooo-monero)
2019-10-25Merge pull request #6013luigi11111-0/+1
635401b wallet2: fix the logged number of detached transfers (moneromooo-monero)
2019-10-25rpc: add a flush_cache RPCmoneromooo-monero10-1/+97
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-25Merge pull request #5357luigi111141-794/+3548
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-25tx_pool: fix divide by 0 in logmoneromooo-monero1-1/+1
Coverity 205394
2019-10-25simplewallet: remove remaining payment id dead codemoneromooo-monero1-26/+0
pointed out by coverity
2019-10-25device: bounds checking in Ledger send_secret/receive_secretxiphon1-0/+4
2019-10-25net: link with libzmqmoneromooo-monero1-1/+1
2019-10-25simplewallet: add public_nodes commandmoneromooo-monero7-22/+99
Lists nodes exposing their RPC port for public use
2019-10-25daemon, wallet: new pay for RPC use systemmoneromooo-monero41-789/+3452
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-24Change monerod --proxy to --tx-proxyLee Clagett3-14/+14
2019-10-24Merge pull request #6002luigi11111-0/+4
0136bf7 v12 fork heights (tevador)
2019-10-24changed 'batttery' to 'battery'Jake Hemmerle2-3/+3
2019-10-24rpc: Include tag in get_info version stringNathan Dorfman1-1/+1
2019-10-24Merge pull request #5495luigi11113-0/+304
28a627c gen_ssl_cert: new tool to generate SSL certs for Monero (moneromooo-monero)
2019-10-24gen_ssl_cert: new tool to generate SSL certs for Moneromoneromooo-monero3-0/+304
2019-10-24Merge pull request #6004luigi11111-8/+8
951ceab daemon: print difficulty in decimal, as it used to be (moneromooo-monero)
2019-10-24Merge pull request #5998luigi11111-3/+3
0da09ed protocol: fix syncing from peers being too choosy about peers (moneromooo-monero)