Litecoin Changelog

What's new in Litecoin 0.16.0

May 31, 2018
  • WALLET CHANGES:
  • Segwit Wallet:
  • Litecoin Core 0.16.0 introduces full support for segwit in the wallet and user interfaces. A new -addresstype argument has been added, which supports legacy, p2sh-segwit (default), and bech32 addresses. It controls what kind of addresses are produced by getnewaddress, getaccountaddress, and createmultisigaddress. A -changetype argument has also been added, with the same options, and by default equal to -addresstype, to control which kind of change is used.
  • A new address_type parameter has been added to the getnewaddress and addmultisigaddress RPCs to specify which type of address to generate. A change_type argument has been added to the fundrawtransaction RPC to override the -changetype argument for specific transactions.
  • All segwit addresses created through getnewaddress or *multisig RPCs explicitly get their redeemscripts added to the wallet file. This means that downgrading after creating a segwit address will work, as long as the wallet file is up to date.
  • All segwit keys in the wallet get an implicit redeemscript added without it being written to the file. This means recovery of an old backup will work as long as you use new software.
  • All keypool keys that are seen used in transactions explicitly get their redeemscripts added to the wallet files. This means that downgrading after recovering from a backup that includes a segwit address will work
  • Note that some RPCs do not yet support segwit addresses. Notably, signmessage/verifymessage doesn't support segwit addresses, nor does importmulti at this time. Support for segwit in those RPCs will continue to be added in future versions.
  • P2WPKH change outputs are now used by default if any destination in the transaction is a P2WPKH or P2WSH output. This is done to ensure the change output is as indistinguishable from the other outputs as possible in either case.
  • BIP173 (Bech32) Address support (“ltc1…” addresses):
  • Full support for native segwit addresses (BIP173 / Bech32) has now been added. This includes the ability to send to BIP173 addresses (including non-v0 ones), and generating these addresses (including as default new addresses, see above).
  • A checkbox has been added to the GUI to select whether a Bech32 address or P2SH-wrapped address should be generated when using segwit addresses. When launched with -addresstype=bech32 it is checked by default. When launched with -addresstype=legacy it is unchecked and disabled.
  • HD-wallets by default:
  • Due to a backward-incompatible change in the wallet database, wallets created with version 0.16.0 will be rejected by previous versions. Also, version 0.16.0 will only create hierarchical deterministic (HD) wallets. Note that this only applies to new wallets; wallets made with previous versions will not be upgraded to be HD.
  • Wallets directory configuration (-walletdir):
  • Litecoin Core now has more flexibility in where the wallets directory can be located. Previously wallet database files were stored at the top level of the litecoin data directory. The behavior is now the following:
  • For new installations (where the data directory doesn’t already exist), wallets will now be stored in a new wallets/subdirectory inside the data directory by default.
  • For existing nodes (where the data directory already exists), wallets will be stored in the data directory root by default. If a wallets/ subdirectory already exists in the data directory root, then wallets will be stored in the wallets/ subdirectory by default.
  • The location of the wallets directory can be overridden by specifying a -walletdir= option where can be an absolute path to a directory or directory symlink.
  • Care should be taken when choosing the wallets directory location as funds may be lost if it becomes unavailable during operation.
  • Build: Minimum GCC bumped to 4.8.x:
  • The minimum version of the GCC compiler required to compile Litecoin Core is now 4.8. No effort will be made to support older versions of GCC. See discussion in issue #11732 for more information. The minimum version for the Clang compiler is still 3.3. Other minimum dependency versions can be found in doc/dependencies.md in the repository.
  • Support for signalling pruned nodes (BIP159):
  • Pruned nodes can now signal BIP159’s NODE_NETWORK_LIMITED using service bits, in preparation for full BIP159 support in later versions. This would allow pruned nodes to serve the most recent blocks. However, the current change does not yet include support for connecting to these pruned peers.
  • Performance: SHA256 assembly enabled by default:
  • The SHA256 hashing optimizations for architectures supporting SSE4, which lead to ~50% speedups in SHA256 on supported hardware (~5% faster synchronization and block validation), have now been enabled by default. In previous versions they were enabled using the --enable-experimental-asm flag when building, but are now the default and no longer deemed experimental.
  • GUI changes:
  • The option to reuse a previous address has now been removed. This was justified by the need to “resend” an invoice. But now that we have the request history, that need should be gone.
  • Support for searching by TXID has been added, rather than just address and label.
  • A “Use available balance” option has been added to the send coins dialog, to add the remaining available wallet balance to a transaction output.
  • A toggle for unblinding the password fields on the password dialog has been added.
  • RPC CHANGES:
  • New rescanblockchain RPC:
  • A new RPC rescanblockchain has been added to manually invoke a blockchain rescan. The RPC supports start and end-height arguments for the rescan, and can be used in a multiwallet environment to rescan the blockchain at runtime.
  • New savemempool RPC:
  • A new savemempool RPC has been added which allows the current mempool to be saved to disk at any time to avoid it being lost due to crashes / power loss.
  • Safe mode disabled by default:
  • Safe mode is now disabled by default and must be manually enabled (with -disablesafemode=0) if you wish to use it. Safe mode is a feature that disables a subset of RPC calls - mostly related to the wallet and sending - automatically in case certain problem conditions with the network are detected. However, developers have come to regard these checks as not reliable enough to act on automatically. Even with safe mode disabled, they will still cause warnings in the warnings field of the getneworkinfo RPC and launch the -alertnotify command.
  • Renamed script for creating JSON-RPC credentials:
  • The share/rpcuser/rpcuser.py script was renamed to share/rpcauth/rpcauth.py. This script can be used to create rpcauthcredentials for a JSON-RPC user.
  • Validateaddress improvements:
  • The validateaddress RPC output has been extended with a few new fields, and support for segwit addresses (both P2SH and Bech32). Specifically:
  • A new field iswitness is True for P2WPKH and P2WSH addresses ("ltc1..." addresses), but not for P2SH-wrapped segwit addresses (see below).
  • The existing field isscript will now also report True for P2WSH addresses.
  • A new field embedded is present for all script addresses where the script is known and matches something that can be interpreted as a known address. This is particularly true for P2SH-P2WPKH and P2SH-P2WSH addresses. The value for embedded includes much of the information validateaddress would report if invoked directly on the embedded address.
  • For multisig scripts a new pubkeys field was added that reports the full public keys involved in the script (if known). This is a replacement for the existing addresses field (which reports the same information but encoded as P2PKH addresses), represented in a more useful and less confusing way. The addresses field remains present for non-segwit addresses for backward compatibility.
  • For all single-key addresses with known key (even when wrapped in P2SH or P2WSH), the pubkey field will be present. In particular, this means that invoking validateaddress on the output of getnewaddress will always report the pubkey, even when the address type is P2SH-P2WPKH.
  • LOW-LEVEL CHANGES:
  • The deprecated RPC getinfo was removed. It is recommended that the more specific RPCs are used:
  • getblockchaininfo
  • getnetworkinfo
  • getwalletinfo
  • getmininginfo
  • The wallet RPC getreceivedbyaddress will return an error if called with an address not in the wallet.
  • The wallet RPC addwitnessaddress was deprecated and will be removed in version 0.17, set the address_type argument of getnewaddress, or option -addresstype=[bech32|p2sh-segwit] instead.
  • dumpwallet now includes hex-encoded scripts from the wallet in the dumpfile, and importwallet now imports these scripts, but corresponding addresses may not be added correctly or a manual rescan may be required to find relevant transactions.
  • The RPC getblockchaininfo now includes an errors field.
  • A new blockhash parameter has been added to the getrawtransaction RPC which allows for a raw transaction to be fetched from a specific block if known, even without -txindex enabled.
  • The decoderawtransaction and fundrawtransaction RPCs now have optional iswitness parameters to override the heuristic witness checks if necessary.
  • The walletpassphrase timeout is now clamped to 2^30 seconds.
  • Using addresses with the createmultisig RPC is now deprecated, and will be removed in a later version. Public keys should be used instead.
  • Blockchain rescans now no longer lock the wallet for the entire rescan process, so other RPCs can now be used at the same time (although results of balances / transactions may be incorrect or incomplete until the rescan is complete).
  • The logging RPC has now been made public rather than hidden.
  • An initialblockdownload boolean has been added to the getblockchaininfo RPC to indicate whether the node is currently in IBD or not.
  • minrelaytxfee is now included in the output of getmempoolinfo
  • OTHER CHANGED COMMAND-LINE OPTIONS:
  • -debuglogfile= can be used to specify an alternative debug logging file.
  • litecoin-cli now has an -stdinrpcpass option to allow the RPC password to be read from standard input.
  • The -usehd option has been removed.
  • litecoin-cli now supports a new -getinfo flag which returns an output like that of the now-removed getinfo RPC.
  • TESTING CHANGES:
  • The default regtest JSON-RPC port has been changed to 19443 to avoid conflict with testnet’s default of 19332.
  • Segwit is now always active in regtest mode by default. Thus, if you upgrade a regtest node you will need to either -reindex or use the old rules by adding vbparams=segwit:0:999999999999 to your regtest litecoin.conf. Failure to do this will result in a CheckBlockIndex() assertion failure that will look like: Assertion `(pindexFirstNeverProcessed != nullptr) == (pindex->nChainTx == 0)' failed.

New in Litecoin 0.14.2 (Aug 1, 2017)

  • New Multisig Address Prefix:
  • Litecoin Core now supports P2SH addresses beginning with M on mainnet and Q on testnet. P2SH addresses beginning with 3 on mainnet and m or n on testnet will continue to be valid. Old and new addresses can be used interchangeably.
  • miniupnp CVE-2017–8798:
  • Bundled miniupnpc was updated to 2.0.20170509. This fixes an integer signedness error (present in MiniUPnPc v1.4.20101221 through v2.0) that allows remote attackers (within the LAN) to cause a denial of service or possibly have unspecified other impact.
  • This only affects users that have explicitly enabled UPnP through the GUI setting or through the -upnp option, as since the last UPnP vulnerability (in Litecoin Core 0.10.4) it has been disabled by default.
  • If you use this option, it is recommended to upgrade to this version as soon as possible.
  • Reset Testnet:
  • Testnet3 has been deprecated and replaced with Testnet4. The server port has been changed to 19335 however the RPC port remains the same (19332).
  • Performance Improvements:
  • Validation speed and network propagation performance have been greatly improved, leading to much shorter sync and initial block download times.
  • The script signature cache has been reimplemented as a “cuckoo cache”, allowing for more signatures to be cached and faster lookups.
  • Assumed-valid blocks have been introduced which allows script validation to be skipped for ancestors of known-good blocks, without changing the security model. See below for more details.
  • In some cases, compact blocks are now relayed before being fully validated as per BIP152.
  • P2P networking has been refactored with a focus on concurrency and throughput. Network operations are no longer bottlenecked by validation. As a result, block fetching is several times faster than previous releases in many cases.
  • The UTXO cache now claims unused mempool memory. This speeds up initial block download as UTXO lookups are a major bottleneck there, and there is no use for the mempool at that stage.
  • Manual Pruning:
  • Litecoin Core has supported automatically pruning the blockchain since 0.13.2. Pruning the blockchain allows for significant storage space savings as the vast majority of the downloaded data can be discarded after processing so very little of it remains on the disk.
  • Manual block pruning can now be enabled by setting -prune=1. Once that is set, the RPC command pruneblockchain can be used to prune the blockchain up to the specified height or timestamp.
  • getinfo Deprecated:
  • The getinfo RPC command has been deprecated. Each field in the RPC call has been moved to another command's output with that command also giving additional information that getinfo did not provide.
  • Nested RPC Commands in Debug Console:
  • The ability to nest RPC commands has been added to the debug console. This allows users to have the output of a command become the input to another command without running the commands separately.
  • The nested RPC commands use bracket syntax (i.e. getwalletinfo()) and can be nested (i.e. getblock(getblockhash(1))). Simple queries can be done with square brackets where object values are accessed with either an array index or a non-quoted string (i.e. listunspent()[0][txid]). Both commas and spaces can be used to separate parameters in both the bracket syntax and normal RPC command syntax.
  • Network Activity Toggle:
  • A RPC command and GUI toggle have been added to enable or disable all p2p network activity. The network status icon in the bottom right hand corner is now the GUI toggle. Clicking the icon will either enable or disable all p2p network activity. If network activity is disabled, the icon will be grayed out with an X on top of it.
  • Additionally the setnetworkactive RPC command has been added which does the same thing as the GUI icon. The command takes one boolean parameter, true enables networking and false disables it.
  • Out-of-sync Modal Info Layer:
  • When Litecoin Core is out-of-sync on startup, a semi-transparent information layer will be shown over top of the normal display. This layer contains details about the current sync progress and estimates the amount of time remaining to finish syncing. This layer can also be hidden and subsequently unhidden by clicking on the progress bar at the bottom of the window.
  • Support for JSON-RPC Named Arguments:
  • Commands sent over the JSON-RPC interface and through the litecoin-cli binary can now use named arguments. This follows the JSON-RPC specification for passing parameters by-name with an object.
  • litecoin-cli has been updated to support this by parsing name=value arguments when the -named option is given.
  • The order of arguments doesn’t matter in this case. Named arguments are also useful to leave out arguments that should stay at their default value. The rarely-used arguments comment and comment_to to sendtoaddress, for example, can be left out. However, this is not yet implemented for many RPC calls, this is expected to land in a later release.
  • The RPC server remains fully backwards compatible with positional arguments.
  • Sensitive Data Is No Longer Stored In Debug Console History:
  • The debug console maintains a history of previously entered commands that can be accessed by pressing the Up-arrow key so that users can easily reuse previously entered commands. Commands which have sensitive information such as passphrases and private keys will now have a (...) in place of the parameters when accessed through the history.
  • Retaining the Mempool Across Restarts:
  • The mempool will be saved to the data directory prior to shutdown to a mempool.dat file. This file preserves the mempool so that when the node restarts the mempool can be filled with transactions without waiting for new transactions to be created. This will also preserve any changes made to a transaction through commands such as prioritisetransaction so that those changes will not be lost.
  • Final Alert:
  • The Alert System was disabled and deprecated in Litecoin Core 0.10.4 and removed in 0.13.2. The Alert System was retired with a maximum sequence final alert which causes any nodes supporting the Alert System to display a static hard-coded “Alert key compromised, upgrade required.” message which also prevents any other alerts from overriding it. This final alert is hard-coded into this release so that all old nodes receive the final alert.
  • GUI Changes:
  • After resetting the options by clicking the Reset Options button in the options dialog or with the -resetguioptionsstartup option, the user will be prompted to choose the data directory again. This is to ensure that custom data directories will be kept after the option reset which clears the custom data directory set via the choose datadir dialog.
  • Multiple peers can now be selected in the list of peers in the debug window. This allows for users to ban or disconnect multiple peers simultaneously instead of banning them one at a time.
  • An indicator has been added to the bottom right hand corner of the main window to indicate whether the wallet being used is a HD wallet. This icon will be grayed out with an X on top of it if the wallet is not a HD wallet.
  • Low-level RPC changes:
  • importprunedfunds only accepts two required arguments. Some versions accept an optional third arg, which was always ignored. Make sure to never pass more than two arguments.
  • The first boolean argument to getaddednodeinfo has been removed. This is an incompatible change.
  • RPC command getmininginfo loses the "testnet" field in favor of the more generic "chain" (which has been present for years).
  • A new RPC command preciousblock has been added which marks a block as precious. A precious block will be treated as if it were received earlier than a competing block.
  • A new RPC command importmulti has been added which receives an array of JSON objects representing the intention of importing a public key, a private key, an address and script/p2sh
  • Use of getrawtransaction for retrieving confirmed transactions with unspent outputs has been deprecated. For now this will still work, but in the future it may change to only be able to retrieve information about transactions in the mempool or if txindex is enabled.
  • A new RPC command getmemoryinfo has been added which will return information about the memory usage of Litecoin Core. This was added in conjunction with optimizations to memory management. See Pull #8753 for more information.
  • A new RPC command bumpfee has been added which allows replacing an unconfirmed wallet transaction that signaled RBF (see the -walletrbf startup option above) with a new transaction that pays a higher fee, and should be more likely to get confirmed quickly.
  • The first positional argument of createrawtransaction was renamed from transactions to inputs.
  • The argument of disconnectnode was renamed from node to address.
  • HTTP REST Changes:
  • UTXO set query (GET /rest/getutxos//-/- /.../-.) responses were changed to return status code HTTP_BAD_REQUEST (400) instead of HTTP_INTERNAL_SERVER_ERROR (500) when requests contain invalid parameters.
  • Minimum Fee Rate Policies:
  • Since the changes in 0.13 to automatically limit the size of the mempool and improve the performance of block creation in mining code it has not been important for relay nodes or miners to set -minrelaytxfee.
  • The -minrelaytxfee option continues to exist but is recommended to be left unset.
  • Fee Estimation Changes:
  • Since 0.13.2 fee estimation for a confirmation target of 1 block has been disabled. The fee slider will no longer be able to choose a target of 1 block. This is only a minor behavior change as there was often insufficient data for this target anyway. estimatefee 1 will now always return -1 and estimatesmartfee 1 will start searching at a target of 2.
  • The default target for fee estimation is changed to 6 blocks in both the GUI (previously 25) and for RPC calls (previously 2).
  • Removal of Priority Estimation:
  • Estimation of “priority” needed for a transaction to be included within a target number of blocks has been removed. The RPC calls are deprecated and will either return -1 or 1e24 appropriately. The format for fee_estimates.dat has also changed to no longer save these priority estimates. It will automatically be converted to the new format which is not readable by prior versions of the software.
  • Support for “priority” (coin age) transaction sorting for mining is considered deprecated in Core and will be removed in the next major version. This is not to be confused with the prioritisetransaction RPC which will remain supported by Core for adding fee deltas to transactions.
  • P2P connection management:
  • Peers manually added through the -addnode option or addnode RPC now have their own limit of eight connections which does not compete with other inbound or outbound connection usage and is not subject to the limitation imposed by the -maxconnections option.
  • New connections to manually added peers are performed more quickly.
  • Introduction of assumed-valid blocks:
  • A significant portion of the initial block download time is spent verifying scripts/signatures. Although the verification must pass to ensure the security of the system, no other result from this verification is needed: If the node knew the history of a given block were valid it could skip checking scripts for its ancestors.
  • A new configuration option ‘assumevalid’ is provided to express this knowledge to the software. Unlike the ‘checkpoints’ in the past this setting does not force the use of a particular chain: chains that are consistent with it are processed quicker, but other chains are still accepted if they’d otherwise be chosen as best. Also unlike ‘checkpoints’ the user can configure which block history is assumed true, this means that even outdated software can sync more quickly if the setting is updated by the user.
  • Because the validity of a chain history is a simple objective fact it is much easier to review this setting. As a result the software ships with a default value adjusted to match the current chain shortly before release. The use of this default value can be disabled by setting -assumevalid=0
  • Fundrawtransaction change address reuse:
  • Before 0.14, fundrawtransaction was by default wallet stateless. In almost all cases fundrawtransaction does add a change-output to the outputs of the funded transaction. Before 0.14, the used keypool key was never marked as change-address key and directly returned to the keypool (leading to address reuse). Before 0.14, calling getnewaddress directly after fundrawtransaction did generate the same address as the change-output address.
  • Since 0.14, fundrawtransaction does reserve the change-output-key from the keypool by default (optional by settingreserveChangeKey, default = true)
  • Users should also consider using getrawchangeaddress() in conjunction with fundrawtransaction's changeAddressoption.
  • Unused mempool memory used by coincache:
  • Before 0.14, memory reserved for mempool (using the -maxmempool option) went unused during initial block download, or IBD. In 0.14, the UTXO DB cache (controlled with the -dbcache option) borrows memory from the mempool when there is extra memory available. This may result in an increase in memory usage during IBD for those previously relying on only the -dbcache option to limit memory during that time.
  • Mining:
  • In previous versions, getblocktemplate required segwit support from downstream clients/miners once the feature activated on the network. In this version, it now supports non-segwit clients even after activation, by removing all segwit transactions from the returned block template. This allows non-segwit miners to continue functioning correctly even after segwit has activated.
  • Due to the limitations in previous versions, getblocktemplate also recommended non-segwit clients to not signal for the segwit version-bit. Since this is no longer an issue, getblocktemplate now always recommends signalling segwit for all miners. This is safe because ability to enforce the rule is the only required criteria for safe activation, not actually producing segwit-enabled blocks.
  • UTXO memory accounting:
  • Memory usage for the UTXO cache is being calculated more accurately, so that the configured limit (-dbcache) will be respected when memory usage peaks during cache flushes. The memory accounting in prior releases is estimated to only account for half the actual peak utilization.
  • The default -dbcache has also been changed in this release to 450MiB. Users who currently set -dbcache to a high value (e.g. to keep the UTXO more fully cached in memory) should consider increasing this setting in order to achieve the same cache performance as prior releases. Users on low-memory systems (such as systems with 1GB or less) should consider specifying a lower value for this parameter.
  • Additional information relating to running on low-memory systems can be found here, originally written for Bitcoin but can also be used for Litecoin: reducing-bitcoind-memory-usage.md.

New in Litecoin 0.13.2 (Jan 13, 2017)

  • Major release featuring many protocol level improvements, code optimizations, the ability to roll out several soft forks at once and the greatly anticipated segregated witness (segwit) innovation.
  • Some of the most notable features include:
  • Segregated Witness - to allow for greater transaction output and mitigation of transaction malleability.
  • Hierarchical Deterministic wallets - Litecoin Core will support hierarchical deterministic wallets also known as HD wallets.
  • Faster signature validation using the libsecp256k library developed by Bitcoin Core developers.
  • Wallet pruning to reduce block size storage.
  • Memory usage improvements including better mempool filtering of transactions.
  • Inbuilt Tor control socket API support if Tor is running and also stream isolation for Tor communication.
  • Functionality to reduce upload traffic.
  • ZMQ support - ZeroMQ is a high performance asynchronous messaging library, aimed at use in distributed concurrent connections. Litecoin will support ZMQ for broadcasting block and transaction data.
  • Obfuscated blockchain data - Several antivirus applications detect the Litecoin stored blockchain data as a malware threat. Litecoin 0.13 will obfuscate the blockchain data to rid these false positives.
  • This update will also see the inclusion of several BIPs which can be seen below:
  • BIP9 - This BIP allows multiple soft fork changes to be deployed in parallel.
  • BIP32 - This BIP allows Litecoin Core to support hierarchical deterministic wallets.
  • BIP68 - This BIP allows relative locktime enforcement through sequence numbers.
  • BIP111 - This BIP extends BIP 37, Connection Bloom filtering, by defining a service bit to allow peers to advertise that they support bloom filters explicitly. It also bumps the protocol version to allow peers to identify old nodes which allow bloom filtering of the connection despite lacking the new service bit.
  • BIP112 - This BIP is a proposal to redefine the semantics used in determining a time-locked transaction's eligibility for inclusion in a block. The median of the last 11 blocks is used instead of the block's timestamp, ensuring that it increases monotonically with each block.
  • BIP113 - This BIP describes a new opcode (CHECKSEQUENCEVERIFY) for the Litecoin scripting system that in combination with BIP68 allows execution pathways of a script to be restricted based on the age of the output being spent.
  • BIP130 - This BIP adds a new message, "sendheaders", which indicates that a node prefers to receive new block announcements via a "headers" message rather than an "inv".
  • BIP133 - This BIP adds a new message “feefilter”, which serves to instruct peers not to send “inv”s to the node for transactions with fees below the specified fee rate.
  • BIP141 - This BIP defines a new structure called a “witness” that is committed to blocks separated from the transaction merkle tree.
  • BIP143 - This BIP contains the logic for signature verification for version 0 witness program.
  • BIP144 - This BIP contains the logic for new messages and serialization formats for propagation of transactions and blocks committing to segregated witness structures.
  • BIP147 - This BIP contains changes to the transaction validity rules to fix a malleability vector.
  • BIP152 - This BIP add compact block relay to reduce the bandwidth required to propagate new blocks.

New in Litecoin 0.10.4.0 (Dec 23, 2015)

  • BIP65 soft fork to enforce OP_CHECKLOCKTIMEVERIFY opcode:
  • This release includes several changes related to the BIP65 soft fork which redefines the existing OP_NOP2 opcode as OP_CHECKLOCKTIMEVERIFY (CLTV) so that a transaction output can be made unspendable until a specified point in the future. This change paves the way for many new exciting features such as payment channels, time-locked refunds, escrow, two-factor wallets and is a major requirement for technologies like the lightning network.
  • This release will only relay and mine transactions spending a CLTV output if they comply with the BIP65 rules as provided in code.
  • This release will produce version 4 blocks by default. Please see the notice to miners below.
  • Once 951 out of a sequence of 1,001 blocks on the local node's best block chain contain version 4 (or higher) blocks, this release will no longer accept new version 3 blocks and it will only accept version 4 blocks if they comply with the BIP65 rules for CLTV.
  • Notice to miners:
  • Litecoin Core’s block templates are now for version 4 blocks only, and any mining software relying on its getblocktemplate must be updated in parallel to use libblkmaker either version v0.4.3 or any version from v0.5.2 onward.
  • If you are solo mining, this will affect you the moment you upgrade Litecoin Core, which must be done prior to BIP65 achieving its 951/1001 status.
  • If you are a P2Pool user, you must upgrade to the latest version which can be obtained from here.
  • If you are mining with the stratum mining protocol: this does not affect you.
  • If you are mining with the getblocktemplate protocol to a pool: this will affect you at the pool operator’s discretion, which must be no later than BIP65 achieving its 951/1001 status.
  • IMPORTANT:
  • If this version becomes the actual release version after sufficient testing, all users using versions older then Litecoin Core 0.10.2.2 MUST upgrade to ensure that your signatures are encoded using 'low-s' ECDSA signature encoding scheme. Otherwise you run the risk of your transactions not being relayed once all miners upgrade.

New in Litecoin 0.10.2.2 (Jun 23, 2015)

  • Watch-only wallet support. This allows the wallet to track transactions to and form wallets for which you know the address of but do not have the private key to.
  • Faster blockchain synchronization due to headers-first synchronization and support for downloading blocks in parallel. Downloading the blockchain is now much quicker and can be completed within a few hours instead of taking days for some users.
  • A REST interface which allows unauthenticated access to public node data when the -rest flag is specified.
  • RPC Server “Warm-Up” Mode which starts earlier than previous versions. This helps users or services relying on it know that the server has already started and will be available soon.
  • Improved signing security. This is due to using the libsecp256k1 library for signing instead of OpenSSL. libsecp256k1 is a cryptographic library optimized for elliptic curve uses which Litecoin relies on and was created by Bitcoin Core developer Pieter Wuille. Featuring better security, via hardening against timing leaks and derandomization, this library is believed to be better tested and more thoroughly reviewed than the implementation in OpenSSL.
  • New utility applications including litecoin-tx for transaction related functionality and litecoin-cli for RPC command line functionality as litecoind no longer accepts them.
  • Strict DER encoding for signatures (BIP 66). This introduces block version 3 and a new consensus rule which prevents non-standard transactions from being included in blocks. This also removes the dependency on OpenSSL’s signature parsing. Eventually, libsecp256k1 will be used for all consensus related tasks, depreciating the need for OpenSSL entirely.
  • RPC Access Changes. RPC access now supports binary network addresses. This means that you can specify a single IP address, a CIDR network address or a netmask for accessing the RPC service. Please note, wildcard string matching no longer works and will display an error in the debug.log file when you attempt to use a wildcard string in the rpcallowip= variable, either as a config setting or launch parameter.
  • Protocol:
  • Scrypt Proof-of-Work instead of sha256d, however block hashes are sha256d for performance reasons.
  • Litecoin TCP port 9333 (instead of 8333)
  • RPC TCP port 9332 (instead of 8332)
  • Testnet TCP port 19333 (instead of 18333)
  • Testnet RPC TCP port 19332 (instead of 18332)
  • 84 million coin limit (instead of 21 million)
  • Magic 0xfbc0b6db (instead of 0xf9beb4d9)
  • Target Block Time 2.5 minutes (instead of 10 minutes)
  • Target Timespan 3.5 days (instead of two weeks)
  • bnProofOfWorkLimit = >> 20 (instead of >> 32)
  • See 9a980612005adffdeb2a17ca7a09fe126dd45e0e for Genesis Parameters
  • zeitgeist2 protection: b1b31d15cc720a1c186431b21ecc9d1a9062bcb6 Slightly different way to calculate difficulty changes.
  • Litecoin Core v0.10.2.2 is protocol version 70003 (instead of 70002)
  • Relay:
  • Litecoin Core rounds transaction size up to the nearest 1000 bytes before calculating fees. This size rounding behavior is to mimic fee calculation of Litecoin v0.6 and v0.8.
  • Bitcoin's IsDust() is disabled in favor of Litecoin's fee-based dust penalty.
  • Fee-based Dust Penalty: For each transaction output smaller than DUST_THRESHOLD (currently 0.001 LTC) the default relay/mining policy will expect an additional 1000 bytes of fee. Otherwise the transaction will be rejected from relay/mining. Such transactions are also disqualified from the free/high-priority transaction rule.
  • Miners and relays can adjust the expected fee per-KB with the -minrelaytxfee parameter.
  • Wallet:
  • Coins smaller than 0.00001 LTC are by default ignored by the wallet. Use the -mininput parameter if you want to see smaller coins.

New in Litecoin 0.8.7.5 (Jan 13, 2015)

  • Critical: Maintain consensus with openssl-1.0.1k+ or CVE-2014-8275.
  • If you are running the v0.8.7.4 binaries from litecoin.org you do not need to upgrade as that contained an older version of openssl before the consensus breaking change in openssl-1.0.1k. v0.8.7.5 was released primarily to remove all confusion about what version is safe to operate.

New in Litecoin 0.8.7.4 (Sep 29, 2014)

  • Enforce v2 blocks at height 710000 on mainnet, 400000 on testnet: All miners must upgrade prior to this point or they run the risk of losing future block rewards.
  • Add `-maxorphantx=` option for control over the maximum orphan transactions and blocks
  • Don't poll showmyip.com, it doesn't exist anymore

New in Litecoin 0.8.7.2 (Jun 18, 2014)

  • A minor update for openssl CVE-2014-0224. Generally users of v0.8.7.1 do not need to upgrade to v0.8.7.2 unless they are using RPC SSL, a feature that is disabled by default and rarely used.
  • Mac Official Gitian Build: upgrade to openssl-1.0.1h for CVE-2014-0224

New in Litecoin 0.8.7.1 (Apr 24, 2014)

  • Mac and Windows: upgrade to openssl-1.0.1g for CVE-2014-0160
  • Upgrade openssl, qt, miniupnpc, zlib, libpng, qrencode.
  • Many bug fixes from Bitcoin 0.8.7rc stable branch including transaction malleability mitigation backports from 0.9.
  • Add testnet checkpoints.
  • Add new testnet seed.

New in Litecoin 0.8.6.2 (Jan 13, 2014)

  • Minor fixes:
  • Display Litecoin instead of Bitcoin in the Coin Control change address dialog
  • Fix custom build on MacOS X 10.9
  • Fix QT5 custom build
  • Update Debian build instructions
  • Update Homebrew build
  • Cleanup of SSE2 scrypt detection.

New in Litecoin 0.8.5.1 (Sep 16, 2013)

  • Workaround negative version numbers serialization bug.
  • Fix out-of-bounds check. (Litecoin currently does not use this codepath so this change makes no difference, but we apply this patch just to match Bitcoin 0.8.5.)