Browse Source

Add release notes and version for 0.8.0

master
Adam Gibson 5 years ago
parent
commit
a6c2d68810
No known key found for this signature in database
GPG Key ID: 141001A1AF77F20B
  1. 2
      docs/JOINMARKET-QT-GUIDE.md
  2. 113
      docs/NATIVE-SEGWIT-UPGRADE.md
  3. 47
      docs/TODO.md
  4. 111
      docs/release-notes/release-notes-0.8.0.md
  5. 2
      jmbase/jmbase/support.py
  6. 2
      jmbase/setup.py
  7. 2
      jmbitcoin/setup.py
  8. 4
      jmclient/setup.py
  9. 4
      jmdaemon/setup.py
  10. 2
      scripts/joinmarket-qt.py

2
docs/JOINMARKET-QT-GUIDE.md

@ -4,7 +4,7 @@
The gui can be run directly from Python script by doing `python joinmarket-qt.py` from within `scripts/`, or by running the executable file/binary (**[CLICK HERE](https://github.com/AdamISZ/joinmarket-clientserver/releases/)** to download the latest release).
**LATEST VERSION of JoinMarket-Qt is GUI version 17**. You can check the version via `About` in the menu.
**LATEST VERSION of JoinMarket-Qt is GUI version 18**. You can check the version via `About` in the menu.
No other files / setup should be needed. You might need to `chmod 755` on Linux.

113
docs/NATIVE-SEGWIT-UPGRADE.md

@ -0,0 +1,113 @@
# UPGRADING YOUR JOINMARKET TO NATIVE SEGWIT (bech32)
## Motivation: why?
I guess the large majority of Joinmarket users know, but for completeness: native segwit p2wpkh is substantially (perhaps 25% on average?) cheaper than p2sh-p2wpkh which we currently use, and is rapidly becoming industry standard amongst most users wallets and other Bitcoin transaction operators, including other coinjoin systems, e.g. Wasabi - this latter point is very important in that it helps with privacy to join in with the crowd. In particular, Payjoins require both wallets to use the same scriptPubkey (or address) type.
## Do I need to do anything at all?
Technically, no, but realistically, yes.
If you do nothing here's what will happen:
### As a maker
You can continue to run your maker bot (yield generator), serving Taker customers still using p2sh ('3') addresses with your existing wallet. The traffic on these will go down over time because (a) native segwit transactions are cheaper, and Takers bear most of that cost, and (b) the default new wallet type is now native segwit, so new entrants will be creating wallets of that type, and using the native segwit pit, and so ignoring your bots.
### As a taker
If you have an existing wallet and still want to do joins with it with '3' addresses, you can do so, but you must set `native=false` in `[POLICY]` section of `joinmarket.cfg` - assuming you don't have this setting already (the point here is that the *default* value of that setting has changed from `false` to `true` as of 0.8.0). If you are just using `wallet-tool` or direct-sending payments, you don't even need to make that change, but you may as well do it, for as long as you are using the old wallet type.
## How is the orderbook changing?
So what we sometimes call the "trading pit" is basically all the bots announcing their offers on the different IRC servers. Currently they all take the form:
`!swreloffer blah blah`
`!swabsoffer blah blah`
(because there are no bots left using non-segwit offers or wallets). These offers will continue for some time, but in parallel, as of v0.8.0, you will start to see bots making offers with '0' included ('0' because segwit v0, albeit this is not a scientific distinction, but it was just easiest to use a single character):
`!sw0reloffer blah blah`
`!sw0absoffer blah blah`
Under the hood, there will be very little difference in the way the bots behave; the set of messages they pass is almost the same (but not quite, technical details). **This set of offers is entirely distinct; we are creating new coinjoins with native coinjoin outputs only, not a mixture of native and p2sh together**. This is unfortunately necessary in order for users to be able to make reasonable assumptions about anonymity sets (i.e. mixed address types screw that up).
## How is the wallet changing, when I make a new one?
First, this feature has been present in Joinmarket since early 2019 (see [release notes for v0.5.1](https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/master/docs/release-notes/release-notes-0.5.1.md#add-native-segwit-wallet-to-backend); it is not actually new.
Second the actual wallet type is [BIP 84](https://github.com/bitcoin/bips/blob/master/bip-0084.mediawiki), the de facto industry standard for native segwit single-key wallets, and is directly analogous to [BIP49](https://github.com/bitcoin/bips/blob/master/bip-0049.mediawiki) that we use for p2sh-p2wpkh addresses.
The seed creation and recovery are therefore unchanged: we use the same BIP39 12 word seed phrase, with optional mnemonic extension as before. What changes is the HD path (e.g. m/84'/0'/0'/0/0) and address, of course. At the bottom of this page is an example mainnet wallet-tool output for the new wallet type.
## OK, so how do I actually migrate, i.e. move to the new wallet type and orderbook?
* Create a new wallet: either omitting the `native=` setting or setting it to `true`, *before* you run `python wallet-tool.py generate` or 'Generate' in Qt.
* Move funds into it, like any new wallet; if you are moving from an old Joinmarket wallet to this new one, I suggest doing sweeps per-mixdepth, but (a) you can use coin-freezing to use individual coins and not connect them, if you prefer, (b) using a coinjoin on the *old* Joinmarket pit to do the transfer may not make much sense, since the output address will be 'bc1' not '3' and so the anon set effect will be lost.
Once the funds are migrated, you can just go back to what you were doing before - except with lower fees. All pre-existing functions work the same way with these BIP84 wallets.
##### Example output of wallet-tool display:
```
JM wallet
mixdepth 0 xpub6CnATD8P29cQT8q4TWBFjGeAtxzq87WsoiCdmMTxBWu9mgpW1kruDA6kHrcYPYiYbjGWnM6wrFZN18MqYgcpyRjmrfVvxVUUTaD6F3mvqM3
external addresses m/84'/0'/0'/0 xpub6EUm47xofFfo6QY1nYq6ASX3xfbhfFqS1XqMqayNUsjzTze2sPvCHtd9MmZ258jmMq26ViDUsXjEEmUVvTNyW72P688nVHn4gHBs59oR55F
m/84'/0'/0'/0/0 bc1qfljx5g2jdgf8y6r5mx94um43vqy73uxrrfu2rc 0.00000000 new
m/84'/0'/0'/0/1 bc1qq2y0vnzdxmvelfgp9au37v4acqc9vapkpn6s0e 0.00000000 new
m/84'/0'/0'/0/2 bc1qkeaqdwn49djzwqmaqgqathd23ygq0reu9clgl2 0.00000000 new
m/84'/0'/0'/0/3 bc1qj0e2kjc2dkqn4drh4l8vdmygdp5z6mzqm84xlj 0.00000000 new
m/84'/0'/0'/0/4 bc1qwrfpc565l4n5yq073lkht62zztfjy8qck5c75r 0.00000000 new
m/84'/0'/0'/0/5 bc1q4ju2gvrqdv4epxcezydmd9jjuk7yf4l6trnmsl 0.00000000 new
Balance: 0.00000000
internal addresses m/84'/0'/0'/1
Balance: 0.00000000
Balance for mixdepth 0: 0.00000000
mixdepth 1 xpub6CnATD8P29cQWAVv5chkF9dShxFTtkp68C92d6XvWneqMpqgxd5V3kxCJkiCBGfuMvHNa8MAiJ28THMSGGaQdScJBiEdvDBUnybJz8JZUW5
external addresses m/84'/0'/1'/0 xpub6Ebnfv1i4JTB9hR7fsTQeoFK9pTkJ1C1xUcWh63e2nfs8ECSAsMLtdGfZCogpSRBcua8q1YzPg4LtigW4mZW8kNUqGeyKfbv1FL7PYB73Bi
m/84'/0'/1'/0/0 bc1q26rwwgl72qgq2jpc8jemkv2d6chegcjldl3tmu 0.00000000 new
m/84'/0'/1'/0/1 bc1qvh5d5n84rehtjugzvckel7av2cenw4aejdv3wp 0.00000000 new
m/84'/0'/1'/0/2 bc1qhtg32hj93nvaj0j3mtmf83k7957agl30484yka 0.00000000 new
m/84'/0'/1'/0/3 bc1qq34fnkdjewvsq4ftrpgjf39724kwae7gn5fs6f 0.00000000 new
m/84'/0'/1'/0/4 bc1q8s6c25qahuzgrhd79engxgsk83ykmgxc26gwny 0.00000000 new
m/84'/0'/1'/0/5 bc1qjmd2arkjr03z70h7jeueg8yq84c4c0ae8mlgcq 0.00000000 new
Balance: 0.00000000
internal addresses m/84'/0'/1'/1
Balance: 0.00000000
Balance for mixdepth 1: 0.00000000
mixdepth 2 xpub6CnATD8P29cQYCTdfy2CyXGTYssFdZ3Ah3pkSyQbeBLTHbBzFwa1t6nbdHWGswECMhzeYDrkfd2TBZbAdiMcsXqSUqfPfh3B2zAuv8cS4RJ
external addresses m/84'/0'/2'/0 xpub6Dax3dojj4m54pE9CgTm3mEuXxEG6wu1yv4qoJcBng7ip7UKJqmfphXKySjkiDaX8tRFdPc7uNbrZuteHJxxRtQcCJw9gG2hnwALAJJwuHH
m/84'/0'/2'/0/0 bc1qsjq3fqlhpvl6zdlx4keaptqvnsvlq9wvs6htnp 0.00000000 new
m/84'/0'/2'/0/1 bc1qfhwq2nl3s3wvd87ecs7n5y4eg48wggumznx8gv 0.00000000 new
m/84'/0'/2'/0/2 bc1qcp8ksz9jlkeltkuvxqypmkd92jtdsw8z6v9zuz 0.00000000 new
m/84'/0'/2'/0/3 bc1q7mnglcgdcshnuc9p0s50slr98ysmur8qvqzlc9 0.00000000 new
m/84'/0'/2'/0/4 bc1qk9ewvfet6a2cw2rzykwz2q96ue8amras4j9676 0.00000000 new
m/84'/0'/2'/0/5 bc1qatmlhx4zphrsh3p97c2kvhmze8k556592pl6wx 0.00000000 new
Balance: 0.00000000
internal addresses m/84'/0'/2'/1
Balance: 0.00000000
Balance for mixdepth 2: 0.00000000
mixdepth 3 xpub6CnATD8P29cQcqg9mDxc2pRMT5syBfLsVMJdJ2QbvpV52VHbBrjRpYgwg9rtAVRYuWnDGdk9T2ZXhD9XhbTnZnd5k8QxPXKXFwXKCGDNAM4
external addresses m/84'/0'/3'/0 xpub6FAfwaxVRmjFadt3hmR9dnALSCQ6Gs3ZzfLVodLnkyBVNhpeZaUD2ePWCqYdmsPbW8XcvTB3ZoW2wWXBhAsNNPbyFrJevnuisBG1XhLbRpU
m/84'/0'/3'/0/0 bc1qnvc2v6y5xp00ps7c7xe7762d033hfeunu93txk 0.00000000 new
m/84'/0'/3'/0/1 bc1q4tcwnjp4afywkknr3vnsfnfkancdgtty9wpduw 0.00000000 new
m/84'/0'/3'/0/2 bc1qtwgfxgjuh2qt5mss0yu4f8gtfyl6qx40et00s0 0.00000000 new
m/84'/0'/3'/0/3 bc1q6dqwcztdxd8j0t4md8knrs9mj2tn5pyxjlv6gw 0.00000000 new
m/84'/0'/3'/0/4 bc1qwsf8jtu3rcvhfr2z9qm5umwz75q88pp3wsclu8 0.00000000 new
m/84'/0'/3'/0/5 bc1q669ss06j9c7ycf5jdg7zf8ctxa4yudn4tyug2y 0.00000000 new
Balance: 0.00000000
internal addresses m/84'/0'/3'/1
Balance: 0.00000000
Balance for mixdepth 3: 0.00000000
mixdepth 4 xpub6CnATD8P29cQemJKvXNbkw7VhmezjUJAzTan2TsRKCai4ssTVWdghHNa9TaSggZtctToaewCA1KzBA8zdbx3ZCc8ez3cJQxAx96HhgABx6i
external addresses m/84'/0'/4'/0 xpub6ExY4c7otX7GvGHuL4NZpoLhxzfEkyiKngcmqeYnNQpiwBpPmEgDWAqr5qu7dPUTwHNsjUyWPrBJo9e9MNPsonnfxc4fnT2XtgBMDwN8T5h
m/84'/0'/4'/0/0 bc1q8xvvyzty8ejy6epywekjzakkt7nutxxmvq0u9w 0.00000000 new
m/84'/0'/4'/0/1 bc1q9mn6e64zmuzccqa4xeh80zm2nqqmylpa8w7ndj 0.00000000 new
m/84'/0'/4'/0/2 bc1qrgstfgjzmrvwcv6v05ugl28ss46qywk92ksn30 0.00000000 new
m/84'/0'/4'/0/3 bc1qc06d3xdfj5lq8slezk2sl8krrr08qzku07gewr 0.00000000 new
m/84'/0'/4'/0/4 bc1qz0tfa6e9yqzxqzlj56ge24t7z7rftj9janpsed 0.00000000 new
m/84'/0'/4'/0/5 bc1q2utkj2rqqw4wdr7z2fu9cgfv5zdpsnt47uns6u 0.00000000 new
Balance: 0.00000000
internal addresses m/84'/0'/4'/1
Balance: 0.00000000
Balance for mixdepth 4: 0.00000000
Total balance: 0.00000000
```

47
docs/TODO.md

@ -25,7 +25,10 @@ like `commitmentlist`.
### Architecture
* Probably move all user data to ~ ; see [comment](https://github.com/JoinMarket-Org/joinmarket-clientserver/issues/62#issuecomment-318890399).
~~* Probably move all user data to ~ ; see [comment](https://github.com/JoinMarket-Org/joinmarket-clientserver/issues/62#issuecomment-318890399).~~
This was done as of v0.6.2
* Make use of the schedule design to fold together sendpayment and tumbler (they share a lot of cli options anyway).
* Investigate what refactoring of the daemon protocol is necessary so it is possible to run protocol instances concurrently.
* Moving elements shared into joinmarketbase - in particular, an object representing offers like `JMOffer`, which
@ -45,17 +48,25 @@ This was previously marked 'done' but is now very much "un-done" since the code
* The [issue693](https://github.com/JoinMarket-Org/joinmarket/issues/693) problem is by far the most important one to spend time on.
The fidelity bond code introduced in #544 can serve as a basis for removing this issue, but it will most sensibly fold into a broader protocol upgrade. On that:
Possible future update ("hard fork") for Joinmarket protocol may include:
* bech32 addresses for joins; possibly mixed address types, needs discussion.
~~* bech32 addresses for joins; possibly mixed address types, needs discussion.~~
Bech32 native segwit has become default for coinjoins as of 0.8.0.
* change format of data transfer (in particular, avoid double encoding which wastes space)
* with respect to above issue693, see fidelity bonds discussion in #371 ; if implemented this may (will?) require some changes to protocol messages.
An additional possibility is discussesd in #415 namely, possible decentralized architecture for Joinmarket inter-participant communication.
### Qt GUI
* Binary build process automated and, more importantly, working for Linux, Windows and Mac.
~~* Binary build process automated and, more importantly, working for Linux, Windows and Mac.~~
There is no current process for building binaries on Mac or Windows (theoretically the latter is possible but a mess, so I'm not doing it).
~~There is no current process for building binaries on Mac or Windows (theoretically the latter is possible but a mess, so I'm not doing it).~~
Windows binaries are now being built in an automated way via #641. The same process for Mac does not yet exist, however (though it is probably fairly feasible).
* ~~Qt5 support, as Qt4 is being deprecated (see [issue204](https://github.com/JoinMarket-Org/joinmarket-clientserver/issues/204)).~~ Done as of 0.5.0.
@ -63,19 +74,29 @@ There is no current process for building binaries on Mac or Windows (theoretical
* Build an alternative client implementation in Java or Javascript for example, using some existing Bitcoin library in that language, perhaps using some lite client solution e.g. SPV, and then connecting to the daemon (executable or Python script).
Some minor progress on this can be seen in #670 and in the repo https://github.com/JoinMarket-Org/jmcontrolcenter
### Bitcoin
We use coincurve as a binding to libsecp256k1.
The current jmbitcoin package morphed over many iterations from the original pybitcointools base code.
We need to rework it considerably as it is very messy architecturally, particularly in regard to data types.
A full rewrite is likely the best option, including in particular the removal of data type flexibility; use binary
only within the package (which will also require rewrite and simplification of some parts of the wallet code).
~~The current jmbitcoin package morphed over many iterations from the original pybitcointools base code.~~
~~We need to rework it considerably as it is very messy architecturally, particularly in regard to data types.~~
~~A full rewrite is likely the best option, including in particular the removal of data type flexibility; use binary~~
~~only within the package (which will also require rewrite and simplification of some parts of the wallet code).~~
~~A rewrite of the transaction signing portion of the jmbitcoin code will need to account for the future~~
~~probable need to support taproot and Schnorr (without yet implementing it).~~
This was all done in the switch to [python-bitcointx](https://github.com/Simplexum/python-bitcointx) included in 0.7.0 via #536 .
Complete removal of coincurve for all functions is still to be done.
A rewrite of the transaction signing portion of the jmbitcoin code will need to account for the future
probable need to support taproot and Schnorr (without yet implementing it).
### Extra features.
PayJoin is already implemented, though not in GUI, that could be added.
Maker functionality is not in GUI, that could quite plausibly added and is quite widely requested.
PayJoin is already implemented, ~~though not in GUI, that could be added.~~ Full BIP78 Payjoin now in GUI also.
Maker functionality is not in GUI, that could quite plausibly be added and is quite widely requested. - See #487, this is now largely functional but still needs work.
SNICKER exists currently as a proposed code update but is not quite ready, see #403.
Hardware wallet support is a tough one, but there is some interesting discussion around possibilities, see #663.

111
docs/release-notes/release-notes-0.8.0.md

@ -0,0 +1,111 @@
Joinmarket-clientserver 0.8.0:
=================
<https://github.com/joinmarket-org/joinmarket-clientserver/releases/tag/v0.8.0>
This is a major upgrade release, in one specific sense: the native segwit orderbook is now available, and wallets, by default, are created native segwit (bech32, i.e. addresses starting with bc1 on mainnet). Please read "Native segwit (bech32) order book" below for details.
There are also several minor bugfixes.
Please report bugs using the issue tracker at github:
<https://github.com/joinmarket-org/joinmarket-clientserver/issues>
Upgrading
=========
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](https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/master/docs/release-notes/release-notes-0.6.2.md), 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](https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/master/docs/release-notes/release-notes-0.7.0.md).)
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.
Notable changes
===============
### Native segwit (bech32) order book
See the [native segwit upgrade guide](../NATIVE-SEGWIT-UPGRADE.md) for details. From this release, new wallets will be created as native segwit by default. This setting can be changed by setting `native=false` in the `[POLICY]` section of `joinmarket.cfg`.
*Note that native segwit wallets are not a new feature: we have had them since [version 0.5.1](https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/master/docs/release-notes/release-notes-0.5.1.md#add-native-segwit-wallet-to-backend) and they have been used for payjoin experimentation*, what is new is only the default, and the use in Joinmarket coinjoins.
If you create wallets, and run Takers and Makers with the default settings, you will be using only native segwit for your coinjoins and other transactions, and will only join with other participants using native segwit. Note that everything about pre-existing p2sh coinjoins and transactions still works as before, if you disable as per the above `native=false`.
`ab87db2` Create native segwit v0 order type
`2ae348b` Update signature exchange and verification for bech32
`3c96d41` Several tweaks for bech32 orderbook, plus docs
`ebd54d6` Bugfix: yg-privacyenhanced non-integer fees
`3537b70` Update transaction parameters
`9e66bc5` Update ob-watcher
`f69cb37` Choose maker offers based only on our wallet type
#### Bugfix: correct minsize calculation for yield generators with reloffers, and txfee contribution
A bug in the calculation of yield generator minsize, for reloffers, was previously not resetting it to a higher value to account for the txfee contribution; this is fixed. A consequence of this: default txfee contribution value is changed from 100 to 0, to avoid confusing yield generator users who might not understand the reason their number of coins is insufficient (it is a function of both the relative fee setting and the txfee contribution setting, to ensure that the profit is always at least 20% of the latter). The complexity of this should probably be removed in future updates to the protocol.
`dcfc610` Bugfix: allow minsize dynamic update
`d1ae07d` set default txfee contrib to zero, improve error message
#### Don't fail on whitespace in recovery seed entry
In entering recovery seed phrases on Qt and command line, we now ensure that white space is always stripped appropriately; prior to this fix, unexpected failures could occur due to whitespace being interpreted as a word in the seed phrase.
`29b274e` Strip whitespace from beginning and end of mnemonic on wallet recovery
`5f07872` allow multiple whitespace in mnemonic entry
#### Make libsecp256k1 tests optional in installation script
This option is enabled with the `--disable-secp-check` parameter of `install.sh`, and is useful for people on more constrained devices who want to speed up installation.
`aa3cec4` Make libsecp256k1 tests optional
#### Update commitments utilities scripts
These fairly minor scripts needed to be updated for the new bitcoin backend, and bech32 wallets.
`cc78dae` Update commitments utility scripts
##### Various improvements and bugfixes
`d5cf387` Get rid of remaining direct rpc() calls outside blockchaininterface.py
`f314333` Add commitmentlist from rootdir to gitignore
`6aa300a` (pr_728) Fix relunit selector
`6300eda` Re-introduce pillow dependency, seems to be need by qrcode itself.
`44c9dcd` (pr_726) Remove twisted logging on testnet
`394e672` Add link to orderbook.md
`29458f8` Remove dead code
`1b6beda` Remove /shutdown from ob-watcher
Credits
=======
Thanks to everyone who directly contributed to this release -
- @jules23
- @kristapsk
- @PulpCattel
- @nixbitcoin
- @AdamISZ
And thanks also to those who submitted bug reports, tested (especially bech32 testing!), reviewed and otherwise helped out.

2
jmbase/jmbase/support.py

@ -5,7 +5,7 @@ from getpass import getpass
from os import path, environ
from functools import wraps
# JoinMarket version
JM_CORE_VERSION = '0.7.2'
JM_CORE_VERSION = '0.8.0'
# global Joinmarket constants
JM_WALLET_NAME_PREFIX = "joinmarket-wallet-"

2
jmbase/setup.py

@ -2,7 +2,7 @@ from setuptools import setup
setup(name='joinmarketbase',
version='0.7.2',
version='0.8.0',
description='Joinmarket client library for Bitcoin coinjoins',
url='http://github.com/Joinmarket-Org/joinmarket-clientserver/jmbase',
author='',

2
jmbitcoin/setup.py

@ -2,7 +2,7 @@ from setuptools import setup
setup(name='joinmarketbitcoin',
version='0.7.2',
version='0.8.0',
description='Joinmarket client library for Bitcoin coinjoins',
url='http://github.com/Joinmarket-Org/joinmarket-clientserver/jmbitcoin',
author='',

4
jmclient/setup.py

@ -2,14 +2,14 @@ from setuptools import setup
setup(name='joinmarketclient',
version='0.7.2',
version='0.8.0',
description='Joinmarket client library for Bitcoin coinjoins',
url='http://github.com/Joinmarket-Org/joinmarket-clientserver/jmclient',
author='',
author_email='',
license='GPL',
packages=['jmclient'],
install_requires=['joinmarketbase==0.7.2', 'mnemonic', 'argon2_cffi',
install_requires=['joinmarketbase==0.8.0', 'mnemonic', 'argon2_cffi',
'bencoder.pyx>=2.0.0', 'pyaes'],
python_requires='>=3.6',
zip_safe=False)

4
jmdaemon/setup.py

@ -2,13 +2,13 @@ from setuptools import setup
setup(name='joinmarketdaemon',
version='0.7.2',
version='0.8.0',
description='Joinmarket client library for Bitcoin coinjoins',
url='http://github.com/Joinmarket-Org/joinmarket-clientserver/jmdaemon',
author='',
author_email='',
license='GPL',
packages=['jmdaemon'],
install_requires=['txtorcon', 'pyopenssl', 'libnacl', 'joinmarketbase==0.7.2'],
install_requires=['txtorcon', 'pyopenssl', 'libnacl', 'joinmarketbase==0.8.0'],
python_requires='>=3.6',
zip_safe=False)

2
scripts/joinmarket-qt.py

@ -58,7 +58,7 @@ donation_address_sw = "bc1q5x02zqj5nshw0yhx2s4tj75z6vkvuvww26jak5"
donation_address_url = "https://bitcoinprivacy.me/joinmarket-donations"
#Version of this Qt script specifically
JM_GUI_VERSION = '17'
JM_GUI_VERSION = '18'
from jmbase import get_log, stop_reactor
from jmbase.support import DUST_THRESHOLD, EXIT_FAILURE, utxo_to_utxostr,\

Loading…
Cancel
Save