Commit Graph

1219 Commits

Author SHA1 Message Date
moneromooo-monero
875c1cabb9
wallet2: increase rpc timeout for get_output_distribution 2018-04-19 16:06:26 +01:00
moneromooo-monero
70f2321763
add top height to get_output_distribution, and cache it for rct
This should cache the vast majority of calls for long running wallets
2018-04-19 16:06:22 +01:00
Riccardo Spagni
5053f8f40b
Merge pull request #3502
11c933e1 fix lambda compile error on openbsd (moneromooo-monero)
2018-04-12 11:14:43 +02:00
Riccardo Spagni
96b2fee721
Merge pull request #3536
c77d2bfa Add the possibility to export private view key for fast scan. (cslashm)
100b7bc1 Change mutex lock model to avoid dead lock and ensure locks are always released. (cslashm)
641dfc99 Automatic height setup when creating/restoring hw device. (cslashm)
2018-04-12 11:12:33 +02:00
Riccardo Spagni
1b4dc46129
Merge pull request #3473
eaa8bfe7 wallet2: set from_height of GET_OUTPUT_DISTRIBUTION correctly The previous expression (stoffu)
0a619f78 wallet2: enable the mitigation only after the fork height (stoffu)
2018-04-12 11:05:31 +02:00
Riccardo Spagni
ebb55f797b
Merge pull request #3468
0098ed33 wallet2: fix for loading settings of key reuse mitigation (stoffu)
2018-04-12 11:00:47 +02:00
cslashm
c77d2bfaa0 Add the possibility to export private view key for fast scan.
On client startup the device asks for authorization to export the private view key.
If user agree, the client hold the private view key allowing a fast blockchain scan.
If the user does not agree, the blockchain scan is fully done via the device.
2018-03-31 18:00:33 +02:00
moneromooo-monero
11c933e137
fix lambda compile error on openbsd 2018-03-27 14:48:36 +01:00
stoffu
eaa8bfe7c0
wallet2: set from_height of GET_OUTPUT_DISTRIBUTION correctly
The previous expression

    req_t.from_height = X ? Y >= Z : 0;

forces the parameter to take the value of either 0 or 1.
2018-03-22 20:02:25 +09:00
stoffu
0a619f789b
wallet2: enable the mitigation only after the fork height 2018-03-22 20:02:14 +09:00
stoffu
0098ed338c
wallet2: fix for loading settings of key reuse mitigation 2018-03-22 12:10:46 +09:00
moneromooo-monero
5730049178
wallet: catch exceptions dealing with ringdb and warn 2018-03-21 14:29:49 +00:00
moneromooo-monero
1e393f4bb7
wallet: make the segregation height settable
via user setting first, then DNS TXT record, hardcoded fallback
2018-03-17 14:56:31 +00:00
Riccardo Spagni
5cd36e48bf
Merge pull request #3421
9732a37e wallet_rpc_server: add sweep_unmixable as alias for sweep_dust (moneromooo-monero)
2018-03-17 16:52:46 +02:00
moneromooo-monero
9732a37e9a
wallet_rpc_server: add sweep_unmixable as alias for sweep_dust 2018-03-17 11:22:58 +00:00
stoffu
b86f1e5dad Add command line option allowing to restrict the default sub-address lookahead in order to avoid
so looooong time of set-up when creating a HW based wallet.
2018-03-16 18:00:28 +01:00
Riccardo Spagni
0f27fc57ac
Merge pull request #3336
57c0b1ed Fix typos in various files (Dimitris Apostolou)
2018-03-16 18:08:07 +02:00
moneromooo-monero
eac3a11ed3
wallet: more user friendly print_ring
It can now take a txid (to display rings for all its inputs),
and will print rings in a format that set_ring understands
2018-03-16 12:07:45 +00:00
moneromooo-monero
798535149d
wallet2_api: add key reuse mitigations API 2018-03-16 12:07:42 +00:00
moneromooo-monero
b057a21d56
wallet2_api: add ring api 2018-03-16 10:33:05 +00:00
moneromooo-monero
d32ef7b0f2
ringdb: factor ring addition code 2018-03-16 10:33:02 +00:00
moneromooo-monero
a7da8208f5
wallet2_api: add blackball api 2018-03-16 10:32:59 +00:00
moneromooo-monero
504428ab4a
ringdb: use the genesis block as a db name
This will avoid careless forkers polluting the shared database
even if they make their own chain. They'll then automatically
start using another subdb, and any key-reusing fork of those
forks will reuse their subdbs.
2018-03-16 10:32:54 +00:00
moneromooo-monero
b09e5181cc
wallet: add a set_ring command
This is so one can set rings for spent key images in case the
attackers don't merge the ring matching patch set.
2018-03-16 10:32:51 +00:00
moneromooo-monero
db10dd6d83
wallet: make ringdb an object with database state 2018-03-16 10:32:42 +00:00
moneromooo-monero
d29ea0455a
wallet: add an output blackball list to avoid using those in rings 2018-03-16 10:32:37 +00:00
moneromooo-monero
18eaf19489
wallet: key reuse mitigation options
If a pre-fork output is spent on both Monero and attack chain,
any post-fork output can be deduced to be a fake output, thereby
decreasing the effective ring size.

