Skip to content

Mainnet Ignition v1.0.4 - Recommended Staking Update

Compare
Choose a tag to compare
@Earlz Earlz released this 31 Oct 15:41
· 28902 commits to master since this release
c907f02

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

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

191cea2e4d1e1e6eda48a2044352497503db864bcb9d37e82f54f0ac0993b5c1  qtum-0.14.5-osx-unsigned.dmg
0a07a7cf7b66dcc214c551825672aaf0055d5047b621c67e8d7113bbeb2a6d49  qtum-0.14.5-osx-unsigned.tar.gz
16865c934a79350f9378baf49fbce5ef482d9f5ea4e90ffdd4f200344032f062  qtum-0.14.5-osx64.tar.gz
3d056fdd4d19ac7e7323f933c98650bc787becd72d4aad8a495e3017cf686589  src/qtum-0.14.5.tar.gz
b8e1d0096b041fdbbda6b086321da1b61289147653ce7d525bfc2c398e33e7f0  qtum-osx-0.14-res.yml

2a4d502f9b914c021ef83fd10ccfc628369ce4bed3818ae9f078a4192c627380  qtum-0.14.5-aarch64-linux-gnu-debug.tar.gz
abc7f201f1621cc960a1dd8bb1fb60c7d50ac6a2a8e589c25183c687022d0a90  qtum-0.14.5-aarch64-linux-gnu.tar.gz
50e9c53284ae8a33f35b6db3ef88e91bdb433211a1bee7dffacdf8c68796a8b1  qtum-0.14.5-arm-linux-gnueabihf-debug.tar.gz
113d7b889f6a8112e0a0749c5570ed6f8e0425a71be1c9129f94b46027dd2b4b  qtum-0.14.5-arm-linux-gnueabihf.tar.gz
cd03398747c543eb298a342a98f709058f5a819c741fd9f0287f82915f5f97f3  qtum-0.14.5-i686-pc-linux-gnu-debug.tar.gz
c944edc6b0ae607ee0c1ae265c3690662c1341d71acd4be339786d0ed033381b  qtum-0.14.5-i686-pc-linux-gnu.tar.gz
91e181510e707f214c1a33a5801280b7ff2cfce35e58b5604adad2affceab5f7  qtum-0.14.5-x86_64-linux-gnu-debug.tar.gz
754dac3e4e719b88851281175e660708f502427a846a33778e3a5331aa06c576  qtum-0.14.5-x86_64-linux-gnu.tar.gz
3d056fdd4d19ac7e7323f933c98650bc787becd72d4aad8a495e3017cf686589  src/qtum-0.14.5.tar.gz
d27216322779b4305f62a9f2d1905c0fef0b8c6d13243e93bf1857116749fa8d  qtum-linux-0.14-res.yml

69b316b9d069f0374255496fcc28540279fc40725f7bb4211aa6a84682159618  qtum-0.14.5-win-unsigned.tar.gz
23874dfbf194945426529f6e9bd116908e10b345221c5e94693b700c6bc3321e  qtum-0.14.5-win32-debug.zip
856c4a85b53eff7c63787ab0498852e2f16af8088415e93ce5a534f719768fe2  qtum-0.14.5-win32-setup-unsigned.exe
6364f81877b8867d4fbf35cc28067b470ef8abc6d3d63d9eb58283ec3abac317  qtum-0.14.5-win32.zip
b8cc0d50513ebae0e3a591090c9f536c618a6434b5065b7fe5fba8053a2c8ede  qtum-0.14.5-win64-debug.zip
77a555d8d4ccf08b112b8424c562b214fbd94f352454235102ffe672d533aff4  qtum-0.14.5-win64-setup-unsigned.exe
3b89aef0e01af7d30424b3e5db15dde3da3f675eb731cef61304c5f8f5b8e90e  qtum-0.14.5-win64.zip
0f2b3338e9e941f60a02cc923767c36983c37104658327369bc72ae6ab5a18f0  src/qtum-0.14.5.tar.gz
448a1a2ddbee689492dc322ebd4b3bc3c3463ff628f310e9a7e45c00d3ed9cd8  qtum-win-0.14-res.yml

In addition, as of the time of this writing, VirusTotal detects 0 false positives on the Windows 32bit and 64bit zip files, 0 false positives on the Windows 32bit installer, and 1 false positive on the Windows 64bit installer:

installer win32: https://www.virustotal.com/#/file/856c4a85b53eff7c63787ab0498852e2f16af8088415e93ce5a534f719768fe2/detection 0 false positives.

installer win64 https://www.virustotal.com/#/file/3b89aef0e01af7d30424b3e5db15dde3da3f675eb731cef61304c5f8f5b8e90e/detection 1 false positive(AhnLab-V3 Trojan/MSIl.Disfa.C2221224)

zip win32 https://www.virustotal.com/#/file/6364f81877b8867d4fbf35cc28067b470ef8abc6d3d63d9eb58283ec3abac317/detection 0 false positives

zip win64 https://www.virustotal.com/#/file/77a555d8d4ccf08b112b8424c562b214fbd94f352454235102ffe672d533aff4/detection 0 false positives

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

wsFcBAABCgAGBQJZ9+jDAAoJEAKXMK2l7Ra+f4UP/3KrjsOYg7W3nAIstLLLwX2e
qJSCxRdSeKwNJghr4Z0UHQqqt0EHmurZc8MYc5c4PTdyzp8oUmxe/C5x4LGppP6B
mmUIh3+ffbrqApaWs43ar1J+E7ClgdqjVCHuu/hoBms+4yaRfviy6Xh1r+lUciWV
I0dQ7eGkn/7/ReSvepDBMUGP0z2QeXQQwpxoXBzkm0snrSHpTdEfJI3VLUo17U49
4RbrMPc3DNW6zMfXhISxYnRLq7nt/rEzxLM9cbn3oNsgjRU9b49A8OrqnH125FNq
6ufetYhEsscAOrWNpIPl+sNID7unGen7BzwGX0pC0F6f1GCXwJHLpo2r9ZBI19rH
eG+9fj4GfXGiQinCnaBsydni56lEALev7irNeaXsh4BUfq0OC45nSQ4EvXEqPq0l
tGCzKfB+S6CilNN6E3UT5PiB7pRBSV560lKSEjIqC4wOjc09SUyBuUzTJgb0RLdG
9+V8rhogX9xiBWmRZCbcbqrQxA02GgH2tD+nW+zT7Td2TuOjPgs3lvk07382+wQy
89Lnk9z3+mWy6ztMySow7cbokl7gf5e38U+NXEuBJrXHs8ODmOIzQWRUbUoHCXNh
xZmodXpmaXaY3BCPdpdgeB2V6Wb/5ZKIDqXn2Ql9+r52mrNd93F2mVIPXcmDS9vH
Ap3KyxYWxaOGfdxrI5MC
=WDoX
-----END PGP SIGNATURE-----