liana/CHANGELOG.md

201 lines
8.5 KiB
Markdown

# Liana daemon and GUI release notes
## 2.0
This release significantly simplifies the installation of Liana. It also fixes a number of small
bugs and glitches.
### Breaking changes
- Descriptors created with Liana v2 may not be backward compatible with Liana v1.
### Features
- We made it possible to re-use an xpub within a descriptor, so long as it uses a different
derivation path.
- We added new RPC commands allowing for updating and querying labels of txids, addresses and
outpoints.
- We've made our RPC connection to `bitcoind` more robust.
- We now distribute packages for Debian-based and Arch-based Linux distributions.
- A guide on how to recover a Liana wallet backup with Bitcoin Core was added.
- An example config file for running `lianad` was added.
- We've worked around the use of prefixed-paths on Windows thereby allowing us to bring back the
watchonly wallet at the same location as for other operating systems, under our own datadir.
#### GUI-specific
- The UX for creating a descriptor where a signer is present in different spending paths was
significantly improved.
- The installation process, as well as the usage of the wallet, was made more user friendly by
optionally encapsulating the management (download, start and stop) of the `bitcoind`.
### Fixes
- We more gracefully stop the Bitcoin backend poller when the block chain is still in the process of
being synchronized. This would previously appear to hang and could freeze the GUI.
- The handling of conflicting unconfirmed spend transactions (RBFs) was fixed.
- If paid directly through a coinbase transaction output, the wallet could have previously missed
it. This was fixed.
- We now correctly treat immature coinbase deposits as unspendable. They are otherwise treated
similarly to unconfirmed coins.
- We now tell `bitcoind` to load our watchonly wallet upon startup. Not loading the watchonly wallet
on startup could make `bitcoind` unable to load it without reindexing the block chain, if using an
aggressive pruning configuration.
- `lianad` will now print a more helpful message on startup failure (and link to the newly added
config file example).
#### GUI-specific
- We now check the network of xpubs when importing a descriptor.
- The GUI would sometimes fail to connect to the Specter DIY signing device.
- We now convey the descriptor registration step on a signing device isn't necessary if none were
used.
- We could previously appear to hang during shutdown.
## 1.0
This is the first non-beta release of Liana.
Improvements were concentrated on the GUI. The UI was entirely overhauled.
### Features
- The `createspend` command now allows you to not provide any destination. In this case it will
create a send-to-self transaction containing a single change output.
#### GUI-specific
- Overall there is a new layout and color scheme. The "draft transactions" menu was renamed to
the more common "PSBTs".
- The homepage now features a list of payments, instead of transactions.
- The spend transaction creation process is now contained in a single screen. It allows you to
easily create a send-to-self transaction by not specifying any recipient.
- The homepage will now feature an approximation of the remaining time before the first recovery
path becomes available.
- The homepage now features a button to refresh all coins whose recovery path is available (or close
to be), if there is any.
- Entries in the coins list now features a button to refresh a coin (create a send-to-self
transaction in order to restart the timelock).
- You can now generate multiple receive addresses in a row.
- We now display the alias of signing devices (if any) in the final installer step.
### Fixes
#### GUI-specific
- Send-to-self transactions are now displayed as such instead of being affected a "0.00000BTC"
value.
- The installer will not present a step to register the descriptor on the signing device if there
isn't any.
- Some wording improvements all around.
- The slider to configure timelocks in the installer now has a step of 144 (instead of 1).
## 0.4
This fourth release brings support for descriptors with multiple recovery path as well as several
usability improvements in the GUI around signing devices management, and more.
### Features
- We now support having multiple recovery path in a descriptor.
- We now support more general descriptors: multisigs in the primary or any of the recovery paths
henceforth aren't required to use `multi()` anymore and the maximum number of keys per spending
path is thereby lifted.
#### GUI-specific
- You can now re-register the descriptor on a hardware signing device in the settings.
- You can now change the alias of each of the signers from the settings panel.
- At signing time we now warn you if the descriptor is not registered on the signing device.
- The signer alias is now displayed along with its type when signing.
- You can now connect to a running daemon without having to provide a path to its configuration,
provided it is using the default location for its data directory (or `--datadir` is used).
- The GUI will now log to a `installer.log` file at the root of the datadir during installation, and
to a `<network>/liana-gui.log` when running. In case of crash, this will contain a backtrace.
- During installation we now check the connection to bitcoind.
### Fixes
- We won't error when parsing of descriptor with a 1-of-N multisig as primary path.
- We won't error at startup if our watchonly wallet is loading on bitcoind. Instead, we'll wait for
completion of the previous loading attempt.
#### GUI-specific
- Blank addresses aren't treated as duplicates when creating a transaction.
## 0.3.1
A patch release for a serious bug fix in the GUI installer.
### Fixes
#### GUI-specific
- Under very specific conditions the GUI installer would not store the mnemonic words corresponding
to a hot key that was used in the descriptor, nor present it to the user for backup.
## 0.3
A small release which brings some fixes as well as the possibility to use Liana as a "hot wallet".
### Features
- Hot keys: users can now generate and sign with keys that are stored on the device. It is
recommended to be only used for testing for now.
#### GUI-specific
- It is now possible to use multiple signing device of the same type without having to first connect
one then the other.
### Fixes
- When used as a daemon the `lianad` process had its PID and logs file mixed up. This is now fixed.
- We fixed the transaction creation sanity check that was overestimating the transaction fee.
#### GUI-specific
- In the installer flow, extended keys are now shared without the `/<0;1>/*` suffix.
## 0.2
The second release of Liana brings various fixes as well as the possibility to use a multisig in
either, or both, of the spending paths.
### Features
- Multisig: we now support descriptors with multiple keys both in the primary (non-timelocked)
spending path and the recovery (timelocked) path.
#### GUI-specific
- You can now import and update Spend transaction drafts as PSBTs to collaboratively create and sign
transactions.
- When creating a new descriptor you can now set an alias for each key. Those will be displayed when
inspecting a transaction's signatories.
- Amounts are now displayed with the sats in bold for better redability.
### Fixes
- We now remove the fixed interpreter and rpath set by GUIX reproducible builds in the `liana-cli`
ELF binary.
- We now check the `bitcoind` version before trying to import a Miniscript descriptor.
- We now discard unconfirmed incoming payments that were dropped from our mempool.
- **Breaking change**: the first version of Liana mistakenly accepted extended keys without origin
in descriptors. This meant that unless this extended key was the master extended key of a chain,
it would not be possible to sign with it (since signing devices need to know the origin). Starting
from version 2 Liana forces extended keys to contain an origin (of the form `[a1b2c3d4]`) to avoid
this footgun. This means that existing descriptors might have to be migrated, but it's very likely
only for test configurations where an xpub wasn't gathered from a signing device (which prepends
an origin) but generated (probably imported from Coleman's website) and pasted without origin.
#### GUI-specific
- Various wording fixes on the UI.
- Amounts are now updated when moving between steps in the Spend creation flow.
- Coins are now sorted by age when displayed as a list.
- Some flakiness in the connection to a signing device were fixed.
- The descriptor registration on a signing device step in the installer was made clearer.