This is a new major version release, bringing both bitcoin conf genproclimit features and bug fixes. Upgrading and downgrading How to Upgrade If you are running an older version, shut it down.
Reindexing using earlier versions will also not work anymore as a result of this. The block index database will now hold headers for which no block is stored on disk, which earlier versions won’t support. If you want to be able to downgrade smoothly, make a backup of your entire data directory. It is possible that the data from a completely synchronised 0. 10 node may be usable in older versions as-is, but this is not supported and may break as soon as the older version attempts to reindex. This does not affect wallet forward or backward compatibility.
In a second stage, when the headers have been discovered, we download the blocks. In practice, this means a much faster and more robust synchronization. On recent hardware with a decent network link, it can be as little as 3 hours for an initial full synchronization. You may notice a slower progress in the very first few minutes, when headers are still being fetched and verified, but it should gain speed afterwards. A new RPC getchaintips lists all known branches of the block chain, including those we only have headers for. Statistics used to estimate fees and priorities are saved in the data directory in the fee_estimates. This setting is over-ridden by the -paytxfee option.
Returns approximate fee-per-1,000-bytes needed for a transaction to begin confirmation within nblocks. Returns -1 if not enough transactions have been observed to compute a good estimate. Returns approximate priority needed for a zero-fee transaction to begin confirmation within nblocks. Returns -1 if not enough free transactions have been observed to compute a good estimate. RPC access control changes Subnet matching for the purpose of access control is now done by matching the binary network address, instead of with string wildcard matching. An arbitrary number of -rpcallow arguments can be given. An incoming connection will be accepted if its origin address matches one of them.
REST interface A new HTTP API is exposed when running with the -rest flag, which allows unauthenticated access to public node data. It is served on the same port as RPC, but does not need a password, and uses plain HTTP instead of JSON-RPC. It is available now almost immediately after starting the process. 10 the security of signing against unusual attacks has been improved by making the signatures constant time and deterministic. This change is a result of switching signing to use libsecp256k1 instead of OpenSSL. Libsecp256k1 is a cryptographic library optimized for the curve Bitcoin uses which was created by Bitcoin Core developer Pieter Wuille. There exist attacks against most ECC implementations where an attacker on shared virtual machine hardware could extract a private key if they could cause a target to sign using the same key hundreds of times.
While using shared hosts and reusing keys are inadvisable for other reasons, it’s a better practice to avoid the exposure. OpenSSL has code in their source repository for derandomization and reduction in timing leaks that we’ve eagerly wanted to use for a long time, but this functionality has still not made its way into a released version of OpenSSL. This can be used to track payments without needing the private keys online on a possibly vulnerable system. After using it, outputs credited to this address or script are considered to be received, and transactions consuming these outputs will be considered to be sent.
The following RPCs have optional support for watch-only: getbalance, listreceivedbyaddress, listreceivedbyaccount, listtransactions, listaccounts, listsinceblock, gettransaction. Compared to using getrawtransaction, this mechanism does not require -txindex, scales better, integrates better with the wallet, and is compatible with future block chain pruning functionality. It does mean that all relevant addresses need to added to the wallet before the payment, though. 0, the Bitcoin Core distribution includes a consensus library. The purpose of this library is to make the verification functionality that is critical to Bitcoin’s consensus available to other applications, e. Its interface is defined in the C header bitcoinconsensus. The functionality is planned to be extended to e.
UTXO management in upcoming releases, but the interface for existing methods should remain stable. Transactions may be created or signed in a manner similar to the RPC raw tx API. Transactions may be updated, deleting inputs or outputs, or appending new inputs and outputs. Custom scripts may be easily composed using a simple text notation, borrowed from the bitcoin test suite.
This tool may be used for experimenting with new transaction types, signing multi-party transactions, and many other uses. Mining and relay policy enhancements Bitcoin Core’s block templates are now for version 3 blocks only, and any mining software relying on its getblocktemplate must be updated in parallel to use libblkmaker either version 0. 2 or any version from 0. The prioritisetransaction RPC method has been added to enable miners to manipulate the priority of transactions on an individual basis.