mirror of
https://github.com/btcsuite/btcd.git
synced 2024-11-19 01:40:07 +01:00
1231 lines
57 KiB
Plaintext
1231 lines
57 KiB
Plaintext
============================================================================
|
|
User visible changes for btcd
|
|
A full-node bitcoin implementation written in Go
|
|
============================================================================
|
|
|
|
Changes in 0.22.0 (Tue Jun 01 2021)
|
|
- Protocol and network-related changes:
|
|
- Add support for witness tx and block in notfound msg (#1625)
|
|
- Add support for receiving sendaddrv2 messages from a peer (#1670)
|
|
- Fix bug in peer package causing last block height to go backwards
|
|
(#1606)
|
|
- Add chain parameters for connecting to the public Signet network
|
|
(#1692, #1718)
|
|
- Crypto changes:
|
|
- Fix bug causing panic due to bad R and S signature components in
|
|
btcec.RecoverCompact (#1691)
|
|
- Set the name (secp256k1) in the CurveParams of the S256 curve
|
|
(#1565)
|
|
- Notable developer-related package changes:
|
|
- Remove unknown block version warning in the blockchain package,
|
|
due to false positives triggered by AsicBoost (#1463)
|
|
- Add chaincfg.RegisterHDKeyID function to populate HD key ID pairs
|
|
(#1617)
|
|
- Add new method mining.AddWitnessCommitment to add the witness
|
|
commitment as an OP_RETURN output within the coinbase transaction.
|
|
(#1716)
|
|
- RPC changes:
|
|
- Support Batch JSON-RPC in rpcclient and server (#1583)
|
|
- Add rpcclient method to invoke getdescriptorinfo JSON-RPC command
|
|
(#1578)
|
|
- Update the rpcserver handler for validateaddress JSON-RPC command to
|
|
have parity with the bitcoind 0.20.0 interface (#1613)
|
|
- Add rpcclient method to invoke getblockfilter JSON-RPC command
|
|
(#1579)
|
|
- Add signmessagewithprivkey JSON-RPC command in rpcserver (#1585)
|
|
- Add rpcclient method to invoke importmulti JSON-RPC command (#1579)
|
|
- Add watchOnly argument in rpcclient method to invoke
|
|
listtransactions JSON-RPC command (#1628)
|
|
- Update btcjson.ListTransactionsResult for compatibility with Bitcoin
|
|
Core 0.20.0 (#1626)
|
|
- Support nullable optional JSON-RPC parameters (#1594)
|
|
- Add rpcclient and server method to invoke getnodeaddresses JSON-RPC
|
|
command (#1590)
|
|
- Add rpcclient methods to invoke PSBT JSON-RPC commands (#1596)
|
|
- Add rpcclient method to invoke listsinceblock with the
|
|
include_watchonly parameter enabled (#1451)
|
|
- Add rpcclient method to invoke deriveaddresses JSON-RPC command
|
|
(#1631)
|
|
- Add rpcclient method to invoke getblocktemplate JSON-RPC command
|
|
(#1629)
|
|
- Add rpcclient method to invoke getaddressinfo JSON-RPC command
|
|
(#1633)
|
|
- Add rpcclient method to invoke getwalletinfo JSON-RPC command
|
|
(#1638)
|
|
- Fix error message in rpcserver when an unknown RPC command is
|
|
encountered (#1695)
|
|
- Fix error message returned by estimatefee when the number of blocks
|
|
exceeds the max depth (#1678)
|
|
- Update btcjson.GetBlockChainInfoResult to include new fields in
|
|
Bitcoin Core (#1676)
|
|
- Add ExtraHeaders in rpcclient.ConnConfig struct (#1669)
|
|
- Fix bitcoind compatibility issue with the sendrawtransaction
|
|
JSON-RPC command (#1659)
|
|
- Add new JSON-RPC errors to btcjson package, and documented them
|
|
(#1648)
|
|
- Add rpcclient method to invoke createwallet JSON-RPC command
|
|
(#1650)
|
|
- Add rpcclient methods to invoke backupwallet, dumpwallet, loadwallet
|
|
and unloadwallet JSON-RPC commands (#1645)
|
|
- Fix unmarshalling error in getmininginfo JSON-RPC command, for valid
|
|
integers in scientific notation (#1644)
|
|
- Add rpcclient method to invoke gettxoutsetinfo JSON-RPC command
|
|
(#1641)
|
|
- Add rpcclient method to invoke signrawtransactionwithwallet JSON-RPC
|
|
command (#1642)
|
|
- Add txid to getblocktemplate response of rpcserver (#1639)
|
|
- Fix monetary unit used in createrawtransaction JSON-RPC command in
|
|
rpcserver (#1614)
|
|
- Add rawtx field to btcjson.GetBlockVerboseTxResult to provide
|
|
backwards compatibility with older versions of Bitcoin Core (#1677)
|
|
- Misc changes:
|
|
- Update btcutil dependency (#1704)
|
|
- Add Dockerfile to build and run btcd on Docker (#1465)
|
|
- Rework documentation and publish on https://btcd.readthedocs.io (#1468)
|
|
- Add support for Go 1.15 (#1619)
|
|
- Add Go 1.14 as the minimum supported version of Golang (#1621)
|
|
- Contributors (alphabetical order):
|
|
- 10gic
|
|
- Andrew Tugarinov
|
|
- Anirudha Bose
|
|
- Appelberg-s
|
|
- Armando Ochoa
|
|
- Aurèle Oulès
|
|
- Calvin Kim
|
|
- Christian Lehmann
|
|
- Conner Fromknecht
|
|
- Dan Cline
|
|
- David Mazary
|
|
- Elliott Minns
|
|
- Federico Bond
|
|
- Friedger Müffke
|
|
- Gustavo Chain
|
|
- Hanjun Kim
|
|
- Henry Fisher
|
|
- Iskander Sharipov
|
|
- Jake Sylvestre
|
|
- Johan T. Halseth
|
|
- John C. Vernaleo
|
|
- Liran Sharir
|
|
- Mikael Lindlof
|
|
- Olaoluwa Osuntokun
|
|
- Oliver Gugger
|
|
- Rjected
|
|
- Steven Kreuzer
|
|
- Torkel Rogstad
|
|
- Tristyn
|
|
- Victor Lavaud
|
|
- Vinayak Borkar
|
|
- Wilmer Paulino
|
|
- Yaacov Akiba Slama
|
|
- ebiiim
|
|
- ipriver
|
|
- wakiyamap
|
|
- yyforyongyu
|
|
|
|
Changes in 0.21.0 (Thu Aug 27 2020)
|
|
- Network-related changes:
|
|
- Handle notfound messages from peers in netsync package (#1603)
|
|
- RPC changes:
|
|
- Add compatibility for getblock RPC changes in bitcoind 0.15.0 (#1529)
|
|
- Add new optional Params field to rpcclient.ConnConfig (#1467)
|
|
- Add new error code ErrRPCInWarmup in btcjson (#1541)
|
|
- Add compatibility for changes to getmempoolentry response in bitcoind
|
|
0.19.0 (#1524)
|
|
- Add rpcclient methods for estimatesmartfee and generatetoaddress
|
|
commands (#1500)
|
|
- Add rpcclient method for getblockstats command (#1500)
|
|
- Parse serialized transaction from createrawtransaction command using
|
|
both segwit, and legacy format (#1502)
|
|
- Support cookie-based authentication in rpcclient (#1460)
|
|
- Add rpcclient method for getchaintxstats command (#1571)
|
|
- Add rpcclient method for fundrawtransaction command (#1553)
|
|
- Add rpcclient method for getbalances command (#1595)
|
|
- Add new method rpcclient.GetTransactionWatchOnly (#1592)
|
|
- Crypto changes:
|
|
- Fix panic in fieldVal.SetByteSlice when called with large values, and
|
|
improve the method to be 35% faster (#1602)
|
|
- btcctl changes:
|
|
- Add -regtest mode to btcctl (#1556)
|
|
- Misc changes:
|
|
- Fix a bug due to a deadlock in connmgr's dynamic ban scoring (#1509)
|
|
- Add blockchain.NewUtxoEntry() to directly create entries for
|
|
UtxoViewpoint (#1588)
|
|
- Replace LRU cache implementation in peer package with a generic one
|
|
from decred/dcrd (#1599)
|
|
- Contributors (alphabetical order):
|
|
- Anirudha Bose
|
|
- Antonin Hildebrand
|
|
- Dan Cline
|
|
- Daniel McNally
|
|
- David Hill
|
|
- Federico Bond
|
|
- George Tankersley
|
|
- Henry
|
|
- Henry Harder
|
|
- Iskander Sharipov
|
|
- Ivan Kuznetsov
|
|
- Jake Sylvestre
|
|
- Javed Khan
|
|
- JeremyRand
|
|
- Jin
|
|
- John C. Vernaleo
|
|
- Kulpreet Singh
|
|
- Mikael Lindlof
|
|
- Murray Nesbitt
|
|
- Nisen
|
|
- Olaoluwa Osuntokun
|
|
- Oliver Gugger
|
|
- Steven Roose
|
|
- Torkel Rogstad
|
|
- Tyler Chambers
|
|
- Wilmer Paulino
|
|
- Yash Bhutwala
|
|
- adiabat
|
|
- jalavosus
|
|
- mohanson
|
|
- qqjettkgjzhxmwj
|
|
- qshuai
|
|
- shuai.qi
|
|
- tpkeeper
|
|
|
|
Changes in v0.20.1 (Wed Nov 13 2019)
|
|
- RPC changes:
|
|
- Add compatibility for bitcoind v0.19.0 in rpcclient and btcjson
|
|
packages (#1484)
|
|
- Contributors (alphabetical order):
|
|
- Eugene Zeigel
|
|
- Olaoluwa Osuntokun
|
|
- Wilmer Paulino
|
|
|
|
Changes in v0.20.0 (Tue Oct 15 2019)
|
|
- Significant changes made since 0.12.0. See git log or refer to release
|
|
notes on GitHub for full details.
|
|
- Contributors (alphabetical order):
|
|
- Albert Puigsech Galicia
|
|
- Alex Akselrod
|
|
- Alex Bosworth
|
|
- Alex Manuskin
|
|
- Alok Menghrajani
|
|
- Anatoli Babenia
|
|
- Andy Weidenbaum
|
|
- Calvin McAnarney
|
|
- Chris Martin
|
|
- Chris Pacia
|
|
- Chris Shepherd
|
|
- Conner Fromknecht
|
|
- Craig Sturdy
|
|
- Cédric Félizard
|
|
- Daniel Krawisz
|
|
- Daniel Martí
|
|
- Daniel McNally
|
|
- Dario Nieuwenhuis
|
|
- Dave Collins
|
|
- David Hill
|
|
- David de Kloet
|
|
- GeertJohan
|
|
- Grace Noah
|
|
- Gregory Trubetskoy
|
|
- Hector Jusforgues
|
|
- Iskander (Alex) Sharipov
|
|
- Janus Troelsen
|
|
- Jasper
|
|
- Javed Khan
|
|
- Jeremiah Goyette
|
|
- Jim Posen
|
|
- Jimmy Song
|
|
- Johan T. Halseth
|
|
- John C. Vernaleo
|
|
- Jonathan Gillham
|
|
- Josh Rickmar
|
|
- Jon Underwood
|
|
- Jonathan Zeppettini
|
|
- Jouke Hofman
|
|
- Julian Meyer
|
|
- Kai
|
|
- Kamil Slowikowski
|
|
- Kefkius
|
|
- Leonardo Lazzaro
|
|
- Marco Peereboom
|
|
- Marko Bencun
|
|
- Mawueli Kofi Adzoe
|
|
- Michail Kargakis
|
|
- Mitchell Paull
|
|
- Nathan Bass
|
|
- Nicola 'tekNico' Larosa
|
|
- Olaoluwa Osuntokun
|
|
- Pedro Martelletto
|
|
- Ricardo Velhote
|
|
- Roei Erez
|
|
- Ruben de Vries
|
|
- Rune T. Aune
|
|
- Sad Pencil
|
|
- Shuai Qi
|
|
- Steven Roose
|
|
- Tadge Dryja
|
|
- Tibor Bősze
|
|
- Tomás Senart
|
|
- Tzu-Jung Lee
|
|
- Vadym Popov
|
|
- Waldir Pimenta
|
|
- Wilmer Paulino
|
|
- benma
|
|
- danda
|
|
- dskloet
|
|
- esemplastic
|
|
- jadeblaquiere
|
|
- nakagawa
|
|
- preminem
|
|
- qshuai
|
|
|
|
Changes in 0.12.0 (Fri Nov 20 2015)
|
|
- 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 --nopeerbloomfilters to 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 issues where the initial block sync could stall (#518,
|
|
#229, #486)
|
|
- Fix an issue which prevented the --onion option 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 --minrelaytxfee to allow the minimum transaction
|
|
fee in BTC/kB to 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 '--sigcachemaxsize' which allows the size of the
|
|
new cache to be manually changed if desired (#506)
|
|
- Mining support changes:
|
|
- Notify getblocktemplate long polling clients when a block is pushed
|
|
via submitblock (#488)
|
|
- Speed up getblocktemplate by making use of the new signature cache
|
|
(#506)
|
|
- RPC changes:
|
|
- Implement getmempoolinfo command (#453)
|
|
- Implement getblockheader command (#461)
|
|
- Modify createrawtransaction command to accept a new optional parameter
|
|
'locktime' (#529)
|
|
- Modify listunspent result to include the 'spendable' field (#440)
|
|
- Modify getinfo command to include 'errors' field (#511)
|
|
- Add timestamps to blockconnected and blockdisconnected notifications
|
|
(#450)
|
|
- Several modifications to searchrawtranscations command:
|
|
- Accept a new optional parameter 'vinextra' which causes the results
|
|
to include information about the outputs referenced by a transaction's
|
|
inputs (#485, #487)
|
|
- Skip entries in the mempool too (#495)
|
|
- Accept a new optional parameter 'reverse' to return the results in
|
|
reverse order (most recent to oldest) (#497)
|
|
- Accept a new optional parameter 'filteraddrs' which causes the
|
|
results to only include inputs and outputs which involve the
|
|
provided addresses (#516)
|
|
- Change the notification order to notify clients about mined
|
|
transactions (recvtx, redeemingtx) before the blockconnected
|
|
notification (#449)
|
|
- Update verifymessage RPC to use the standard algorithm so it is
|
|
compatible with other implementations (#515)
|
|
- Improve ping statistics by pinging on an interval (#517)
|
|
- Websocket changes:
|
|
- Implement session command which returns a per-session unique id (#500,
|
|
#503)
|
|
- btcctl utility changes:
|
|
- Add getmempoolinfo command (#453)
|
|
- Add getblockheader command (#461)
|
|
- Add getwalletinfo command (#471)
|
|
- Notable developer-related package changes:
|
|
- Introduce a new peer package which acts a common base for creating and
|
|
concurrently managing bitcoin network peers (#445)
|
|
- Various cleanup of the new peer package (#528, #531, #524, #534,
|
|
#549)
|
|
- Blocks heights now consistently use int32 everywhere (#481)
|
|
- The BlockHeader type in the wire package now provides the BtcDecode
|
|
and BtcEncode methods (#467)
|
|
- Update wire package to recognize BIP0064 (getutxo) service bit (#489)
|
|
- Export LockTimeThreshold constant from txscript package (#454)
|
|
- Export MaxDataCarrierSize constant from txscript package (#466)
|
|
- Provide new IsUnspendable function from the txscript package (#478)
|
|
- Export variable length string functions from the wire package (#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
|
|
|
|
Changes in 0.11.1 (Wed May 27 2015)
|
|
- Protocol and network related changes:
|
|
- Use correct sub-command in reject message for rejected transactions
|
|
(#436, #437)
|
|
- Add a new parameter --torisolation which forces new circuits for each
|
|
connection when using tor (#430)
|
|
- Transaction relay (memory pool) changes:
|
|
- Reduce the default number max number of allowed orphan transactions
|
|
to 1000 (#419)
|
|
- Add a new parameter --maxorphantx which allows the maximum number of
|
|
orphan transactions stored in the mempool to be specified (#419)
|
|
- RPC changes:
|
|
- Modify listtransactions result to include the 'involveswatchonly' and
|
|
'vout' fields (#427)
|
|
- Update getrawtransaction result to omit the 'confirmations' field
|
|
when it is 0 (#420, #422)
|
|
- Update signrawtransaction result to include errors (#423)
|
|
- btcctl utility changes:
|
|
- Add gettxoutproof command (#428)
|
|
- Add verifytxoutproof command (#428)
|
|
- Notable developer-related package changes:
|
|
- The btcec package now provides the ability to perform ECDH
|
|
encryption and decryption (#375)
|
|
- The block and header validation in the blockchain package has been
|
|
split to help pave the way toward concurrent downloads (#386)
|
|
- Misc changes:
|
|
- Minor peer optimization (#433)
|
|
- Contributors (alphabetical order):
|
|
- Dave Collins
|
|
- David Hill
|
|
- Federico Bond
|
|
- Ishbir Singh
|
|
- Josh Rickmar
|
|
|
|
Changes in 0.11.0 (Wed May 06 2015)
|
|
- Protocol and network related changes:
|
|
- **IMPORTANT: Update is required due to the following point**
|
|
- Correct a few corner cases in script handling which could result in
|
|
forking from the network on non-standard transactions (#425)
|
|
- Add a new checkpoint at block height 352940 (#418)
|
|
- Optimized script execution (#395, #400, #404, #409)
|
|
- Fix a case that could lead stalled syncs (#138, #296)
|
|
- Network address manager changes:
|
|
- Implement eclipse attack countermeasures as proposed in
|
|
http://cs-people.bu.edu/heilman/eclipse (#370, #373)
|
|
- Optional address indexing changes:
|
|
- Fix an issue where a reorg could cause an orderly shutdown when the
|
|
address index is active (#340, #357)
|
|
- Transaction relay (memory pool) changes:
|
|
- Increase maximum allowed space for nulldata transactions to 80 bytes
|
|
(#331)
|
|
- Implement support for the following rules specified by BIP0062:
|
|
- The S value in ECDSA signature must be at most half the curve order
|
|
(rule 5) (#349)
|
|
- Script execution must result in a single non-zero value on the stack
|
|
(rule 6) (#347)
|
|
- NOTE: All 7 rules of BIP0062 are now implemented
|
|
- Use network adjusted time in finalized transaction checks to improve
|
|
consistency across nodes (#332)
|
|
- Process orphan transactions on acceptance of new transactions (#345)
|
|
- RPC changes:
|
|
- Add support for a limited RPC user which is not allowed admin level
|
|
operations on the server (#363)
|
|
- Implement node command for more unified control over connected peers
|
|
(#79, #341)
|
|
- Implement generate command for regtest/simnet to support
|
|
deterministically mining a specified number of blocks (#362, #407)
|
|
- Update searchrawtransactions to return the matching transactions in
|
|
order (#354)
|
|
- Correct an issue with searchrawtransactions where it could return
|
|
duplicates (#346, #354)
|
|
- Increase precision of 'difficulty' field in getblock result to 8
|
|
(#414, #415)
|
|
- Omit 'nextblockhash' field from getblock result when it is empty
|
|
(#416, #417)
|
|
- Add 'id' and 'timeoffset' fields to getpeerinfo result (#335)
|
|
- Websocket changes:
|
|
- Implement new commands stopnotifyspent, stopnotifyreceived,
|
|
stopnotifyblocks, and stopnotifynewtransactions to allow clients to
|
|
cancel notification registrations (#122, #342)
|
|
- btcctl utility changes:
|
|
- A single dash can now be used as an argument to cause that argument to
|
|
be read from stdin (#348)
|
|
- Add generate command
|
|
- Notable developer-related package changes:
|
|
- The new version 2 btcjson package has now replaced the deprecated
|
|
version 1 package (#368)
|
|
- The btcec package now performs all signing using RFC6979 deterministic
|
|
signatures (#358, #360)
|
|
- The txscript package has been significantly cleaned up and had a few
|
|
API changes (#387, #388, #389, #390, #391, #392, #393, #395, #396,
|
|
#400, #403, #404, #405, #406, #408, #409, #410, #412)
|
|
- A new PkScriptLocs function has been added to the wire package MsgTx
|
|
type which provides callers that deal with scripts optimization
|
|
opportunities (#343)
|
|
- Misc changes:
|
|
- Minor wire hashing optimizations (#366, #367)
|
|
- Other minor internal optimizations
|
|
- Contributors (alphabetical order):
|
|
- Alex Akselrod
|
|
- Arne Brutschy
|
|
- Chris Jepson
|
|
- Daniel Krawisz
|
|
- Dave Collins
|
|
- David Hill
|
|
- Jimmy Song
|
|
- Jonas Nick
|
|
- Josh Rickmar
|
|
- Olaoluwa Osuntokun
|
|
- Oleg Andreev
|
|
|
|
Changes in 0.10.0 (Sun Mar 01 2015)
|
|
- Protocol and network related changes:
|
|
- Add a new checkpoint at block height 343185
|
|
- Implement BIP066 which includes support for version 3 blocks, a new
|
|
consensus rule which prevents non-DER encoded signatures, and a
|
|
double-threshold switchover mechanism
|
|
- Rather than announcing all known addresses on getaddr requests which
|
|
can possibly result in multiple messages, randomize the results and
|
|
limit them to the max allowed by a single message (1000 addresses)
|
|
- Add more reserved IP spaces to the address manager
|
|
- Transaction relay (memory pool) changes:
|
|
- Make transactions which contain reserved opcodes nonstandard
|
|
- No longer accept or relay free and low-fee transactions that have
|
|
insufficient priority to be mined in the next block
|
|
- Implement support for the following rules specified by BIP0062:
|
|
- ECDSA signature must use strict DER encoding (rule 1)
|
|
- The signature script must only contain push operations (rule 2)
|
|
- All push operations must use the smallest possible encoding (rule 3)
|
|
- All stack values interpreted as a number must be encoding using the
|
|
shortest possible form (rule 4)
|
|
- NOTE: Rule 1 was already enforced, however the entire script now
|
|
evaluates to false rather than only the signature verification as
|
|
required by BIP0062
|
|
- Allow transactions with nulldata transaction outputs to be treated as
|
|
standard
|
|
- Mining support changes:
|
|
- Modify the getblocktemplate RPC to generate and return block templates
|
|
for version 3 blocks which are compatible with BIP0066
|
|
- Allow getblocktemplate to serve blocks when the current time is
|
|
less than the minimum allowed time for a generated block template
|
|
(https://github.com/btcsuite/btcd/issues/209)
|
|
- Crypto changes:
|
|
- Optimize scalar multiplication by the base point by using a
|
|
pre-computed table which results in approximately a 35% speedup
|
|
(https://github.com/btcsuite/btcec/issues/2)
|
|
- Optimize general scalar multiplication by using the secp256k1
|
|
endomorphism which results in approximately a 17-20% speedup
|
|
(https://github.com/btcsuite/btcec/issues/1)
|
|
- Optimize general scalar multiplication by using non-adjacent form
|
|
which results in approximately an additional 8% speedup
|
|
(https://github.com/btcsuite/btcec/issues/3)
|
|
- Implement optional address indexing:
|
|
- Add a new parameter --addrindex which will enable the creation of an
|
|
address index which can be queried to determine all transactions which
|
|
involve a given address
|
|
(https://github.com/btcsuite/btcd/issues/190)
|
|
- Add a new logging subsystem for address index related operations
|
|
- Support new searchrawtransactions RPC
|
|
(https://github.com/btcsuite/btcd/issues/185)
|
|
- RPC changes:
|
|
- Require TLS version 1.2 as the minimum version for all TLS connections
|
|
- Provide support for disabling TLS when only listening on localhost
|
|
(https://github.com/btcsuite/btcd/pull/192)
|
|
- Modify help output for all commands to provide much more consistent
|
|
and detailed information
|
|
- Correct case in getrawtransaction which would refuse to serve certain
|
|
transactions with invalid scripts
|
|
(https://github.com/btcsuite/btcd/issues/210)
|
|
- Correct error handling in the getrawtransaction RPC which could lead
|
|
to a crash in rare cases
|
|
(https://github.com/btcsuite/btcd/issues/196)
|
|
- Update getinfo RPC to include the appropriate 'timeoffset' calculated
|
|
from the median network time
|
|
- Modify listreceivedbyaddress result type to include txids field so it
|
|
is compatible
|
|
- Add 'iswatchonly' field to validateaddress result
|
|
- Add 'startingpriority' and 'currentpriority' fields to getrawmempool
|
|
(https://github.com/btcsuite/btcd/issues/178)
|
|
- Don't omit the 'confirmations' field from getrawtransaction when it is
|
|
zero
|
|
- Websocket changes:
|
|
- Modify the behavior of the rescan command to automatically register
|
|
for notifications about transactions paying to rescanned addresses
|
|
or spending outputs from the final rescan utxo set when the rescan
|
|
is through the best block in the chain
|
|
- btcctl utility changes:
|
|
- Make the list of commands available via the -l option rather than
|
|
dumping the entire list on usage errors
|
|
- Alphabetize and categorize the list of commands by chain and wallet
|
|
- Make the help option only show the help options instead of also
|
|
dumping all of the commands
|
|
- Make the usage syntax much more consistent and correct a few cases of
|
|
misnamed fields
|
|
(https://github.com/btcsuite/btcd/issues/305)
|
|
- Improve usage errors to show the specific parameter number, reason,
|
|
and error code
|
|
- Only show the usage for specific command is shown when a valid command
|
|
is provided with invalid parameters
|
|
- Add support for a SOCK5 proxy
|
|
- Modify output for integer fields (such as timestamps) to display
|
|
normally instead in scientific notation
|
|
- Add invalidateblock command
|
|
- Add reconsiderblock command
|
|
- Add createnewaccount command
|
|
- Add renameaccount command
|
|
- Add searchrawtransactions command
|
|
- Add importaddress command
|
|
- Add importpubkey command
|
|
- showblock utility changes:
|
|
- Remove utility in favor of the RPC getblock method
|
|
- Notable developer-related package changes:
|
|
- Many of the core packages have been relocated into the btcd repository
|
|
(https://github.com/btcsuite/btcd/issues/214)
|
|
- A new version of the btcjson package that has been completely
|
|
redesigned from the ground up based based upon how the project has
|
|
evolved and lessons learned while using it since it was first written
|
|
is now available in the btcjson/v2/btcjson directory
|
|
- This will ultimately replace the current version so anyone making
|
|
use of this package will need to update their code accordingly
|
|
- The btcec package now provides better facilities for working directly
|
|
with its public and private keys without having to mix elements from
|
|
the ecdsa package
|
|
- Update the script builder to ensure all rules specified by BIP0062 are
|
|
adhered to when creating scripts
|
|
- The blockchain package now provides a MedianTimeSource interface and
|
|
concrete implementation for providing time samples from remote peers
|
|
and using that data to calculate an offset against the local time
|
|
- Misc changes:
|
|
- Fix a slow memory leak due to tickers not being stopped
|
|
(https://github.com/btcsuite/btcd/issues/189)
|
|
- Fix an issue where a mix of orphans and SPV clients could trigger a
|
|
condition where peers would no longer be served
|
|
(https://github.com/btcsuite/btcd/issues/231)
|
|
- The RPC username and password can now contain symbols which previously
|
|
conflicted with special symbols used in URLs
|
|
- Improve handling of obtaining random nonces to prevent cases where it
|
|
could error when not enough entropy was available
|
|
- Improve handling of home directory creation errors such as in the case
|
|
of unmounted symlinks (https://github.com/btcsuite/btcd/issues/193)
|
|
- Improve the error reporting for rejected transactions to include the
|
|
inputs which are missing and/or being double spent
|
|
- Update sample config file with new options and correct a comment
|
|
regarding the fact the RPC server only listens on localhost by default
|
|
(https://github.com/btcsuite/btcd/issues/218)
|
|
- Update the continuous integration builds to run several tools which
|
|
help keep code quality high
|
|
- Significant amount of internal code cleanup and improvements
|
|
- Other minor internal optimizations
|
|
- Code Contributors (alphabetical order):
|
|
- Beldur
|
|
- Ben Holden-Crowther
|
|
- Dave Collins
|
|
- David Evans
|
|
- David Hill
|
|
- Guilherme Salgado
|
|
- Javed Khan
|
|
- Jimmy Song
|
|
- John C. Vernaleo
|
|
- Jonathan Gillham
|
|
- Josh Rickmar
|
|
- Michael Ford
|
|
- Michail Kargakis
|
|
- kac
|
|
- Olaoluwa Osuntokun
|
|
|
|
Changes in 0.9.0 (Sat Sep 20 2014)
|
|
- Protocol and network related changes:
|
|
- Add a new checkpoint at block height 319400
|
|
- Add support for BIP0037 bloom filters
|
|
(https://github.com/conformal/btcd/issues/132)
|
|
- Implement BIP0061 reject handling and hence support for protocol
|
|
version 70002 (https://github.com/conformal/btcd/issues/133)
|
|
- Add testnet DNS seeds for peer discovery (testnet-seed.alexykot.me
|
|
and testnet-seed.bitcoin.schildbach.de)
|
|
- Add mainnet DNS seed for peer discovery (seeds.bitcoin.open-nodes.org)
|
|
- Make multisig transactions with non-null dummy data nonstandard
|
|
(https://github.com/conformal/btcd/issues/131)
|
|
- Make transactions with an excessive number of signature operations
|
|
nonstandard
|
|
- Perform initial DNS lookups concurrently which allows connections
|
|
more quickly
|
|
- Improve the address manager to significantly reduce memory usage and
|
|
add tests
|
|
- Remove orphan transactions when they appear in a mined block
|
|
(https://github.com/conformal/btcd/issues/166)
|
|
- Apply incremental back off on connection retries for persistent peers
|
|
that give invalid replies to mirror the logic used for failed
|
|
connections (https://github.com/conformal/btcd/issues/103)
|
|
- Correct rate-limiting of free and low-fee transactions
|
|
- Mining support changes:
|
|
- Implement getblocktemplate RPC with the following support:
|
|
(https://github.com/conformal/btcd/issues/124)
|
|
- BIP0022 Non-Optional Sections
|
|
- BIP0022 Long Polling
|
|
- BIP0023 Basic Pool Extensions
|
|
- BIP0023 Mutation coinbase/append
|
|
- BIP0023 Mutations time, time/increment, and time/decrement
|
|
- BIP0023 Mutation transactions/add
|
|
- BIP0023 Mutations prevblock, coinbase, and generation
|
|
- BIP0023 Block Proposals
|
|
- Implement built-in concurrent CPU miner
|
|
(https://github.com/conformal/btcd/issues/137)
|
|
NOTE: CPU mining on mainnet is pointless. This has been provided
|
|
for testing purposes such as for the new simulation test network
|
|
- Add --generate flag to enable CPU mining
|
|
- Deprecate the --getworkkey flag in favor of --miningaddr which
|
|
specifies which addresses generated blocks will choose from to pay
|
|
the subsidy to
|
|
- RPC changes:
|
|
- Implement gettxout command
|
|
(https://github.com/conformal/btcd/issues/141)
|
|
- Implement validateaddress command
|
|
- Implement verifymessage command
|
|
- Mark getunconfirmedbalance RPC as wallet-only
|
|
- Mark getwalletinfo RPC as wallet-only
|
|
- Update getgenerate, setgenerate, gethashespersec, and getmininginfo
|
|
to return the appropriate information about new CPU mining status
|
|
- Modify getpeerinfo pingtime and pingwait field types to float64 so
|
|
they are compatible
|
|
- Improve disconnect handling for normal HTTP clients
|
|
- Make error code returns for invalid hex more consistent
|
|
- Websocket changes:
|
|
- Switch to a new more efficient websocket package
|
|
(https://github.com/conformal/btcd/issues/134)
|
|
- Add rescanfinished notification
|
|
- Modify the rescanprogress notification to include block hash as well
|
|
as height (https://github.com/conformal/btcd/issues/151)
|
|
- btcctl utility changes:
|
|
- Accept --simnet flag which automatically selects the appropriate port
|
|
and TLS certificates needed to communicate with btcd and btcwallet on
|
|
the simulation test network
|
|
- Fix createrawtransaction command to send amounts denominated in BTC
|
|
- Add estimatefee command
|
|
- Add estimatepriority command
|
|
- Add getmininginfo command
|
|
- Add getnetworkinfo command
|
|
- Add gettxout command
|
|
- Add lockunspent command
|
|
- Add signrawtransaction command
|
|
- addblock utility changes:
|
|
- Accept --simnet flag which automatically selects the appropriate port
|
|
and TLS certificates needed to communicate with btcd and btcwallet on
|
|
the simulation test network
|
|
- Notable developer-related package changes:
|
|
- Provide a new bloom package in btcutil which allows creating and
|
|
working with BIP0037 bloom filters
|
|
- Provide a new hdkeychain package in btcutil which allows working with
|
|
BIP0032 hierarchical deterministic key chains
|
|
- Introduce a new btcnet package which houses network parameters
|
|
- Provide new simnet network (--simnet) which is useful for private
|
|
simulation testing
|
|
- Enforce low S values in serialized signatures as detailed in BIP0062
|
|
- Return errors from all methods on the btcdb.Db interface
|
|
(https://github.com/conformal/btcdb/issues/5)
|
|
- Allow behavior flags to alter btcchain.ProcessBlock
|
|
(https://github.com/conformal/btcchain/issues/5)
|
|
- Provide a new SerializeSize API for blocks
|
|
(https://github.com/conformal/btcwire/issues/19)
|
|
- Several of the core packages now work with Google App Engine
|
|
- Misc changes:
|
|
- Correct an issue where the database could corrupt under certain
|
|
circumstances which would require a new chain download
|
|
- Slightly optimize deserialization
|
|
- Use the correct IP block for he.net
|
|
- Fix an issue where it was possible the block manager could hang on
|
|
shutdown
|
|
- Update sample config file so the comments are on a separate line
|
|
rather than the end of a line so they are not interpreted as settings
|
|
(https://github.com/conformal/btcd/issues/135)
|
|
- Correct an issue where getdata requests were not being properly
|
|
throttled which could lead to larger than necessary memory usage
|
|
- Always show help when given the help flag even when the config file
|
|
contains invalid entries
|
|
- General code cleanup and minor optimizations
|
|
|
|
Changes in 0.8.0-beta (Sun May 25 2014)
|
|
- Btcd is now Beta (https://github.com/conformal/btcd/issues/130)
|
|
- Add a new checkpoint at block height 300255
|
|
- Protocol and network related changes:
|
|
- Lower the minimum transaction relay fee to 1000 satoshi to match
|
|
recent reference client changes
|
|
(https://github.com/conformal/btcd/issues/100)
|
|
- Raise the maximum signature script size to support standard 15-of-15
|
|
multi-signature pay-to-script-hash transactions with compressed pubkeys
|
|
to remain compatible with the reference client
|
|
(https://github.com/conformal/btcd/issues/128)
|
|
- Reduce max bytes allowed for a standard nulldata transaction to 40 for
|
|
compatibility with the reference client
|
|
- Introduce a new btcnet package which houses all of the network params
|
|
for each network (mainnet, testnet3, regtest) to ultimately enable
|
|
easier addition and tweaking of networks without needing to change
|
|
several packages
|
|
- Fix several script discrepancies found by reference client test data
|
|
- Add new DNS seed for peer discovery (seed.bitnodes.io)
|
|
- Reduce the max known inventory cache from 20000 items to 1000 items
|
|
- Fix an issue where unknown inventory types could lead to a hung peer
|
|
- Implement inventory rebroadcast handler for sendrawtransaction
|
|
(https://github.com/conformal/btcd/issues/99)
|
|
- Update user agent to fully support BIP0014
|
|
(https://github.com/conformal/btcwire/issues/10)
|
|
- Implement initial mining support:
|
|
- Add a new logging subsystem for mining related operations
|
|
- Implement infrastructure for creating block templates
|
|
- Provide options to control block template creation settings
|
|
- Support the getwork RPC
|
|
- Allow address identifiers to apply to more than one network since both
|
|
testnet3 and the regression test network unfortunately use the same
|
|
identifier
|
|
- RPC changes:
|
|
- Set the content type for HTTP POST RPC connections to application/json
|
|
(https://github.com/conformal/btcd/issues/121)
|
|
- Modified the RPC server startup so it only requires at least one valid
|
|
listen interface
|
|
- Correct an error path where it was possible certain errors would not
|
|
be returned
|
|
- Implement getwork command
|
|
(https://github.com/conformal/btcd/issues/125)
|
|
- Update sendrawtransaction command to reject orphans
|
|
- Update sendrawtransaction command to include the reason a transaction
|
|
was rejected
|
|
- Update getinfo command to populate connection count field
|
|
- Update getinfo command to include relay fee field
|
|
(https://github.com/conformal/btcd/issues/107)
|
|
- Allow transactions submitted with sendrawtransaction to bypass the
|
|
rate limiter
|
|
- Allow the getcurrentnet and getbestblock extensions to be accessed via
|
|
HTTP POST in addition to Websockets
|
|
(https://github.com/conformal/btcd/issues/127)
|
|
- Websocket changes:
|
|
- Rework notifications to ensure they are delivered in the order they
|
|
occur
|
|
- Rename notifynewtxs command to notifyreceived (funds received)
|
|
- Rename notifyallnewtxs command to notifynewtransactions
|
|
- Rename alltx notification to txaccepted
|
|
- Rename allverbosetx notification to txacceptedverbose
|
|
(https://github.com/conformal/btcd/issues/98)
|
|
- Add rescan progress notification
|
|
- Add recvtx notification
|
|
- Add redeemingtx notification
|
|
- Modify notifyspent command to accept an array of outpoints
|
|
(https://github.com/conformal/btcd/issues/123)
|
|
- Significantly optimize the rescan command to yield up to a 60x speed
|
|
increase
|
|
- btcctl utility changes:
|
|
- Add createencryptedwallet command
|
|
- Add getblockchaininfo command
|
|
- Add importwallet command
|
|
- Add addmultisigaddress command
|
|
- Add setgenerate command
|
|
- Accept --testnet and --wallet flags which automatically select
|
|
the appropriate port and TLS certificates needed to communicate
|
|
with btcd and btcwallet (https://github.com/conformal/btcd/issues/112)
|
|
- Allow path expansion from config file entries
|
|
(https://github.com/conformal/btcd/issues/113)
|
|
- Minor refactor simplify handling of options
|
|
- addblock utility changes:
|
|
- Improve logging by making it consistent with the logging provided by
|
|
btcd (https://github.com/conformal/btcd/issues/90)
|
|
- Improve several package APIs for developers:
|
|
- Add new amount type for consistently handling monetary values
|
|
- Add new coin selector API
|
|
- Add new WIF (Wallet Import Format) API
|
|
- Add new crypto types for private keys and signatures
|
|
- Add new API to sign transactions including script merging and hash
|
|
types
|
|
- Expose function to extract all pushed data from a script
|
|
(https://github.com/conformal/btcscript/issues/8)
|
|
- Misc changes:
|
|
- Optimize address manager shuffling to do 67% less work on average
|
|
- Resolve a couple of benign data races found by the race detector
|
|
(https://github.com/conformal/btcd/issues/101)
|
|
- Add IP address to all peer related errors to clarify which peer is the
|
|
cause (https://github.com/conformal/btcd/issues/102)
|
|
- Fix a UPNP case issue that prevented the --upnp option from working
|
|
with some UPNP servers
|
|
- Update documentation in the sample config file regarding debug levels
|
|
- Adjust some logging levels to improve debug messages
|
|
- Improve the throughput of query messages to the block manager
|
|
- Several minor optimizations to reduce GC churn and enhance speed
|
|
- Other minor refactoring
|
|
- General code cleanup
|
|
|
|
Changes in 0.7.0 (Thu Feb 20 2014)
|
|
- Fix an issue when parsing scripts which contain a multi-signature script
|
|
which require zero signatures such as testnet block
|
|
000000001881dccfeda317393c261f76d09e399e15e27d280e5368420f442632
|
|
(https://github.com/conformal/btcscript/issues/7)
|
|
- Add check to ensure all transactions accepted to mempool only contain
|
|
canonical data pushes (https://github.com/conformal/btcscript/issues/6)
|
|
- Fix an issue causing excessive memory consumption
|
|
- Significantly rework and improve the websocket notification system:
|
|
- Each client is now independent so slow clients no longer limit the
|
|
speed of other connected clients
|
|
- Potentially long-running operations such as rescans are now run in
|
|
their own handler and rate-limited to one operation at a time without
|
|
preventing simultaneous requests from the same client for the faster
|
|
requests or notifications
|
|
- A couple of scenarios which could cause shutdown to hang have been
|
|
resolved
|
|
- Update notifynewtx notifications to support all address types instead
|
|
of only pay-to-pubkey-hash
|
|
- Provide a --rpcmaxwebsockets option to allow limiting the number of
|
|
concurrent websocket clients
|
|
- Add a new websocket command notifyallnewtxs to request notifications
|
|
(https://github.com/conformal/btcd/issues/86) (thanks @flammit)
|
|
- Improve btcctl utility in the following ways:
|
|
- Add getnetworkhashps command
|
|
- Add gettransaction command (wallet-specific)
|
|
- Add signmessage command (wallet-specific)
|
|
- Update getwork command to accept
|
|
- Continue cleanup and work on implementing the RPC API:
|
|
- Implement getnettotals command
|
|
(https://github.com/conformal/btcd/issues/84)
|
|
- Implement networkhashps command
|
|
(https://github.com/conformal/btcd/issues/87)
|
|
- Update getpeerinfo to always include syncnode field even when false
|
|
- Remove help addenda for getpeerinfo now that it supports all fields
|
|
- Close standard RPC connections on auth failure
|
|
- Provide a --rpcmaxclients option to allow limiting the number of
|
|
concurrent RPC clients (https://github.com/conformal/btcd/issues/68)
|
|
- Include IP address in RPC auth failure log messages
|
|
- Resolve a rather harmless data races found by the race detector
|
|
(https://github.com/conformal/btcd/issues/94)
|
|
- Increase block priority size and max standard transaction size to 50k
|
|
and 100k, respectively (https://github.com/conformal/btcd/issues/71)
|
|
- Add rate limiting of free transactions to the memory pool to prevent
|
|
penny flooding (https://github.com/conformal/btcd/issues/40)
|
|
- Provide a --logdir option (https://github.com/conformal/btcd/issues/95)
|
|
- Change the default log file path to include the network
|
|
- Add a new ScriptBuilder interface to btcscript to support creation of
|
|
custom scripts (https://github.com/conformal/btcscript/issues/5)
|
|
- General code cleanup
|
|
|
|
Changes in 0.6.0 (Tue Feb 04 2014)
|
|
- Fix an issue when parsing scripts which contain invalid signatures that
|
|
caused a chain fork on block
|
|
0000000000000001e4241fd0b3469a713f41c5682605451c05d3033288fb2244
|
|
- Correct an issue which could lead to an error in removeBlockNode
|
|
(https://github.com/conformal/btcchain/issues/4)
|
|
- Improve addblock utility as follows:
|
|
- Check imported blocks against all chain rules and checkpoints
|
|
- Skip blocks which are already known so you can stop and restart the
|
|
import or start the import after you have already downloaded a portion
|
|
of the chain
|
|
- Correct an issue where the utility did not shutdown cleanly after
|
|
processing all blocks
|
|
- Add error on attempt to import orphan blocks
|
|
- Improve error handling and reporting
|
|
- Display statistics after input file has been fully processed
|
|
- Rework, optimize, and improve headers-first mode:
|
|
- Resuming the chain sync from any point before the final checkpoint
|
|
will now use headers-first mode
|
|
(https://github.com/conformal/btcd/issues/69)
|
|
- Verify all checkpoints as opposed to only the final one
|
|
- Reduce and bound memory usage
|
|
- Rollback to the last known good point when a header does not match a
|
|
checkpoint
|
|
- Log information about what is happening with headers
|
|
- Improve btcctl utility in the following ways:
|
|
- Add getaddednodeinfo command
|
|
- Add getnettotals command
|
|
- Add getblocktemplate command (wallet-specific)
|
|
- Add getwork command (wallet-specific)
|
|
- Add getnewaddress command (wallet-specific)
|
|
- Add walletpassphrasechange command (wallet-specific)
|
|
- Add walletlock command (wallet-specific)
|
|
- Add sendfrom command (wallet-specific)
|
|
- Add sendmany command (wallet-specific)
|
|
- Add settxfee command (wallet-specific)
|
|
- Add listsinceblock command (wallet-specific)
|
|
- Add listaccounts command (wallet-specific)
|
|
- Add keypoolrefill command (wallet-specific)
|
|
- Add getreceivedbyaccount command (wallet-specific)
|
|
- Add getrawchangeaddress command (wallet-specific)
|
|
- Add gettxoutsetinfo command (wallet-specific)
|
|
- Add listaddressgroupings command (wallet-specific)
|
|
- Add listlockunspent command (wallet-specific)
|
|
- Add listlock command (wallet-specific)
|
|
- Add listreceivedbyaccount command (wallet-specific)
|
|
- Add validateaddress command (wallet-specific)
|
|
- Add verifymessage command (wallet-specific)
|
|
- Add sendtoaddress command (wallet-specific)
|
|
- Continue cleanup and work on implementing the RPC API:
|
|
- Implement submitblock command
|
|
(https://github.com/conformal/btcd/issues/61)
|
|
- Implement help command
|
|
- Implement ping command
|
|
- Implement getaddednodeinfo command
|
|
(https://github.com/conformal/btcd/issues/78)
|
|
- Implement getinfo command
|
|
- Update getpeerinfo to support bytesrecv and bytessent
|
|
(https://github.com/conformal/btcd/issues/83)
|
|
- Improve and correct several RPC server and websocket areas:
|
|
- Change the connection endpoint for websockets from /wallet to /ws
|
|
(https://github.com/conformal/btcd/issues/80)
|
|
- Implement an alternative authentication for websockets so clients
|
|
such as javascript from browsers that don't support setting HTTP
|
|
headers can authenticate (https://github.com/conformal/btcd/issues/77)
|
|
- Add an authentication deadline for RPC connections
|
|
(https://github.com/conformal/btcd/issues/68)
|
|
- Use standard authentication failure responses for RPC connections
|
|
- Make automatically generated certificate more standard so it works
|
|
from client such as node.js and Firefox
|
|
- Correct some minor issues which could prevent the RPC server from
|
|
shutting down in an orderly fashion
|
|
- Make all websocket notifications require registration
|
|
- Change the data sent over websockets to text since it is JSON-RPC
|
|
- Allow connections that do not have an Origin header set
|
|
- Expose and track the number of bytes read and written per peer
|
|
(https://github.com/conformal/btcwire/issues/6)
|
|
- Correct an issue with sendrawtransaction when invoked via websockets
|
|
which prevented a minedtx notification from being added
|
|
- Rescan operations issued from remote wallets are no stopped when
|
|
the wallet disconnects mid-operation
|
|
(https://github.com/conformal/btcd/issues/66)
|
|
- Several optimizations related to fetching block information from the
|
|
database
|
|
- General code cleanup
|
|
|
|
Changes in 0.5.0 (Mon Jan 13 2014)
|
|
- Optimize initial block download by introducing a new mode which
|
|
downloads the block headers first (up to the final checkpoint)
|
|
- Improve peer handling to remove the potential for slow peers to cause
|
|
sluggishness amongst all peers
|
|
(https://github.com/conformal/btcd/issues/63)
|
|
- Fix an issue where the initial block sync could stall when the sync peer
|
|
disconnects (https://github.com/conformal/btcd/issues/62)
|
|
- Correct an issue where --externalip was doing a DNS lookup on the full
|
|
host:port instead of just the host portion
|
|
(https://github.com/conformal/btcd/issues/38)
|
|
- Fix an issue which could lead to a panic on chain switches
|
|
(https://github.com/conformal/btcd/issues/70)
|
|
- Improve btcctl utility in the following ways:
|
|
- Show getdifficulty output as floating point to 6 digits of precision
|
|
- Show all JSON object replies formatted as standard JSON
|
|
- Allow btcctl getblock to accept optional params
|
|
- Add getaccount command (wallet-specific)
|
|
- Add getaccountaddress command (wallet-specific)
|
|
- Add sendrawtransaction command
|
|
- Continue cleanup and work on implementing RPC API calls
|
|
- Update getrawmempool to support new optional verbose flag
|
|
- Update getrawtransaction to match the reference client
|
|
- Update getblock to support new optional verbose flag
|
|
- Update raw transactions to fully match the reference client including
|
|
support for all transaction types and address types
|
|
- Correct getrawmempool fee field to return BTC instead of Satoshi
|
|
- Correct getpeerinfo service flag to return 8 digit string so it
|
|
matches the reference client
|
|
- Correct verifychain to return a boolean
|
|
- Implement decoderawtransaction command
|
|
- Implement createrawtransaction command
|
|
- Implement decodescript command
|
|
- Implement gethashespersec command
|
|
- Allow RPC handler overrides when invoked via a websocket versus
|
|
legacy connection
|
|
- Add new DNS seed for peer discovery
|
|
- Display user agent on new valid peer log message
|
|
(https://github.com/conformal/btcd/issues/64)
|
|
- Notify wallet when new transactions that pay to registered addresses
|
|
show up in the mempool before being mined into a block
|
|
- Support a tor-specific proxy in addition to a normal proxy
|
|
(https://github.com/conformal/btcd/issues/47)
|
|
- Remove deprecated sqlite3 imports from utilities
|
|
- Remove leftover profile write from addblock utility
|
|
- Quite a bit of code cleanup and refactoring to improve maintainability
|
|
|
|
Changes in 0.4.0 (Thu Dec 12 2013)
|
|
- Allow listen interfaces to be specified via --listen instead of only the
|
|
port (https://github.com/conformal/btcd/issues/33)
|
|
- Allow listen interfaces for the RPC server to be specified via
|
|
--rpclisten instead of only the port
|
|
(https://github.com/conformal/btcd/issues/34)
|
|
- Only disable listening when --connect or --proxy are used when no
|
|
--listen interface are specified
|
|
(https://github.com/conformal/btcd/issues/10)
|
|
- Add several new standard transaction checks to transaction memory pool:
|
|
- Support nulldata scripts as standard
|
|
- Only allow a max of one nulldata output per transaction
|
|
- Enforce a maximum of 3 public keys in multi-signature transactions
|
|
- The number of signatures in multi-signature transactions must not
|
|
exceed the number of public keys
|
|
- The number of inputs to a signature script must match the expected
|
|
number of inputs for the script type
|
|
- The number of inputs pushed onto the stack by a redeeming signature
|
|
script must match the number of inputs consumed by the referenced
|
|
public key script
|
|
- When a block is connected, remove any transactions from the memory pool
|
|
which are now double spends as a result of the newly connected
|
|
transactions
|
|
- Don't relay transactions resurrected during a chain switch since
|
|
other peers will also be switching chains and therefore already know
|
|
about them
|
|
- Cleanup a few cases where rejected transactions showed as an error
|
|
rather than as a rejected transaction
|
|
- Ignore the default configuration file when --regtest (regression test
|
|
mode) is specified
|
|
- Implement TLS support for RPC including automatic certificate generation
|
|
- Support HTTP authentication headers for web sockets
|
|
- Update address manager to recognize and properly work with Tor
|
|
addresses (https://github.com/conformal/btcd/issues/36) and
|
|
(https://github.com/conformal/btcd/issues/37)
|
|
- Improve btcctl utility in the following ways:
|
|
- Add the ability to specify a configuration file
|
|
- Add a default entry for the RPC cert to point to the location
|
|
it will likely be in the btcd home directory
|
|
- Implement --version flag
|
|
- Provide a --notls option to support non-TLS configurations
|
|
- Fix a couple of minor races found by the Go race detector
|
|
- Improve logging
|
|
- Allow logging level to be specified on a per subsystem basis
|
|
(https://github.com/conformal/btcd/issues/48)
|
|
- Allow logging levels to be dynamically changed via RPC
|
|
(https://github.com/conformal/btcd/issues/15)
|
|
- Implement a rolling log file with a max of 10MB per file and a
|
|
rotation size of 3 which results in a max logging size of 30 MB
|
|
- Correct a minor issue with the rescanning websocket call
|
|
(https://github.com/conformal/btcd/issues/54)
|
|
- Fix a race with pushing address messages that could lead to a panic
|
|
(https://github.com/conformal/btcd/issues/58)
|
|
- Improve which external IP address is reported to peers based on which
|
|
interface they are connected through
|
|
(https://github.com/conformal/btcd/issues/35)
|
|
- Add --externalip option to allow an external IP address to be specified
|
|
for cases such as tor hidden services or advanced network configurations
|
|
(https://github.com/conformal/btcd/issues/38)
|
|
- Add --upnp option to support automatic port mapping via UPnP
|
|
(https://github.com/conformal/btcd/issues/51)
|
|
- Update Ctrl+C interrupt handler to properly sync address manager and
|
|
remove the UPnP port mapping (if needed)
|
|
- Continue cleanup and work on implementing RPC API calls
|
|
- Add importprivkey (import private key) command to btcctl
|
|
- Update getrawtransaction to provide addresses properly, support
|
|
new verbose param, and match the reference implementation with the
|
|
exception of MULTISIG (thanks @flammit)
|
|
- Update getblock with new verbose flag (thanks @flammit)
|
|
- Add listtransactions command to btcctl
|
|
- Add getbalance command to btcctl
|
|
- Add basic support for btcd to run as a native Windows service
|
|
(https://github.com/conformal/btcd/issues/42)
|
|
- Package addblock utility with Windows MSIs
|
|
- Add support for TravisCI (continuous build integration)
|
|
- Cleanup some documentation and usage
|
|
- Several other minor bug fixes and general code cleanup
|
|
|
|
Changes in 0.3.3 (Wed Nov 13 2013)
|
|
- Significantly improve initial block chain download speed
|
|
(https://github.com/conformal/btcd/issues/20)
|
|
- Add a new checkpoint at block height 267300
|
|
- Optimize most recently used inventory handling
|
|
(https://github.com/conformal/btcd/issues/21)
|
|
- Optimize duplicate transaction input check
|
|
(https://github.com/conformal/btcchain/issues/2)
|
|
- Optimize transaction hashing
|
|
(https://github.com/conformal/btcd/issues/25)
|
|
- Rework and optimize wallet listener notifications
|
|
(https://github.com/conformal/btcd/issues/22)
|
|
- Optimize serialization and deserialization
|
|
(https://github.com/conformal/btcd/issues/27)
|
|
- Add support for minimum transaction fee to memory pool acceptance
|
|
(https://github.com/conformal/btcd/issues/29)
|
|
- Improve leveldb database performance by removing explicit GC call
|
|
- Fix an issue where Ctrl+C was not always finishing orderly database
|
|
shutdown
|
|
- Fix an issue in the script handling for OP_CHECKSIG
|
|
- Impose max limits on all variable length protocol entries to prevent
|
|
abuse from malicious peers
|
|
- Enforce DER signatures for transactions allowed into the memory pool
|
|
- Separate the debug profile http server from the RPC server
|
|
- Rework of the RPC code to improve performance and make the code cleaner
|
|
- The getrawtransaction RPC call now properly checks the memory pool
|
|
before consulting the db (https://github.com/conformal/btcd/issues/26)
|
|
- Add support for the following RPC calls: getpeerinfo, getconnectedcount,
|
|
addnode, verifychain
|
|
(https://github.com/conformal/btcd/issues/13)
|
|
(https://github.com/conformal/btcd/issues/17)
|
|
- Implement rescan websocket extension to allow wallet rescans
|
|
- Use correct paths for application data storage for all supported
|
|
operating systems (https://github.com/conformal/btcd/issues/30)
|
|
- Add a default redirect to the http profiling page when accessing the
|
|
http profile server
|
|
- Add a new --cpuprofile option which can be used to generate CPU
|
|
profiling data on platforms that support it
|
|
- Several other minor performance optimizations
|
|
- Other minor bug fixes and general code cleanup
|
|
|
|
Changes in 0.3.2 (Tue Oct 22 2013)
|
|
- Fix an issue that could cause the download of the block chain to stall
|
|
(https://github.com/conformal/btcd/issues/12)
|
|
- Remove deprecated sqlite as an available database backend
|
|
- Close sqlite compile issue as sqlite has now been removed
|
|
(https://github.com/conformal/btcd/issues/11)
|
|
- Change default RPC ports to 8334 (mainnet) and 18334 (testnet)
|
|
- Continue cleanup and work on implementing RPC API calls
|
|
- Add support for the following RPC calls: getrawmempool,
|
|
getbestblockhash, decoderawtransaction, getdifficulty,
|
|
getconnectioncount, getpeerinfo, and addnode
|
|
- Improve the btcctl utility that is used to issue JSON-RPC commands
|
|
- Fix an issue preventing btcd from cleanly shutting down with the RPC
|
|
stop command
|
|
- Add a number of database interface tests to ensure backends implement
|
|
the expected interface
|
|
- Expose some additional information from btcscript to be used for
|
|
identifying "standard"" transactions
|
|
- Add support for plan9 - thanks @mischief
|
|
(https://github.com/conformal/btcd/pull/19)
|
|
- Other minor bug fixes and general code cleanup
|
|
|
|
Changes in 0.3.1-alpha (Tue Oct 15 2013)
|
|
- Change default database to leveldb
|
|
NOTE: This does mean you will have to redownload the block chain. Since we
|
|
are still in alpha, we didn't feel writing a converter was worth the time as
|
|
it would take away from more important issues at this stage
|
|
- Add a warning if there are multiple block chain databases of different types
|
|
- Fix issue with unexpected EOF in leveldb -- https://github.com/conformal/btcd/issues/18
|
|
- Fix issue preventing block 21066 on testnet -- https://github.com/conformal/btcchain/issues/1
|
|
- Fix issue preventing block 96464 on testnet -- https://github.com/conformal/btcscript/issues/1
|
|
- Optimize transaction lookups
|
|
- Correct a few cases of list removal that could result in improper cleanup
|
|
of no longer needed orphans
|
|
- Add functionality to increase ulimits on non-Windows platforms
|
|
- Add support for mempool command which allows remote peers to query the
|
|
transaction memory pool via the bitcoin protocol
|
|
- Clean up logging a bit
|
|
- Add a flag to disable checkpoints for developers
|
|
- Add a lot of useful debug logging such as message summaries
|
|
- Other minor bug fixes and general code cleanup
|
|
|
|
Initial Release 0.3.0-alpha (Sat Oct 05 2013):
|
|
- Initial release
|