Reddcoin (RDD) Core releases v3.10.0 Reddcoin Core Wallet – Recommended Upgrade

Much like a still, rippling pond, almost all of the work done to bring out v3.10.0 of Reddcoin Core as the new reference release for 2020 has taken place under the surface of the Core wallet. An insane amount of work, testing and love has gone into the roughly two thousand commits and code changes required between the original v3 version and incorporation of the new code. While spurred initially by what seemed to be an easy fix with regard to our need to support changes to Apple MacOS Catalina’s font handling, it turned into a full- time effort and months of invisible work to incorporate not just Apple’s new Software Dev Kit (SDK) components, but also newer versions of QT wallet components as well as bitcoin core 0.10. The look and feel of Reddcoin Core has essentially remained the same but will be undergoing a visual redesign in upcoming versions, along with some
useful new utility features. This release has focused on important security, performance and compatibility updates.

Documentation on this release is available at https://github.com/reddcoin-project/reddcoin/blob/master/doc/release-notes/release-notes-3.10.0.md

Source code and compiled binaries for supported operating systems are located at:https://download.reddcoin.com/bin/reddcoin-core-3.10.0/

While a backup of the “wallet.dat” file containing private keys is always recommended when upgrading, for safety, no major operations or migrations are necessary to install this update. Either download the installer for your OS, or zip file containing updated executable, replace your existing executable, and relaunch. If your wallet was up to date, sync’ed and/or staking prior to upgrade, it should return to that state immediately upon launching the newly upgraded wallet without issue. Please contact the dev team on any available social channel for assistance with any issues encountered, or for additional help from devs or the Reddhead community with any questions you might have, please join our live chat channels on Discord or Telegram.

Notable changes:

Faster synchronization – While not fully activated in this release, “header-first” synchronization has been implemented and tested on test-net on the RDD chain up until the point of PoW-to-PoSV at block height 260800. Due to the complexities of PoSV and it’s unqiue use of timestamps and other data in headers, we’ve determined that full chainsync will require more work, and will likely be included in the next Core release.

Transaction fee scheduling changes – This release automatically estimates how high a transaction fee (or how high a priority) transactions require to be confirmed quickly. The default settings will create transactions that confirm quickly; see the new ‘txconfirmtarget’ setting to control the tradeoff between fees and confirmation times. Fees are added by default unless the ‘sendfreetransactions’ setting is enabled. Prior
releases used hard-coded fees (and priorities), and would sometimes create transactions that took a very long time to confirm. Statistics used to estimate fees and priorities are saved in the data directory in the fee_estimates.dat file just before program shutdown, and are read in at startup.

RPC access control changes – Subnet matching for the purpose of access control is now done by matching the binary network address, instead of with string wildcard matching. For the user this means that -rpcallowip takes a subnet specification

REST interface – A new HTTP API is exposed when running with the -rest flag, which allows unauthenticated access to public node data. It is served on the same port as RPC, but does not need a password, and uses plain HTTP instead of JSON-RPC. Assuming a local RPC server running on port 8332, it is possible to request:

  • Blocks: http://localhost:8332/rest/block/HASH.EXT
  • Blocks without transactions: http://localhost:8332/rest/block/notxdetails/HASH.EXT
  • Transactions (requires -txindex): http://localhost:8332/rest/tx/HASH.EXT

In every case, EXT can be bin (for raw binary data), hex (for hex-encoded binary) or json. For more details, see the doc/REST-interface.md document in the repository.

Improved signing security – For 0.10 the security of signing against unusual attacks has been improved by making the signatures constant time and deterministic. This change is a result of switching signing to use libsecp256k1 instead of OpenSSL. Libsecp256k1 is a cryptographic library optimized for the curve Bitcoin uses which was created by Bitcoin Core developer Pieter Wuille. There exist attacks against most ECC implementations where an attacker on shared virtual machine hardware could extract a private key if they could cause a target to
sign using the same key hundreds of times. While using shared hosts and reusing keys are inadvisable for other reasons, it’s a better practice to avoid the exposure. OpenSSL has code in their source repository for derandomization and reduction in timing leaks that we’ve eagerly wanted to use for a long time, but this functionality has still not made its way into a released version of OpenSSL. Libsecp256k1 achieves significantly
stronger protection: As far as we’re aware this is the only deployed implementation of constant time signing for the curve Bitcoin uses and we have reason to believe that libsecp256k1 is better tested and more thoroughly reviewed than the implementation in OpenSSL.

Watch-only wallet support – The wallet can now track transactions to and from wallets for which you know all addresses (or scripts), even without the private keys. This can be used to track payments without needing the private keys online on a possibly vulnerable system. In addition, it can help for (manual) construction of multisig transactions where you are only one of the signers.

reddcoin-tx – It has been observed that many of the RPC functions offered by bitcoind are “pure functions”, and operate independently of the bitcoind wallet. This included many of the RPC “raw transaction” API functions, such as createrawtransaction. Reddcoin-tx is a newly introduced command line utility designed to enable easy manipulation of RDD transactions. A summary of its operation may be obtained via reddcoin-tx –help” Transactions may be created or signed in a manner similar to the RPC raw tx API. Transactions may be updated, deleting inputs or outputs, or appending new inputs and outputs. Custom scripts may be easily composed using a simple text notation, borrowed from the bitcoin test suite. This tool may be used for experimenting with new transaction types, signing multi-party transactions, and many other uses. Long term, the goal is to deprecate and remove “pure function” RPC API calls, as those do not require a server round-trip to execute.

For documentation on these and other feature and corrective fixes in this version please refer to the full
changelog and commit log for Reddcoin Core v3.10.0 available at:
See also original bitcoin 0.10 release notes at https://bitcoin.org/en/release/v0.10.0

This work includes many of the compelling features of Bitcoin 0.10 identified aboe, and security fixes, architectural and storage changes, performance improvements, security and encryption upgrades, as well as Reddcoin-specific changes like full compatibility with MacOS Catalina and the Apple SDK, incorporation into our new Travis-based Continuous Integration (CI) and depend-based building system allowing for a quicker and more comprehensive and collaborative development cycle for our releases in the future. In addition, wallet binaries are now signed by digital certificate to enhance security and provide required authentication to host operating sytems for easier and safer operation.

A new centralized download site for code, binaries, source code and blockchain files and utilities has been established, and will remain as a known good download location for any of these items at https://download.reddcoin.com/bin/ .

Pages for downloads are being updated on the website as part of our underway redesign as well. Translations to all languages are contributed by ReddHead community members and always open to further refinement/correction by signing up at https://www.transifex.com/reddcoin/reddcoin/qt-translation-v310/

We’d also like to thank all the Reddhead testers, contributors and others involved in helping accomplish this latest milestone in Reddcoin. Stake On!