The segregate-per-fork-outputs option, on by default, allows
selecting only pre-fork outputs in this case, so that the same
ring can be used when spending it on the other side, which does
not decrease the effective ring size.

This is intended to be SET when intending to spend Monero on the
attack fork, and to be UNSET if not intending to spend Monero
on the attack fork (since it leaks the fact that the output being
spent is pre-fork).

If the user is not certain yet whether they will spend pre-fork
outputs on a key reusing fork, the key-reuse-mitigation2 option
should be SET instead.

If you use this option and intend to spend Monero on both forks,
then spend real Monero first.
2018-03-16 10:32:34 +00:00
moneromooo-monero
5f146873c5
wallet: add shared ring database
This maps key images to rings, so that different forks can reuse
the rings by key image. This avoids revealing the real inputs like
would happen if two forks spent the same outputs with different
rings. This database is meant to be shared with all Monero forks
which don't bother making a new chain, putting users' privacy at
risk in the process. It is placed in a shared data directory by
default ($HOME/.shared-ringdb on UNIX like systems). You may
use --shared-ringdb-dir to override this location, and should
then do so for all Monero forks for them to share the database.
2018-03-16 10:32:29 +00:00
moneromooo-monero
41f727ce42
add RPC to get a histogram of outputs of a given amount 2018-03-16 10:32:26 +00:00
Dimitris Apostolou
57c0b1ed9f Fix typos in various files 2018-03-15 18:25:38 +02:00
stoffu
a7266d6d7b
wallet2+cli+rpc: eliminate redundant m_http_client from cli/rpc and delegate calls to wallet2 2018-03-15 22:01:51 +09:00
stoffu
71d186566e
replace invoke_http_json("/json_rpc",...) with invoke_http_json_rpc("/json_rpc",methodname,...) to reduce boilerplate 2018-03-14 23:23:59 +09:00
Riccardo Spagni
a69c713f8e
Merge pull request #3398
c577abab wallet: fix auto low priority so that it takes effect only when saved default is 0 (stoffu)
2018-03-14 16:18:15 +02:00
Riccardo Spagni
2fe1504c03
Merge pull request #3399
1d39b265 wallet2: fix use_fork_rules() when querying version that is defined but not enabled yet (stoffu)
2018-03-14 16:17:59 +02:00
Riccardo Spagni
8b90e3141a
Merge pull request #3386
9abeff59 wallet2: handle no blocks returned in refresh to mean no new blocks (moneromooo-monero)
2018-03-14 16:10:00 +02:00
Riccardo Spagni
7a44301675
Merge pull request #3385
ec41006c node_rpc_proxy: fix target height caching (moneromooo-monero)
2018-03-14 16:09:40 +02:00
stoffu
4405e4fc73
wallet2: check_tx_key() shouldn't require hardware encryption 2018-03-14 21:00:18 +09:00
stoffu
27a196b126
device: untangle cyclic depenency
When #3303 was merged, a cyclic dependency chain was generated:

    libdevice <- libcncrypto <- libringct <- libdevice

