• Latest releases of popular Blockchain repositories
  • Release notes

    Apart from further invisible work on the Yul optimizer, the Solidity to Yul code generation, the eWasm backend and the SMT checker, this release contains two important bug fixes related to storage arrays.

    For details see https://blog.ethereum.org/2019/06/25/solidity-storage-array-bugs/

    It also contains an experimental mode that allows recovery from parser error (implemented by @rocky, funded by ConsenSys) in the hope that this might be useful for IDE developers.

    Important Bugfixes:

    • ABIEncoderV2: Fix incorrect abi encoding of storage array of data type that occupy multiple storage slots
    • Code Generator: Properly zero out higher order bits in elements of an array of negative numbers when assigning to storage and converting the type at the same time.

    Compiler Features:

    • Commandline Interface: Experimental parser error recovery via the --error-recovery commandline switch.
    • Optimizer: Add rule to simplify SUB(~0, X) to NOT(X).
    • Yul Optimizer: Make the optimizer work for all dialects of Yul including eWasm.

    Bugfixes:

    • Type Checker: Set state mutability of the function type members gas and value to pure (while their return type inherits state mutability from the function type).
    • Yul / Inline Assembly Parser: Disallow trailing commas in function call arguments.

    Build System:

    • Attempt to use stock Z3 cmake files to find Z3 and only fall back to manual discovery.
    • CMake: use imported targets for boost.
    • Emscripten build: upgrade to boost 1.70.
    • Generate a cmake error for gcc versions older than 5.0.

    We especially thank all the contributors that made this release possible:

    Alex Beregszaszi, Anurag Dashputre, Bhargava Shastry, Chris Ward, Christian Parpart, Daniel Kirchner, Fabio Bonfiglio, Leonardo Alt, Mathias Baumann, mingchuan, rocky, Vedant Agarwala, Vignesh Karthikeyan, William Entriken.

    If you want to perform a source build, please only use solidity_0.5.10.tar.gz and not the zip provided by github directly.

  • Framework for serverless Decentralized Applications using Ethereum, IPFS and other platforms

    Release notes

    Bug Fixes

    • all ws endpoint use new technique (bbcfe9b)
    • allow message signing with wallet address (3a8808e)
    • consistent service order in cockpit (7574e14)
    • do not override web3 in embark (94a8bad)
    • record contract transaction history (435e1e6)
    • simulator: fix simulator when there is no accounts (34d5923)
    • windows path separator being wrong (72f8701)
    • @embark: single use tokens (6aa8781)
    • @embark/blockchain_process: proxy listens on the specified host (9e7bc53)
    • @embark/cli: start the dashboard after services are started (6c7782c)
    • @embark/cockpit/converter: allow decimal numbers (8a5871e)
    • @embark/core: Disable swarm if URL can’t be determined (c24536d)
    • @embark/core: Fix —template URL support (f1206b4)
    • @embark/core: Proxy support for raw transactions (ffcff4a)
    • @embark/core: Restart IPFS after CORS Update (27babf0)
    • @embark/core: Support legacy Parity version parsing (1ccc3e7)
    • @embark/ens: make resolve() work with promises and callbacks (2195475)
    • @embark/whisper: ensure web3 is ready when whisper info is requested (fd311f9)
    • @embark/whisper: use a new WebsocketProvider on each retry (27ad343)
    • blockchain: add cert options to blockchain initialization (bf8629d)
    • blockchain/geth: create geth dev account before other accounts (7811211)
    • cockpit/editor: remove arrows next to files in file explorer (d30b00e)
    • compiler: fix compiler being fired twice (ebd827b)
    • debugger: fix and improve console commands (37c28b9)
    • debugger: fix debugger displays (9c37f97)
    • embarkjs/web3: make global web3 available again (6e4a612)
    • ens: fix error message by checking for directives before (06553b5)
    • ens/web3: use blockchain connector for ens and fix global web3 (d5f6da3)
    • gethClient: clear timeout when call backing (9a6149f)
    • logHandler: stringify objects instead of trying to split it (33d6e29)
    • names: fix ens console commands (50858dc)
    • parity: create password file even when there are no accounts (7d2ceaa)
    • profiler: do not exit on error but print it (e207537)
    • proxy: delete old ids for accounts (604e267)
    • test: use logger instead of engine.logger (af48788)
    • test/console: register in the console in tests when ipc connected (503a79c)
    • whisper: fix crash on using whisper with the simualtor (1461e95)
    • ws: up fragmentation threshold to patch Geth bug with WS (b20bce9)

    Features

    • add coverage events (8a6d075)
    • apply contract change to test (e3a7b74)
    • code runner use fs overrided (944b392)
    • ui: auto updates services in cockpit (a92a986)
    • enable ethereum manually (5a375d9)
    • @embark/core: Allow search to find contract by name (1e2cb64)
    • @embark/core: improve long running webpack UI (b49839a)
    • @embark/core: store IPC files in a dir within os.tmpdir() (a91a4dd), closes #1202 #450
    • @embark/core: Support directives in ENS config (7511156)
    • @embark/deployment: output transaction hash during deployment asap (0bb7d63)
    • @embark/deployment: output transaction hash of contract deployment (3099894)
    • console: add new api to register console commands (3229e15)
    • coverage: gas usage improvements (0118b1a)
    • scaffold: use ipfs in scaffold and upload file (9854368)
    • ui: auto updates contracts in cockpit (d10d906)

  • Release notes

    Hey all! 👋

    This week brings a special treat! ✨

    This release marks Truffle's formal integration with Hyperledger Fabric's chaincode EVM. It also brings a fix to re-enable proper decoding of Quorum private values.

    <details> <summary><em>Example config for using Truffle with Hyperledger Fabric's EVM chaincode</em></summary>
    module.exports = {
      networks: {
        fabricNetwork: {
          host: "127.0.0.1",
          port: 5000, // default Fab3 port
          network_id: "*",
          type: "fabric-evm"
        }
      }
    }
    </details>

    Also, for those using native solc and/or docker solc for compilations, faster parsing using solc-js is now available!

    <details> <summary><em>Example config</em></summary>
    module.exports = {
      compilers: {
        solc: {
          version: "native",
          parser: "solcjs"
        }
      }  
    }
    </details>

    And, for those who enjoy Ganache's forking feature, truffle develop now supports fork as a config option.

    <details> <summary><em>Example config</em></summary>
    module.exports = {
      networks: {
        develop: {
          fork: "https://cloudflare-eth.com/",
          network_id: 1
        }
      }  
    }
    </details>

    Special thanks to...

    • @itinance for updating truffle-hdwallet-provider's documentation
    • @chebykin for adding support for forked Truffle mnemonic's!

    How to Upgrade

    We recommend upgrading to the latest version of Truffle by running:

    npm uninstall -g truffle
    npm install -g truffle

    <h4> <div align="center">

    👯‍♂   Tickets for TruffleCon 2019 are now just $99!!!   👯<br> Join us August 2 - 4 at Microsoft's campus in Redmond, WA!<br> Get Tickets

    </div> </h4>

    Changelog

    New Features

    Enhancements

    • Enable expedient solc-js parsing when using docker or native solc (#2067 by @CruzMolina)
    • Enable fork as a config option for use within truffle develop (#2151 by @CruzMolina)
    • Replace truffle-core/mnemonic require with a relative one (#2169 by @chebykin)

    Fixes

    • Re-enable decoding of Quorum private values (return zero value instead of decoding error) (#2154 by @CruzMolina

    Internal Improvements

    • Convert truffle-box sandbox method to a promise-based interface (#2119 by @CruzMolina)
    • Add required HD-wallet-path for testnets into README example for Ropsten (#2145 by @itinance)

    Dependency Updates

  • Release notes

    Bitcoin Core version 0.18.0 is now available from:

    https://bitcoincore.org/bin/bitcoin-core-0.18.0/

    For the release notes please see the git repository:

    https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.18.0.md

    Preferably use the above download link, not the links provided by GitHub to download the source tarball, as the release tarballs are generated deterministically whereas GitHub's are not.

  • The blockchain for Smart Media Tokens (SMTs) and decentralized applications.

    Release notes

    Steem Velocity 0.20.11 (MIRA) Release Notes

    This is an optional update for the Steem database backend, called MIRA.

    MIRA is a Multi Index Rocksdb Adapter that updates the database backend of Steem from memory mapped files to a disk log-structured merge-tree implemented via the RocksDB library.

    Reindexing

    0.20.11 requires reindexing if you want to use MIRA for the database backend of Steem.

    Overview

    MIRA is enabled via the cmake build options, ENABLE_MIRA=ON. This build option replaces the experimental build option ENABLE_STD_ALLOCATOR_SUPPORT. Due to the nature of C++ dynamically allocated data structures and the previous memory mapped database, MIRA is not compatible with the old database at runtime and must be enabled/disabled at compile time.

    A reindex will be required to rebuild state in MIRA. The same command line argument, --replay-blockchain is used. Additionally, reindexing can be done entirely in memory with MIRA to improve reindex performance using the command line argument --memory-replay. This will keep all indices in memory until the end of the reindex. This can require a significant amount of memory. In the config file, memory-replay-indices can set which individual indices should be kept in memory to keep memory usage down while still benefitting from the increased performance.

    RocksDB has many performance tuning options available. We have exposed a subset of those options in a new config file, database.cfg which lives in the data directory. We have provided a tuning guide to get node operators started on configuring their nodes for their hardware.

    RocksDB does open a considerable number of files. You may need to configure your OS to allow for so many files to be open at once. These resources can help walk you through that process. ( OS X, Linux )

    Impact

    In our testing, memory requirements have decreased from 64G for consensus nodes to 16G when tuned correctly. Additionally, we were able to migrate from attached NVMe drives to network attached SSDs with similar, if not better, performance on a live node. Reindex performance with MIRA has much less variability. What this means is that it is much slower when compared to reindexing with an attached NVMe, but considerably faster than a network attached SSD. Your actual performance gain/loss may vary and are largely dependent on the hardware you were running on.

  • Decentralized cryptocurrency blockchain daemon implementing the XRP Ledger in C++

    Release notes

    Version 1.2.4

    The rippled 1.2.4 release improves the way that shard crawl requests are routed and the robustness of configured validator list retrieval by imposing a 20 second timeout.

    New and Updated Features

    This release has no new features.

    Bug Fixes

    • Use public keys when routing shard crawl requests (2e26377)
    • Enforce a 20s timeout when making validator list requests (RIPD-1737) (dd99bf4)

  • Release notes

    Change

    The complete listing of changes can be found here

    • EEA client for EEA compliant ethereum nodes: #923
    • Support for Nodesmith: #904
    • Added contribution guidelines: #911

  • Release notes

    Litecoin Core v0.17.1 Release

    Follow the Twitter for the latest dev news.

    We are pleased to release Litecoin Core 0.17.1. This is a new major version release, including new features, various bugfixes and performance improvements, as well as updated translations. It is recommended for all users to upgrade to this version.

    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-chainstateoption 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.
    • 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 possiblewith 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.
    • New wallets can be created (and loaded) by calling the createwallet RPC. The provided name must not match a wallet file in the walletdirdirectory 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:

    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.
    • 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:

    BIP 174 Partially Signed Litecoin Transactions support

    BIP 174 PSBT is an interchange format for Litecoin transactions that are not fully signed yet, together with relevant metadata to help entities work towards signing it. It is intended to simplify workflows where multiple parties need to cooperate to produce a transaction. Examples include hardware wallets, multisig setups, and CoinJoin transactions.

    For backend RPC convenience, the Litecoin devs have supported to keep the acronym PSBT instead of PSLT to make crosschain application support easier.

    Overall workflow

    Overall, the construction of a fully signed Litecoin transaction goes through the following steps:

    • A Creator proposes a particular transaction to be created. He constructs a PSBT that contains certain inputs and outputs, but no additional metadata.
    • For each input, an Updater adds information about the UTXOs being spent by the transaction to the PSBT.
    • A potentially other Updater adds information about the scripts and public keys involved in each of the inputs (and possibly outputs) of the PSBT.
    • Signers inspect the transaction and its metadata to decide whether they agree with the transaction. They can use amount information from the UTXOs to assess the values and fees involved. If they agree, they produce a partial signature for the inputs for which they have relevant key(s).
    • A Finalizer is run for each input to convert the partial signatures and possibly script information into a final scriptSig and/or scriptWitness.
    • An Extractor produces a valid Litecoin transaction (in network format) from a PSBT for which all inputs are finalized.

    Generally, each of the above (excluding Creator and Extractor) will simply add more and more data to a particular PSBT. In a naive workflow, they all have to operate sequentially, passing the PSBT from one to the next, until the Extractor can convert it to a real transaction. In order to permit parallel operation, Combiners can be employed which merge metadata from different PSBTs for the same unsigned transaction.

    The names above in bold are the names of the roles defined in BIP174. They’re useful in understanding the underlying steps, but in practice, software and hardware implementations will typically implement multiple roles simultaneously.

    RPCs

    • converttopsbt (Creator) is a utility RPC that converts an unsigned raw transaction to PSBT format. It ignores existing signatures.
    • createpsbt (Creator) is a utility RPC that takes a list of inputs and outputs and converts them to a PSBT with no additional information. It is equivalent to calling createrawtransaction followed by converttopsbt.
    • walletcreatefundedpsbt (Creator, Updater) is a wallet RPC that creates a PSBT with the specified inputs and outputs, adds additional inputs and change to it to balance it out, and adds relevant metadata. In particular, for inputs that the wallet knows about (counting towards its normal or watch-only balance), UTXO information will be added. For outputs and inputs with UTXO information present, key and script information will be added which the wallet knows about. It is equivalent to running createrawtransaction, followed by fundrawtransaction, and converttopsbt.
    • walletprocesspsbt (Updater, Signer, Finalizer) is a wallet RPC that takes as input a PSBT, adds UTXO, key, and script data to inputs and outputs that miss it, and optionally signs inputs. Where possible it also finalizes the partial signatures.
    • finalizepsbt (Finalizer, Extractor) is a utility RPC that finalizes any partial signatures, and if all inputs are finalized, converts the result to a fully signed transaction which can be broadcast with sendrawtransaction.
    • combinepsbt (Combiner) is a utility RPC that implements a Combiner. It can be used at any point in the workflow to merge information added to different versions of the same PSBT. In particular it is useful to combine the output of multiple Updaters or Signers.
    • decodepsbt is a diagnostic utility RPC which will show all information in a PSBT in human-readable form, as well as compute its eventual fee if known.

    Upgrading non-HD wallets to HD wallets

    Since Litecoin Core 0.13.2, creating new BIP 32 Hierarchical Deterministic wallets has been supported by Litecoin Core but old non-HD wallets could not be upgraded to HD. Now non-HD wallets can be upgraded to HD using the -upgradewallet command line option. This upgrade will result in the all keys in the keypool being marked as used and a new keypool generated. A new backup must be made when this upgrade is performed.

    Additionally, -upgradewallet can be used to upgraded from a non-split HD chain (all keys generated with m/0'/0'/i') to a split HD chain (receiving keys generated with 'm/0'/0'/i' and change keys generated with m'/0'/1'/i'). When this upgrade occurs, all keys already in the keypool will remain in the keypool to be used until all keys from before the upgrade are exhausted. This is to avoid issues with backups and downgrades when some keys may come from the change key keypool. Users can begin using the new split HD chain keypools by using the newkeypool RPC to mark all keys in the keypool as used and begin using a new keypool generated from the split HD chain.

    HD Master key rotation

    A new RPC, sethdseed, has been introduced which allows users to set a new HD seed or set their own HD seed. This allows for a new HD seed to be used. A new backup must be made when a new HD seed is set.

    Low-level RPC changes

    • The new RPC scantxoutset can be used to scan the UTXO set for entries that match certain output descriptors. Refer to the output descriptors reference documentation for more details. This call is similar to listunspent but does not use a wallet, meaning that the wallet can be disabled at compile or run time. This call is experimental, as such, is subject to changes or removal in future releases.
    • The createrawtransaction RPC will now accept an array or dictionary (kept for compatibility) for the outputs parameter. This means the order of transaction outputs can be specified by the client.
    • The fundrawtransaction RPC will reject the previously deprecated reserveChangeKey option.
    • sendmany now shuffles outputs to improve privacy, so any previously expected behavior with regards to output ordering can no longer be relied upon.
    • The new RPC testmempoolaccept can be used to test acceptance of a transaction to the mempool without adding it.
    • JSON transaction decomposition now includes a weight field which provides the transaction's exact weight. This is included in REST /rest/tx/ and /rest/block/ endpoints when in json mode. This is also included in getblock (with verbosity=2), listsinceblock, listtransactions, and getrawtransaction RPC commands.
    • New fees field introduced in getrawmempool, getmempoolancestors, getmempooldescendants and getmempoolentry when verbosity is set to true with sub-fields ancestor, base, modified and descendantdenominated in LTC. This new field deprecates previous fee fields, such as fee, modifiedfee, ancestorfee and descendantfee.
    • The new RPC getzmqnotifications returns information about active ZMQ notifications.
    • When litecoin is not started with any -wallet=<path> options, the name of the default wallet returned by getwalletinfo and listwallets RPCs is now the empty string "" instead of "wallet.dat". If litecoin is started with any -wallet=<path> options, there is no change in behavior, and the name of any wallet is just its <path> string.
    • Passing an empty string ("") as the address_type parameter to getnewaddress, getrawchangeaddress, addmultisigaddress, fundrawtransaction RPCs is now an error. Previously, this would fall back to using the default address type. It is still possible to pass null or leave the parameter unset to use the default address type.
    • Bare multisig outputs to our keys are no longer automatically treated as incoming payments. As this feature was only available for multisig outputs for which you had all private keys in your wallet, there was generally no use for them compared to single-key schemes. Furthermore, no address format for such outputs is defined, and wallet software can’t easily send to it. These outputs will no longer show up in listtransactions, listunspent, or contribute to your balance, unless they are explicitly watched (using importaddress or importmulti with hex script argument). signrawtransaction* also still works for them.
    • The getwalletinfo RPC method now returns an hdseedid value, which is always the same as the incorrectly-named hdmasterkeyid value. hdmasterkeyid will be removed in V0.18.
    • The getaddressinfo RPC method now returns an hdseedid value, which is always the same as the incorrectly-named hdmasterkeyid value. hdmasterkeyid will be removed in V0.18.
    • Parts of the validateaddress RPC method have been deprecated and moved to getaddressinfo. Clients must transition to using getaddressinfo to access this information before upgrading to v0.18. The following deprecated fields have moved to getaddressinfo and will only be shown with -deprecatedrpc=validateaddress: ismine, iswatchonly, script, hex, pubkeys, sigsrequired, pubkey, addresses, embedded, iscompressed, account, timestamp, hdkeypath, hdmasterkeyid.
    • signrawtransaction is deprecated and will be fully removed in v0.18. To use signrawtransaction in v0.17, restart litecoind with -deprecatedrpc=signrawtransaction. Projects should transition to using signrawtransactionwithkey and signrawtransactionwithwallet before upgrading to v0.18.

    Other API changes

    • The inactivehdmaster property in the dumpwallet output has been corrected to inactivehdseed

    Logging

    • The log timestamp format is now ISO 8601 (e.g. “2018–02–28T12:34:56Z”).
    • When running litecoind with -debug but without -daemon, logging to stdout is now the default behavior. Setting -printtoconsole=1 no longer implicitly disables logging to debug.log. Instead, logging to file can be explicitly disabled by setting -debuglogfile=0.

    Transaction index changes

    The transaction index is now built separately from the main node procedure, meaning the -txindex flag can be toggled without a full reindex. If litecoind is run with -txindex on a node that is already partially or fully synced without one, the transaction index will be built in the background and become available once caught up. When switching from running -txindex to running without the flag, the transaction index database will not be deleted automatically, meaning it could be turned back on at a later time without a full resync.

    Miner block size removed

    The -blockmaxsize option for miners to limit their blocks' sizes was deprecated in V0.15.1, and has now been removed. Miners should use the -blockmaxweight option if they want to limit the weight of their blocks.

    Python Support

    Support for Python 2 has been discontinued for all test files and tools.

    Download Binaries

    To download, please visit the download page here. Alternatively, you can view the download folder here.

    Please use GPG to verify the integrity of the release binaries. This ensures that the binary you have downloaded has not been tampered with. Linux, MacOS and Win32 cygwin command line GPG instructions are available here. Please also note that we GPG sign the binaries as a convenience to you, the ultimate way to verify the integrity of the builds is to build them yourself using Gitian. Instructions on how to perform these builds, can be found here.

    For this release, the binaries have been signed with key identifier FE3348877809386C(thrasher’s key).

    WARNING

    Despite this version being heavily tested, this version may still contain bugs. Always backup your wallet.dat file before upgrading. If you encounter any issues, please let us know by posting to the bug reporting section below.

    Source code & Build instructions

    The master branch contains the latest commits to the next stable releases of Litecoin Core.

    Build instructions for Linux can be found here.

    Build instructions for OSX can be found here.

    Builds instructions for Windows can be found here.

    Bug Reporting

    Submit any issues you encounter here and one of the Litecoin developers will assist you.

    Mailing Lists

    Sign up for announcements only or development discussion.

    Hashes for verification

    These are the SHA-256 hashes of the released files:

    aa772dd38242065f9902fc529239aeca05c34851f99113f5f29d6e591e1d8aa5  litecoin-0.17.1-aarch64-linux-gnu.tar.gz
    7e6f5a1f0b190de01aa20ecf5c5a2cc5a64eb7ede0806bcba983bcd803324d8a  litecoin-0.17.1-arm-linux-gnueabihf.tar.gz
    575f5e6614868f148b3ca3064ff7f494db84cde49669cd18be2d8275da88ebce  litecoin-0.17.1-i686-pc-linux-gnu.tar.gz
    b93fa415c84bea1676d0b0ea819dd6e8e4f7b136167d89b18b63240b50757d4f  litecoin-0.17.1-osx64.tar.gz
    7f8ec34706701482970baae4d4bc0fdb19016a6ab5260f983bf478428f0da518  litecoin-0.17.1-osx.dmg
    6db52aa5a67387aff937afbfb3da8321ada653c9c8f01b0e0d4dd617939639c4  litecoin-0.17.1.tar.gz
    7263605a80e93da6fe56d8ef46a73eadd973673098982943f51e2d56d36f8a2f  litecoin-0.17.1-win32-setup.exe
    2970c94c5401008c1120313838e8e88ff437c588b5b574a1e74b190d970a54e7  litecoin-0.17.1-win32.zip
    fa8e0f5be6e65125fdea9e4d83bd3ea3ab2e8b185e3f94b767d77233cbbd520a  litecoin-0.17.1-win64-setup.exe
    8060e9bface9bbdc22c74a2687b211c8b4e32fe03c0e6c537c12de0ff6f0813b  litecoin-0.17.1-win64.zip
    9cab11ba75ea4fb64474d4fea5c5b6851f9a25fe9b1d4f7fc9c12b9f190fed07  litecoin-0.17.1-x86_64-linux-gnu.tar.gz

    Credits

    Thanks to everyone who directly contributed to this release:

    • The Bitcoin Core Developers
    • Adrian Gallagher
    • aunyks
    • coblee
    • cryptonexii
    • EP1JUNE
    • gabrieldov
    • iamkubi
    • jmutkawoa
    • Martin Smith
    • NeMO84
    • OlegKozhemiakin
    • ppm0
    • romanornr
    • shaolinfry
    • spl0i7
    • stedwms
    • ultragtx
    • VKoskiv
    • voidmain
    • wbsmolen
    • xinxi

    And to those that reported security issues:

    • awemany (for CVE-2018–17144, previously credited as “anonymous reporter”)