Mainnet Ignition v0.15.2 - Recommended update - Improved seeding and bug fixes
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 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.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
andsendtocontract
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
- 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:
- Official Qtum Usage Guide
- Unofficial Qtum staking tutorial
- Unofficial Qtum staking tutorial on Raspberry Pi
- Unofficial guide for keeping your wallet safe
- Block explorer
- Unofficial block explorer
- Unofficial Raspberry Pi Web UI
Development resources:
General Info about Qtum:
- Mainnet event AMA
- Qtum's PoS vs CASPER
- Technical article explaining Qtum's PoS model in depth
- Unofficial What is Qtum article
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.16-win64.zip - A version of Qtum-Qt, qtumd, and qtum-cli built for 64bit x86 machines using Windows.
- qtum-0.14.16-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.16-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.16-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.16-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.16-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
- qtum-0.14.16-i686-pc-linux-gnu.tar.gz - A version of Qtum-Qt, qtumd, and qtum-cli built for 32bit x86 PC platforms running Linux. This is probably what you want for older computers running Linux
- qtum-0.14.16-x86_64-linux-gnu.tar.gz - A version of Qtum-Qt, qtumd, and qtum-cli built for 64bit x86 PC platforms running Linux. This is probably what you want for any modern PC or server running Linux
- qtum-0.14.16-arm-linux-gnueabihf.tar.gz - A version of qtumd and qtum-cli built for 32bit ARM platforms using Linux. This includes the Raspberry Pi and many of it's clones
- qtum-0.14.16-aarch64-linux-gnu.tar.gz - A version of qtumd and qtum-cli built for 64bit ARM platforms using 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:
-
Clone the qtum source code and cd into
qtum
git clone --recursive https://github.com/qtumproject/qtum.git cd qtum
-
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
-
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
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:
ff3596f35ecbb4860e6cfae1e5dbb0250d3bd9d02229fb70b79713e3dfb464e6 qtum-0.15.2-osx-unsigned.dmg
d7743f125bdfcbacb0fdb91e56c201830bc811beca00933bb12a7df4bfcd6170 qtum-0.15.2-osx-unsigned.tar.gz
59c19cb01fffb7d3d8322ce661c13e39e52dd7234cd64d1dcda3bd824e5e20a7 qtum-0.15.2-osx64.tar.gz
4997afd7234dba6ddefd6095de5896af31dc8bc34e42e9230ac0dfa60e0e335e src/qtum-0.15.2.tar.gz
0802d2758deae068fe15f9b00cf6dda3ead07db871d5a5d01ce266e32cc60fcb qtum-osx-0.15-res.yml
1f2f2fc3419ad62ae6acd419e923c233c4b60230f5cd57047c7f3e76ed2c3225 qtum-0.15.2-win-unsigned.tar.gz
b38f58c1302b4bba87885df0cc69a742e5fa4da5a9fbedbf334e48992612e849 qtum-0.15.2-win32-debug.zip
a7ed7e407909002988aa373573221775635053596f81e67437e96e2cf0e790c1 qtum-0.15.2-win32-setup-unsigned.exe
76c7167d950c1358f0f30974a2a630886e857437006a0ef085c0517c13ce9e9b qtum-0.15.2-win32.zip
c5bede598250a0df1ae1e660cf53b7636dc8854b55ddeab5234f4260512bb573 qtum-0.15.2-win64-debug.zip
eba9deed892b53184e8314d89a887d47cb81575253c454ac602dd30cfebb663e qtum-0.15.2-win64-setup-unsigned.exe
67daef12f795176e1be03f79c2da236bb970ff9ab3b6ae8409f0de6122868105 qtum-0.15.2-win64.zip
e5c64c20a9f4a0c475a3a4d8092a6419c9016b2a7d9ca7beb5ffea5e50cb841a src/qtum-0.15.2.tar.gz
a5aa0a87511a190a8b78d4e6939c4285c30e8f9d194399b7a9a878c1589b87e4 qtum-win-0.15-res.yml
4b034ded5df6ce044d3274e00070a848b514d48ff098a457827306d84f605cd2 qtum-0.15.2-aarch64-linux-gnu-debug.tar.gz
00a7a4b3fc991e30f1fbf6c90da2eb1e7c7bce2294459524a98922fd0972f7fe qtum-0.15.2-aarch64-linux-gnu.tar.gz
dffc9f2723a47a4247158feb658df3947e276473860a06941bbd37a1785b60cc qtum-0.15.2-arm-linux-gnueabihf-debug.tar.gz
eab3b82b718053e543f834c8866d8f37da9f76c64de212cfe9721bc94a5dd5dd qtum-0.15.2-arm-linux-gnueabihf.tar.gz
80a02a6ada95154e5a11902ed6f7934974dacba2e82b1cef60882964920f0324 qtum-0.15.2-i686-pc-linux-gnu-debug.tar.gz
83cc859f6e65690bd6133c64684ab71c6118e5398492ffa300156defbd72d948 qtum-0.15.2-i686-pc-linux-gnu.tar.gz
2d428f3537e8e9e73241e8c441fbf9d2f3320697c1cda5745be2c7fae7c778a1 qtum-0.15.2-x86_64-linux-gnu-debug.tar.gz
25cc7cec21029afc1eaec5e154a230f2337910e266a56fbd810d95de98115309 qtum-0.15.2-x86_64-linux-gnu.tar.gz
4997afd7234dba6ddefd6095de5896af31dc8bc34e42e9230ac0dfa60e0e335e src/qtum-0.15.2.tar.gz
9d851119aef9cc349d95dc528abe5e3d70b462dac4c2c551c2f98cceb768ed5d qtum-linux-0.15-res.yml