Skip to content

Mainnet Ignition v0.14.12 - Fix RPC bugs, Add disable change address option

Compare
Choose a tag to compare
@Earlz Earlz released this 20 Dec 21:53
· 28746 commits to master since this release
73cb16f

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:

  1. The Ethereum Virtual Machine, which allows for compatibility with most existing Solidity based smart contracts.
  2. 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).
  3. 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.
  4. 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.
  5. 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 Guide and also see this tutorial for deploying a simple faucet 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.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
    • Sending to a contract no longer requires ABI data, allowing easy participation in simple crowdsale contracts
  • v1.0.4: Fix bug where certain circumstances when staking could cause the displayed balance to be inaccurate until completely redownloading the blockchain.
  • v1.0.3: Fix staker bug that reported false messages; slightly increases staking performance; optimize staker parameters; fix white send button in GUI
  • v1.0.2: Various UI fixes, minor gas overflow consensus fix, per-txout exploit fix, testnet mode setup and functioning
  • 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 Documentation and Usage Resources

Basic usage resources:

Development resources:

General Info about Qtum:

Quickstart

The easiest way to get started with Qtum is to simply download the binaries below. To give a brief breakdown of the different versions available:

Windows

  • qtum-0.14.12-win64.zip - A version of Qtum-Qt, qtumd, and qtum-cli built for 64bit x86 machines using Windows.
  • qtum-0.14.12-win64-setup-unsigned.exe - A version of Qtum-Qt, qtumd, and qtum-cli built for 64bit x86 machines using Windows. This includes an installer and will install Qtum system wide.
  • qtum-0.14.12-win32.zip - A version of Qtum-Qt, qtumd, and qtum-cli built for 32bit x86 machines using Windows. If you have an older Windows computer and don't care about installing Qtum system-wide,
  • qtum-0.14.12-win32-setup-unsigned.exe - A version of Qtum-Qt, qtumd, and qtum-cli built for 32bit x86 machines using Windows. This includes an installer and will install Qtum system wide. If you have an older Windows computer and want to install Qtum then this is for you.

OSX

  • qtum-0.14.12-osx64.tar.gz - A version of Qtum-Qt, qtumd, and qtum-cli built for 64bit x86 machines using OSX. If you use a modern Mac and want development tools, this is what you want; we do not support older 32bit or PowerPC based Macs.
  • qtum-0.14.12-osx-unsigned.dmg - A version of Qtum-Qt built for 64bit x86 machines using OSX in a .DMG installable format. If you use a modern Mac and aren't a developer, this is what you want; we do not support older 32bit or PowerPC based Macs.

Linux

Below in the full list of binaries, there are also versions that include debug symbols. These are useful for developers, but will run slower and are significantly larger to download.

Build Qtum Core

If you want to build it from source, it's recommended to follow the specific "build" documentation for your platform. But mostly it boils down to the following:

  1. Clone the qtum source code and cd into qtum

     git clone --recursive https://github.com/qtumproject/qtum.git
     cd qtum
    
  2. Build qtum-core:

    Configure and build the headless qtum binaries as well as the GUI (if Qt is found).

    You can disable the GUI build by passing --without-gui to configure.

    ./autogen.sh
    ./configure
    make
    
  3. It is recommended to build and run the unit tests to ensure everything is working correctly:

    make check
    

If you encounter an error like:

make[2]: *** No rule to make target ‘cpp-ethereum/utils/libscrypt/b64.c’, needed by ‘cpp-ethereum/utils/libscrypt/libbitcoinconsensus_la-b64.lo’. Stop.

Then you did not checkout the cpp-ethereum submodule for Qtum. To do that, simply:

cd qtum
git submodule update --init --recursive

Validate and Reproduce Binaries

Qtum uses a tool called Gitian to make reproducible builds that can be verified by anyone. Instructions on setting up a Gitian VM and building Qtum are provided in doc/gitian-building.md

Community Resources

Make sure to check out these resources as well for more information and to keep up to date with all the latest news about Qtum. At least 1 developer is always around, so if you're developing on Qtum and need help, we'd love to welcome you to our community.

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).

Hash Validation

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

If you would like to validate that the binaries you download are exactly the same as those provided and built by the Qtum team, then you can compare your binaries to the following sha256sum hashes:

3f200d9fc2edfb188b0d191505fb4750a36c199f4002fbfd5639ee43b725d6b9  qtum-0.14.12-osx-unsigned.dmg 
be50c3623d4f1e9423ed2b84419fa7d293a3931ee429ce3ada1efe4a81d19658  qtum-0.14.12-osx-unsigned.tar.gz 
9c79a465cd2e1e0a61940e217e98d7be88369b1a6b7259064c8f63abc4b5367d  qtum-0.14.12-osx64.tar.gz 
32df22b9cca3442cee6b0c933347ea8ba103ef3aaa2a37693e9975dd7020f88f  src/qtum-0.14.12.tar.gz 
aa88cfb81090276c9b6569fbda0a213475f71f380629becceb658ccffef6ecc5  qtum-osx-0.14-res.yml 

