Age | Commit message (Collapse) | Author | Files | Lines |
|
c3f354e simplewallet fix wrong persistent-rpc-client-id name in help (moneromooo-monero)
|
|
|
|
|
|
|
|
|
|
85899230d simplewallet: allow setting tx keys when sending to a subaddress (moneromooo-monero)
e916201f1 wallet2: fix setting tx keys when another is already set (moneromooo-monero)
|
|
This reduces the attack surface for data that can come from
malicious sources (exported output and key images, multisig
transactions...) since the monero serialization is already
exposed to the outside, and the boost lib we were using had
a few known crashers.
For interoperability, a new load-deprecated-formats wallet
setting is added (off by default). This allows loading boost
format data if there is no alternative. It will likely go
at some point, along with the ability to load those.
Notably, the peer lists file still uses the boost serialization
code, as the data it stores is define in epee, while the new
serialization code is in monero, and migrating it was fairly
hairy. Since this file is local and not obtained from anyone
else, the marginal risk is minimal, but it could be migrated
later if needed.
Some tests and tools also do, this will stay as is for now.
|
|
f9e3fcdf3 add trezor support to sweep_single (Dusan Klinec)
|
|
The tx key derivation is different then
|
|
|
|
5e0ea6e95 simplewallet: add missing calls to on_command (moneromooo-monero)
|
|
5ef0607da Update copyright year to 2020 (SomaticFanatic)
|
|
99684e3e simplewallet: add show_qr_code command (selsta)
|
|
|
|
Thanks to iDunk for helping with Windows.
|
|
|
|
82d21f5 easylogging++: sanitize log payload (moneromooo-monero)
7d0b7e8 [master] MMS: New 'config_checksum' subcommand (rbrunner7)
|
|
86cf811 simplewallet: don't complain about incoming payment ids on change (moneromooo-monero)
|
|
|
|
|
|
It resets the inactivity time
|
|
|
|
Update copyright year to 2020
|
|
8b655de simplewallet: report timestamp based expected unlock time on balance (moneromooo-monero)
|
|
27d551d simplewallet: add sweep_account command (moneromooo-monero)
|
|
e509ede trezor: adapt to new passphrase mechanism (ph4r05)
|
|
b367630 simplewallet : missing function block separator (sumogr)
|
|
7c4a400 simplewallet: fix strings (show_transfers & export_transfers) (sumogr)
|
|
- 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
|
|
|
|
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.
|
|
69b5992 simplewallet: new 'address one-off <major> <minor>' command (moneromooo-monero)
|
|
927fd47 simplewallet: fix smart mining not starting after first setup (moneromooo-monero)
|
|
|
|
|
|
|
|
c61abf8 remove empty statements (shopglobal)
|
|
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.
|
|
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)
|
|
a6c24412 wallet: fix exceptions getting the hash of a pruned tx (moneromooo-monero)
|
|
a6a2ad6c simplewallet: set manual refresh mode in rescan_bc (moneromooo-monero)
|
|
88b82bef simplewallet: point to "set help" in the lock screen message (moneromooo-monero)
f19c9f23 util: allow newlines in string to be split (moneromooo-monero)
|
|
ae84ec90 wallet-cli/rpc: allow sweep_all to use outputs in all subaddresses within an account (stoffu)
|
|
d93e1dff simplewallet: warn on refresh if refresh-from-block-height seems off (moneromooo-monero)
|
|
94266eeb simplewallet: fix output age display with duplicate heights (moneromooo-monero)
f1d379d2 simplewallet: fix "outputs in same tx" detector (moneromooo-monero)
|
|
f812783 simplewallet: fix encrypted payment id note triggering on dummy ones (moneromooo-monero)
|
|
Cleaning up a little around the code base.
|
|
Also avoid rewriting the wallet if the setting is already was we need
|
|
67b4a19e simplewallet: noob-friendly help menu (wowario)
|
|
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)
|
|
d64e5aa7 wallet: allow message sign/verify for subaddresses (moneromooo-monero)
|
|
|
|
6dec0013 simplewallet: fix restore height warning (selsta)
|
|
|
|
|
|
|
|
account
|
|
9768e96 simplewallet: remove remaining payment id dead code (moneromooo-monero)
|
|
|
|
This ensures we get asked for the password if needed
|
|
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
|
|
It was comparing source txids, but txids were empty,
so all checks triggered
|
|
|
|
|
|
|
|
|
|
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.
|
|
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.
|
|
|
|
|
|
d60c1b6 changed 'batttery' to 'battery' (jakehemmerle)
|
|
pointed out by coverity
|
|
Lists nodes exposing their RPC port for public use
|
|
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.
|
|
|
|
32d6376 simplewallet: add --restore-from-seed alias (moneromooo-monero)
|
|
bba5bae implewallet: don't trigger idle lock right after a foreground refresh (moneromooo-monero)
|
|
e85c838 simplewallet: do not print warning for locked coinbase txes (moneromooo-monero)
|
|
93d5cf2 wallet2: add ignore-outputs-{above/below} option (stoffu)
|
|
16498dc simplewallet.cpp - clean up welcome message (SomaticFanatic)
|
|
|
|
|
|
It may be more intuitive for some people
|
|
|
|
since they're all locked for a fixed amount
|
|
https://github.com/aeonix/aeon/pull/131
|
|
Fixed a typo ("and -are- not visible to the world by default"), removed a few redundant commas, and capitalized words inside the URL.
|
|
bd9c12e simplewallet: remove erroneously added line under subaddress-lookahead (stoffu)
|
|
f380f69 simplewallet: warn if invalid default ring size is set and actually ignore the setting (stoffu)
|
|
11f13da blockchain: fix logging bad number of blocks if first one fails (moneromooo-monero)
19bfe7e simplewallet: fix warnings about useless std::move (moneromooo-monero)
|
|
|
|
2ec455d wallet: fix mismatch between two concepts of 'balance' (moneromooo-monero)
|
|
87d2f06 simplewallet: moan harder about untrusted nodes (moneromooo-monero)
|
|
One considers the blockchain, while the other considers the
blockchain and some recent actions, such as a recently created
transaction which spend some outputs, but isn't yet mined.
Typically, the "balance" command wants the latter, to reflect
the recent action, but things like proving ownership wants
the former.
This fixes a crash in get_reserve_proof, where a preliminary
check and the main code used two concepts of "balance".
|
|
the setting
|
|
|
|
|
|
|
|
New CLI wallet variable: export-format with options "binary" (the default),
or "ascii". "Binary" behaves as before, "ascii" forces the wallet to convert
data to ASCII using base64.
Reading files from the disk tries to auto detect what format has been
used (using a magic string added when exporting the data).
Implements https://github.com/monero-project/monero/issues/2859
|
|
5a91b83 simplewallet: add a few missing settings help text (stoffu)
ae7bf37 simplewallet: fix arg indexing bug in set_device_name (stoffu)
|
|
884df82 wallet: provide original address for outgoing transfers (xiphon)
|
|
65f29a8 simplewallet: add restore_height command (tobtoht)
|
|
0d916a6 Fix incorrectly named binding for MMS send_signer_config command (tobtoht)
|
|
256d286 Minor formatting fix in help set command (tobtoht)
|
|
8be5fea simplewallet: optional all flag to export_outputs/export_key_images (moneromooo-monero)
|
|
a604241 simplewallet: don't ask about mining when running a command line (moneromooo-monero)
|
|
8ccc30b Fix --restore-date usage (hyc)
|
|
|
|
|
|
c820e18 simplewallet: print errors on exceptions creating wallets (moneromooo-monero)
|
|
f074b6b device: show address on device display (ph4r05)
|
|
a23dbe6 simplewallet: prompt when spending more than one old out in one tx (moneromooo-monero)
|
|
|
|
|
|
send_message_config isn't used anywhere else in the code, and it is clear from the help command that it should be named send_signer_config.
|
|
|
|
|
|
This is likely to be done via a script
|
|
- Trezor: support for device address display (subaddress, integrated address)
- Wallet::API support added
- Simplewallet:
- address device [<index>]
- address new <label> // shows address on device also
- integrated_address [device] <payment_id|address> // new optional "device" arg to display also on the device
|
|
The wallet was ignoring --restore-height and --restore-date params and
prompting for them again.
|
|
Exceptions would otherwise terminate the process silently
|
|
also add a note when receiving the tx, because the user
might not notice the "XXX blocks to unlock" in the balance.
|
|
588e6700 simplewallet: fix output representation offset (moneromooo-monero)
35e0a968 wallet2: "output lineup" fake out selection (moneromooo-monero)
|
|
|
|
|
|
|
|
926e0472 simplewallet: add another warning about long payment ids (moneromooo-monero)
|
|
34f8c237 simplewallet: fix warning about long payment id using the old option (moneromooo-monero)
|
|
|
|
383c38fd fix init warning on whatever compiler version (italocoin)
|
|
|
|
|
|
I saw one when landing on www.tribler.org, and it seemed
like a good idea to have something similar, alongside some
more general "what is monero" text.
|
|
0be5b2ee simplewallet: new unset_ring command (moneromooo-monero)
|
|
c12b43cb wallet: add number of blocks required for the balance to fully unlock (moneromooo-monero)
3f1e9e84 wallet2: set confirmations to 0 for pool txes in proofs (moneromooo-monero)
36c037ec wallet_rpc_server: error out on getting the spend key from a hot wallet (moneromooo-monero)
cd1eaff2 wallet_rpc_server: always fill out subaddr_indices in get_transfers (moneromooo-monero)
|
|
a2561653 wallet: new option to start background mining (moneromooo-monero)
|
|
displays total sent and received bytes
|
|
16eda54b wallet: use original user address if we have a short payment id (moneromooo-monero)
|
|
The setup-background-mining option can be used to select
background mining when a wallet loads. The user will be asked
the first time the wallet is created.
|
|
Useful when debugging, though not much for users
|
|
|
|
18faa6da wallet: add freeze/thaw/frozen commands (moneromooo-monero)
|
|
7c440915 Add get_tx_proof support, needed for new sanity check (cslashm)
98fdcb2a Add support for V11 protocol with BulletProofV2 and short amount. New scheme key destination contrfol Fix dummy decryption in debug mode (cslashm)
3a981a33 Add application version compatibility check. (cslashm)
|
|
e99b2b12 simplewallet: make the long payment ids warnigns more warney (moneromooo-monero)
|
|
|
|
Enhance debug info
|
|
cce948a5 simplewallet: add some missing spacing before uses data (moneromooo-monero)
|
|
|
|
These commands let one freeze outputs by key image, so they
do not appear in balance, nor are considered when creating
a transaction, etc
This is helpful when receiving an output from a suspected spy,
who might try to track your other outputs by seeing with what
other outputs it gets spent.
The frozen command may be used without parameters to list all
currently frozen outputs.
|
|
576116d4 wallet: fix load failure if the mms isn't usable (moneromooo-monero)
|
|
c6a70af8 wallet2: key image import fixes (moneromooo-monero)
|
|
c9b13fbb tests/trezor: HF9 and HF10 tests (Dusan Klinec)
a1fd1d49 device/trezor: HF10 support added, wallet::API (Dusan Klinec)
d74d26f2 crypto: hmac_keccak added (Dusan Klinec)
|
|
- import only key images generated by cold signing process
- wallet_api: trezor methods added
- wallet: button request code added
- const added to methods
- wallet2::get_tx_key_device() tries to decrypt stored tx private keys using the device.
- simplewallet supports get_tx_key and get_tx_proof on hw device using the get_tx_key feature
- live refresh enables refresh with trezor i.e. computing key images on the fly. More convenient and efficient for users.
- device: has_ki_live_refresh added
- a thread is watching whether live refresh is being computed, if not for 30 seconds, it terminates the live refresh process - switches Trezor state
|
|
f42263eb wallet: adds rescan_bc option with preserving key images (Dusan Klinec)
|
|
We want people to really realize it's bad for *their* privacy.
|
|
- enables to perform rescan_spent / ki sync with untrusted daemon. Spent check status involves RPC calls which require trusted daemon status as it leaks information. The new call performs soft reset while preserving key images thus a sequence: refresh, ki sync / import, rescan_bc keep_ki will correctly perform spent checking without need for trusted daemon.
- useful to detect spent outputs with untrusted daemon on watch_only / multisig / hw-cold wallets after expensive key image sync.
- cli: rescan_bc keep_ki
|
|
|
|
|
|
- return the right output data when offset is not zero
- do not consider import failed if result height is zero
(it can be 0 if unknown)
- select the right tx pubkey when using subaddresses (it's faster,
and we might select the wrong one if we got an output using one
of the additional tx keys)
- account for skipped outputs for spent/unspent balance info
"spent" is arguably wrong, since it will count spent change
multiple times as it goes through receive/spend cycles.
|
|
|
|
1f5680c8 simplewallet: add help for ask-password options (moneromooo-monero)
c7c74caf simplewallet: mark confirm-missing-payment-id as obsolete (moneromooo-monero)
|
|
24569454 epee: add SSL support (moneromooo-monero)
|
|
|
|
|
|
for long payment ids
|
|
RPC connections now have optional tranparent SSL.
An optional private key and certificate file can be passed,
using the --{rpc,daemon}-ssl-private-key and
--{rpc,daemon}-ssl-certificate options. Those have as
argument a path to a PEM format private private key and
certificate, respectively.
If not given, a temporary self signed certificate will be used.
SSL can be enabled or disabled using --{rpc}-ssl, which
accepts autodetect (default), disabled or enabled.
Access can be restricted to particular certificates using the
--rpc-ssl-allowed-certificates, which takes a list of
paths to PEM encoded certificates. This can allow a wallet to
connect to only the daemon they think they're connected to,
by forcing SSL and listing the paths to the known good
certificates.
To generate long term certificates:
openssl genrsa -out /tmp/KEY 4096
openssl req -new -key /tmp/KEY -out /tmp/REQ
openssl x509 -req -days 999999 -sha256 -in /tmp/REQ -signkey /tmp/KEY -out /tmp/CERT
/tmp/KEY is the private key, and /tmp/CERT is the certificate,
both in PEM format. /tmp/REQ can be removed. Adjust the last
command to set expiration date, etc, as needed. It doesn't
make a whole lot of sense for monero anyway, since most servers
will run with one time temporary self signed certificates anyway.
SSL support is transparent, so all communication is done on the
existing ports, with SSL autodetection. This means you can start
using an SSL daemon now, but you should not enforce SSL yet or
nothing will talk to you.
|
|
8258a9e7 wallet: do not check txpool in background mode (moneromooo-monero)
|
|
For better transaction uniformity, even though this wastes space.
|
|
|
|
51b0625e simplewallet: improve punctuation in user visible string (selsta)
|
|
1ef79b43 simplewallet: disable long payment ids by default (moneromooo-monero)
|
|
15904610 simplewallet: remove extra colon in a few calls to input_secure_line (stoffu)
247dab73 simplewallet: avoid conversion to string in input_secure_line (stoffu)
bf9ef7ad simplewallet: factor yesno hint into input_line (stoffu)
|
|
|
|
|
|
|
|
|
|
unless --long-payment-id-support is used
|
|
|
|
c1081091 simplewallet: Show new address after going multisig (rbrunner7)
|
|
53fcd159 simplewallet: don't subtract 1 to estimate blockchain height (moneromooo-monero)
|
|
9092fc4b wallet: do not display daemon controlled text if untrusted (moneromooo-monero)
|
|
8bd71677 simplewallet: remove ability to transfer with detached short payment ids (moneromooo-monero)
|
|
5e10dee3 simplewallet: fix show_transfers colouring, and add red for failed (moneromooo-monero)
|
|
60b35c91 Add --restore-date param (Howard Chu)
|
|
This avoids the constant message about needed to run refresh
to enter a password.
Also mention the txpool when asking for the password if the
reason is a pool tx.
|
|
|
|
in case it returns 0, and other uses don't, plus it's a estimation anyway.
|
|
|
|
1d892ec simplewallet: donate command validate amount (selsta)
|
|
|
|
It seemed like a good idea at the time
|
|
Help messages describe the commands usage. When users run the command
with wrong arguments, it usually helpfully offers the usage, too.
Unfortunately, these two usage messages were duplicated in the code and
started to get out of sync.
Fixing with constant strings.
|
|
Also add the type back, as it was somehow weirdly split into
two different fields, one being a union...
|
|
Estimate restore height from given date
Check date format early, error out early if invalid
|
|
|
|
9b5efad2 simplewallet: enable donation on testnet/stagenet for easier testing (stoffu)
|
|
d71f89e2 device/trezor: device/trezor: correct device initialization, status check (Dusan Klinec)
65b9bca7 device/trezor: python2 compatibility - bundle dependencies (Dusan Klinec)
9cf636af device/trezor: ask for KI sync on first refresh (Dusan Klinec)
d21dad70 device: enable to use multiple independent device wallets (Dusan Klinec)
318cc784 device/trezor: passphrase entry on host (Dusan Klinec)
|
|
|
|
When doing a first refresh on HW-token based wallet KI sync is required if money were received. Received money may indicate wallet was already used before the restore I.e., some transaction could have been already sent from the wallet. The spent UTXO would not be detected as spent which could lead to double spending errors on submitting a new transaction.
Thus if the wallet is HW-token based with the cold signing protocol and the first refresh detected received money the user is asked to perform the key image sync.
|
|
- adds a new option `--hw-device-deriv-path` to the simple wallet. Enables to specify wallet derivation path / wallet code (path avoided so it can be misinterpreted as a file path).
- devices can use different derivation mechanisms. Trezor uses standard SLIP-10 mechanism with fixed SLIP-44 prefix for Monero
- Trezor: when empty, the default derivation mechanism is used with 44'/128'/0'. When entered the derivation path is 44'/128'/PATH.
- Trezor: the path is always taken as elements are hardened (1<<31 bit turned on)
|