This was because libdevice needs access to a set of basic crypto operations
implemented in libringct such as scalarmultBase(), while libringct also needs
access to abstracted crypto operations implemented in libdevice such as
ecdhEncode(). To untangle this cyclic dependency chain, this patch splits libringct
into libringct_basic and libringct, where the basic crypto ops previously in
libringct are moved into libringct_basic. The cyclic dependency is now resolved
thanks to this separation:

    libcncrypto <- libringct_basic <- libdevice <- libcryptonote_basic <- libringct

This eliminates the need for crypto_device.cpp and rctOps_device.cpp.

Also, many abstracted interfaces of hw::device such as encrypt_payment_id() and
get_subaddress_secret_key() were previously implemented in libcryptonote_basic
(cryptonote_format_utils.cpp) and were then called from hw::core::device_default,
which is odd because libdevice is supposed to be independent of libcryptonote_basic.
Therefore, those functions were moved to device_default.cpp.
2018-03-14 21:00:15 +09:00
stoffu
c9b38b4765
device: made function prototypes consistent with pre-#3303 codebase 2018-03-14 21:00:06 +09:00
Riccardo Spagni
f2e8e8d23c
Merge pull request #3377
aa8bef0c fix error message typo in wallet2.cpp (cryptochangements34)
2018-03-14 13:38:50 +02:00
Riccardo Spagni
3bc2537f5a
Merge pull request #3369
1979d53d wallet: fixes and tweaks to the save_watch_only command (moneromooo-monero)
2018-03-14 13:37:14 +02:00
Riccardo Spagni
0f2d6d40b4
Merge pull request #3360
1ff35fda Wallet API: make nettype non-defaulted to disambiguate from deprecated versions (and make libwallet_api_tests compilable) (stoffu)
2018-03-14 13:37:00 +02:00
Riccardo Spagni
117cf12509
Merge pull request #3355
0bbd521f libwallet_merged: added missing libdevice (stoffu)
2018-03-14 13:36:36 +02:00
Riccardo Spagni
33158f089d
Merge pull request #3354
ffe70b8f Make mixin optional with default for rpc transfer (cryptochangements34)
2018-03-14 13:36:25 +02:00
Riccardo Spagni
2dfb4f098e
Merge pull request #3353
73dd883d Ledger HW Bug fixes (Cédric)
2018-03-14 13:36:14 +02:00
Riccardo Spagni
cfc5a3d4d4
Merge pull request #3345
e0cda74a wallet2_api: add info/error/warning entry points (moneromooo-monero)
2018-03-14 13:35:53 +02:00
Riccardo Spagni
67978b78ce
Merge pull request #3337
91d97dd4 fuzz_tests: set small subaddress lookahead for speed (moneromooo-monero)
5f85cc7e wallet2: guard against overflowing of subaddress indices (moneromooo-monero)
2018-03-14 13:35:41 +02:00
Riccardo Spagni
3fed788603
Merge pull request #3315
649a1b7a wallet2 / simplewallet: Must opt-in to create '.address.txt' files for new wallets (Leon Klingele)
2018-03-14 13:35:11 +02:00
moneromooo-monero
5f85cc7e3d
wallet2: guard against overflowing of subaddress indices 2018-03-14 11:34:06 +00:00
stoffu
1d39b26556
wallet2: fix use_fork_rules() when querying version that is defined but not enabled yet 2018-03-14 19:02:21 +09:00