Skip to content

Mainnet Ignition v0.14.15 - Recommended Update - Bug fixes

Compare
Choose a tag to compare
@Earlz Earlz released this 24 Feb 18:36
· 28537 commits to master since this release
dd9904a

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.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
    • 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.15-win64.zip - A version of Qtum-Qt, qtumd, and qtum-cli built for 64bit x86 machines using Windows.
  • qtum-0.14.15-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.15-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.15-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.15-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.15-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:

2b2ee97aa6e5716ff8f6bb0539fb551ccfe768070225b95822c33b9263a2d8ab  qtum-0.14.15-osx-unsigned.dmg
ad99fffb0032996ed939b7221587936311cd45813ef355c1819d5e4dbafb8bfb  qtum-0.14.15-osx-unsigned.tar.gz
0118de6e0021c3a4087a9d408b937dedb1743ca7f3b79b0abc0da812eb9c0003  qtum-0.14.15-osx64.tar.gz
f7adccfeb1f3d160e12b1f121a2b11c687bbb89c6e0dfb55f19a1875d529ab9a  src/qtum-0.14.15.tar.gz
127059a716f56d09e9b09009a2ec98731cbf0fd6a5378c29928bc13829a71ac3  qtum-osx-0.14-res.yml

b73be79a0e26e36bbc0b4fb8707541c7d3e775b6b0c2df78664c945e9b1f0724  qtum-0.14.15-aarch64-linux-gnu-debug.tar.gz
38a8ef0a43d5464f70c2278d6c3087712aa1dda27a9014ecb68f0de5cf05e9c8  qtum-0.14.15-aarch64-linux-gnu.tar.gz
45fcf7f08e432f9de5daf81bea0ab21bbc5a91f3b44d26578a666dab0a474b78  qtum-0.14.15-arm-linux-gnueabihf-debug.tar.gz
6aedaddc8356aee6da96f8c8ad268a5d172a72ff9e1897936dd4fa9c363589b9  qtum-0.14.15-arm-linux-gnueabihf.tar.gz
8da41bcbba9e0d3057365f3bfe11f60992bc3600fd6e0a5f1051ec360453e960  qtum-0.14.15-i686-pc-linux-gnu-debug.tar.gz
4d138562a6930d57e89382c91f899912fed73b3b076a9eac54899c2c89c32db8  qtum-0.14.15-i686-pc-linux-gnu.tar.gz
33b8646cf26008b0954fc152bfe14ceee2e8bb874ec072b9540e4c01295cdb81  qtum-0.14.15-x86_64-linux-gnu-debug.tar.gz
00e81a7ab8a8d8a17fbfb0e0b70e425d6057b71b8139357d8ea65e8b9b8f577b  qtum-0.14.15-x86_64-linux-gnu.tar.gz
f7adccfeb1f3d160e12b1f121a2b11c687bbb89c6e0dfb55f19a1875d529ab9a  src/qtum-0.14.15.tar.gz
5e4a25188225eb86d20f06f57fe9e372d7be9c4d1a75e49ae280770019828f00  qtum-linux-0.14-res.yml

6c206976eee01b3cc042ac6c6dc39e17b813886a0d35574ec041302eb74a94f7  qtum-0.14.15-win-unsigned.tar.gz
3a3a77f91a09a64265b5ed65654a59160ca18e476f215b7113da31921fe84c6c  qtum-0.14.15-win32-debug.zip
b0011c8e292165e7fe666535d7dd360d2658d58149df2f93da28472d17344e80  qtum-0.14.15-win32-setup-unsigned.exe
63f6a4a1d3efc292f9ca1be15f9ab92dd9ebdf20b31290d8d6ef3fd85fdcb8f5  qtum-0.14.15-win32.zip
135ed29e378fec9fd6bd47dd4d426340e1b2e2823b1a998d73ba7ffc49d6a22b  qtum-0.14.15-win64-debug.zip
2c9818641c518eb6a86558efc1818eee599f0c123c1646b1e3b474c5771e6c57  qtum-0.14.15-win64-setup-unsigned.exe
a726ba2f04bfcb431ba0de4ccedd645ae3901d0e78e945db1c1492d0d9d5e2b7  qtum-0.14.15-win64.zip
d24e348484ee762701278d0488c87c595aa9d6e36f1ec10ff6674fdee3fd3479  src/qtum-0.14.15.tar.gz
6a8689f39df7ee6b9a592b7ea3bdf7dbaca105b577a9fa94f78a520465b6f6c4  qtum-win-0.14-res.yml

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

wsFcBAABCgAGBQJakav0AAoJEAKXMK2l7Ra+sjMQAKECHkLD27yV2UzQM8Yi/eBC
a+o5ynUox7mFeJa81cby8zZa/WusR1QW/JUYDlGDZsOdH/yuVwVLiN3Q23+FD/W6
ErTvujzpytP2r44XJ76bQirZkaGhMOvj2ym5tlifAIqbh4x2dKzMyaNdUKxwnl0f
TxK60GgxFwOFkMVVRBNBUPCDUvK3PlWr6Kg5WMcLQfEOdTqJOfZr8vwYtyie3TrY
BfoyqOlKE3iOppy+PQcWScxNcGyajCgUuhulRFe6fbDv/hWbls7zK1MLyLHj1HW1
JbEY9QKnAUK0kXhtCwIV88hAX70x6N347ProvVGMqKtZ+aEBfcIYjTcgaVvlhOfL
Z25lQF0NGLTAUnyiRAQA8Hyt/Ya56W/90zCKc1/+uxemqQmQimFmDEplJE5q0553
WdbDoY7m4eazsKcnN1klixZwRVmPhdJMeY5BRuP+tmmv/ALBbikXZSuTzC6o/Z35
3AerPmirz06f1+cDQY9KygKpeqHK8CSH4vxDxsalZjJlNsYPUgij8XNYy/66DxNK
mxwMcnN4L8nv1hqDoVdDY1wZW9eq5M+8PMKBoB1p3tZxux8/mYs+iWUf9SKaBk47
BnVhdqes4EbduzvtmPQakHXiZTt/Ck51YF415hpER/Cwgtz3mmjAUFVhzyGVdnp0
gWmOn0octmyCoj6s97+W
=72jT
-----END PGP SIGNATURE-----