https://github.com/joinmarket-org/joinmarket-clientserver/releases/tag/v0.6.3.1
Note that this will probably be the last release supporting Python 3.5 or lower.
Includes a few notable improvements to Qt as well as a few quite important back-end bugfixes. Upgrading is recommended as soon as possible.
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).
First run the install.sh
script as mentioned in the README. When prompted to overwrite the directory jmvenv
, accept.
Reminder: Python 3 is required; Python 2 is no longer supported as it reached EOL.
Note that ./install.sh -?
will show the options for installation.
While this change is very minor, it can cause confusion if un-noticed. Previously the wallet was kept single access with a file, named wallet.jmdat.lock (or *.lock where * was whatever your wallet name is). Since this could result in accidental deletion of the wallet via tab completion, it was decided to change this to .*.lock - note that many file system explorers/commands will hide this file by default as it's considered of a 'hidden' type. As a reminder, this file must be deleted in cases where there was a system or program crash (you are reminded of this in case it happens).
92f12ab
Change lock filename from wallet.jmdat.lock to .wallet.jmdat.lock
This allows users to use BIP21 URIs instead of addresses both in the command line and JoinmarketQt. In JoinmarketQt you can simply paste the URI into the "address" field in the "single join" tab under "Coinjoins", and it will be read and interpreted. Note this is not yet supporting BIP78 (the pj=
parameter) - the Payjoin referred to in the commit below is the Joinmarket-wallet-only protocol implemented already. The BIP78 new PayJoin standard is not yet merged, see this pull request).
4eced50
Add BIP21 support for Payjoin
faaf51e
Add BIP21 bitcoin payment URI support to sendpayment.py
a539345
Implement BIP21 in GUI
This feature is not yet enabled in the software, but the Joinmarket wallet now supports both sending to timelocked outputs and to burn outputs. This will be enabled as and when the Joinmarket protocol supports it. See here for details.
6b41b8b
Disable creation of fidelity bond wallets
869ef55
Disable loading of fidelity bond wallets by Qt
14f086b
Add usage guide for fidelity bond wallets
2860c4f
Freeze timelocked UTXOs with locktimes in future
ddb32ce
Rename functions to say "key" instead of "privkey"
c70183b
Create tests for fidelity bond wallets
a0a0d28
Add support for spending timelocked UTXOs
762b1f6
Add watch only wallets for fidelity bonds
a937c44
Add wallet-tool addtxoutproof method
97216d3
Sync burner outputs and display in wallet-tool
255d155
Add merkle proof functions to BitcoinCoreInterface
2271ce0
Add support for burning coins with sendpayment
dc715c9
Add timelock fidelity bond wallet sync and display
ee70cd7
Add support for OP_CLTV timelock addresses
d86df33
Rename functions which create multisig scripts
53b056e
Rename variable internal to address_type
Most important here is the new amount widget that allows entry of bitcoin amounts in sats or BTC in an intuitive way.
b1ee2f0
Make BitcoinAmountEdit behave the same on resize as QLineEdit
d1323f6
BitcoinAmountEdit Qt widget
48f5ddf
QValidator port number restriction only for ports
d8fef95
Bugfix: recovered wallet file location
3cd54cb
Adds JMIntValidator to ensure exact integer range
6f90e30
Fix "Show seed" in Qt for wallets with mnemonic extension
e536eb1
Add wrapper shell script for JoinMarketQt
554ced0
Update all exit() calls to sys.exit()
cfc4869
Install XDG desktop entry for JoinMarketQt
110a6ee
Check for target directories for XDG desktop entry install
7fe910a
Bugfix: mnemonic extension display in Qt generate
035fae4
Fix JM-Qt recover wallet bug
For some time this bug resulted in bots silently ignoring commitments being broadcast in public by other bots (via !hp2
messages). Whilst
this did not impact coinjoin functioning, it may have erroneously allowed more usages of PoDLE commitments than intended. Removing the reference to jm_single()
fixes this.
6d87322
Remove jm_single config var call from jmdaemon
This includes a change in default minimum size for yieldgenerators, the ability to query software version with the --version
flag, and an occasionally important improvement in tumbler behaviour: sometimes attempts to broadcast transactions fail due to 'mempool conflict' (one of the inputs provided by a maker, is already spent). But the algorithm was treating this case very wrongly: it was assuming that the cause of the stalling was that some counterparty responded wrongly (e.g. not sending a signature), and so was re-attempting the transaction with all counterparties who did respond; this basically ensured repeated failure, because whatever input was already spent, is of course, always already spent. Instead after this fix, the bot will try again with new counterparties.
3876c1c
Change shebang to python3 and +x for scripts
49ea4e4
Correct display of wallet mnemonic extension in cli
c8d10e5
Add python shebangs to joinmarketd.py and wallet-tool.py
e5cf95d
Add --version option to cli scripts
6fa7f4c
Display address for UTXO on wallet-tool.py freeze
4af9c42
Don't use honest_makers in case: mempool conflict
d2a1a9c
yg-privacyenhanced: change default cj min size to 0.001 btc
Previous to this change, we could get a crash and hang of the process in some cases, if the RPC connection to Core failed, such as when Bitcoin Core stops running, or a network disconnect. After these changes we at least get a clear error message and a shutdown of the Joinmarket bot. In the future, this might be extended to support having the Joinmarket program simply wait until the connection comes back up, but there are some open questions around that.
52b9ba8
Initialization of BCI raises Exception not sys.exit
cc219cc
Handles RPC failure in Qt with message box and quit.
5ce4b55
Quit gracefully if Bitcoin RPC connection lost
0c73074
Close wallet when WalletService is stopped.
In some cases when an RPC connection to a synced instance of Bitcoin Core is not available, it may be useful for users to be able to see, for example, wallet addresses, or other wallet info such as the seed. This is now supported by setting the blockchain_source
field of the BLOCKCHAIN
section to no-blockchain
. (Note: this option existed already, but it previous to this change only allowed the running of the ob-watcher.py
script; now it also allows these other things).
f26186d
Allow accessing basic wallet info without blockchain source
There are many commits less of interest to users, relating to: documentation, testing, and minor bugfixes:
These commits principally add extensive testing and appropriate exception raising for our bitcoin amount parsing.
13436e0
Fix BTC amount formatting for small amounts and add amount tests
bfe9f35
Raise ValueError on invalid Bitcoin amount strings
f2e100e
fix sample schedule for testnet
031b8f6
Update tumbler doc for the new schedule format
d275d82
Update readme.md: change Agora-->hackint
6bd101e
Remove link to old non segwit version and change new version link to use JoinMarket github organization
cadd8d8
Fix typo
e8ec595
Shebang and +x for ob-watcher.py
80333b2
Make ob-watcher independent of current working directory
8997147
Terminate ob-watcher immediately if HTTP server fails to start
9baa04a
Update my pubkey (extended expiration date)
Initial fee guess no longer picks up value from the --txfee
option, this was a minor bug in that it could end up printing out nonsense
warnings if you used a high value for --txfee
(which you certainly might, to set the fee in sats/kbyte):
ec2fd72
Change initial fee guess logic in taker scripts
Fix for both Qt and CLI, taker side: Don't let user try to use a makercount that conflicts with their own config settings (quit early instead of realise it halfway through the join, which could cost both time and commitments):
5976db7
Abort single join early if maker count below minimum_makers
63c21a5
install.sh: use python3 virtualenv
bf14146
install: fix deb_deps_install for Debian
Thanks to everyone who directly contributed to this release -
- @kristapsk
- @AdamISZ
- @chris-belcher
- @AlexCato
- @nixbitcoin
- @undeath
- @openoms
And thanks also to those who submitted bug reports, tested and otherwise helped out.