Bitcoin CoinJoin implementation with incentive structure to convince people to take part
View the Project on GitHub JoinMarket-Org/joinmarket-clientserver
https://github.com/joinmarket-org/joinmarket-clientserver/releases/tag/v0.8.1
This release contains some important new features and some fairly important bugfixes/improvements to performance. Upgrade is recommended as soon as possible.
A note that backing up and then recreating a default joinmarket.cfg
file is always a good idea for a new release; make sure to do it for this release, so that all default values and comments are populated. A couple of new config settings now exist, which you should take note of.
Please report bugs using the issue tracker at github:
https://github.com/joinmarket-org/joinmarket-clientserver/issues
To upgrade:
(If you are upgrading from a version pre-0.6.2 then please see the section “Move user data to home directory” in the 0.6.2 release notes, and follow the instructions there (except the commitmentlist
file - that can actually be left alone, the previous release notes were wrong on this point).)
(If you are upgrading from a version pre-0.7.0 please read the “Upgrading” section in the 0.7.0 release notes.)
First run the install.sh
script as mentioned in the README. When prompted to overwrite the directory jmvenv
, accept.
Note that ./install.sh -?
will show the options for installation.
joinmarket.cfg
.This change is one of the reasons for the above note to recreate your joinmarket.cfg
file. It’s not appropriate to have these settings in a python source file, so the same settings are (a) now moved to a dedicated section in joinmarket.cfg
called [YIELDGENERATOR]
and (b) all of these settings can be modified on the command line when starting the maker; see the --help
text for the script.
a490ddf
Move YG settings to a config file
With the merge of this PR it should now be possible to take a PSBT you created in another environment, where one or more utxos from a Joinmarket wallet are used as input (or a destination is taken from JM as output), and co-sign and optionally broadcast the transaction in Joinmarket. Be aware this is for now experimental, so be cautious.
Basic documentation on this feature here.
631352c
Add support to sign externally prepared PSBT
Signet is a new testnet for Bitcoin that is smaller, quicker to sync (very quick!) and supports new features like taproot (though we are not using that, yet). This gist can help you set up Joinmarket on signet, which is much more convenient to use for testing, than testnet3.
8526d73
Add signet support
b914e75
Separate commitment files for signet and testnet
1224214
Add comment about Bitcoin Core rpc_port defaults
This is a rather complex but impactful issue for any sweep coinjoins - fees are hard to predict but have to be estimated before full knowledge of transaction structure. A detailed analysis of the problem is given in here.
Hence this PR. The solution is to constrain the fee to only vary by x% in joinmarket.cfg
, by default 80% (because there is very likely to be significant variance); it can be changed by resetting the value of max_sweep_fee_change
in [POLICY]
.
8718ce1
Allow user to constrain coinjoin sweep fee.
Logging messages about “tx fee floor” were rather (or very) confusing to users; see this issue. This change makes the information displayed about bitcoin network fees calculated for coinjoin transactions more understandable and useful.
bb15aa0
8cdf3e0
Quiet/make more accurate fee information in sends
See here for background context; Joinmarket contained a mis-application of the spec with regard to capitalization in the “scheme” section (as did a number of other projects). This commit changes the parsing to be case-insensitive, as the spec requires.
721b6ed
Allow any case for scheme part of BIP21 URI as per spec
In this PR we prevent the once-per-5-seconds monitoring loop from unnecessarily calling the gettransaction
RPC call more than once per txid (note: we do repeatedly call gettransaction
on the same txid over different loop invocations, since we need to check confirmation status). The correction of this oversight should reduce the number of these calls fairly substantially, although for most reasonably performant systems the difference is negligible.
4c44932
gettransaction called once per txid in monitor
Upgrade your Bitcoin Core if you are still on an (ancient!) pre-0.17 version.
81982c7
Drop support for pre-0.17 Bitcoin Core
Recent refactoring changes had broken the ability to run custom schedules of payments with -S
argument to sendpayment. This is now fixed.
462a95d
Allow schedule files without payment arguments.
Many small documentation fixes:
0867166
c46227a
6e51e8c
72d9922
3e06c57
various typo/grammar fixes
37cde23
Update Qt guide
317eaa8
Add libsecp manual build to INSTALL.md
86fd2cc
Remove comment about old transaction dict format, not used anymore
Some general minor bugfixes:
0e483f1
Handle None return from _rpc() in get_transaction()
f21c905
Fix bugs in utxo parsing in add-utxo.py
20e94b0
cad76da Fix bug in test_taker (max_sweep_fee_change)
80a324d
Fixes #742 - prevent wallet-tool crashing with wrong argument
20b67e9
Wait for bitcoind to start instead of hardcoded sleep in tests.
92c1b1a
Fix tests for Bitcoin Core v0.21+
192c07a
Abort early and output error if first bitcoin-cli call fails
184c274
Delete logs and wallets subdirectories from scripts directory.
Somewhat less minor bugfix - this is needed to ensure frozen addresses are actually frozen, in case you use the recovery sync option (usually only used with wallet-tool):
0ea2c98
populate used_addresses list in recoversync
Other miscellaneous:
This proved particularly relevant for the Windows exe build, but also relates to (and, usually, solves) difficulties people occasionally have running the script version of Qt on Linux, too:
61edd03
PySide2 version pinned to 5.14.2
Allows hosting ob-watcher with arbitrary URL:
00be3a3
ob-watcher: Use relative link
The wallet-tool help message should now actually be readable! :
dee40db
Modify optparse description format for wallet-tool.
The automated script genwallet.py
for creating wallets is updated to bech32:
0cd8a73
genwallet p2sh -> p2wpkh
@kristapsk’s new public key:
709db9e
Update my public key
Thanks to everyone who directly contributed to this release -
And thanks also to those who submitted bug reports, tested (especially bech32 testing!), reviewed and otherwise helped out.