tRELEASE-NOTES - electrum - Electrum Bitcoin wallet
 (HTM) git clone https://git.parazyd.org/electrum
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) Submodules
       ---
       tRELEASE-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.