Skip to content

Mainnet Ignition v1.1.2 - Qtum QRC Token Support (bugfixes)

Compare
Choose a tag to compare
@Earlz Earlz released this 16 Nov 23:41
· 32165 commits to master since this release
2a7afc9

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

8b3154f78567b0656e65a27035a97d97a800744dacefae0c6cc286c6866e34a4  qtum-0.14.8-osx-unsigned.dmg
c855987b4bb16a333622a1f5b185573c780512789997f9c628a8c06bfae26eb1  qtum-0.14.8-osx-unsigned.tar.gz
10f4c5574ca900e2134dca9ac8880d5ae0f82ec08c4f9aea88da3937c7a08edb  qtum-0.14.8-osx64.tar.gz
edfd26416545caea73c73c62e6326690fa5a239fcbe66300bd42cdf010dd0cb8  src/qtum-0.14.8.tar.gz
1887a60f01571c1156028dd9b7c3316c387517d7177bdb2d870c0458ac28781d  qtum-osx-0.14-res.yml

1683f03a3448862cae1bcb0069e06b3b7c9805c90e7d43f64b28b78f2d243cb1  qtum-0.14.8-aarch64-linux-gnu-debug.tar.gz 
3ea7fd8a049ac5e6fb86e75944ccd5bf0dec62ae7cbc0caaa92d6e28b7233d5f  qtum-0.14.8-aarch64-linux-gnu.tar.gz 
5ef4a469aedd210cdf855155e6f389aacd890ee2cd9309682f01f9a6e60c62c2  qtum-0.14.8-arm-linux-gnueabihf-debug.tar.gz 
fe60a3c82116c98fa25bb6dc203ff6211c26bb4977fa4d3df5290a42b9ecc446  qtum-0.14.8-arm-linux-gnueabihf.tar.gz 
49b7c64c7b3efa598980feb5442823871208de41a57caf4b124639d4962e4270  qtum-0.14.8-i686-pc-linux-gnu-debug.tar.gz 
86151f07bebcc044780a1b8f7035d4fe344d4f330040b9b6f55bee5f95434974  qtum-0.14.8-i686-pc-linux-gnu.tar.gz 
f0ec5d129183bb94d4a06b411b648d0948e55eb1b4c1b117afcde4fd75d2aaed  qtum-0.14.8-x86_64-linux-gnu-debug.tar.gz 
a94a5e61473eb83a90e34bae29b1d44af8ed966cac09003148778aa63a46e081  qtum-0.14.8-x86_64-linux-gnu.tar.gz 
edfd26416545caea73c73c62e6326690fa5a239fcbe66300bd42cdf010dd0cb8  src/qtum-0.14.8.tar.gz 
e940134ac98546638fac8f6a3dc5b006ef1a9ed8f1255e1457f4ffd0e6e10de3  qtum-linux-0.14-res.yml 

274c4653cacf2c9519d0fed6e60e121649ad9311570c4300349c1639926f2433  qtum-0.14.8-win-unsigned.tar.gz
9f910b6f6116eba4530ff86461d9b692725bddce19d3732632d1e25a55e07d29  qtum-0.14.8-win32-debug.zip
2c79d901f503ed110ce46453e1ca06db2a62d266fcbf847e33b102dacfeaa6c5  qtum-0.14.8-win32-setup-unsigned.exe
93ffe9cce42ba2aa104249f5b20de17e9fa95c36f68b8909aefb071151f9be46  qtum-0.14.8-win32.zip
9ba4aad9dfd38db2a853b1f30b683db8b701b665b3d3776e9a377483dad29919  qtum-0.14.8-win64-debug.zip
8f3b4c4e138b81b7bc91cf213dd29a311cc3ca5999b5b80b95a0373b8746ce90  qtum-0.14.8-win64-setup-unsigned.exe
61ea512e630bc9a8783488188460ab176d5ec967d8def2438b9ecc3dccf58d13  qtum-0.14.8-win64.zip
a7d1d7a038b3b85f48de56c4f283bf0eb0ee621c6d5d53f3584c0f7398e32fcd  src/qtum-0.14.8.tar.gz
ce46c4471d174d7983dcff15d2a289ca6111bc6709d8cd16f0e700ad110ff5dc  qtum-win-0.14-res.yml

In addition, as of the time of this writing, VirusTotal detects 2 false positives on all of the windows files. These false positives are labeled "HEUR:Trojan.Win32.Generic" and are from Kaspersky and ZoneAlarm.

installer win32: https://www.virustotal.com/#/file/2c79d901f503ed110ce46453e1ca06db2a62d266fcbf847e33b102dacfeaa6c5/detection

installer win64 https://www.virustotal.com/#/file/8f3b4c4e138b81b7bc91cf213dd29a311cc3ca5999b5b80b95a0373b8746ce90/detection

zip win32 https://www.virustotal.com/#/file/93ffe9cce42ba2aa104249f5b20de17e9fa95c36f68b8909aefb071151f9be46/detection

zip win64 https://www.virustotal.com/#/file/61ea512e630bc9a8783488188460ab176d5ec967d8def2438b9ecc3dccf58d13/detection

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

wsFcBAABCgAGBQJaDiJ5AAoJEAKXMK2l7Ra+Li4P/0qO2DWNtsch85NYA6V6Jer5
xQPGqIrU1cd0FA6LhVXzuGAYuSBwGTcu4IOgkjV9Z86aGA2/4N95cn5H+ZROqFaP
2cmxah+YgxfjLSPu0Wmn9hrfBL8a71ggc7zEOOoaRz6H9u6Utj94iazMDx1Mb5SD
5fxmIxCLajbDduHqQTz9wVJUnXL3FWD5WAQ454yIzTRAxXdZ3SD9BcGwiX3zQ4VM
82pcOgjxnP3FvS20rTFIyViXGAN0CcrXtZa+Co32cpBufKim+LvVgHUm0maa0kKz
kwPbs8TYssnVP/IIGr3TkdtY+nAbqQvVzcjVlA7A1L6jobe41LCyGuYtDPGh0Dsi
yb2ba+g0SX+vyUyJJHkZrFfwIimgLPpAfGAA2/KuJj+YYK/LBw4Z9T1h/6yQWPWW
N8p9jQtG/nTFXue5xAiksYtIxWwtnKkNEtMIeddfn9Vox2emqEXEDEoqTbTYHkKa
/JnK40mkyJ1C52PD53avqUpQeTydAmzWU3f5sQB3S2iSvU4aaEW6wt4OeYNFMARH
W6CNn2L+oXJz1Uf7biQefaq1hvP80bJiecNb+KAAr3OMtUJWv5oiFsZIttAp0qmn
M3LLPQn5vsoWlI5WQ/kLSu4hT9JUfGAOmkeByh1MIE8oH/1mxEgr5L/ORFBHTzZw
uUJSvqQmmG6COhcIkqrz
=eBNe
-----END PGP SIGNATURE-----