Test Network Update #2:
Leading up to our June 28th Test Network release, we will be providing daily updates that explain the work that goes on behind the scenes. Yesterday we went over the first 5 points, and today we delve deeper into the technical aspects.6, Add "sendtocontract" RPC callAn rpc call should be adding for sending data and (optionally) money to a contract that has been deployed on the blockchain.
The format should be:
sendtocontract contract-address data (value gaslimit gasprice sender broadcast)
This should create a contract call transaction using OP_CALL.
Value defaults to 0.
sender-address is optional. If no address is specified, then it should be picked randomly from the wallet. If no outputs exist to spend using that sender-address, then an error should be shown and no transaction created.
broadcast should default to true. If broadcast is false, then the transaction is created and signed, and then printed to the screen in hex rather than broadcast to the network.
If the sender-address does have an output, but it is not enough to cover the gas costs, tx fees, and value, then any UTXO owned by the wallet should be used by the transaction to cover the remainder. (not all funds must come from sender-address, but the sender-address must be vin[0])
After execution, if broadcast is true, it should print the txid and the new contract address.
7, Add "callcontract" RPC call for off-chain computationsAdd "callcontract" RPC call for off-chain computations
There should be an RPC call that executes a contract without requiring interaction with the blockchain network, and thus without gas or other fees.
callcontract contract-address data (sender)
This should execute the contract locally, and if the contract function returns data, it should be returned/printed by the RPC call. Sender is optional and does not require an owned vout (it can be any valid address)
8, Change mainnet to only allow PoS after a certain blockheightThis tells the Blockchain that Proof-of-Work blocks can no longer be accepted. The Qtum Nodes will reject this work, and accept only Proof-of-Stake.
9 , Put EVM "LOG" opcode outputs into an accessible log fileThere should be a file that holds all of the data from EVM LOG opcodes, so that it can be used for testing and debugging. There are ITDs written for this
The log file should only be used when `-record-log-opcodes` is passed into qtumd
10, Setup continuous integrationSetup a Jenkins server and make it so that it does:
1. Automatically builds qtum on all branches on Linux and reports build errors
2. Automatically runs the Qtum (Bitcoin) test suite, reporting any failing tests
3. Tears down any VMs constructed to ensure we don't use more VM time than necessary
Please see the Roadmap below for more information:
Please remember that we have an event in Shanghai on the 28th so please RSVP if you plan on attending:
Qtum will also be sponsoring a Hackathon in Russia, with 8500 QTUM tokens. For more information, please see: