Protocol and network related changes:
- Add a new checkpoint at block height 382320 (#555)
- Implement BIP0065 which includes support for version 4 blocks, a new consensus opcode (
OP_CHECKLOCKTIMEVERIFY) that enforces transaction lock times, and a double-threshold switchover mechanism (#535, #459, #455) - Implement BIP0111 which provides a new bloom filter service flag and hence provides support for protocol version 70011 (#499)
- Add a new parameter
--nopeerbloomfiltersto allow disabling bloom filter support (#499) - Reject non-canonically encoded variable length integers (#507)
- Add mainnet peer discovery DNS seed (
seed.bitcoin.jonasschnelli.ch) (#496) - Correct reconnect handling for persistent peers (#463, #464)
- Ignore requests for block headers if not fully synced (#444)
- Add CLI support for specifying the zone id on IPv6 addresses (#538)
- Fix a couple of issue where the initial block sync could stall (#518, #229, #486)
- Fix an issue which prevented the
--onionoption from working as intended (#446)
Transaction relay (memory pool) changes:
- Require transactions to only include signatures encoded with the canonical 'low-s' encoding (#512)
- Add a new parameter
--minrelaytxfeeto allow the minimum transaction fee inBTC/kBto be overridden (#520) - Retain memory pool transactions when they redeem another one that is removed when a block is accepted (#539)
- Do not send reject messages for a transaction if it is valid but causes an orphan transaction which depends on it to be determined as invalid (#546)
- Refrain from attempting to add orphans to the memory pool multiple times when the transaction they redeem is added (#551)
- Modify minimum transaction fee calculations to scale based on bytes instead of full kilobyte boundaries (#521, #537)
Implement signature cache:
- Provides a limited memory cache of validated signatures which is a huge optimization when verifying blocks for transactions that are already in the memory pool (#506)
- Add a new parameter
--sigcachemaxsizewhich allows the size of the new cache to be manually changed if desired (#506)
Mining support changes:
- Notify
getblocktemplatelong polling clients when a block is pushed viasubmitblock(#488) - Speed up
getblocktemplateby making use of the new signature cache (#506)
RPC changes:
- Implement
getmempoolinfocommand (#453) - Implement
getblockheadercommand (#461) - Modify
createrawtransactioncommand to accept a new optional parameterlocktime(#529) - Modify
listunspentresult to include thespendablefield (#440) - Modify
getinfocommand to includeerrorsfield (#511) - Add timestamps to
blockconnectedandblockdisconnectednotifications (#450) - Several modifications to
searchrawtranscations:- Accept a new optional parameter
vinextrawhich causes the results to include information about the outputs referenced by a transaction inputs (#485, #487) - Skip entries in the mempool too (#495)
- Accept a new optional parameter
reverseto return the results in reverse order (most recent to oldest) (#497) - Accept a new optional parameter
filteraddrswhich causes the results to only include inputs and outputs which involve the provided addresses (#516)
- Accept a new optional parameter
- Change the notification order to notify clients about mined transactions (
recvtx,redeemingtx) before theblockconnectednotification (#449) - Update
verifymessageRPC to use the standard algorithm so it is compatible with other implementations (#515) - Improve
pingstatistics by pinging on an interval (#517)
Websocket changes:
btcctl utility changes:
- Add
getmempoolinfocommand (#453) - Add
getblockheadercommand (#461) - Add
getwalletinfocommand (#471)
Notable developer-related package changes:
- Introduce a new
peerpackage which acts a common base for creating and concurrently managing bitcoin network peers (#445) - Blocks heights now consistently use
int32everywhere (#481) - The
BlockHeadertype in thewirepackage now provides theBtcDecodeandBtcEncodemethods (#467) - Update
wirepackage to recognize BIP0064 (getutxo) service bit (#489) - Export
LockTimeThresholdconstant fromtxscriptpackage (#454) - Export
MaxDataCarrierSizeconstant fromtxscriptpackage (#466) - Provide new
IsUnspendablefunction from thetxscriptpackage (#478) - Export variable length string functions from the
wirepackage (#514) - Export DNS Seeds for each network from the chaincfg package (#544)
- Preliminary work towards separating the memory pool into a separate package (#525, #548)
Misc changes:
- Various documentation updates (#442, #462, #465, #460, #470, #473, #505, #530, #545)
- Add installation instructions for gentoo (#542)
- Ensure an error is shown if OS limits can't be set at startup (#498)
- Tighten the standardness checks for multisig scripts (#526)
- Test coverage improvement (#468, #494, #527, #543, #550)
- Several optimizations (#457, #474, #475, #476, #508, #509)
- Minor code cleanup and refactoring (#472, #479, #482, #519, #540)
Contributors (alphabetical order):
- Ben Echols
- Bruno Clermont
- danda
- Daniel Krawisz
- Dario Nieuwenhuis
- Dave Collins
- David Hill
- Javed Khan
- Jonathan Gillham
- Joseph Becher
- Josh Rickmar
- Justus Ranvier
- Mawuli Adzoe
- Olaoluwa Osuntokun
- Rune T. Aune
MSI Checksums:
SHA256(btcd_standalone_0.12.0-beta_x64.msi)= 024274804600e0a37ba5e7ac5abc9fdfe91b071e92c9251f38f01bec6785fb77
SHA256(btcd_standalone_0.12.0-beta_x86.msi)= b122bb7cd29e0e5e32ada279a12eeef3d44d58f3bb377ea7ce8b1f42ca0bdba3
SHA512(btcd_standalone_0.12.0-beta_x64.msi)= 725266286cb5ba62d435b992353b83aef4a3586e5ee9aeecfcc90b8026225f12c081471d56fb0f02d92ca5d92965eb99429209125b108c47599c8b1b619fb852
SHA512(btcd_standalone_0.12.0-beta_x86.msi)= d2849eef7cce9ec88a9538940c3ebfb08c2ecbf4be88f4029552bac5db2cdc203e31e8a401cf54dab694d4f49dd640bc8bb962cb5d70227bde91d785364823cb