QTUM Release Mainnet Ignition v1.0.1

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

Deleting the Sparknet and Skynet blockchain

If you downloaded the Sparknet or Skynet wallet and ran it at some
point, then most likely you have a copy of the Sparknet or Skynet
blockchain on your computer. There is no value in keeping this and it is
safe to delete. You simply need to delete the data directory you chose
when you first ran Qtum. If you're not sure, then it is probably in the
default location. This location depends on platform:

On Linux: ~/.qtum

On OSX: ~/Library/Application Support/Qtum

On Windows: ###code# (copy and paste this into your Explorer address bar and it'll take you there)

If you get an error about "unknown genesis block" or something
similar, then this is the problem and you need to delete the old
blockchain. Make sure to not delete the file wallet.dat if
you have any mainnet Qtum tokens stored in an address within it. (It's
recommended to keep it and then resync and make sure your coins are
safe, just in case)

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.3-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, then this is for you.

qtum-0.14.3-win64.zip
- A version of Qtum-Qt, qtumd, and qtum-cli built for 64bit x86
machines using Windows. If you have a modern Windows computer and don't
care about installing Qtum system-wide, then this is for you.

qtum-0.14.3-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.

qtum-0.14.3-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. If you have a modern Windows computer and want to install
Qtum then this is for you.

OSX

qtum-0.14.3-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.3-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.3-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.3-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.3-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.3-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

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

Qtum v1.0.1 Limitations/Bugs

The only known bug at this time is the "per-txout" bug from Bitcoin
which was demonstrated at the Breaking Bitcoin conference. This is
nearly fixed, but requires a lot of testing since it is a large change
to make at this point. We plan to have a v1.0.2 release soon with this
bug fixed, as well as a completely setup -testnet mode with faucets etc.

Update History

v1.0.1: Fixed network magic bytes and minimum version to ensure the main network does not conflict with the Skynet network