Bitcoin ABC 0.15.0
Bitcoin ABC version 0.15.0 is now available from:
This release includes the following features and fixes:
- Reserve block space for high priority transactions (D485)
- Use "bitcoincash:" URI (D466)
- Add and accept Bitcoin Cash networking magic (D400)
- Peer preferentially with NODE_CASH nodes (D457)
- Hardcoded seeds update (D403)
- Remove UAHF RPC calls, and some of the UAHF activation logic (D407, D417)
- Various test fixes and other cleanups now that UAHF activation is past
- Various changes now that we do replay protected txns only (D437, D440, D442, D444, D451, D455, D456)
- Make SCRIPT_VERIFY_STRICTENC a mandatory flag (D421)
- Fix RPC signrawtransaction silently accepting missing amount field (D449)
- Fix a some small memory leaks, and an overflow (D372, D452, D472)
- Added sanitizer support (D474, D481)
- Rename package to bitcoin-abc-* (D482, D489, D510, D513)
- Cryptographic randomness improvements (backport from Core PR9821 and PR9792) (D488, D490)
- Store the UTXO set on a per output basis rather than a per transaction basis (backport from Core)
- Various other backports and fixes from Core
- Various fixes and improvements to test suite
- Various code cleanups and style improvements
- Low level RPC error code changes (D500 / backport of PR9853)
Low-level RPC changes (D500)
- Error codes have been updated to be more accurate for the following error cases:
getblocknow returns RPC_MISC_ERROR if the block can't be found on disk (for example if the block has been pruned). Previously returned RPC_INTERNAL_ERROR.
pruneblockchainnow returns RPC_MISC_ERROR if the blocks cannot be pruned because the node is not in pruned mode. Previously returned RPC_METHOD_NOT_FOUND.
pruneblockchainnow returns RPC_INVALID_PARAMETER if the blocks cannot be pruned because the supplied timestamp is too late. Previously returned RPC_INTERNAL_ERROR.
pruneblockchainnow returns RPC_MISC_ERROR if the blocks cannot be pruned because the blockchain is too short. Previously returned RPC_INTERNAL_ERROR.
setbannow returns RPC_CLIENT_INVALID_IP_OR_SUBNET if the supplied IP address or subnet is invalid. Previously returned RPC_CLIENT_NODE_ALREADY_ADDED.
setbannow returns RPC_CLIENT_INVALID_IP_OR_SUBNET if the user tries to unban a node that has not previously been banned. Previously returned RPC_MISC_ERROR.
removeprunedfundsnow returns RPC_WALLET_ERROR if bitcoind is unable to remove the transaction. Previously returned RPC_INTERNAL_ERROR.
removeprunedfundsnow returns RPC_INVALID_PARAMETER if the transaction does not exist in the wallet. Previously returned RPC_INTERNAL_ERROR.
fundrawtransactionnow returns RPC_INVALID_ADDRESS_OR_KEY if an invalid change address is provided. Previously returned RPC_INVALID_PARAMETER.
fundrawtransactionnow returns RPC_WALLET_ERROR if bitcoind is unable to create the transaction. The error message provides further details. Previously returned RPC_INTERNAL_ERROR.
gettxoutsetinforesponse now contains
bytes_serialized. The first is a more accurate estimate of actual disk usage, but is not deterministic. The second is unrelated to disk usage, but is a database-independent metric of UTXO set size: it counts every UTXO entry as 50 + the length of its scriptPubKey.
Reserve block space for high priority transactions (D485)
By default reserve 5% of the max generated block size parameter to hiprio transactions.
bitcoind instance running with an unmodified configuration will reserve 100K
for high priority transactions. The parameter name used for this configuration
blockprioritypercentage. While introducing this new parameter we deprecated
blockprioritysize(it was used to specify the amount of high prio reserved area in byte).
A transaction is considered high priority if its priority is higher than this threshold:
COIN * 144 / 250,
where COIN is the value of a one bitcoin UTXO expressed in satoshis. Thus a transaction
who as an input of 1 bitcoin and are 144 blocks old and whose size is 250 bytes is considered
the priority cut-off.