Qtum’s Code Update History

Qtum
5 min readSep 18, 2018

--

Qtum Mainnet Ignition launched on October 13, 2017, with version 0.14.3 using a copy of bitcoin v.14 code. Since then, over the past year, we have released 18 updates to the platform. We are pleased to announce the release of the Qtum Core wallet version 0.16.0 which incorporates bitcoin version 0.16 features and has been our largest update yet porting over 387 changes from bitcoin v0.16 (https://bitcoin.org/en/release/v0.16.0). Some highlights of the new capability are:

· Full Segregated Witness (SegWit) support with address management, key management, and new commands/calls

· Create HD (Hierarchical Deterministic) wallet by default

· SSE4 (CPU hardware acceleration) for faster calculations

· GUI wallet user updates

Using SegWit, the existing transactions (which combine the actual transaction plus signatures) are split with the signatures moved to a “witness” sidechain. This will result in reducing the size of the remaining transaction, which allows more transactions to be included per block. Since the transaction sizes are decreased, the transaction fees will decrease as well. SegWit will prevent other security issues such as transaction malleability and will also allow Qtum to enable the Lightning Network which can scale TPS to over 50,000.

Version 0.16 includes the ability to manage addresses for legacy (p2sh), legacy-compatible (p2sh wrapped segwit) and native segwit (bech32) addresses using new commands and RPC calls. Version 0.16.0 will create Hierarchical Deterministic (HD) wallets by default. HD wallets mean all future private keys are derived from a single starting seed for easier backup and restoring.

Streaming SIMD Extensions 4 (SSE4) provides CPU hardware acceleration for faster SHA265 hash calculations, to improve processing speed and syncing speed for some computers using Intel and AMD CPUs.

In the desktop GUI wallet (qtum-qt) users can search for transactions by TXID, send the wallet balance, and can unhide passphrase entry.

The deprecated “getinfo” command is replaced by 4 existing specific “info” commands.

Please note with these updates, wallets created with v0.16.0 are not always backward compatible with previous wallet software versions.

Changelog

Here is a synopsis of the version changelog

v0.16.0 — Recommended update — upgrade Qtum core to bitcoin core 0.16 and bug fixes

  • Upgrade Qtum core to bitcoin core 0.16 including SegWit wallet, bech32 addresses, HD-wallets by default
  • Full support for SegWit addresses (BIP173/BECH32)
  • The SHA256 hash supporting SSE4 which can increase speeds
  • Qtum Core will now have more options as to where the wallets directory can be stored
  • New commands supporting SegWit
  • Bug fixes for contract transactions, and for logs in qtum-qt wallet

v0.15.3 — Recommended update — Bug fix

  • Bug fixes for “searchlogs” and “waitforlogs” rpc calls
  • Added support for building with boost 1.67

v0.15.2 — Recommended update — Improved startup peer communications and bug fixes

  • Fixed a staking halving subsidy calculation bug
  • Add Support for openssl 1.1
  • Fix CVE-2018–12356 by hardening the regex
  • Fix a python tests bug that caused bulk running of tests to fail
  • Add static seeds and new DNS seed nodes

v0.15.1 — Upgrade Qtum core to bitcoin core 0.15.1 and bug fixes

  • Upgrade Qtum core code to bitcoin core 0.15.1 with important performance improvements and other features
  • Fix a bug with reindexing when the data directory is empty
  • Prevent sending QRC20 tokens to P2SH Qtum addresses in the Qt wallet
  • Restore JS number as string support for “callcontract” and “sendtocontract” rpc calls
  • Fix a bug where the wrong block hash would be stored in the transaction receipt for miners with -logevents enabled

v0.14.16 — Improvements and Bug fixes

  • Fixed a bug where transactions with low fees would get stuck in the local mempool
  • Fix a bug with clearing cache of StorageResults
  • Add contract support to “createrawtransaction” rpc call
  • Add sender support to “sendtoaddress” rpc call

v0.14.15 — Recommended Update

  • Add EVM global variables to callcontract
  • Update gitian build script
  • Update CentOS build instructions
  • Add exception data to TransactionReceipt
  • Fixed a bug where the gas price could not be parsed correctly on certain platforms (reported by APIS)
  • Fixed a bug where the logs were not reverted on disconnect block in certain cases

v0.14.14 — Mandatory Update

  • New qtum-qt wallet GUI
  • Fix Qt wallet freeze when syncing from scratch with -logevents or -reindex
  • Fix a bug with cacheUTXO (starting at block 100,000 in Mainnet, 84500 in testnet)
  • Add update checking functionality to Qt wallet
  • Fix a bug in token transfers history dates
  • Fix a bug with “searchlogs” rpc call
  • Add an extra check when adding token addresses
  • Fix compatibility with boost 1.66
  • Add checkpoints
  • Update nMinimumChainWork and defaultAssumeValid chain params
  • Add minmempoolgaslimit startup argument
  • Add Gitian build signatures

v0.14.13 — Mandatory Update

  • Fix a callcontract bug which in very specific cases could cause the node to fail to sync the blockchain
  • Add ability to save and restore contract addresses and ABI data
  • Make the token confirmation view data correct

v0.14.12 — Recommended Update

  • Added option to disable change address usage
  • Fixed bug where heavy RPC usage could cause the wallet to crash

v0.14.11 — Optional Update

  • Changed our versioning scheme to be consistent and avoid the two version number confusion
  • Add feature to restore wallet in the Qt wallet
  • Add new RPC call “waitforlogs” that is particularly useful for Dapp developers
  • Add long-polling support to the “gettransaction” RPC call

v0.14.10 — Recommended update — bug fixes

  • Fixed a bug that would cause syncing to stop
  • Fixed a bug that would cause the wallet to crash when using -logevents

v0.14.9 — Highly recommended update — bug fixes

  • Fixed a bug that caused contact addresses to show in receive token address dropdown

v0.14.8 — Optional update, but recommended if using QRC tokens

  • Fixed a bug with token transactions where the transaction ID displayed was incorrect in the Qt wallet
  • Allow adding 0 balance addresses as the token receiver in the Qt wallet

v0.14.7 — contract change address and bug fixes

  • When sending to contracts, the sender address is now the default change address to reduce confusion
  • fix -salvagewallet for token transactions

v0.14.6 — GUI support for Qtum QRC tokens

  • GUI support for QRC tokens, allowing full management of tokens on the Qtum blockchain from the qtum-qt wallet
  • Sending to a contract no longer requires ABI data, allowing easy participation in simple crowdsale contracts

v0.14.5 — Fixed staking balance problem

v0.14.4 — Staking improvements, bug fixes

  • Fix staking bug that reported false messages; slightly increases staking performance
  • Optimized staking parameters
  • Fixed white send button in GUI

v0.14.3 — (1.0.2) Various UI and bug fixes, added testnet

  • minor gas overflow consensus fix
  • Fixed per-txout exploit
  • Testnet mode setup and functioning

v0.14.3 — (1.0.1) Mainnet Ignition launch version

  • Fixed network magic bytes and minimum version to ensure the main network does not conflict with the Skynet network

v1.0: Initial release on Skynet public test network

--

--