Follow the Google+ page or Twitter for the latest dev news.

We are pleased to release Litecoin Core 0.17.1 release candidate. This is a new major version release, including new features, various bug fixes, performance improvements and updated translations.

It is recommended for power users to upgrade to this version. After sufficient testing, Litecoin Core 0.17.1 final will be released and is recommended for all users to upgrade.

How to Upgrade

If you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes for older versions), then run the installer (on Windows) or just copy over /Applications/Litecoin-Qt (on Mac) or litecoind / litecoin-qt (on Linux).

If your node has a txindex, the txindex db will be migrated the first time you run 0.17.1 or newer, which may take up to a few hours. Your node will not be functional until this migration completes.

The first time you run version 0.15.0 or newer, your chainstate database will be converted to a new format. This will take anywhere from a few minutes to half an hour depending on the speed of your machine.

Note that the block database format also changed in version 0.8.0 and there is no automatic upgrade code from before version 0.8 to version 0.15.0. Upgrading directly from 0.7.x and earlier without redownloading the blockchain is not supported. However, as usual, old wallet versions are still supported.

Downgrading warning

The chainstate database for this release is not compatible with previous releases, so if you run 0.15 and then decide to switch back to any older version, you will need to run the old release with the -reindex-chainstate option to rebuild the chainstate data structures in the old format.

If your node has pruning enabled, this will entail re-downloading and processing the entire blockchain.

Compatibility

Litecoin Core is extensively tested on multiple operating systems using the Linux kernel, macOS 10.10+, and Windows 7 and newer (Windows XP is not supported).

Litecoin Core should also work on most other Unix-like systems but is not frequently tested on them.

From 0.17.1 onwards macOS <10.10 is no longer supported. 0.17.1 is built using Qt 5.9.x, which doesn’t support versions of macOS older than 10.10.

Known issues

Upgrading from 0.13.2 or older currently results in memory blow-up during the roll-back of blocks to the SegWit activation point. In these cases, a full -reindex is necessary.

is necessary. The GUI suffers from visual glitches in the new MacOS dark mode. This has to do with our Qt theme handling impacting older versions of Litecoin Core, but is expected to be resolved in 0.17.1.

listtransactions label support

The listtransactions RPC account parameter has been renamed to label .

When litecoin is configured with the -deprecatedrpc=accounts setting, specifying a label/account/dummy argument will return both outgoing and incoming transactions. Without the -deprecatedrpc=accounts setting, it will only return incoming transactions (because it used to be possible to create transactions spending from specific accounts, but this is no longer possible with labels).

When -deprecatedrpc=accounts is set, it's possible to pass the empty string "" to list transactions that don't have any label. Without -deprecatedrpc=accounts , passing the empty string is an error because returning only non-labeled transactions is not generally useful behavior and can cause confusion.

Changed configuration options

-includeconf=<file> can be used to include additional configuration files. Only works inside the litecoin.conf file, not inside included files or from command-line. Multiple files may be included. Can be disabled from command- line via -noincludeconf . Note that multi-argument commands like -includeconf will override preceding -noincludeconf , i.e.

noincludeconf=1

includeconf=relative.conf

as litecoin.conf will still include relative.conf .

GUI changes

Block storage can be limited under Preferences, in the Main tab. Undoing this setting requires downloading the full blockchain again. This mode is incompatible with -txindex and -rescan.

External wallet files

The -wallet=<path> option now accepts full paths instead of requiring wallets to be located in the -walletdir directory.

Newly created wallet format

If -wallet=<path> is specified with a path that does not exist, it will now create a wallet directory at the specified location (containing a wallet.dat data file, a db.log file, and database/log.?????????? files) instead of just creating a data file at the path and storing log files in the parent directory. This should make backing up wallets more straightforward than before because the specified wallet path can just be directly archived without having to look in the parent directory for transaction log files.

For backwards compatibility, wallet paths that are names of existing data files in the -walletdir directory will continue to be accepted and interpreted the same as before.

Dynamic loading and creation of wallets

Previously, wallets could only be loaded or created at startup, by specifying -wallet parameters on the command line or in the litecoin.conf file. It is now possible to load, create and unload wallets dynamically at runtime:

Existing wallets can be loaded by calling the loadwallet RPC. The wallet can be specified as file/directory basename (which must be located in the walletdir directory), or as an absolute path to a file/directory.

RPC. The wallet can be specified as file/directory basename (which must be located in the directory), or as an absolute path to a file/directory. New wallets can be created (and loaded) by calling the createwallet RPC. The provided name must not match a wallet file in the walletdir directory or the name of a wallet that is currently loaded.

RPC. The provided name must not match a wallet file in the directory or the name of a wallet that is currently loaded. Loaded wallets can be unloaded by calling the unloadwallet RPC.

This feature is currently only available through the RPC interface.

Coin selection

Partial spend avoidance

When an address is paid multiple times the coins from those separate payments can be spent separately which hurts privacy due to linking otherwise separate addresses. A new -avoidpartialspends flag has been added (default=false). If enabled, the wallet will always spend existing UTXO to the same address together even if it results in higher fees. If someone were to send coins to an address after it was used, those coins will still be included in future coin selections.

Fee policy changes

The default minimum transaction fee -mintxfee has been lowered to 0.0001 LTC/kB after relaxing the minimum relay and dust relay fee rates in prior releases.

Configuration sections for testnet and regtest

It is now possible for a single configuration file to set different options for different networks. This is done by using sections or by prefixing the option with the network, such as:

main.uacomment=litecoin

test.uacomment=litecoin-testnet

regtest.uacomment=regtest

[main]

mempoolsize=300

[test]

mempoolsize=100

[regtest]

mempoolsize=20

If the following options are not in a section, they will only apply to mainnet: addnode= , connect= , port= , bind= , rpcport= , rpcbind= and wallet= . The options to choose a network ( regtest= and testnet= ) must be specified outside of sections.

‘label’ and ‘account’ APIs for wallet

A new ‘label’ API has been introduced for the wallet. This is intended as a replacement for the deprecated ‘account’ API. The ‘account’ can continue to be used in V0.17 by starting litecoind with the ‘-deprecatedrpc=accounts’ argument, and will be fully removed in V0.18.

The label RPC methods mirror the account functionality, with the following functional differences:

Labels can be set on any address, not just receiving addresses. This functionality was previously only available through the GUI.

Labels can be deleted by reassigning all addresses using the setlabel RPC method.

RPC method. There isn’t support for sending transactions from a label, or for determining which label a transaction was sent from.

Labels do not have a balance.

Here are the changes to RPC methods: