Commit graph

22 commits

Author SHA1 Message Date
Adam Gibson
c57161303c
Make Qt check config fee filters as well as checktx
Prior to this commit, the user was prompted to check for
the acceptability of fees in Qt via a dialog, but settings
used in CLI (max_cj_fee_***) were not also being used the
same way in Qt.
After this commit, if the user has not added those settings,
a dialog is presented with new randomised defaults (as for
CLI), and otherwise any settings in the config file are read
and used.
2019-11-24 15:17:19 +00:00
chris-belcher
32479ae510
Modify tumbler defaults to improve privacy
This is part of the 2/2019 Plan to improve the privacy of JoinMarket's
tumbler script:
https://gist.github.com/chris-belcher/7e92810f07328fdfdef2ce444aad0968

Also text for the eventual release notes is provided
2019-11-23 09:05:24 +00:00
chris-belcher
b79d34a348
Remove amountpower and use uniform distn instead
Remove the power law generation for amount_fractions, instead use
a uniform distribution

This is part of the 2/2019 Plan to improve the privacy of JoinMarket's
tumbler script:
https://gist.github.com/chris-belcher/7e92810f07328fdfdef2ce444aad0968
2019-11-14 17:49:07 +00:00
chris-belcher
f40ef2c795
Occasionally round amounts in tumbler schedule
The schedule format gets an extra field added denoting the number of
significant figures to round the coinjoin amounts to, with 16 meaning
no rounding.

This is part of the 2/2019 Plan to improve the privacy of JoinMarket's
tumbler script:
https://gist.github.com/chris-belcher/7e92810f07328fdfdef2ce444aad0968
2019-11-14 17:49:06 +00:00
chris-belcher
35f23eb6b7
Add sweep coinjoins to start of tumbler schedule
The tumbler schedule is split into two stages. Stage 2 is the same
as before while stage 1 attempts to fully spend each mixdepth in a
sweep coinjoin with no change address.

The wait time between these stage 1 coinjoins is longer than for
stage 2 coinjoins, the increase is determined by a new parameter
called `stage1_timelambda_increase`.

This is part of the 2/2019 Plan to improve the privacy of JoinMarket's
tumbler script:
https://gist.github.com/chris-belcher/7e92810f07328fdfdef2ce444aad0968
2019-11-14 17:49:04 +00:00
Adam Gibson
489aedcca2
move maker_timeout_setting to regtest_joinmarket.cfg 2019-11-04 13:04:21 +00:00
cindiv
b83e27c391 Add --wallet-password-stdin
Related: Issue #409
2019-11-02 19:01:08 +00:00
AlexCato
0ab5b6560c Redefine cli-option --txfee: Treat it as txfee to be used
in the JM TX's instead of just for preliminary
    estimations. Now it is a way to temporarily override
    the tx_fees setting in joinmarket.cfg and behaves
    exactly the same way as describes there.
2019-10-30 08:58:13 +01:00
AdamISZ
c654de05ff
Wallet and blockchain refactoring
Introduces WalletService object which is in control of
blockchain and wallet access.
The service manages a single transaction monitoring loop,
instead of multiple, and allows updates to the wallet from
external sources to be handled in real time, so that both Qt
and other apps (yg) can respond to deposits or withdrawals
automatically.
The refactoring also controls access to both wallet and
blockchain so that client apps (Taker, Maker) will not need
to be changed for future new versions e.g. client-side filtering.
Also updates and improves Wallet Tab behaviour in Qt (memory
of expansion state).
Additionally, blockchain sync is now --fast by default, with
the former default of detailed sync being renamed --recoversync.
2019-10-25 11:33:39 +01:00
AdamISZ
de786e0c5a
Increase maker_timeout_sec in regtest to account for throttling 2019-08-06 17:11:47 +01:00
Kristaps Kaupe
b75702e540 Correct help, Bitcoin Core wallets aren't supported for some time already 2019-02-06 20:25:38 +02:00
AdamISZ
28abddf062
Implement payjoin (p2ep) direct payment joins
- update mktx() to allow optional locktime setting (and sequence)
- add a mk_shuffled_tx method to the wallet module
- add a P2EPTaker and P2EPMaker class (inherit from Taker, Maker)
- add a -T option to sendpayment script for doing payjoins
- add a receive_payjoin script for receivers.
- add payjoin tests in jmclient/test/test_payjoin.py
- add a custom utxo selection method select_one_utxo to support.py
- support bech32 wallets (SegwitWallet, p2wpkh) with native=true
  in config POLICY for PayJoin and direct send (not Joinmarket CJ)
- add a PayJoin.md usage guide in docs/
- include version bytes in pubkey message for forward compat
- taker pays fees but controls size (utxo number and fee/kB)
- add P2WPKH fee estimator
- Enforce INFO level logging in payjoin
- refactors regtest config settings into one place
- bugfix: script_to_address vbyte argument is bytes not integer
2019-01-19 16:46:40 +01:00
James Hilliard
6dc3504f8a Convert jmclient to py3 style 2018-12-06 02:40:36 +08:00
undeath
a2c74ee563
add random-under-max order chooser 2018-11-01 23:44:54 +01:00
Kristaps Kaupe
fdd0d11919 Remove --rpcwallet CLI option
It is not working (not implemented) since 995c123eec
2018-10-21 23:06:59 +03:00
chris-belcher
b52bc06acf
Switch over to using labels instead of accounts
Bitcoin Core 0.17 deprecates the accounts feature and replaces it with
labels. The RPC functions using accounts still work for use with older
version of Core.
2018-10-09 16:49:51 +01:00
Kristaps Kaupe
4f29990526 More clear description of sendpayment -P option 2018-06-27 01:33:16 +03:00
Adam Gibson
2424104c5a
allow non-zero starting mixdepth in tumbler 2017-05-14 17:09:43 +02:00
Adam Gibson
73ebfc8ac2
add schedule syntax explanation 2017-02-14 14:30:43 +02:00
Adam Gibson
074afc3106
Permit restart of tumbler with flag, persist state of tumbler in schedule file.
Also fixes minor bug in blockr data read.
Modifies schedule syntax to include complete/incomplete flag, so if
restart is chosen then the schedule is continued from the first
incomplete transaction in the sequence.
2017-02-10 14:42:45 +02:00
Adam Gibson
5b5512865a
Taker can abort the tx and schedule
Clean up some stale comments. Small bugfix in cli-options.
2017-01-20 00:06:08 +07:00
Adam Gibson
1cec53b7d5
Implemented tumbler
Refactor parsers into separate module (more code reuse to do).
Add a tumbler schedule generator in jmclient/schedule.py.
Alter syntax of schedules; taker interprets fractional amounts
as percentage of mixdepth (for tumbler), and integers as satoshi,
zero still sweep.
TODO tumbler is only a minor delta from sendpayment, fold them together.
2016-12-27 17:01:57 +02:00