2b20f263d5c63902a8f1748a2b05a2e2e05f8a3b7d32a04291bc3846dc3a53b7  qtum-0.14.12-aarch64-linux-gnu-debug.tar.gz
dcc5fda0f54e180fdf8029442623c45c85d7de08fc9633b5769a632971be4806  qtum-0.14.12-aarch64-linux-gnu.tar.gz
fa33f5ee5bac3d1225449d62173e73c4cc456de1b46c9c24d84cd539f8e6a0ee  qtum-0.14.12-arm-linux-gnueabihf-debug.tar.gz
57701254f2b3f7eb5fe7619f2e614c90f739eee7aa3ab74603c06da11b74fdca  qtum-0.14.12-arm-linux-gnueabihf.tar.gz
ed27f7a55183069a43fd3fddd6f0706652de565acd36c76ff573a9fecbb802c8  qtum-0.14.12-i686-pc-linux-gnu-debug.tar.gz
f329d0c5766977bbf4079e34bef710eb87fa9ebb076f089e534b03137fc39aad  qtum-0.14.12-i686-pc-linux-gnu.tar.gz
1a48b980aac389282d232cd7769c7297f4afe251ef9c8bb0ee847d33c6a53010  qtum-0.14.12-x86_64-linux-gnu-debug.tar.gz
5ccf9dd08327522fcc0d58ae5b53de6851d881c10967009048126eee07d5586b  qtum-0.14.12-x86_64-linux-gnu.tar.gz
32df22b9cca3442cee6b0c933347ea8ba103ef3aaa2a37693e9975dd7020f88f  src/qtum-0.14.12.tar.gz
3e724f5d2e810a2c2f2d3920ccf649ff02936a1df038f694dca0d1466b261605  qtum-linux-0.14-res.yml

7ad107cfea42a9bd2e467c3c324865fb9aeb2a6cbb1222a98f007b60ee1626cd  qtum-0.14.12-win-unsigned.tar.gz 
aa9a415041b9de6144b9fecfc425e8c8176095f3953c4e2b3004720867129752  qtum-0.14.12-win32-debug.zip 
881742ab8ab75c785499bc906be8328e9c4db62ca017259bfaf974d58c812a37  qtum-0.14.12-win32-setup-unsigned.exe 
4368fcc9cdc78b7020d68d5d61e00bd193ccd11c381d4c42947d17692249c431  qtum-0.14.12-win32.zip 
6648e27e99a1600727bd9a309bc24266f95059207ab37b3465adaf48b5b6157d  qtum-0.14.12-win64-debug.zip 
add6b0ac97d47b2f18a93968685d8e070cd3533944e4cb64ef99e7debf44e468  qtum-0.14.12-win64-setup-unsigned.exe 
0485822fcd2c5018ea024a8397467a3a8025014f139167d70ee03a15d655ada1  qtum-0.14.12-win64.zip 
a1076654cfe2c8269a577d614f542d3a913683b9cda0afe8db69310c223cd6fa  src/qtum-0.14.12.tar.gz 
7147d5cc17a48dcae7d11395ce82746e7908cb7029692a4bb8518550e92436cd  qtum-win-0.14-res.yml 

VirusTotal reports at time of release:

* win32 installer: https://www.virustotal.com/#/file/881742ab8ab75c785499bc906be8328e9c4db62ca017259bfaf974d58c812a37/detection
Kaspersky and ZoneAlarm reports "HEUR:Trojan.Win32.Generic"
Ikarus reports "Trojan.MSIL.Disfa"
Cylance reports "Unsafe"
* win64 installer: https://www.virustotal.com/#/file/add6b0ac97d47b2f18a93968685d8e070cd3533944e4cb64ef99e7debf44e468/detection
Kaspersky and ZoneAlarm reports "HEUR:Trojan.Win32.Generic"
* win32 zip: https://www.virustotal.com/#/file/4368fcc9cdc78b7020d68d5d61e00bd193ccd11c381d4c42947d17692249c431/detection
Kaspersky and ZoneAlarm reports "HEUR:Trojan.Win32.Generic"
Ikarus reports "Trojan.MSIL.Disfa"
* win64 zip: https://www.virustotal.com/#/file/0485822fcd2c5018ea024a8397467a3a8025014f139167d70ee03a15d655ada1/detection
Kaspersky and ZoneAlarm reports "HEUR:Trojan.Win32.Generic"


You can validate this message is from Earlz at https://keybase.io/verify
-----BEGIN PGP SIGNATURE-----
Version: Keybase OpenPGP v2.0.76
Comment: https://keybase.io/crypto

wsFcBAABCgAGBQJaOttqAAoJEAKXMK2l7Ra+gwQP/Az+KEi/ZCXucsLk9P7IscX3
gzbalNsHYdzr5D69OvGL7dLKDzwBt2QcenQ/m2/AzeNJvj/qlcZLj8cNGVrwNk8l
nKXBdE8mYp+roGm4cQnfZeZQL86K7hw1GHboHkEMiNmGK8HRIuMZI9RpdwHjxS0H
75YESBnu7EwANCARJ9g/fgRBja7cr+W7WqgD+7nm60Vokx51HiYw4J5/NGa0TjQj
Y86MLkFofo/8XlleTCLwbwD4t3R7CbRfh1gDslvEcqDXhgPi2tTQxtZh1al1Q9oQ
bJlZIhqnsLPg5lIDapGhq82usJ76PZQ+axZCm6B30C//solcCRP0+PiY4RiSFMBM
OImkIsERO+KD9PEGtTvXt3K+JHAhXd3/m5pciiAZ6ZkSiSg35SJr43GisVJPXVDZ
s0xx6kCMZyp5/nDHuIRwZyxplnvOUFuaCTMhDIDn7WgdhOeWawpdZIQKfZsf4wFP
QoxKnJD2nmSmSVLnV5yw6DYSN4tBWUeW/8bIfy9bbwCpbbDA7oA96NStPv8OMFov
SIU8+JG9BvtLvM91IsM7jotk+Wmlx/h8Ha06Tn/F3aCWZi0tlpQs3AwDwC6DywPr
IWLg+7DwFhKe2vx3KzghGGrrLHKU9JmSan2MzE1HJ7HggRAJbZKD26SivO04qCi9
EhsLrKNFFvKWZAHGOUgr
=ihNI
-----END PGP SIGNATURE-----