Qtum Release Mainnet Ignition v0.15.3 - Recommended update - Bug fix

About Qtum and Mainnet Ignition

Qtum is a decentralized blockchain project built on Bitcoin's UTXO model, with support for Ethereum Virtual Machine based smart contracts, and secured by a proof of stake consensus model. It achieves this through the revolutionary Account Abstraction Layer which allows the EVM to communicate with Qtum's Bitcoin-like UTXO blockchain. For more general information about Qtum as well as links to join our community, go to https://qtum.org

Welcome to the Qtum Ignition Main Network. This is the main network where the tokens hold value and should be guarded very carefully. There will be a testnet setup soon for developers, in the meantime you can use -regtest mode for testing needs. We will announce details about the token swap from QTUM ERC20 coins to QTUM mainnet tokens soon, watch our website for details about that.

The major features implemented in Qtum Ignition include:

The Ethereum Virtual Machine, which allows for compatibility with most existing Solidity based smart contracts.

The Smart Staking Protocol is complete, which is an optimized Proof of Stake implementation designed for a smart contract platform (however, smart contracts can not participate in staking yet).

An early and basic smart contract GUI has been implemented that can be used for creating contracts, sending data and Qtum to them, and checking their status by executing them locally. This functionality is similar to Mist's UI right now, but it is still an early version. We will be working on this more to improve it.

Regtest mode, which is ideal for developers who wish to create their own private blockchain. It is tuned specifically to make development easier. It will stake blocks automatically every 30 seconds, and can generate proof-of-work blocks instantly as needed.

The Decentralized Governance Protocol is completely implemented and functional, which allows certain network parameters to be modified without a fork.

For more technical information for how to start developing with Qtum please read the Guidefaucet smart contract (it hasn't yet been updated for Mainnet for obvious reasons, but all the instructions are the same and you can try them in regtest mode)

Note: Qtum Core is considered beta software. We make no warranties or guarantees of its security or stability.

Update History

v0.15.3 - Recommended update - Bug fix

Fix a bug with searchlogs and waitforlogs rpc calls that caused duplicacte logs to show in some cases

Add support for building with boost 1.67

v0.15.2 - Recommended update - Improved seeding and bug fixes

Fix a staker halving subsidy calculation bug

Fix some translations errors and typos

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

Add new dns seed nodes

Update copyright year

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 improvments and other features, read more about bitcoin core 0.15.0 and 0.15.1

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 - Improvments 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 Qt GUI

Fix Qt wallet freeze when syncing from scratch with -logevents or -reindex

Fix a bug with cacheUTXO (hardfork at block 100000 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

v1.1.4 - Recommended update

Fixed a bug that would cause syncing to stop

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

v1.1.3 - Highly recommended update

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

v1.1.2 - 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

v1.1.1: When sending to contracts, the sender address is now the default change address to reduce confusion; fix -salvagewallet so it works with token transactions

v1.1.0: Add GUI support Qtum QRC tokens, allowing full management of tokens on the Qtum blockchain from the Qt wallet

v1.0.1: Fixed network magic bytes and minimum version to ensure the main network does not conflict with the Skynet network

v1.0: Initial release

Reindex Required When Upgrading from v1.0.1

When you first start the Qtum 1.0.2 GUI wallet after using Qtum v1.0.1 it will prompt you that it must reindex the database. This is normal and is a result of switching our internal database format from per-transaction to per-txout. If you use qtumd -daemon it will silently fail to start. You need to use qtumd -daemon -reindex in this case.

Qtum Smart Contract Limitations

EVM smart contracts can not receive coins from or send coins to any address type other than pay-to-pubkeyhash (starts with Q) addresses. This is due to a limitation in the EVM

Contracts are not allowed to create contracts with an initial endowment of coins. The contract must first be created, and then be sent coins in a separate transaction. Humans are also not allowed to create contracts with an initial endowment of coins.

Although all of the infrastructure is present, Qtum Core does not currently parse Solidity event data. You must parse this yourself using either searchlogs or -record-log-opcodes features.

It is not possible to send a contract coins without also executing the contract. This is also the case of Ethereum. This was promised in earlier discussions and technically does work, but due to lack of time for testing this feature was disabled. We hope to reenable this feature with release of the x86 virtual machine in 2018.

In Qtum there can be multiple addresses used to create a proof-of-stake block. However, the EVM can only see the first output using the coinbase operation in Solidity (this address is also the one registered for the continuous staker rewards after 500 blocks).