electrum

Electrum Bitcoin wallet
git clone https://git.parazyd.org/electrum
Log | Files | Refs | Submodules

RELEASE-NOTES (60293B)


      1 # Release 4.0.9 - (Dec 18, 2020)
      2  * fixes a regression introduced in 4.0.8, that prevents from
      3    paying BIP70 invoices (#6859)
      4  * reflect frozen channels and disconnected peers in the displayed
      5    'can send/can receive' amounts.
      6 
      7 # Release 4.0.8 - (Dec 17, 2020)
      8  * fix decoding BIP21 URIs with uppercase schema (d40bedb2)
      9  * psbt: put full derivation paths into PSBT by default (c8155129)
     10  * invoices: allow address-reuse (#6609, #6852)
     11  * A few other minor bugfixes.
     12 
     13 # Release 4.0.7 - (Dec 9, 2020)
     14  * kivy: fix open channel with 'max' amount
     15  * kivy: fix regression introduced in last release (a9fc440)
     16  * other minor GUI fixes
     17  * Dependencies: as part of adapting to new dnspython (#6828),
     18    - python-ecdsa is no longer needed at all,
     19    - cryptography is now required (min 2.6), the user can no
     20      longer choose between cryptography and pycryptodomex
     21 
     22 # Release 4.0.6 - (Dec 4, 2020)
     23  * Fix 'Max' button issue for submarine swaps button (#6770)
     24  * Fix 'Max' button in kivy (#6169)
     25  * Various fixes for Kivy/Android install wizard
     26  * More robust account keypath for BitBox02 (#6766)
     27 
     28 # Release 4.0.5 - (Nov 18, 2020)
     29  * Fix .dmg binary hanging on recently released macOS 11 Big Sur (#6461)
     30  * Lightning:
     31    - bugfix: during LN channel opening, if the client crashed at the
     32      wrong moment, the channel might not get fully persisted to disk,
     33      and would need manual console-tinkering to recover (#6656)
     34    - Lightning is enabled by default. Electrum will not connect to
     35      the Lightning Network until the user opens a channel. (#6639)
     36    - smarter node recommendation (to open channels with) (#6705)
     37  * user interface: some minor changes that aim to improve usability
     38  * Ledger:
     39    - fix enumerating devices with new bitcoin app (1.5.1) (b78cbcff)
     40    - fix compat with HW.1 (200f547a)
     41  * A few other minor bugfixes.
     42 
     43 # Release 4.0.4 - (Oct 15, 2020)
     44  * PSBT: fix regression in 4.0.3 where UTXO data was not included in
     45    QR codes (#6600)
     46  * new feature: "Cancel tx" (#6641). The Qt/kivy GUI allows cancelling
     47    an unconfirmed RBF tx by double-spending its inputs to self.
     48  * Windows binary:
     49    - fix some issues with QR scanning by building zbar ourselves (#6593)
     50    - when using setup exe, also install a debug binary (#6603)
     51  * Ledger: fix "The derivation path is unusual" warnings (#6512)
     52    (needs Bitcoin app 1.4.8+ installed on device)
     53  * A few other minor bugfixes and usability improvements.
     54 
     55 # Release 4.0.3 - (Sep 11, 2020)
     56  * PSBT: restore compatibility with Bitcoin Core following CVE-2020-14199:
     57    we now allow a PSBT input to have both UTXO and WITNESS_UTXO (#6429).
     58    (PSBTs created since 4.0.1 already contained UTXO for segwit inputs)
     59  * Hardware wallets:
     60    - bitbox02: better multisig UX: implement get_soft_device_id (#6386)
     61    - coldcard: fix "show address" for multisig (#6517)
     62    - all: run all device communication on a dedicated thread (#6561).
     63      This should resolve some threading issues.
     64  * new feature: "Automated BIP39 recovery" (#6219, #6155)
     65    When restoring from a BIP39 seed, add option to scan many known
     66    derivation paths for history, and show them to user to choose from.
     67  * show derivation path of keystores in Qt GUI Wallet>Information (#4700)
     68  * fix "signtransaction" RPC command (#6502)
     69  * Dependencies: pyaes is no longer needed (#6563)
     70  * The tar.gz source dist now bundles make_libsecp256k1.sh, to help
     71    users getting libsecp256k1 (#6323).
     72  * A few other minor bugfixes and usability improvements.
     73 
     74 # Release 4.0.2 - (July 8, 2020)
     75  - rm old corrupted non-bip70 invoices (#6345)
     76  - other minor fixes
     77 
     78 # Release 4.0.1 - (July 3, 2020)
     79  * Lightning Network support (experimental)
     80    - Our implementation of Lightning relies on Electrum servers to
     81      query channel states. Since servers can lie about the state of a
     82      channel, users should either use a server that they trust, or
     83      setup a private watchtower (see below). A watchtower is also
     84      recommended for lightning wallets that remain offline for
     85      extended periods of time (the default CSV 'to_self_delay' is 1
     86      week). Please note that Electrum Personal Server (EPS) cannot be
     87      used with lightning wallets, because channels funding addresses
     88      are arbitrary.
     89    - Lightning funds cannot be restored from seed. Instead, users need
     90      to create static backups of their channels. Static backups cannot
     91      be used to perform lightning transactions, they can only be used
     92      to trigger a remote-force-close of a channel.
     93    - Lightning-enabled wallet files must not be copied. Instead, a
     94      backup of the wallet can be created from the Qt menu, and it will
     95      contain static backups of all its channels. Backups can also be
     96      exported for each channel (e.g. via QR code), and imported in
     97      another wallet. Since backups are encrypted with a key derived
     98      from the wallet's xpub, they can only be imported into another
     99      instance of the same wallet, or a watch-only version of it. The
    100      force-close is not triggered automatically when the backup is
    101      imported; imported backups can live inside a wallet file.
    102    - Lightning can be enabled in the GUI (Wallet>Information) or from
    103      the CLI (init_lightning). Lightning is currently restricted to HD
    104      p2wpkh wallets (including watch-only and hardware wallets). The
    105      Qt GUI, CLI/RPC, and the kivy GUI (Android) all have LN support,
    106      with feature-richness in that order.
    107    - LN protocol details: dataloss_protect and static_remotekey are
    108      required; varonion and payment_secret are implemented, MPP not yet.
    109      Channels are not announced ('private'), forwarding is disabled.
    110      We do not serve gossip queries, only consume them.
    111    - Submarine swaps: the GUI integrates a service that offers
    112      atomically exchanging on-chain and lightning bitcoins for a fee.
    113      Electrum Technologies runs a central server for this, powered by
    114      the Boltz backend.
    115    - Watchtowers: Electrum can run a local watchtower (GUI setting),
    116      or it can connect to a remote watchtower. A watchtower contains
    117      pre-signed transactions and does not need your private keys. A
    118      local watchtower will watch your channels whenever an Electrum
    119      instance is running, without needing access to your wallet file.
    120      An Electrum daemon can be configured to be used as a remote
    121      watchtower by setting 'watchtower_address', 'watchtower_user' and
    122      'watchtower_password'.
    123  * Partially Signed Bitcoin Transactions (PSBT, BIP-174) are supported
    124    (#5721). The previous Electrum partial transaction format is no
    125    longer supported, i.e. this is an incompatible change. Users should
    126    make sure that all instances of Electrum they use to co-sign or
    127    offline sign, are updated together.
    128  * Hardware wallets: several fixes in general; notable changes:
    129    - The BitBox02 is now supported (#5993)
    130    - Multisig support for Coldcard (#5440)
    131    - Compatibility with latest Trezor fw (#6064, #6198, #5692)
    132  * Dependencies (see README for install instructions):
    133    - libsecp256k1 is now required (previously optional). python-ecdsa
    134      remains a dependency but it is now only used for DNSSEC.
    135    - Added: either one of pycryptodomex or cryptography is now required,
    136      mainly due to LN (previously pycryptodomex was optional, for fast AES)
    137    - Removed: jsonrpclib-pelix, the JSON-RPC library used for CLI/daemon
    138  * Qt GUI: several changes, notably:
    139    - Separation between output selection and transaction finalization.
    140    - Coin selection moved to the Coins tab, and it affects all txns,
    141      e.g. RBF fee-bumping, LN channel opens, submarine swaps.
    142    - Editable tx preview dialog that allows e.g. changing the locktime,
    143      toggling RBF, and manual coinjoins.
    144  * HTTP PayServer: The configuration of a bitcoin-accepting website
    145    using Electrum has been simplified and requires fewer steps (see
    146    documentation). The Payserver supports BIP70 and Lightning payments.
    147  * Android:
    148    - We now build two APKs, one for ARMv7 and one for ARMv8
    149    - The kivy GUI now supports importing BIP39 seeds
    150    - Each wallet on kivy now can have a separate generic password,
    151      using which the wallet files are encrypted. An optional PIN,
    152      shared among all wallets, can be added to get prompted for spends.
    153  * The API of several CLI/RPC commands have changed, and several new
    154    commands have been introduced (mainly for LN).
    155  * Distributables:
    156    - The .tar.gz source dist is now built reproducibly.
    157      Relatedly, we no longer distribute a .zip sdist.
    158    - The MacOS binary now conforms to macOS 10.15; it is notarized
    159      by Apple. This required bumping the min macOS version to 10.13.
    160      Startup times should now be faster on 10.15. (#6128, #6225)
    161  * Transactions:
    162    - we now grind low R for ECDSA signatures to match bitcoind (#5820)
    163  * Lots and lots of other minor bugfixes and improvements.
    164 
    165 
    166 # Release 3.3.8 - (July 11, 2019)
    167 
    168  * fix some bugs with recent bump fee (RBF) improvements (#5483, #5502)
    169  * fix #5491: watch-only wallets could not bump fee in some cases
    170  * appimage: URLs could not be opened on some desktop environments (#5425)
    171  * faster tx signing for segwit inputs for really large txns (#5494)
    172  * A few other minor bugfixes and usability improvements.
    173 
    174 
    175 # Release 3.3.7 - (July 3, 2019)
    176 
    177  * The AppImage Linux x86_64 binary and the Windows setup.exe
    178    (so now all Windows binaries) are now built reproducibly.
    179  * Bump fee (RBF) improvements:
    180    Implemented a new fee-bump strategy that can add new inputs,
    181    so now any tx can be fee-bumped (d0a4366). The old strategy
    182    was to decrease the value of outputs (starting with change).
    183    We will now try the new strategy first, and only use the old
    184    as a fallback (needed e.g. when spending "Max").
    185  * CoinChooser improvements:
    186    - more likely to construct txs without change (when possible)
    187    - less likely to construct txs with really small change (e864fa5)
    188    - will now only spend negative effective value coins when
    189      beneficial for privacy (cb69aa8)
    190  * fix long-standing bug that broke wallets with >65k addresses (#5366)
    191  * Windows binaries: we now build the PyInstaller boot loader ourselves,
    192    as this seems to reduce anti-virus false positives (1d0f679)
    193  * Android: (fix) BIP70 payment requests could not be paid (#5376)
    194  * Android: allow copy-pasting partial transactions from/to clipboard
    195  * Fix a performance regression for large wallets (c6a54f0)
    196  * Qt: fix some high DPI issues related to text fields (37809be)
    197  * Trezor:
    198    - allow bypassing "too old firmware" error (#5391)
    199    - use only the Bridge to scan devices if it is available (#5420)
    200  * hw wallets: (known issue) on Win10-1903, some hw devices
    201    (that also have U2F functionality) can only be detected with
    202    Administrator privileges. (see #5420 and #5437)
    203    A workaround is to run as Admin, or for Trezor to install the Bridge.
    204  * Several other minor bugfixes and usability improvements.
    205 
    206 
    207 # Release 3.3.6 - (May 16, 2019)
    208 
    209  * qt: fix crash during 2FA wallet creation (#5334)
    210  * fix synchronizer not to keep resubscribing to addresses of
    211    already closed wallets (e415c0d9)
    212  * fix removing addresses/keys from imported wallets (#4481)
    213  * kivy: fix crash when aborting 2FA wallet creation (#5333)
    214  * kivy: fix rare crash when changing exchange rate settings (#5329)
    215  * A few other minor bugfixes and usability improvements.
    216 
    217 
    218 # Release 3.3.5 - (May 9, 2019)
    219 
    220  * The logging system has been overhauled (#5296).
    221    Logs can now also optionally be written to disk, disabled by default.
    222  * Fix a bug in synchronizer (#5122) where client could get stuck.
    223    Also, show the progress of history sync in the GUI. (#5319)
    224  * fix Revealer in Windows and MacOS binaries (#5027)
    225  * fiat rate providers:
    226    - added CoinGecko.com and CoinCap.io
    227    - BitcoinAverage now only provides historical exchange rates for
    228      paying customers. Changed default provider to CoinGecko.com (#5188)
    229  * hardware wallets:
    230    - Ledger: Nano X is now recognized (#5140)
    231    - KeepKey:
    232      - device was not getting detected using Windows binary (#5165)
    233      - support firmware 6.0.0+ (#5205)
    234    - Trezor: implemented "seedless" mode (#5118)
    235  * Coin Control in Qt: implemented freezing individual UTXOs
    236    in addition to freezing addresses (#5152)
    237  * TrustedCoin (2FA wallets):
    238    - better error messages (#5184)
    239    - longer signing timeout (#5221)
    240  * Kivy:
    241    - fix bug with local transactions (#5156)
    242    - allow selecting fiat rate providers without historical data (#5162)
    243  * fix CPFP: the fees already paid by the parent were not included in
    244    the calculation, so it always overestimated (#5244)
    245  * Testnet: there is now a warning when the client is started in
    246    testnet mode as there were a number of reports of users getting
    247    scammed through social engineering (#5295)
    248  * CoinChooser: performance of creating transactions has been improved
    249    significantly for large wallets. (d56917f4)
    250  * Importing/sweeping WIF keys: stricter checks (#4638, #5290)
    251  * Electrum protocol: the client's "user agent" has been changed from
    252    "3.3.5" to "electrum/3.3.5". Other libraries connecting to servers
    253    can consider not "spoofing" to be Electrum. (#5246)
    254  * Several other minor bugfixes and usability improvements.
    255 
    256 
    257 # Release 3.3.4 - (February 13, 2019)
    258 
    259  * AppImage: we now also distribute self-contained binaries for x86_64
    260    Linux in the form of an AppImage (#5042). The Python interpreter,
    261    PyQt5, libsecp256k1, PyCryptodomex, zbar, hidapi/libusb (including
    262    hardware wallet libraries) are all bundled. Note that users of
    263    hw wallets still need to set udev rules themselves.
    264  * hw wallets: fix a regression during transaction signing that prompts
    265    the user too many times for confirmations (commit 2729909)
    266  * transactions now set nVersion to 2, to mimic Bitcoin Core
    267  * fix Qt bug that made all hw wallets unusable on Windows 8.1 (#4960)
    268  * fix bugs in wallet creation wizard that resulted in corrupted
    269    wallets being created in rare cases (#5082, #5057)
    270  * fix compatibility with Qt 5.12 (#5109)
    271 
    272 
    273 # Release 3.3.3 - (January 25, 2019)
    274 
    275  * Do not expose users to server error messages (#4968)
    276  * Notify users of new releases. Release announcements must be signed,
    277    and they are verified byElectrum using a hardcoded Bitcoin address.
    278  * Hardware wallet fixes (#4991, #4993, #5006)
    279  * Display only QR code in QRcode Window
    280  * Fixed code signing on MacOS
    281  * Randomise locktime of transactions
    282 
    283 
    284 # Release 3.3.2 - (December 21, 2018)
    285 
    286  * Fix Qt history export bug
    287  * Improve network timeouts
    288  * Prepend server transaction_broadcast error messages with
    289    explanatory message. Render error messages as plain text.
    290 
    291 
    292 # Release 3.3.1 - (December 20, 2018)
    293 
    294  * Qt: Fix invoices tab crash (#4941)
    295  * Android: Minor GUI improvements
    296 
    297 
    298 # Release 3.3.0 - Hodler's Edition (December 19, 2018)
    299 
    300  * The network layer has been rewritten using asyncio and aiorpcx.
    301    In addition to easier maintenance, this makes the client
    302    more robust against misbehaving servers.
    303  * The minimum python version was increased to 3.6
    304  * The blockchain headers and fork handling logic has been generalized.
    305    Clients by default now follow chain based on most work, not length.
    306  * New wallet creation defaults to native segwit (bech32).
    307  * Segwit 2FA: TrustedCoin now supports native segwit p2wsh
    308    two-factor wallets.
    309  * RBF batching (opt-in): If the wallet has an unconfirmed RBF
    310    transaction, new payments will be added to that transaction,
    311    instead of creating new transactions.
    312  * MacOS: support QR code scanner in binaries.
    313  * Android APK:
    314    - build using Google NDK instead of Crystax NDK
    315    - target API 28
    316    - do not use external storage (previously for block headers)
    317  * hardware wallets:
    318    - Coldcard now supports spending from p2wpkh-p2sh,
    319      fixed p2pkh signing for fw 1.1.0
    320    - Archos Safe-T mini: fix #4726 signing issue
    321    - KeepKey: full segwit support
    322    - Trezor: refactoring and compat with python-trezor 0.11
    323    - Digital BitBox: support firmware v5.0.0
    324  * fix bitcoin URI handling when app already running (#4796)
    325  * Qt listings rewritten:
    326    the History tab now uses QAbstractItemModel, the other tabs use
    327    QStandardItemModel. Performance should be better for large wallets.
    328  * Several other minor bugfixes and usability improvements.
    329 
    330 
    331 # Release 3.2.3 - (September 3, 2018)
    332 
    333  * hardware wallet: the Safe-T mini from Archos is now supported.
    334  * hardware wallet: the Coldcard from Coinkite is now supported.
    335  * BIP39 seeds: if a seed extension (aka passphrase) contained
    336    multiple consecutive whitespaces or leading/trailing whitespaces
    337    then the derived addresses were not following spec. This has been
    338    fixed, and affected should move their coins. The wizard will show a
    339    warning in this case. (#4566)
    340  * Revealer: the PRNG used has been changed (#4649)
    341  * fix Linux distributables: 'typing' was not bundled, needed for python 3.4
    342  * fix #4626: fix spending from segwit multisig wallets involving a Trezor
    343    cosigner when using a custom derivation path
    344  * fix #4491: on Android, if user had set "uBTC" as base unit, app crashed
    345  * fix #4497: on Android, paying bip70 invoices from cold start did not work
    346  * Several other minor bugfixes and usability improvements.
    347 
    348 
    349 # Release 3.2.2 - (July 2nd, 2018)
    350 
    351  * Fix DNS resolution on Windows
    352  * Fix websocket bug in daemon
    353 
    354 
    355 # Release 3.2.1 - (July 1st, 2018)
    356 
    357  * fix Windows binaries: due to build process changes, the locale files
    358    were not included; the language could not be changed from English
    359  * fix Linux distributables: wordlists were not included (#4475)
    360 
    361 
    362 # Release 3.2.0 - Satoshi's Vision (June 30, 2018)
    363 
    364  * If present, libsecp256k1 is used to speed up elliptic curve
    365    operations. The library is bundled in the Windows, MacOS, and
    366    Android binaries. On Linux, it needs to be installed separately.
    367  * Two-factor authentication is available on Android. Note that this
    368    will only provide additional security if one time passwords are
    369    generated on a separate device.
    370  * Semi-automated crash reporting is implemented for Android.
    371  * Transactions that are dropped from the mempool are kept in the
    372    wallet as 'local', and can be rebroadcast. Previously these
    373    transactions were deleted from the wallet.
    374  * The scriptSig and witness part of transaction inputs are no longer
    375    parsed, unless actually needed. The wallet will no longer display
    376    'from' addresses corresponding to transaction inputs, except for
    377    its own inputs.
    378  * The partial transaction format has been incompatibly changed. This
    379    was needed as for partial transactions the scriptSig/witness has to
    380    be parsed, but for signed transactions we did not want to do the
    381    parsing.  Users should make sure that all instances of Electrum
    382    they use to co-sign or offline sign, are updated together.
    383  * Signing of partial transactions created with online imported
    384    addresses wallets now supports significantly more
    385    setups. Previously only online p2pkh address + offline WIF was
    386    supported.  Now the following setups are all supported:
    387    - online {p2pkh, p2wpkh-p2sh, p2wpkh} address + offline WIF,
    388    - online {p2pkh, p2wpkh-p2sh, p2wpkh} address + offline seed/xprv,
    389    - online {p2sh, p2wsh-p2sh, p2wsh}-multisig address + offline seeds/xprvs
    390      (potentially distributed among several different machines)
    391    Note that for the online address + offline HD secret case, you need
    392    the offline wallet to recognize the address (i.e. within gap
    393    limit).  Having an xpub on the online machine is still the
    394    recommended setup, as this allows the online machine to generate
    395    new addresses on demand.
    396  * Segwit multisig for bip39 and hardware wallets is now enabled.
    397    (both p2wsh-p2sh and native p2wsh)
    398  * Ledger: offline signing for segwit inputs (#3302) This has already
    399    worked for Trezor and Digital Bitbox. Offline segwit signing can be
    400    combined with online imported addresses wallets.
    401  * Added Revealer plugin. ( https://revealer.cc ) Revealer is a seed
    402    phrase back-up solution. It allows you to create a cold, analog,
    403    multi-factor backup of your wallet seeds, or of any arbitrary
    404    secret. The Revealer utilizes a transparent plastic visual one time
    405    pad.
    406  * Fractional fee rates: the Qt GUI now displays fee rates with 0.1
    407    sat/byte precision, and also allows this same resolution in the
    408    Send tab.
    409  * Hardware wallets: a "show address" button is now displayed in the
    410    Receive tab of the Qt GUI. (#4316)
    411  * Trezor One: implemented advanced/matrix recovery (#4329)
    412  * Qt/Kivy: added "sat" as optional base unit.
    413  * Kivy GUI: significant performance improvements when displaying
    414    history and address list of large wallets; and transaction dialog
    415    of large transactions.
    416  * Windows: use dnspython to resolve dns instead of socket.getaddrinfo
    417    (#4422)
    418  * Importing minikeys: use uncompressed pubkey instead of compressed
    419    (#4384)
    420  * SPV proofs: check inner nodes not to be valid transactions (#4436)
    421  * Qt GUI: there is now an optional "dark" theme (#4461)
    422  * Several other minor bugfixes and usability improvements.
    423 
    424 
    425 # Release 3.1.3 - (April 16, 2018)
    426 
    427  * Qt GUI: seed word auto-complete during restore
    428  * Android: fix some crashes
    429  * performance improvements (wallet, and Qt GUI)
    430  * hardware wallets: show debug message during device scan
    431  * Digital Bitbox: enabled BIP84 (p2wpkh) wallet creation
    432  * add regtest support (via --regtest flag)
    433  * other minor bugfixes and usability improvements
    434 
    435 # Release 3.1.2 - (March 28, 2018)
    436 
    437  * Kivy/android: request PIN on startup
    438  * Improve OSX build process
    439  * Fix various bugs with hardware wallets
    440  * Other minor bugfixes
    441 
    442 # Release 3.1.1 - (March 12, 2018)
    443 
    444  * fix #4031: Trezor T support
    445  * partial fix #4060: proxy and hardware wallet can't be used together
    446  * fix #4039: can't set address labels
    447  * fix crash related to coinbase transactions
    448  * MacOS: use internal graphics card
    449  * fix openalias related crashes
    450  * speed-up capital gains calculations
    451  * hw wallet encryption: re-prompt for passphrase if incorrect
    452  * other minor fixes.
    453 
    454 
    455 
    456 # Release 3.1.0 - (March 5, 2018)
    457 
    458  * Memory-pool based fee estimation. Dynamic fees can target a desired
    459    depth in the memory pool. This feature is optional, and ETA-based
    460    estimates from Bitcoin Core are still available. Note that miners
    461    could exploit this feature, if they conspired and filled the memory
    462    pool with expensive transactions that never get mined. However,
    463    since the Electrum client already trusts an Electrum server with
    464    fee estimates, activating this feature does not introduce any new
    465    vulnerability. In addition, the client uses a hard threshold to
    466    protect itself from servers sending excessive fee estimates. In
    467    practice, ETA-based estimates have resulted in sticky fees, and
    468    caused many users to overpay for transactions. Advanced users tend
    469    to visit (and trust) websites that display memory-pool data in
    470    order to set their fees.
    471  * Capital gains: For each outgoing transaction, the difference
    472    between the acquisition and liquidation prices of outgoing coins is
    473    displayed in the wallet history. By default, historical exchange
    474    rates are used to compute acquisition and liquidation prices. These
    475    values can also be entered manually, in order to match the actual
    476    price realized by the user. The order of liquidation of coins is
    477    the natural order defined by the blockchain; this results in
    478    capital gain values that are invariant to changes in the set of
    479    addresses that are in the wallet. Any other ordering strategy (such
    480    as FIFO, LIFO) would result in capital gain values that depend on
    481    the presence of other addresses in the wallet.
    482  * Local transactions: Transactions can be saved in the wallet without
    483    being broadcast. The inputs of local transactions are considered as
    484    spent, and their change outputs can be re-used in subsequent
    485    transactions. This can be combined with cold storage, in order to
    486    create several transactions before broadcasting them. Outgoing
    487    transactions that have been removed from the memory pool are also
    488    saved in the wallet, and can be broadcast again.
    489  * Checkpoints: The initial download of a headers file was replaced
    490    with hardcoded checkpoints. The wallet uses one checkpoint per
    491    retargeting period. The headers for a retargeting period are
    492    downloaded only if transactions need to be verified in this period.
    493  * The 'privacy' and 'priority' coin selection policies have been
    494    merged into one. Previously, the 'privacy' policy has been unusable
    495    because it was was not prioritizing confirmed coins. The new policy
    496    is similar to 'privacy', except that it de-prioritizes addresses
    497    that have unconfirmed coins.
    498  * The 'Send' tab of the Qt GUI displays how transaction fees are
    499    computed from transaction size.
    500  * The wallet history can be filtered by time interval.
    501  * Replace-by-fee is enabled by default. Note that this might cause
    502    some issues with wallets that do not display RBF transactions until
    503    they are confirmed.
    504  * Watching-only wallets and hardware wallets can be encrypted.
    505  * Semi-automated crash reporting
    506  * The SSL checkbox option was removed from the GUI.
    507  * The Trezor T hardware wallet is now supported.
    508  * BIP84: native segwit p2wpkh scripts for bip39 seeds and hardware
    509    wallets can now be created when specifying a BIP84 derivation
    510    path. This is usable with Trezor and Ledger.
    511  * Windows: the binaries now include ZBar, and QR code scanning should work.
    512  * The Wallet Import Format (WIF) for private keys that was extended in 3.0
    513    is changed. Keys in the previous format can be imported, compatibility
    514    is maintained. Newly exported keys will be serialized as
    515    "script_type:original_wif_format_key".
    516  * BIP32 master keys for testnet once again have different version bytes than
    517    on mainnet. For the mainnet prefixes {x,y,Y,z,Z}|{pub,prv}, the
    518    corresponding testnet prefixes are   {t,u,U,v,V}|{pub,prv}.
    519    More details and exact version bytes are specified at:
    520    https://github.com/spesmilo/electrum-docs/blob/master/xpub_version_bytes.rst
    521    Note that due to this change, testnet wallet files created with previous
    522    versions of Electrum must be considered broken, and they need to be
    523    recreated from seed words.
    524  * A new version of the Electrum protocol is required by the client
    525    (version 1.2). Servers using older versions of the protocol will
    526    not be displayed in the GUI.
    527 
    528 
    529 # Release 3.0.6 :
    530   * Fix transaction parsing bug #3788
    531 
    532 # Release 3.0.5 : (Security update)
    533 
    534 This is a follow-up to the 3.0.4 release, which did not completely fix
    535 issue #3374. Users should upgrade to 3.0.5.
    536 
    537  * The JSONRPC interface is password protected
    538  * JSONRPC commands are disabled if the GUI is running, except 'ping',
    539    which is used to determine if a GUI is already running
    540 
    541 
    542 # Release 3.0.4 : (Security update)
    543 
    544  * Fix a vulnerability caused by Cross-Origin Resource Sharing (CORS)
    545    in the JSONRPC interface. Previous versions of Electrum are
    546    vulnerable to port scanning and deanonimization attacks from
    547    malicious websites. Wallets that are not password-protected are
    548    vulnerable to theft.
    549  * Bundle QR scanner with Android app
    550  * Minor bug fixes
    551 
    552 # Release 3.0.3
    553   * Qt GUI: sweeping now uses the Send tab, allowing fees to be set
    554   * Windows: if using the installer binary, there is now a separate shortcut
    555     for "Electrum Testnet"
    556   * Digital Bitbox: added support for p2sh-segwit
    557   * OS notifications for incoming transactions
    558   * better transaction size estimation:
    559     - fees for segwit txns were somewhat underestimated (#3347)
    560     - some multisig txns were underestimated
    561     - handle uncompressed pubkeys
    562   * fix #3321: testnet for Windows binaries
    563   * fix #3264: Ledger/dbb signing on some platforms
    564   * fix #3407: KeepKey sending to p2sh output
    565   * other minor fixes and usability improvements
    566 
    567 # Release 3.0.2
    568   * Android: replace requests tab with address tab, with access to
    569     private keys
    570   * sweeping minikeys: search for both compressed and uncompressed
    571     pubkeys
    572   * fix wizard crash when attempting to reset Google Authenticator
    573   * fix #3248: fix Ledger+segwit signing
    574   * fix #3262: fix SSL payment request signing
    575   * other minor fixes.
    576 
    577 # Release 3.0.1
    578   * minor bug and usability fixes
    579 
    580 # Release 3.0 - Uncanny Valley (November 1st, 2017)
    581 
    582   * The project was migrated to Python3 and Qt5. Python2 is no longer
    583     supported. If you cloned the source repository, you will need to
    584     run "python3 setup.py install" in order to install the new
    585     dependencies.
    586 
    587   * Segwit support: 
    588 
    589     - Native segwit scripts are supported using a new type of
    590       seed. The version number for segwit seeds is 0x100. The install
    591       wizard will not create segwit seeds by default; users must
    592       opt-in with the segwit option.
    593 
    594     - Native segwit scripts are represented using bech32 addresses,
    595       following BIP173. Please note that BIP173 is still in draft
    596       status, and that other wallets/websites may not support
    597       it. Thus, you should keep a non-segwit wallet in order to be
    598       able to receive bitcoins during the transition period. If BIP173
    599       ends up being rejected or substantially modified, your wallet
    600       may have to be restored from seed. This will not affect funds
    601       sent to bech32 addresses, and it will not affect the capacity of
    602       Electrum to spend these funds.
    603 
    604     - Segwit scripts embedded in p2sh are supported with hardware
    605       wallets or bip39 seeds. To create a segwit-in-p2sh wallet,
    606       trezor/ledger users will need to enter a BIP49 derivation path.
    607 
    608     - The BIP32 master keys of segwit wallets are serialized using new
    609       version numbers. The new version numbers encode the script type,
    610       and they result in the following prefixes:
    611 
    612          * xpub/xprv : p2pkh or p2sh
    613          * ypub/yprv : p2wpkh-in-p2sh
    614          * Ypub/Yprv : p2wsh-in-p2sh
    615          * zpub/zprv : p2wpkh
    616          * Zpub/Zprv : p2wsh
    617 
    618       These values are identical for mainnet and testnet; tpub/tprv
    619       prefixes are no longer used in testnet wallets.
    620 
    621     - The Wallet Import Format (WIF) is similarly extended for segwit
    622       scripts. After a base58-encoded key is decoded to binary, its
    623       first byte encodes the script type:
    624 
    625          * 128 + 0: p2pkh
    626          * 128 + 1: p2wpkh
    627          * 128 + 2: p2wpkh-in-p2sh
    628          * 128 + 5: p2sh
    629          * 128 + 6: p2wsh
    630          * 128 + 7: p2wsh-in-p2sh
    631 
    632       The distinction between p2sh and p2pkh in private key means that
    633       it is not possible to import a p2sh private key and associate it
    634       to a p2pkh address.
    635 
    636   * A new version of the Electrum protocol is required by the client
    637     (version 1.1). Servers using older versions of the protocol will
    638     not be displayed in the GUI.
    639 
    640   * By default, transactions are time-locked to the height of the
    641     current block. Other values of locktime may be passed using the
    642     command line.
    643 
    644 
    645 # Release 2.9.3
    646   * fix configuration file issue #2719
    647   * fix ledger signing of non-RBF transactions
    648   * disable 'spend confirmed only' option by default
    649 
    650 # Release 2.9.2
    651   * force headers download if headers file is corrupted
    652   * add websocket to windows builds
    653 
    654 # Release 2.9.1
    655   * fix initial headers download
    656   * validate contacts on import
    657   * command-line option for locktime
    658 
    659 # Release 2.9 - Independence (July 27th, 2017)
    660   * Multiple Chain Validation: Electrum will download and validate
    661     block headers sent by servers that may follow different branches
    662     of a fork in the Bitcoin blockchain. Instead of a linear sequence,
    663     block headers are organized in a tree structure. Branching points
    664     are located efficiently using binary search. The purpose of MCV is
    665     to detect and handle blockchain forks that are invisible to the
    666     classical SPV model.
    667   * The desired branch of a blockchain fork can be selected using the
    668     network dialog. Branches are identified by the hash and height of
    669     the diverging block. Coin splitting is possible using RBF
    670     transaction (a tutorial will be added).
    671   * Multibit support: If the user enters a BIP39 seed (or uses a
    672     hardware wallet), the full derivation path is configurable in the
    673     install wizard.
    674   * Option to send only confirmed coins
    675   * Qt GUI:
    676     - Network dialog uses tabs and gets updated by network events.
    677     - The gui tabs use icons
    678   * Kivy GUI:
    679     - separation between network dialog and wallet settings dialog.
    680     - option for manual server entry
    681     - proxy configuration
    682   * Daemon: The wallet password can be passed as parameter to the
    683     JSONRPC API.
    684   * Various other bugfixes and improvements.
    685 
    686 
    687 # Release 2.8.3
    688   * Fix crash on reading older wallet formats.
    689   * TrustedCoin: remove pay-per-tx option
    690 
    691 # Release 2.8.2
    692   * show paid invoices in history tab
    693   * improve CPFP dialog
    694   * fixes for trezor, keepkey
    695   * other minor bugfixes
    696 
    697 # Release 2.8.1
    698   * fix Digital Bitbox plugin
    699   * fix daemon jsonrpc
    700   * fix trustedcoin wallet creation
    701   * other minor bugfixes
    702 
    703 # Release 2.8.0 (March 9, 2017)
    704   * Wallet file encryption using ECIES: A keypair is derived from the
    705     wallet password. Once the wallet is decrypted, only the public key
    706     is retained in memory, in order to save the encrypted file.
    707   * The daemon requires wallets to be explicitly loaded before
    708     commands can use them. Wallets can be loaded using: 'electrum
    709     daemon load_wallet [-w path]'. This command will require a
    710     password if the wallet is encrypted.
    711   * Invoices and contacts are stored in the wallet file and are no
    712     longer shared between wallets. Previously created invoices and
    713     contacts files may be imported from the menu.
    714   * Fees improvements:
    715     - Dynamic fees are enabled by default.
    716     - Child Pays For Parent (CPFP) dialog in the GUI.
    717     - RBF is automatically proposed for low fee transactions.
    718   * Support for Segregated Witness (testnet only).
    719   * Support for Digital Bitbox hardware wallet.
    720   * The GUI shows a blue icon when connected using a proxy.
    721 
    722 # Release 2.7.18
    723   * enforce https on exchange rate APIs
    724   * use hardcoded list of exchanges
    725   * move 'Freeze' menu to Coins (utxo) tab
    726   * various bugfixes
    727 
    728 # Release 2.7.17
    729   * fix a few minor regressions in the Qt GUI
    730 
    731 # Release 2.7.16
    732   * add Testnet support (fix #541)
    733   * allow daemon to be launched in the foreground (fix #1873)
    734   * Qt: use separate tabs for addresses and UTXOs
    735   * Qt: update fee slider with a network callback
    736   * Ledger: new ui and mobile 2fa validation (neocogent)
    737 
    738 # Release 2.7.15
    739   * Use fee slider for both static and dynamic fees.
    740   * Add fee slider to RBF dialog (fix #2083).
    741   * Simplify fee preferences.
    742   * Critical: Fix password update issue (#2097). This bug prevents
    743     password updates in multisig and 2FA wallets. It may also cause
    744     wallet corruption if the wallet contains several master private
    745     keys (such as 2FA wallets that have been restored from
    746     seed). Affected wallets will need to be restored again.
    747 
    748 # Release 2.7.14
    749   * Merge exchange_rate plugin with main code
    750   * Faster synchronization and transaction creation
    751   * Fix bugs #2096, #2016
    752 
    753 # Release 2.7.13
    754   * fix message signing with imported keys
    755   * add size to transaction details window
    756   * move plot plugin to main code
    757   * minor bugfixes
    758 
    759 # Release 2.7.12
    760   various bugfixes
    761 
    762 # Release 2.7.11
    763   * fix offline signing (issue #195)
    764   * fix android crashes caused by threads
    765 
    766 # Release 2.7.10
    767   * various fixes for hardware wallets
    768   * improve fee bumping
    769   * separate sign and broadcast buttons in Qt tx dialog
    770   * allow spaces in private keys
    771 
    772 # Release 2.7.9
    773   * Fix a bug with the ordering of pubkeys in recent multisig wallets.
    774     Affected wallets will regenerate their public keys when opened for
    775     the first time. This bug does not affect address generation.
    776   * Fix hardware wallet issues #1975, #1976
    777 
    778 # Release 2.7.8
    779   * Fix a bug with fee bumping
    780   * Fix crash when parsing request (issue #1969)
    781 
    782 # Release 2.7.7
    783   * Fix utf8 encoding bug with old wallet seeds (issue #1967)
    784   * Fix delete request from menu (issue #1968)
    785 
    786 # Release 2.7.6
    787  * Fixes a critical bug with imported private keys (issue #1966). Keys
    788    imported in Electrum 2.7.x were not encrypted, even if the wallet
    789    had a password. If you imported private keys using Electrum 2.7.x,
    790    you will need to import those keys again. If you imported keys in
    791    2.6 and converted with 2.7.x, you don't need to do anything, but
    792    you still need to upgrade in order to be able to spend.
    793  * Wizard: Hide seed options in a popup dialog.
    794 
    795 # Release 2.7.5
    796  * Add number of confirmations to request status. (issue #1757)
    797  * In the GUI, refer to passphrase as 'seed extension'.
    798  * Fix bug with utf8 encoded passphrases.
    799  * Kivy wizard: add a dialog for seed options.
    800  * Kivy wizard: add current word to suggestions, because some users
    801    don't see the space key.
    802 
    803 # Release 2.7.4
    804  * Fix private key import in wizard
    805  * Fix Ledger display (issue #1961)
    806  * Fix old watching-only wallets (issue #1959)
    807  * Fix Android compatibility (issue #1947)
    808 
    809 # Release 2.7.3
    810  * fix Trezor and Keepkey support in Windows builds
    811  * fix sweep private key dialog
    812  * minor fixes: #1958, #1959
    813 
    814 # Release 2.7.2
    815  * fix bug in password update (issue #1954)
    816  * fix fee slider (issue #1953)
    817 
    818 # Release 2.7.1
    819  * fix wizard crash with old seeds
    820  * fix issue #1948: fee slider
    821 
    822 # Release 2.7.0 (Oct 2 2016)
    823 
    824  * The wallet file format has been upgraded. This upgrade is not
    825    backward compatible, which means that a wallet upgraded to the 2.7
    826    format will not be readable by earlier versions of
    827    Electrum. Multiple accounts inside the same wallet are not
    828    supported in the new format; the Qt GUI will propose to split any
    829    wallet that has several accounts. Make sure that you have saved
    830    your seed phrase before you upgrade Electrum.
    831  * This version introduces a separation between wallets types and
    832    keystores types. 'Wallet type' defines the type of Bitcoin contract
    833    used in the wallet, while 'keystore type' refers to the method used
    834    to store private keys. Therefore, so-called 'hardware wallets' will
    835    be referred to as 'hardware keystores'.
    836  * Hardware keystores:
    837    - The Ledger Nano S is supported.
    838    - Hardware keystores can be used as cosigners in multi-signature
    839      wallets.
    840    - Multiple hardware cosigners can be used in the same multisig
    841      wallet. One icon per keystore is displayed in the satus bar. Each
    842      connected device will co-sign the transaction.
    843  * Replace-By-Fee: RBF transactions are supported in both Qt and
    844    Android. A warning is displayed in the history for transactions
    845    that are replaceable, have unconfirmed parents, or that have very
    846    low fees.
    847  * Dynamic fees: Dynamic fees are enabled by default. A slider allows
    848    the user to select the expected confirmation time of their
    849    transaction. The expected confirmation times of incoming
    850    transactions is also displayed in the history.
    851  * The install wizards of Qt and Kivy have been unified.
    852  * Qt GUI (Desktop):
    853    - A fee slider is visible in the in send tab
    854    - The Address tab is hidden by default, can be shown with Ctrl-A
    855    - UTXOs are displayed in the Address tab
    856  * Kivy GUI (Android):
    857    - The GUI displays the complete transaction history.
    858    - Multisig wallets are supported.
    859    - Wallets can be created and deleted in the GUI.
    860  * Seed phrases can be extended with a user-chosen passphrase. The
    861    length of seed phrases is standardized to 12 words, using 132 bits
    862    of entropy (including 2FA seeds). In the wizard, the type of the
    863    seed is displayed in the seed input dialog.
    864  * TrustedCoin users can request a reset of their Google Authenticator
    865    account, if they still have their seed.
    866 
    867 
    868 # Release 2.6.4 (bugfixes)
    869  * fix coinchooser bug (#1703)
    870  * fix daemon JSONRPC (#1731)
    871  * fix command-line broadcast (#1728)
    872  * QT: add colors to labels
    873 
    874 # Release 2.6.3 (bugfixes)
    875  * fix command line parsing of transactions
    876  * fix signtransaction --privkey (#1715)
    877 
    878 # Release 2.6.2 (bugfixes)
    879  * fix Trustedcoin restore from seed (bug #1704)
    880  * small improvements to kivy GUI
    881 
    882 # Release 2.6.1 (bugfixes)
    883  * fix broadcast command (bug #1688)
    884  * fix tx dialog (bug #1690)
    885  * kivy: support old-type seed phrases in wizard
    886 
    887 # Release 2.6
    888  * The source code is relicensed under the MIT Licence
    889  * First official release of the Kivy GUI, with android APK
    890  * The old 'android' and 'gtk' GUIs are deprecated
    891  * Separation between plugins and GUIs
    892  * The command line uses jsonrpc to communicate with the daemon
    893  * New command: 'notify <address> <url>'
    894  * Alternative coin selection policy, designed to help preserve user
    895    privacy. Enable it by setting the Coin Selection preference to
    896    Privacy.
    897  * The install wizard has been rewritten and improved
    898  * Support minikeys as used in Casascius coins for private key import
    899    and sweeping
    900  * Much improved support for TREZOR and KeepKey devices:
    901    - full device information display
    902    - initialize a new or wiped device in 4 ways:
    903      1) device generates a new wallet
    904      2) you enter a seed
    905      3) you enter a BIP39 mnemonic to generate the seed
    906      4) you enter a master private key
    907    - KeepKey secure seed recovery (KeepKey only)
    908    - change / set / disable PIN
    909    - set homescreen (TREZOR only)
    910    - set a session timeout.  Once a session has timed out, further use
    911      of the device requires your PIN and passhphrase to be re-entered
    912    - enable / disable passphrases
    913    - device wipe
    914    - multiple device support
    915 
    916 # Release 2.5.4
    917  * increase MIN_RELAY_TX_FEE to avoid dust transactions
    918 
    919 # Release 2.5.3 (bugfixes)
    920  * installwizard: do not allow direct copy-paste of the seed
    921  * installwizard: fix bug #1531 (starting offline)
    922 
    923 # Release 2.5.2 (bugfixes)
    924  * fix bug #1513 (client tries to broadcast transaction while not connected)
    925  * fix synchronization bug (#1520)
    926  * fix command line bug (#1494)
    927  * fixes for exchange rate plugin
    928 
    929 # Release 2.5.1 (bugfixes)
    930  * signatures in transactions were still using the old class
    931  * make sure that setup.py uses python2
    932  * fix wizard crash with trustedcoin plugin
    933  * fix socket infinite loop
    934  * fix history bug #1479
    935 
    936 # Release 2.5
    937  * Low-S values are used in signatures (BIP 62).
    938  * The Kivy GUI has been merged into master.
    939  * The Qt GUI supports multiple windows in the same process. When a
    940    new Electrum instance is started, it checks for an already running
    941    Electrum process, and connects to it.
    942  * The network layer uses select(), so all server communication is
    943    handled by a single thread. Moreover, the synchronizer, verifier,
    944    and exchange rate plugin now run as separate jobs within the
    945    networking thread instead of as their own threads.
    946  * Plugins are revamped, particularly the exchange rate plugin.
    947 
    948 # Release 2.4.4
    949  * Fix bug with TrustedCoin plugin
    950 
    951 # Release 2.4.3
    952  * Support for KeepKey hardware wallet
    953  * Simplified Chinese wordlist
    954  * Minor bugfixes and GUI tweaks
    955 
    956 # Release 2.4.2
    957  * Command line can read arguments from stdin (pipe)
    958  * Speedup fee computation for large transactions
    959  * Various bugfixes
    960 
    961 # Release 2.4.1
    962  * Use ssl.PROTOCOL_TLSv1
    963  * Fix DNSSEC issues with ECDSA signatures
    964  * Replace TLSLite dependency with minimal RSA implementation
    965  * Dynamic Fees: using estimatefee value returned by server
    966  * Various GUI improvements
    967 
    968 # Release 2.4
    969  * Payment to DNS names storing a Bitcoin addresses (OpenAlias) is
    970    supported directly, without activating a plugin. The verification
    971    uses DNSSEC.
    972  * The DNSSEC verification code was rewritten. The previous code,
    973    which was part of the OpenAlias plugin, is vulnerable and should
    974    not be trusted (Electrum 2.0 to 2.3).
    975  * Payment requests can be signed using Bitcoin addresses stored
    976    in DNS (OpenAlias). The identity of the requestor is verified using
    977    DNSSEC.
    978  * Payment requests signed with OpenAlias keys can be shared as
    979    bitcoin: URIs, if they are simple (a single address-type
    980    output). The BIP21 URI scheme is extended with 'name', 'sig',
    981    'time', 'exp'.
    982  * Arbitrary m-of-n multisig wallets are supported (n<=15).
    983  * Multisig transactions can be signed with TREZOR. When you create
    984    the multisig wallet, just enter the xpub of your existing TREZOR
    985    wallet.
    986  * Transaction fees set manually in the GUI are retained, including
    987    when the user uses the '!' shortcut.
    988  * New 'email' plugin, that enables sending and receiving payment
    989    requests by email.
    990  * The daemon supports Websocket notifications of payments.
    991 
    992 # Release 2.3.3
    993  * fix proxy settings (issue #1309)
    994  * improvements to the transaction dialog:
    995     - request password after showing transaction
    996     - show change addresses in yellow color
    997 
    998 # Release 2.3.2
    999  * minor bugfixes
   1000  * updated ledger plugin
   1001  * sort inputs/outputs lexicographically (BIP-LI01)
   1002 
   1003 # Release 2.3.1
   1004  * patch a bug with payment requests
   1005 
   1006 # Release 2.3
   1007  * Improved logic for the network layer.
   1008  * More efficient coin selection. Spend oldest coins first, and
   1009    minimize the number of transaction inputs.
   1010  * Plugins are loaded independently of the GUI. As a result, Openalias,
   1011    TrustedCoin and TREZOR wallets can be used with the command
   1012    line. Example: 'electrum payto <openalias> <amount>'
   1013  * The command line has been refactored:
   1014   - Arguments are parsed with argparse.
   1015   - The inline help includes a description of options.
   1016   - Some commands have been renamed. Notably, 'mktx' and 'payto' have
   1017     been merged into a single command, with a --broadcast option.
   1018    Type 'electrum --help' for a complete overview.
   1019  * The command line accepts the '!' syntax to send the maximum
   1020    amount available. It can be combined with the '--from' option.
   1021    Example: 'payto <destination> ! --from <from_address>'
   1022  * The command line also accepts a '?' shortcut for private keys
   1023    arguments, that triggers a prompt.
   1024  * Payment requests can be managed with the command line, using the
   1025    following commands: 'addrequest', 'rmrequest', 'listrequests'.
   1026    Payment requests can be signed with a SSL certificate, and published
   1027    as bip70 files in a public web directory. To see the relevant
   1028    configuration variables, type 'electrum addrequest --help'
   1029  * Commands can be called with jsonrpc, using the 'jsonrpc' gui. The
   1030    jsonrpc interface may be called by php.
   1031 
   1032 # Release 2.2
   1033  * Show amounts (thousands separators and decimal point)
   1034    according to locale in GUI
   1035  * Show unmatured coins in balance
   1036  * Fix exchange rates plugin
   1037  * Network layer: refactoring and fixes
   1038 
   1039 # Release 2.1.1
   1040  * patch a bug that prevents new wallet creation.
   1041  * fix connection issue on osx binaries
   1042 
   1043 # Release 2.1
   1044  * Faster startup, thanks to the following optimizations:
   1045    1. Transaction input/outputs are cached in the wallet file
   1046    2. Fast X509 certificate parser, not using pyasn1 anymore.
   1047    3. The Label Sync plugin only requests modified labels.
   1048  * The 'Invoices' and 'Send' tabs have been merged.
   1049  * Contacts are stored in a separate file, shared between wallets.
   1050  * A Search Box is available in the GUI (Ctrl-S)
   1051  * Payment requests have an expiration date and can be exported to
   1052    BIP70 files.
   1053  * file: scheme support in BIP72 URIs: "bitcoin:?r=file:///..."
   1054  * Own addresses are shown in green in the Transaction dialog.
   1055  * Address History dialog.
   1056  * The OpenAlias plugin was improved.
   1057  * Various bug fixes and GUI improvements.
   1058  * A new LabelSync backend is being used an import of the old
   1059    database was made but since the release came later it's
   1060    recommended that you do a full push when you upgrade.
   1061 
   1062 # Release 2.0.4 - Minor GUI improvements
   1063  * The password dialog will ask for password again if the user enters
   1064    a wrong password
   1065  * The Master Public Key dialog displays which keys belong to the
   1066    wallet, and which are cosigners
   1067  * The transaction dialog will ask to save unsaved transaction
   1068    received from cosigner pool, when user clicks on 'Close'
   1069  * The multisig restore dialog accepts xprv keys.
   1070  * The network daemon must be started explicitly before using commands
   1071    that require a connection
   1072    Example:
   1073      electrum daemon start
   1074      electrum getaddressunspent <addr>
   1075      electrum daemon status
   1076      electrum daemon stop
   1077    If a daemon is running, the GUI will use it.
   1078 
   1079 # Release 2.0.3 - bugfixes and minor GUI improvements
   1080  * Do not use daemon threads (fix #960)
   1081  * Add a zoom button to receive tab
   1082  * Add exchange rate conversion to receive tab
   1083  * Use Tor's default port number in default proxy config
   1084 
   1085 # Release 2.0.2 - bugfixes
   1086  * Fix transaction sweep (#1066)
   1087  * Fix thread timing bug (#1054)
   1088 
   1089 # Release 2.0.1 - bugfixes
   1090  * Fix critical bug in TREZOR address derivation: passphrases were not
   1091    NFKD normalized. TREZOR users who created a wallet protected by a
   1092    passphrase containing utf-8 characters with diacritics are
   1093    affected. These users will have to open their wallet with version
   1094    2.0 and to move their funds to a new wallet.
   1095  * Use a file socket for the daemon (fixes network dialog issues)
   1096  * Fix crash caused by QR scanner icon when zbar not installed.
   1097  * Fix CosignerPool plugin
   1098  * Label Sync plugin: Fix label sharing between multisig wallets
   1099 
   1100 
   1101 # Release 2.0
   1102 
   1103  * Before you upgrade, make sure you have saved your wallet seed on
   1104    paper.
   1105 
   1106  * Documentation is now hosted on a wiki: http://electrum.orain.org
   1107 
   1108  * New seed derivation method (not compatible with BIP39). The seed
   1109    phrase includes a version number, that refers to the wallet
   1110    structure. The version number also serves as a checksum, and it
   1111    will prevent the import of seeds from incompatible wallets. Old
   1112    Electrum seeds are still supported.
   1113 
   1114  * New address derivation (BIP32). Standard wallets are single account
   1115    and use a gap limit of 20.
   1116 
   1117  * Support for Multisig wallets using parallel BIP32 derivations and
   1118    P2SH addresses ("2 of 2", "2 of 3").
   1119 
   1120  * Compact serialization format for unsigned or partially signed
   1121    transactions, that includes the BIP32 master public key and
   1122    derivation needed to sign inputs. Serialized transactions can be
   1123    sent to cosigners or to cold storage using QR codes (using Andreas
   1124    Schildbach's base 43 idea).
   1125 
   1126  * Support for BIP70 payment requests:
   1127    - Verification of the chain of signatures uses tlslite.
   1128    - In the GUI, payment requests are shown in the 'Invoices' tab.
   1129 
   1130  * Support for hardware wallets: TREZOR (SatoshiLabs) and Btchip (Ledger).
   1131 
   1132  * Two-factor authentication service by TrustedCoin. This service uses
   1133    "2 of 3" multisig wallets and Google Authenticator. Note that
   1134    wallets protected by this service can be deterministically restored
   1135    from seed, without Trustedcoin's server.
   1136 
   1137  * Cosigner Pool plugin: encrypted communication channel for multisig
   1138    wallets, to send and receive partially signed transactions.
   1139 
   1140  * Audio Modem plugin: send and receive transactions by sound.
   1141 
   1142  * OpenAlias plugin: send bitcoins to aliases verified using DNSSEC.
   1143 
   1144  * New 'Receive' tab in the GUI:
   1145    - create and manage payment requests, with QR Codes
   1146    - the former 'Receive' tab was renamed to 'Addresses'
   1147    - the former Point of Sale plugin is replaced by a resizable
   1148      window that pops up if you click on the QR code
   1149 
   1150  * The 'Send' tab in the Qt GUI supports transactions with multiple
   1151    outputs, and raw hexadecimal scripts.
   1152 
   1153  * The GUI can connect to the Electrum daemon: "electrum -d" will
   1154    start the daemon if it is not already running, and the GUI will
   1155    connect to it. The daemon can serve several clients. It times out
   1156    if no client uses if for more than 5 minutes.
   1157 
   1158  * The install wizard can be used to import addresses or private
   1159    keys. A watching-only wallet is created by entering a list of
   1160    addresses in the wizard dialog.
   1161 
   1162  * New file format: Wallets files are saved as JSON. Note that new
   1163    wallet files cannot be read by older versions of Electrum. Old
   1164    wallet files will be converted to the new format; this operation
   1165    may take some time, because public keys will be derived for each
   1166    address of your wallet.
   1167 
   1168  * The client accepts servers with a CA-signed SSL certificate.
   1169 
   1170  * ECIES encrypt/decrypt methods, available in the GUI and using
   1171    the command line:
   1172       encrypt <pubkey> <message>
   1173       decrypt <pubkey> <message>
   1174 
   1175  * The Android GUI has received various updates and it is much more
   1176    stable. Another script was added to Android, called Authenticator,
   1177    that works completely offline: it reads an unsigned transaction
   1178    shown as QR code, signs it and shows the result as a QR code.
   1179 
   1180 
   1181 # Release 1.9.8
   1182 
   1183 * Electrum servers were upgraded to version 0.9. The new server stores
   1184   a Patrica tree of all UTXOs, an idea proposed by Alan Reiner in the
   1185   bitcointalk forum. This property allows the client to directly
   1186   request the balance of any address. The new commands are:
   1187      1. getaddressbalance <address>
   1188      2. getaddressunspent <address>
   1189      3. getutxoaddress <txid> <pos>
   1190 
   1191 * Command-line commands that require a connection to the network spawn
   1192   a daemon, that remains connected and handles subsequent
   1193   commands. The daemon terminates itself if it remains unused for more
   1194   than one minute. The purpose of this is to make scripting more
   1195   efficient. For example, a bash script using many electrum commands
   1196   will open only one connection.
   1197 
   1198 # Release 1.9.7
   1199 * Fix for offline signing
   1200 * Various bugfixes
   1201 * GUI usability improvements
   1202 * Coinbase Buyback plugin
   1203 
   1204 # Release 1.9.6
   1205 * During wallet creation, do not write seed to disk until it is encrypted.
   1206 * Confirmation dialog if the transaction fee is higher than 1mBTC.
   1207 * bugfixes
   1208 
   1209 # Release 1.9.5
   1210 
   1211 * Coin control: select addresses to send from
   1212 * Put addresses that have been used in a minimized section (Qt GUI)
   1213 * Allow non ascii chars in passwords
   1214 
   1215 
   1216 # Release 1.9.4
   1217 bugfixes: offline transactions
   1218 
   1219 # Release 1.9.3
   1220 bugfixes: connection problems, transactions staying unverified
   1221 
   1222 # Release 1.9.2
   1223 * fix a syntax error
   1224 
   1225 # Release 1.9.1
   1226 * fix regression with --offline mode
   1227 * fix regression with --portable mode: use a dedicated directory
   1228 
   1229 # Release 1.9
   1230 
   1231 * The client connects to multiple servers in order to retrieve block headers and find the longest chain
   1232 * SSL certificate validation (to prevent MITM)
   1233 * Deterministic signatures (RFC 6979)
   1234 * Menu to create/restore/open wallets
   1235 * Create transactions with multiple outputs from CSV (comma separated values)
   1236 * New text gui: stdio
   1237 * Plugins are no longer tied to the qt GUI, they can reach all GUIs
   1238 * Proxy bugs have been fixed
   1239 
   1240 
   1241 # Release 1.8.1
   1242 
   1243 * Notification option when receiving new transactions
   1244 * Confirm dialogue before sending large amounts
   1245 * Alternative datafile location for non-windows systems
   1246 * Fix offline wallet creation
   1247 * Remove enforced tx fee
   1248 * Tray icon improvements
   1249 * Various bugfixes
   1250 
   1251 
   1252 # Release 1.8
   1253 
   1254 * Menubar in classic gui
   1255 * Updated the QR Code plugin to enable offline/online wallets to transmit unsigned/signed transactions via QR code.
   1256 * Fixed bug where never-confirmed transactions prevented further spending
   1257 
   1258 
   1259 # Release 1.7.4
   1260 
   1261 * Increase default fee
   1262 * fix create and restore in command line
   1263 * fix verify message in the gui
   1264 
   1265 
   1266 # Release 1.7.3:
   1267 
   1268 * Classic GUI can display amounts in mBTC
   1269 * Account selector in the classic GUI
   1270 * Changed the way the portable flag uses without supplying a -w argument
   1271 * Classic GUI asks users to enter their seed on wallet creation
   1272 
   1273 
   1274 # Release 1.7.2:
   1275 
   1276 * Transactions that are in the same block are displayed in chronological order in the history.
   1277 * The client computes transaction priority and rejects zero-fee transactions that need a fee.
   1278 * The default fee was lowered to 200 uBTC per kb.
   1279 * Due to an internal format change, your history may be pruned when
   1280   you open your wallet for the first time after upgrading to 1.7.2. If
   1281   this is the case, please visit a full server to restore your full
   1282   history. You will only need to do that once.
   1283 
   1284 
   1285 # Release 1.7.1:  bugfixes.
   1286 
   1287 
   1288 # Release 1.7
   1289 
   1290 * The Classic GUI can be extended with plugins. Developers who want to
   1291 add new features or third-party services to Electrum are invited to
   1292 write plugins. Some previously existing and non-essential features of
   1293 Electrum (point-of-sale mode, qrcode scanner) were removed from the
   1294 core and are now available as plugins.
   1295 
   1296 * The wallet waits for 2 confirmations before creating new
   1297 addresses. This makes recovery from seed more robust. Note that it
   1298 might create unwanted gaps if you use Electrum 1.7 together with older
   1299 versions of Electrum.
   1300 
   1301 * An interactive Python console replaces the 'Wall' tab. The provided
   1302 python environment gives users access to the wallet and gui. Most
   1303 electrum commands are available as python function in the
   1304 console. Custom scripts an be loaded with a "run(filename)"
   1305 command. Tab-completions are available.
   1306 
   1307 * The location of the Electrum folder in Windows changed from
   1308 LOCALAPPDATA to APPDATA. Discussion on this topic can be found here:
   1309 https://bitcointalk.org/index.php?topic=144575.0
   1310 
   1311 * Private keys can be exported from within the classic GUI:
   1312   For a single address, use the address menu (right-click).
   1313   To export the keys of your entire wallet, use the settings dialog (import/export tab).
   1314 
   1315 * It is possible to create, sign and redeem multisig transaction using the
   1316 command line interface.  This is made possible by the following new commands:
   1317     dumpprivkey, listunspent, createmultisig, createrawtransaction, decoderawtransaction, signrawtransaction
   1318 The syntax of these commands is similar to their bitcoind counterpart.
   1319 For an example, see Gavin's tutorial: https://gist.github.com/gavinandresen/3966071
   1320 
   1321 * Offline wallets now work in a way similar to Armory:
   1322   1. user creates an unsigned transaction using the online (watching-only) wallet.
   1323   2. unsigned transaction is copied to the offline computer, and signed by the offline wallet.
   1324   3. signed transaction is copied to the online computer, broadcasted by the online client.
   1325   4. All these steps can be done via the command line interface or the classic GUI.
   1326 
   1327 * Many command line commands have been renamed in order to make the syntax consistent with bitcoind.
   1328 
   1329 # Release 1.6.2
   1330 
   1331 == Classic GUI
   1332 * Added new version notification
   1333 
   1334 # Release 1.6.1 (11-01-2013)
   1335 
   1336 == Core
   1337 * It is now possible to restore a wallet from MPK (this will create a watching-only wallet)
   1338 * A switch button allows to easily switch between Lite and Classic GUI.
   1339 
   1340 == Classic GUI
   1341 * Seed and MPK help dialogs were rewritten
   1342 * Point of Sale: requested amounts can be expressed in other currencies and are converted to bitcoin.
   1343 
   1344 == Lite GUI
   1345 * The receiving button was removed in favor of a menu item to keep it consistent with the history toggle.
   1346 
   1347 # Release 1.6.0 (07-01-2013)
   1348 
   1349 == Core
   1350 * (Feature) Add support for importing, signing and verifiying compressed keys
   1351 * (Feature) Auto reconnect to random server on disconnect
   1352 * (Feature) Ultimate fallback to HTTP port 80 if TCP doesn't work on any server
   1353 * (Bug) Under rare circumstances changing password with incorrect password could damage wallet
   1354 
   1355 == Lite GUI
   1356 * (Chore) Use blockchain.info for exchange rate data
   1357 * (Feature) added currency conversion for BRL, CNY, RUB
   1358 * (Feature) Saraha theme
   1359 * (Feature) csv import/export for transactions including labels
   1360 
   1361 == Classic GUI
   1362 * (Chore) pruning servers now called "p", full servers "f" to avoid confusion with terms
   1363 * (Feature) Debits in history shown in red
   1364 * (Feature) csv import/export for transactions including labels
   1365 
   1366 # Release 1.5.8 (02-01-2013)
   1367 
   1368 == Core
   1369 * (Bug) Fix pending address balance on received coins for pruning servers
   1370 * (Bug) Fix history command line option to show output again (regression by SPV)
   1371 * (Chore) Add timeout to blockchain headers file download by HTTP
   1372 * (Feature) new option: -L, --language: default language used in GUI.
   1373 
   1374 == Lite GUI
   1375 * (Bug) Sending to auto-completed contacts works again
   1376 * (Chore) Added version number to title bar
   1377 
   1378 == Classic GUI
   1379 * (Feature) Language selector in options.
   1380 
   1381 # Release 1.5.7 (18-12-2012)
   1382 
   1383 == Core
   1384 * The blockchain headers file is no longer included in the packages, it is downloaded on startup.
   1385 * New command line option: -P or --portable, for portable wallets. With this flag, all preferences are saved to the wallet file, and the blockchain headers file is in the same directory as the wallet
   1386 
   1387 == Lite GUI
   1388 * (Feature) Added the ability to export your transactions to a CSV file.
   1389 * (Feature) Added a label dialog after sending a transaction.
   1390 * (Feature) Reworked receiving addresses; instead of a random selection from one of your receiving addresses a new widget will show listing unused addresses.
   1391 * (Chore)   Removed server selection. With all the new server options a simple menu item does not suffice anymore.