https://qtum.org/qtum-development-updates-2/seems Qtum have another updates on their development work.Qtum Development Updates 2The Qtum development team has been very busy since our last technical update. There are several different facets which are being worked on now.
Qtum Core
Although we have functioning smart contracts and a functioning fork of Bitcoin 0.13 using PoSv3, these are, so far, still on separate branches. The primary focus over the past two weeks has been testing and fixing bugs between these two versions. However, our new priority since both are mostly stable is to merge them together into one cohesive blockchain.
Most bug fixing over the past week or two has taken place in the Qtum Account Abstraction Layer. The AAL is arguably one of the most complicated parts of Qtum and thus getting it correct and secure is of utmost importance.
Here is some recent passing test contracts we have run though:
## In range block hash ##
pragma solidity ^0.4.7;
contract BlockHash {
bytes32 public blockHash;
function storeBlockHash(uint blockNumber) {
blockHash = block.blockhash(blockNumber);
}
}
1. Create a contract called BlockHash
2. Set i = 1
3. Call function “storeBlockHash” of BlockHash with an argument i.
Expected behaviour:
state variable blockHash now is equal to the block hash at block number i
Result:
Pass
## Out of range block hash (> current block number) ##
pragma solidity ^0.4.7;
contract BlockHash {
bytes32 public blockHash;
function storeBlockHash(uint blockNumber) {
blockHash = block.blockhash(blockNumber);
}
}
1. Create a contract called BlockHash
3. Call function “storeBlockHash” of BlockHash with an argument 2^16 (out of range).
Expected behaviour:
state variable blockHash now empty
Result:
Pass
## Out of range block number (block number < current block number – 256) ##
pragma solidity ^0.4.7;
contract BlockHash {
bytes32 public blockHash;
function storeBlockHash(uint blockNumber) {
blockHash = block.blockhash(blockNumber);
}
}
1. Create a contract called BlockHash
3. Call function “storeBlockHash” of BlockHash with an argument current block count – 257 (out of range).
Expected behaviour:
state variable blockHash now empty
Result:
Pass
## Check that the gas and gas price are equivalent to their input from cli (1000000 gas, 0.00000001 gas price) ##
contract CheckGas {
uint public gasAmount;
uint public gasPrice
function storeGlobals() {
this.gasAmount = msg.gas
this.gasPrice = tx.gasprice;
}
}
1. Create a contract called CheckGas
2. Call function “storeGas” of CheckGas with 1000000 gas with a gas price of 0.00000001.
Expected behavior:
state variable gasPrice is 1
state variable gasAmount is close to 1000000
Result:
Pass
Also, here is a preview of the Qtum Core git repository, showing the team working on bug fixes:
Qtum Core Git Repository
Qtum Core Wallet (QT wallet)In addition to focusing on the core blockchain protocol, we are starting to work toward branding and reworking the Qtum Core Wallet for PC and Mac. We have a splash screen, basic color changes, and icons. We are still deep in work on this, so there aren’t yet any screenshots available. Additionally, we will soon begin integrating smart contracts into the GUI so that regular users will be able to deploy and interact with smart contracts.
Future DirectionsWe are constantly looking to implement not just what designs we have now, but also ensure that those designs will be extensible and work well as a foundation to build on for our future activities. These are in-flux designs, but some ideas currently being discussed include: better and faster interactions with smart contracts from SPV wallets, making data feeds a “first-class citizen” on the blockchain with efficiency and usability improvements, Automatic/periodic contract execution, simplification of the account abstraction layer (in order to increase efficiency and reduce attack vectors), enhancing side-chain support with smart contracts on both chains in mind.
Qtum Mobile WalletsQtum will also feature both iOS and Android wallet at release. The majority of our efforts are currently being expended is testing to ensure that they handle PoSv3 fine, and branding and skinning the wallets so that they look professional and are easy to use.
Qtum Wallet DesignQtum Wallet Design 2