Releases: qtumproject/qtum
Mainnet Ignition v1.0.4 - Recommended Staking Update
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
- 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
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.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
- qtum-0.14.5-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.5-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.5-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.5-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...
Mainnet Ignition v1.0.3 - Optional Staking Update
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
- 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
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.4-win64.zip - A version of Qtum-Qt, qtumd, and qtum-cli built for 64bit x86 machines using Windows.
- qtum-0.14.4-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.4-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.4-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.4-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.4-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.4-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.4-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.4-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.4-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](https://github.com/qtumproject/qtum/blo...
Mainnet Ignition v1.0.2
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.
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.
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:
%APPDATA%\Qtum
(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-win64.zip - A version of Qtum-Qt, qtumd, and qtum-cli built for 64bit x86 machines using Windows.
- 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.
- 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,
- 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.
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 wa...
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 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)
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:
%APPDATA%\Qtum
(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,
- 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.
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
- v1.0: Initial release
Ignition Mainnet Release v1.0
Dear Qtum Community,
We appreciate the support you have given us since we started this project in 2016. Since our March 2017 crowd sale, we have delivered a working proof-of-concept, followed up by two test networks. The sheer amount of work invested in this project has been immense. To date, there have been contributions from over 20 developers, totalling over 60,000 man hours. We have always delivered on time, therefore, we would like to announce that the Qtum main network is officially complete.
This release includes a working Smart Contract and Decentralized Application platform, secured by a Proof-of-Stake consensus model. We have taken steps to ensure scalability is not a problem by introducing our Decentralized Governance Protocol.
This does not mean development will slow down, on the contrary, we will continue to test new features and expand on our impressive technology stack. Please remember, we aim to deliver a truly decentralized blockchain platform, not a centralized database.
Over the next few weeks, we will explain how the ERC20 swap will take place. We ask that all Qtum holders safely store their tokens, and back up their private keys. We will contact exchanges and service providers and work with them to ensure that no one gets left behind during this swap process. We fully understand that people are busy, and cannot be on their computers every day, so we will make every effort to accommodate our community.
Sincerely,
The Qtum Team
Skynet Release v1.2
Qtum is a decentralized blockchain project built on Bitcoin's UTXO model, but with support for Ethereum Virtual Machine based smart contracts. It achieves this through the revolutionary Account Abstraction Layer. For more general information about Qtum as well as links to join our community, go to https://qtum.org
Welcome to Qtum Skynet, the second public testnet for the Qtum blockchain. The previous testnet was named Sparknet. The testnet is only for testing, as such, its tokens hold no value and production applications should not yet be created on the testnet blockchain. All tokens aqcuired during the testnet will cease to exist when the mainnet is released which actually has tokens which hold value. The purpose of the public testnet is to allow developers to begin testing and developing applications, allow early adopters to see a preview of how the network will behave, and for the Qtum development team to run several load tests which are not directly comparable when done on a private and controlled network.
Qtum Skynet will ideally have the same consensus features and parameters as the Qtum mainnet. We do not intend to add new consensus features during this period and the Skynet testnet should be a very realistic preview of how the mainnet network will function and behave. We will be added new non-consensus features such as new RPC commands, GUI features, and of course bug fixes and other things that make Qtum easier to use without modifying the blockchain protocol.
The major features and improvements implemented in Skynet include:
- The Decentralized Governance Protocol is completely implemented and functional
- The Smart Staking Protocol is complete to our specifications (Sparknet was missing a feature called MPoS which makes attacks more expensive to execute)
- A very 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
- A great number of bug fixes and various improvements, including a bug fix to a performance problem which caused Sparknet nodes to sync extremely slowly as the blockchain grew larger
- All Solidity operations for smart contracts behave as expected now. The only compatibility break is contracts are not allowed to create contracts with an initial endowment of coins. The contract must first be created and then sent coins in a separate transaction.
For more technical information for how to start developing with Qtum Skynet please read the Guide and also see this tutorial for deploying a simple faucet smart contract (it hasn't yet been updated for Skynet, but all the instructions are the same)
Upgrading from Skynet v1.1 and below
In Skynet v1.2 a change was made which requires reindexing the blockchain. This can be done by using the command line argument -reindex
when running either Qtumd or Qtum-Qt. Instructions for using command line arguments with a program:
Alternatively, you can also follow the instructions below to delete the blockchain (but keep the wallet.dat
file if you received any testnet Qtum) which will also accomplish the chain being reindexed.
Deleting the Sparknet blockchain
If you downloaded the Sparknet wallet and ran it at some point, then most likely you have a copy of the Sparknet 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:
%APPDATA%\Qtum
(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.
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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.
- /r/Qtum on Reddit
- Qtum.org
- Slack chat room
- @QtumOfficial on Twitter
- Qtum on Facebook
- Qtum Forum
- Block explorer for Skynet (Coming soon!)
- Faucet for Skynet (Coming soon! Ask in our community in the meantime)
Update History
- v1.2: Fixed several minor consensus bugs and fixed some major staking bugs, as well as improved the GUI
- v1.1: Fixed ...
Skynet Release v1.1
Qtum is a decentralized blockchain project built on Bitcoin's UTXO model, but with support for Ethereum Virtual Machine based smart contracts. It achieves this through the revolutionary Account Abstraction Layer. For more general information about Qtum as well as links to join our community, go to https://qtum.org
Welcome to Qtum Skynet, the second public testnet for the Qtum blockchain. The previous testnet was named Sparknet. The testnet is only for testing, as such, its tokens hold no value and production applications should not yet be created on the testnet blockchain. All tokens aqcuired during the testnet will cease to exist when the mainnet is released which actually has tokens which hold value. The purpose of the public testnet is to allow developers to begin testing and developing applications, allow early adopters to see a preview of how the network will behave, and for the Qtum development team to run several load tests which are not directly comparable when done on a private and controlled network.
Qtum Skynet will ideally have the same consensus features and parameters as the Qtum mainnet. We do not intend to add new consensus features during this period and the Skynet testnet should be a very realistic preview of how the mainnet network will function and behave. We will be added new non-consensus features such as new RPC commands, GUI features, and of course bug fixes and other things that make Qtum easier to use without modifying the blockchain protocol.
The major features and improvements implemented in Skynet include:
- The Decentralized Governance Protocol is completely implemented and functional
- The Smart Staking Protocol is complete to our specifications (Sparknet was missing a feature called MPoS which makes attacks more expensive to execute)
- A very 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
- A great number of bug fixes and various improvements, including a bug fix to a performance problem which caused Sparknet nodes to sync extremely slowly as the blockchain grew larger
- All Solidity operations for smart contracts behave as expected now. The only compatibility break is contracts are not allowed to create contracts with an initial endowment of coins. The contract must first be created and then sent coins in a separate transaction.
For more technical information for how to start developing with Qtum Skynet please read the Guide and also see this tutorial for deploying a simple faucet smart contract (it hasn't yet been updated for Skynet, but all the instructions are the same)
Deleting the Sparknet blockchain
If you downloaded the Sparknet wallet and ran it at some point, then most likely you have a copy of the Sparknet 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:
%APPDATA%\Qtum
(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.
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.0-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.0-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.0-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.0-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.0-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.0-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.0-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.0-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.0-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.0-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.
- /r/Qtum on Reddit
- Qtum.org
- Slack chat room
- @QtumOfficial on Twitter
- Qtum on Facebook
- Qtum Forum
- Block explorer for Skynet (Coming soon!)
- Faucet for Skynet (Coming soon! Ask in our community in the meantime)
Update History
- v1.1: Fixed a consensus-critical bug with how contract funds were managed in Skynet v1.0
- v1.0: Initial release
Skynet Release
This release was for v1.0, please see the new release page for Skynet v1.1: https://github.com/qtumproject/qtum/releases/tag/testnet-skynet-v1.1
Sparknet Release
Qtum is a decentralized blockchain project built on Bitcoin's UTXO model, but with support for Ethereum Virtual Machine based smart contracts. It achieves this through the revolutionary Account Abstraction Layer. For more general information about Qtum as well as links to join our community, go to https://qtum.org
Welcome to Qtum Sparknet, the first public testnet for the Qtum blockchain. Sparknet is designed primarily for developers, and as such documentation at this point will be technical and suited more for developers. The mainnet is expected to be released in September and will be suited for the general public. Testnet tokens do not hold any value and should not be traded for any monetary instruments. The testnet can be reset or forked at anytime as deemed necessary for development. Sparknet does not include support for Mutualized Proof Of Stake, or for the Decentralized Governance Protocol. Both of these features are implemented, and their code is available on alternative branches (check the pull requests), but have not been tested and proven stable enough to include in this testnet. They will be implemented in the 2nd public testnet for Qtum.
For more technical information for how to start developing with Qtum Sparknet, please read the Sparknet Guide
Quickstart
Build on Ubuntu
This is a quick start script for compiling Qtum on Ubuntu
sudo apt-get install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils git cmake libboost-all-dev
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:bitcoin/bitcoin
sudo apt-get update
sudo apt-get install libdb4.8-dev libdb4.8++-dev
# If you want to build the Qt GUI:
sudo apt-get install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler
git clone https://github.com/qtumproject/qtum
cd qtum
# Update cpp-ethereum submodule
git submodule update --init --recursive
# Note autogen will prompt to install some more dependencies if needed
./autogen.sh
./configure
make -j2
Build on OSX
The commands in this guide should be executed in a Terminal application.
The built-in one is located in /Applications/Utilities/Terminal.app
.
Preparation
Install the OS X command line tools:
xcode-select --install
When the popup appears, click Install
.
Then install Homebrew.
Dependencies
brew install cmake automake berkeley-db4 libtool boost --c++11 miniupnpc openssl pkg-config protobuf qt libevent
NOTE: Building with Qt4 is still supported, however, could result in a broken UI. Building with Qt5 is recommended.
Build Qtum Core
-
Clone the qtum source code and cd into
qtum
git clone --recursive https://github.com/qtumproject/qtum.git cd qtum git submodule update --init --recursive
-
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:
make check
Run
Then you can either run the command-line daemon using src/qtumd
and src/qtum-cli
, or you can run the Qt GUI using src/qt/qtum-qt
2Gb of RAM is recommended for building Qtum. If you encounter internal compiler errors or out of memory errors in autogen, then you can modify the last line of autogen to be something like:
make -j1
This will disable multicore building of some cpp-ethereum dependencies