release notes: add more stuff for 4.6.0
This commit is contained in:
160
RELEASE-NOTES
160
RELEASE-NOTES
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user