1
0

release notes: add more stuff for 4.6.0

This commit is contained in:
SomberNight
2025-06-12 18:25:00 +00:00
parent dcf16df1c9
commit 87f3df7170

View File

@@ -1,16 +1,13 @@
# Release 4.6.0 (not released yet) # Release 4.6.0 (in beta/rc, June 2025)
* A 'Terms of Use' screen was added to the install wizard. While the * A 'Terms of Use' screen was added to the install wizard. While the
licence remains unchanged, we ask users to agree with the fact that licence remains unchanged, we ask users to agree with the fact that
we are not a custodial service or a money transmitter. The Terms of we are not a custodial service or a money transmitter. The Terms of
Use screen also makes it clear that all issues are to be resolved Use screen also makes it clear that all issues are to be resolved
in public, and that there is no user support via private channels. in public, and that there is no user support via private channels.
* Nostr support: (using new dependency: electrum-aionostr)
* Nostr support: Electrum includes a built-in Nostr library named Electrum now uses Nostr in the context of submarine swaps,
electrum-aionostr. This library is used in the context of submarine and in several plugins. Electrum will not connect to Nostr
swaps, and by several plugins. Electrum will not connect to Nostr
by default, only if required. by default, only if required.
* Submarine swaps over Nostr: The Electrum client will connect to * Submarine swaps over Nostr: The Electrum client will connect to
Nostr in order to discover submarine swap providers, and to perform Nostr in order to discover submarine swap providers, and to perform
related RPCs. This means that: related RPCs. This means that:
@@ -29,62 +26,68 @@
when the user uses the swap service, and the nostr public key used when the user uses the swap service, and the nostr public key used
by the client is ephemeral. In contrast, swap providers use a by the client is ephemeral. In contrast, swap providers use a
persisted identity. persisted identity.
* Third-party plugins: * Third-party plugins:
- Electrum support the installation of plugins distributed by - Electrum supports the installation of plugins distributed by
third-parties as ZIP files. While it has long been possible to third-parties as ZIP files. While it has long been possible to
install third-party plugins when running Electrum from python install third-party plugins when running Electrum from python
sources, the same is now possible when using desktop binaries sources, the same is now possible when using desktop binaries
(Windows, MacOS, Linux). Third-party plugins are installed as ZIP (Windows, MacOS, Linux). Third-party plugins are installed as ZIP
files in the user's electrum directory. files in the user's electrum data directory.
- In order to prevent plugin installation by malware, third-party - In order to prevent plugin installation by malware, third-party
plugins can only be enabled if the user enters a plugin plugins can only be enabled if the user enters a plugin
authorization password (distinct from the wallet password). authorization password (distinct from the wallet password).
Setting up that plugin authorization password requires Setting up that plugin authorization password requires
administrator permissions on the local machine; a administrator permissions on the local machine; a
password-derived public key must be written in the system. password-derived public key must be written in the system.
* Lightning:
* Lightning anchor channels (#9264): Newly created channels use - Anchor channels (#9264): Newly created channels use
anchor commitments by default. Since sweeping outputs from anchor anchor commitments by default. Since sweeping outputs from anchor
channels may require external UTXOs, lightning can no longer be channels may require external UTXOs, lightning can no longer be
enabled in wallets that do not have a software keystore (hardware enabled in wallets that do not have a software keystore (hardware
wallets, watching-only wallets). Existing wallets that are in that wallets, watching-only wallets). Existing wallets that are in that
situation cannot create new channels. situation cannot create new channels.
- wallets with anchor channels must always have utxos available (#9536)
* Wallet unlocking (Qt): - support added for onion messages (only CLI for now) (#9039)
- Wallets can be unlocked in the Qt GUI. When a password-protected - lots of fixes and improvements (#8857, #8547, #9700, #9083, ...)
wallet is unlocked, its password is kept in memory, and signing * Qt Desktop GUI:
transactions will not require to enter the password. The unlocked - migrate from Qt5 to Qt6 (#9189)
state is rendered by the 'open lock' icon in the status bar. - new: screenshot "protection" on Windows (#9898). Inspired by Windows
- If a wallet needs to sweep anchor channel outputs using extra Recall, by default screenshots will contain black rectangles in
UTXOs, the operations will be performed without requiring the place of the Electrum windows, to try to avoid leaking secret keys.
user password if the wallet is unlocked. If the wallet is locked, This is opt-out using a config variable.
the status bar will show a 'password required' button. - exposed option to connect to only a single server (--oneserver)
- Wallet file encryption:
* Transaction batching (Qt): When creating a new payment, if the - Non-multisig hardware wallet files can now be encrypted with
output can be added to an existing mempool transaction, the 'New either using the hardware device or (new) a password. (#5561)
transaction' window will show a drop-down menu, proposing a list of - The option to have a password-protected wallet without file
transactions that can be batched with the current payment. This encryption has been removed from the Qt GUI. It is still possible
replaces the previous 'batch' option checkbox, and gives more to create such a wallet using the command line.
control to the user. - Wallet unlocking:
- Wallets can be unlocked in the Qt GUI. When a password-protected
* Keystore enabling/disabling (Qt): It is now possible to add a seed wallet is unlocked, its password is kept in memory, and signing
to an existing watching-only wallet, or to a keystore within a transactions will not require to enter the password. The unlocked
multisig wallet. Similarly, it is possible to pair a watching-only state is rendered by the 'open lock' icon in the status bar.
keystore with a hardware device. These operations are performed - If a wallet needs to sweep anchor channel outputs using extra
from the 'Wallet Information' dialog. UTXOs, the operations will be performed without requiring the
user password if the wallet is unlocked. If the wallet is locked,
* Wallet file encryption: the status bar will show a 'password required' button.
- Non-multisig hardware wallet files can be encrypted with a - Transaction batching: When creating a new payment, if the
password, instead of the hardware device. output can be added to an existing mempool transaction, the 'New
- The option to have a password-protected wallet without file transaction' window will show a drop-down menu, proposing a list of
encryption has been removed from the Qt GUI. It is still possible transactions that can be batched with the current payment. This
to create such a wallet using the command line. replaces the previous 'batch' option checkbox, and gives more
control to the user.
* Lightning address contacts: - Keystore enabling/disabling (Qt):
- It is now possible to create contacts with (lnurl type) lightning - It is now possible to add a seed
addresses as payment identifier. to an existing watching-only wallet, or to a keystore within a
multisig wallet. Similarly, it is possible to pair a watching-only
keystore with a hardware device. These operations are performed
from the 'Wallet Information' dialog.
- Lightning address contacts:
- It is now possible to create contacts with (lnurl type) lightning
addresses as payment identifier.
- show warnings on wallet close if there are sensitive pending operations,
e.g. when in the middle of doing a swap (#9715)
* Accounting rules: In order to properly handle on-chain transactions * Accounting rules: In order to properly handle on-chain transactions
created by lightning channel force closures, we consider that funds created by lightning channel force closures, we consider that funds
successfully redeemed from a script with several possible successfully redeemed from a script with several possible
@@ -92,17 +95,15 @@
avoids having to write balance changes that are cancelled avoids having to write balance changes that are cancelled
later. The corresponding addresses are rendered in the GUI as later. The corresponding addresses are rendered in the GUI as
'accounting addresses' (in orange). 'accounting addresses' (in orange).
* New plugins: * New plugins:
- Nostr Wallet Connect: This plugin allows remote control of - Nostr Wallet Connect: This plugin allows remote control of
Electrum lightning wallets via Nostr NIP-47. Electrum lightning wallets via Nostr NIP-47. (#9675)
- Nostr Cosigner: This plugin facilitates the exchange of - Nostr Cosigner: This plugin facilitates the exchange of
PSBTs between cosigners of a multisig wallet. It replaces the PSBTs between cosigners of a multisig wallet. It replaces the
former 'Cosigner pool' plugin. Instead of relying on a central former 'Cosigner pool' plugin. Instead of relying on a central
server, it uses Nostr to send/receive PSBTs. server, it uses Nostr to send/receive PSBTs. (#9261)
- Timelock Recovery: A timelock based inheritance scheme. - Timelock Recovery: A timelock based inheritance scheme.
See timelockrecovery.com See timelockrecovery.com (#9589)
* CLI: * CLI:
- The command line help has been improved; parameters are - The command line help has been improved; parameters are
documented in the same docstring as the command they belong to. documented in the same docstring as the command they belong to.
@@ -112,22 +113,45 @@
- Plugins may add extra commands to the CLI. Plugin commands must - Plugins may add extra commands to the CLI. Plugin commands must
be prefixed with the plugin's internal name. be prefixed with the plugin's internal name.
- Support for hold invoices. - Support for hold invoices.
- new commands:
- listconfig, helpconfig, unsetconfig
- onchain_capital_gains (was previously a field of onchain_history)
- {add,settle,cancel,check}_hold_invoice
- send_onion_message, get_blinded_path_via
- wait_for_sync
* Security: * Security:
- Mitigate against dust attacks; Add option to avoid spending from - Mitigate against dust attacks; Add option to avoid spending from
used addresses. used addresses. (#9636)
- Restrict process memory access on Linux. - Restrict process memory access on Linux. (#9749)
* QML GUI (Android):
* Networking: - "Sweep key" feature ported to mobile
- The option to connect to a single server has been added to the GUI.
* Android:
- Sweep key feature ported to mobile
- Estimate amount when Max is checked - Estimate amount when Max is checked
- Properly ask for (notification) permission access. - exposed option to connect to only a single server (--oneserver)
* Android:
- properly ask for (notification) OS permission access. (#9682)
- add option to prevent the app touching the screen brightness (#9321)
* Electrum protocol: add padding and some noise to messages (#9875)
* Hardware wallets: * Hardware wallets:
- Coldcard: add feature to upload multisig wallet configuration to Coldcard via USB. - Coldcard: add feature to upload multisig wallet configuration to Coldcard via USB.
- KeepKey: we now vendor our fork of keepkeylib,
instead of using the unmaintained upstream as an external dependency (#9650)
- Ledger:
- rm support for "HW.1" and "Nano" (non-S) devices (#9652)
- rm dependency: btchip-python (#9370)
* Builds/binaries:
- new minimum OS requirements:
- Windows: x86_64, Windows 10 (1809)
note: 32-bit Windows is no longer supported.
- macOS: 11 "Big Sur"
- Linux AppImage: x86_64, glibc 2.31 ("debian 11"-equivalent)
- known issue: the Windows binaries are not codesigned atm (but there are GPG sigs!)
* Dependencies:
- the minimum required python version was increased: 3.8->3.10 (#9418)
- new first-party dep: electrum-aionostr
- forked the seemingly unmaintained davestgermain/aionostr library
- new first-party dep: electrum-ecc
- split out our existing libsecp256k1 python bindings into
this separate package
# Release 4.5.8 (Oct 23, 2024) # Release 4.5.8 (Oct 23, 2024)