github.com/btcsuite/btcd@v0.24.0/CHANGES (about) 1 ============================================================================ 2 User visible changes for btcd 3 A full-node bitcoin implementation written in Go 4 ============================================================================ 5 6 Changes in 0.22.0 (Tue Jun 01 2021) 7 - Protocol and network-related changes: 8 - Add support for witness tx and block in notfound msg (#1625) 9 - Add support for receiving sendaddrv2 messages from a peer (#1670) 10 - Fix bug in peer package causing last block height to go backwards 11 (#1606) 12 - Add chain parameters for connecting to the public Signet network 13 (#1692, #1718) 14 - Crypto changes: 15 - Fix bug causing panic due to bad R and S signature components in 16 btcec.RecoverCompact (#1691) 17 - Set the name (secp256k1) in the CurveParams of the S256 curve 18 (#1565) 19 - Notable developer-related package changes: 20 - Remove unknown block version warning in the blockchain package, 21 due to false positives triggered by AsicBoost (#1463) 22 - Add chaincfg.RegisterHDKeyID function to populate HD key ID pairs 23 (#1617) 24 - Add new method mining.AddWitnessCommitment to add the witness 25 commitment as an OP_RETURN output within the coinbase transaction. 26 (#1716) 27 - RPC changes: 28 - Support Batch JSON-RPC in rpcclient and server (#1583) 29 - Add rpcclient method to invoke getdescriptorinfo JSON-RPC command 30 (#1578) 31 - Update the rpcserver handler for validateaddress JSON-RPC command to 32 have parity with the bitcoind 0.20.0 interface (#1613) 33 - Add rpcclient method to invoke getblockfilter JSON-RPC command 34 (#1579) 35 - Add signmessagewithprivkey JSON-RPC command in rpcserver (#1585) 36 - Add rpcclient method to invoke importmulti JSON-RPC command (#1579) 37 - Add watchOnly argument in rpcclient method to invoke 38 listtransactions JSON-RPC command (#1628) 39 - Update btcjson.ListTransactionsResult for compatibility with Bitcoin 40 Core 0.20.0 (#1626) 41 - Support nullable optional JSON-RPC parameters (#1594) 42 - Add rpcclient and server method to invoke getnodeaddresses JSON-RPC 43 command (#1590) 44 - Add rpcclient methods to invoke PSBT JSON-RPC commands (#1596) 45 - Add rpcclient method to invoke listsinceblock with the 46 include_watchonly parameter enabled (#1451) 47 - Add rpcclient method to invoke deriveaddresses JSON-RPC command 48 (#1631) 49 - Add rpcclient method to invoke getblocktemplate JSON-RPC command 50 (#1629) 51 - Add rpcclient method to invoke getaddressinfo JSON-RPC command 52 (#1633) 53 - Add rpcclient method to invoke getwalletinfo JSON-RPC command 54 (#1638) 55 - Fix error message in rpcserver when an unknown RPC command is 56 encountered (#1695) 57 - Fix error message returned by estimatefee when the number of blocks 58 exceeds the max depth (#1678) 59 - Update btcjson.GetBlockChainInfoResult to include new fields in 60 Bitcoin Core (#1676) 61 - Add ExtraHeaders in rpcclient.ConnConfig struct (#1669) 62 - Fix bitcoind compatibility issue with the sendrawtransaction 63 JSON-RPC command (#1659) 64 - Add new JSON-RPC errors to btcjson package, and documented them 65 (#1648) 66 - Add rpcclient method to invoke createwallet JSON-RPC command 67 (#1650) 68 - Add rpcclient methods to invoke backupwallet, dumpwallet, loadwallet 69 and unloadwallet JSON-RPC commands (#1645) 70 - Fix unmarshalling error in getmininginfo JSON-RPC command, for valid 71 integers in scientific notation (#1644) 72 - Add rpcclient method to invoke gettxoutsetinfo JSON-RPC command 73 (#1641) 74 - Add rpcclient method to invoke signrawtransactionwithwallet JSON-RPC 75 command (#1642) 76 - Add txid to getblocktemplate response of rpcserver (#1639) 77 - Fix monetary unit used in createrawtransaction JSON-RPC command in 78 rpcserver (#1614) 79 - Add rawtx field to btcjson.GetBlockVerboseTxResult to provide 80 backwards compatibility with older versions of Bitcoin Core (#1677) 81 - Misc changes: 82 - Update btcutil dependency (#1704) 83 - Add Dockerfile to build and run btcd on Docker (#1465) 84 - Rework documentation and publish on https://btcd.readthedocs.io (#1468) 85 - Add support for Go 1.15 (#1619) 86 - Add Go 1.14 as the minimum supported version of Golang (#1621) 87 - Contributors (alphabetical order): 88 - 10gic 89 - Andrew Tugarinov 90 - Anirudha Bose 91 - Appelberg-s 92 - Armando Ochoa 93 - Aurèle Oulès 94 - Calvin Kim 95 - Christian Lehmann 96 - Conner Fromknecht 97 - Dan Cline 98 - David Mazary 99 - Elliott Minns 100 - Federico Bond 101 - Friedger Müffke 102 - Gustavo Chain 103 - Hanjun Kim 104 - Henry Fisher 105 - Iskander Sharipov 106 - Jake Sylvestre 107 - Johan T. Halseth 108 - John C. Vernaleo 109 - Liran Sharir 110 - Mikael Lindlof 111 - Olaoluwa Osuntokun 112 - Oliver Gugger 113 - Rjected 114 - Steven Kreuzer 115 - Torkel Rogstad 116 - Tristyn 117 - Victor Lavaud 118 - Vinayak Borkar 119 - Wilmer Paulino 120 - Yaacov Akiba Slama 121 - ebiiim 122 - ipriver 123 - wakiyamap 124 - yyforyongyu 125 126 Changes in 0.21.0 (Thu Aug 27 2020) 127 - Network-related changes: 128 - Handle notfound messages from peers in netsync package (#1603) 129 - RPC changes: 130 - Add compatibility for getblock RPC changes in bitcoind 0.15.0 (#1529) 131 - Add new optional Params field to rpcclient.ConnConfig (#1467) 132 - Add new error code ErrRPCInWarmup in btcjson (#1541) 133 - Add compatibility for changes to getmempoolentry response in bitcoind 134 0.19.0 (#1524) 135 - Add rpcclient methods for estimatesmartfee and generatetoaddress 136 commands (#1500) 137 - Add rpcclient method for getblockstats command (#1500) 138 - Parse serialized transaction from createrawtransaction command using 139 both segwit, and legacy format (#1502) 140 - Support cookie-based authentication in rpcclient (#1460) 141 - Add rpcclient method for getchaintxstats command (#1571) 142 - Add rpcclient method for fundrawtransaction command (#1553) 143 - Add rpcclient method for getbalances command (#1595) 144 - Add new method rpcclient.GetTransactionWatchOnly (#1592) 145 - Crypto changes: 146 - Fix panic in fieldVal.SetByteSlice when called with large values, and 147 improve the method to be 35% faster (#1602) 148 - btcctl changes: 149 - Add -regtest mode to btcctl (#1556) 150 - Misc changes: 151 - Fix a bug due to a deadlock in connmgr's dynamic ban scoring (#1509) 152 - Add blockchain.NewUtxoEntry() to directly create entries for 153 UtxoViewpoint (#1588) 154 - Replace LRU cache implementation in peer package with a generic one 155 from decred/dcrd (#1599) 156 - Contributors (alphabetical order): 157 - Anirudha Bose 158 - Antonin Hildebrand 159 - Dan Cline 160 - Daniel McNally 161 - David Hill 162 - Federico Bond 163 - George Tankersley 164 - Henry 165 - Henry Harder 166 - Iskander Sharipov 167 - Ivan Kuznetsov 168 - Jake Sylvestre 169 - Javed Khan 170 - JeremyRand 171 - Jin 172 - John C. Vernaleo 173 - Kulpreet Singh 174 - Mikael Lindlof 175 - Murray Nesbitt 176 - Nisen 177 - Olaoluwa Osuntokun 178 - Oliver Gugger 179 - Steven Roose 180 - Torkel Rogstad 181 - Tyler Chambers 182 - Wilmer Paulino 183 - Yash Bhutwala 184 - adiabat 185 - jalavosus 186 - mohanson 187 - qqjettkgjzhxmwj 188 - qshuai 189 - shuai.qi 190 - tpkeeper 191 192 Changes in v0.20.1 (Wed Nov 13 2019) 193 - RPC changes: 194 - Add compatibility for bitcoind v0.19.0 in rpcclient and btcjson 195 packages (#1484) 196 - Contributors (alphabetical order): 197 - Eugene Zeigel 198 - Olaoluwa Osuntokun 199 - Wilmer Paulino 200 201 Changes in v0.20.0 (Tue Oct 15 2019) 202 - Significant changes made since 0.12.0. See git log or refer to release 203 notes on GitHub for full details. 204 - Contributors (alphabetical order): 205 - Albert Puigsech Galicia 206 - Alex Akselrod 207 - Alex Bosworth 208 - Alex Manuskin 209 - Alok Menghrajani 210 - Anatoli Babenia 211 - Andy Weidenbaum 212 - Calvin McAnarney 213 - Chris Martin 214 - Chris Pacia 215 - Chris Shepherd 216 - Conner Fromknecht 217 - Craig Sturdy 218 - Cédric Félizard 219 - Daniel Krawisz 220 - Daniel Martí 221 - Daniel McNally 222 - Dario Nieuwenhuis 223 - Dave Collins 224 - David Hill 225 - David de Kloet 226 - GeertJohan 227 - Grace Noah 228 - Gregory Trubetskoy 229 - Hector Jusforgues 230 - Iskander (Alex) Sharipov 231 - Janus Troelsen 232 - Jasper 233 - Javed Khan 234 - Jeremiah Goyette 235 - Jim Posen 236 - Jimmy Song 237 - Johan T. Halseth 238 - John C. Vernaleo 239 - Jonathan Gillham 240 - Josh Rickmar 241 - Jon Underwood 242 - Jonathan Zeppettini 243 - Jouke Hofman 244 - Julian Meyer 245 - Kai 246 - Kamil Slowikowski 247 - Kefkius 248 - Leonardo Lazzaro 249 - Marco Peereboom 250 - Marko Bencun 251 - Mawueli Kofi Adzoe 252 - Michail Kargakis 253 - Mitchell Paull 254 - Nathan Bass 255 - Nicola 'tekNico' Larosa 256 - Olaoluwa Osuntokun 257 - Pedro Martelletto 258 - Ricardo Velhote 259 - Roei Erez 260 - Ruben de Vries 261 - Rune T. Aune 262 - Sad Pencil 263 - Shuai Qi 264 - Steven Roose 265 - Tadge Dryja 266 - Tibor Bősze 267 - Tomás Senart 268 - Tzu-Jung Lee 269 - Vadym Popov 270 - Waldir Pimenta 271 - Wilmer Paulino 272 - benma 273 - danda 274 - dskloet 275 - esemplastic 276 - jadeblaquiere 277 - nakagawa 278 - preminem 279 - qshuai 280 281 Changes in 0.12.0 (Fri Nov 20 2015) 282 - Protocol and network related changes: 283 - Add a new checkpoint at block height 382320 (#555) 284 - Implement BIP0065 which includes support for version 4 blocks, a new 285 consensus opcode (OP_CHECKLOCKTIMEVERIFY) that enforces transaction 286 lock times, and a double-threshold switchover mechanism (#535, #459, 287 #455) 288 - Implement BIP0111 which provides a new bloom filter service flag and 289 hence provides support for protocol version 70011 (#499) 290 - Add a new parameter --nopeerbloomfilters to allow disabling bloom 291 filter support (#499) 292 - Reject non-canonically encoded variable length integers (#507) 293 - Add mainnet peer discovery DNS seed (seed.bitcoin.jonasschnelli.ch) 294 (#496) 295 - Correct reconnect handling for persistent peers (#463, #464) 296 - Ignore requests for block headers if not fully synced (#444) 297 - Add CLI support for specifying the zone id on IPv6 addresses (#538) 298 - Fix a couple of issues where the initial block sync could stall (#518, 299 #229, #486) 300 - Fix an issue which prevented the --onion option from working as 301 intended (#446) 302 - Transaction relay (memory pool) changes: 303 - Require transactions to only include signatures encoded with the 304 canonical 'low-s' encoding (#512) 305 - Add a new parameter --minrelaytxfee to allow the minimum transaction 306 fee in BTC/kB to be overridden (#520) 307 - Retain memory pool transactions when they redeem another one that is 308 removed when a block is accepted (#539) 309 - Do not send reject messages for a transaction if it is valid but 310 causes an orphan transaction which depends on it to be determined 311 as invalid (#546) 312 - Refrain from attempting to add orphans to the memory pool multiple 313 times when the transaction they redeem is added (#551) 314 - Modify minimum transaction fee calculations to scale based on bytes 315 instead of full kilobyte boundaries (#521, #537) 316 - Implement signature cache: 317 - Provides a limited memory cache of validated signatures which is a 318 huge optimization when verifying blocks for transactions that are 319 already in the memory pool (#506) 320 - Add a new parameter '--sigcachemaxsize' which allows the size of the 321 new cache to be manually changed if desired (#506) 322 - Mining support changes: 323 - Notify getblocktemplate long polling clients when a block is pushed 324 via submitblock (#488) 325 - Speed up getblocktemplate by making use of the new signature cache 326 (#506) 327 - RPC changes: 328 - Implement getmempoolinfo command (#453) 329 - Implement getblockheader command (#461) 330 - Modify createrawtransaction command to accept a new optional parameter 331 'locktime' (#529) 332 - Modify listunspent result to include the 'spendable' field (#440) 333 - Modify getinfo command to include 'errors' field (#511) 334 - Add timestamps to blockconnected and blockdisconnected notifications 335 (#450) 336 - Several modifications to searchrawtranscations command: 337 - Accept a new optional parameter 'vinextra' which causes the results 338 to include information about the outputs referenced by a transaction's 339 inputs (#485, #487) 340 - Skip entries in the mempool too (#495) 341 - Accept a new optional parameter 'reverse' to return the results in 342 reverse order (most recent to oldest) (#497) 343 - Accept a new optional parameter 'filteraddrs' which causes the 344 results to only include inputs and outputs which involve the 345 provided addresses (#516) 346 - Change the notification order to notify clients about mined 347 transactions (recvtx, redeemingtx) before the blockconnected 348 notification (#449) 349 - Update verifymessage RPC to use the standard algorithm so it is 350 compatible with other implementations (#515) 351 - Improve ping statistics by pinging on an interval (#517) 352 - Websocket changes: 353 - Implement session command which returns a per-session unique id (#500, 354 #503) 355 - btcctl utility changes: 356 - Add getmempoolinfo command (#453) 357 - Add getblockheader command (#461) 358 - Add getwalletinfo command (#471) 359 - Notable developer-related package changes: 360 - Introduce a new peer package which acts a common base for creating and 361 concurrently managing bitcoin network peers (#445) 362 - Various cleanup of the new peer package (#528, #531, #524, #534, 363 #549) 364 - Blocks heights now consistently use int32 everywhere (#481) 365 - The BlockHeader type in the wire package now provides the BtcDecode 366 and BtcEncode methods (#467) 367 - Update wire package to recognize BIP0064 (getutxo) service bit (#489) 368 - Export LockTimeThreshold constant from txscript package (#454) 369 - Export MaxDataCarrierSize constant from txscript package (#466) 370 - Provide new IsUnspendable function from the txscript package (#478) 371 - Export variable length string functions from the wire package (#514) 372 - Export DNS Seeds for each network from the chaincfg package (#544) 373 - Preliminary work towards separating the memory pool into a separate 374 package (#525, #548) 375 - Misc changes: 376 - Various documentation updates (#442, #462, #465, #460, #470, #473, 377 #505, #530, #545) 378 - Add installation instructions for gentoo (#542) 379 - Ensure an error is shown if OS limits can't be set at startup (#498) 380 - Tighten the standardness checks for multisig scripts (#526) 381 - Test coverage improvement (#468, #494, #527, #543, #550) 382 - Several optimizations (#457, #474, #475, #476, #508, #509) 383 - Minor code cleanup and refactoring (#472, #479, #482, #519, #540) 384 - Contributors (alphabetical order): 385 - Ben Echols 386 - Bruno Clermont 387 - danda 388 - Daniel Krawisz 389 - Dario Nieuwenhuis 390 - Dave Collins 391 - David Hill 392 - Javed Khan 393 - Jonathan Gillham 394 - Joseph Becher 395 - Josh Rickmar 396 - Justus Ranvier 397 - Mawuli Adzoe 398 - Olaoluwa Osuntokun 399 - Rune T. Aune 400 401 Changes in 0.11.1 (Wed May 27 2015) 402 - Protocol and network related changes: 403 - Use correct sub-command in reject message for rejected transactions 404 (#436, #437) 405 - Add a new parameter --torisolation which forces new circuits for each 406 connection when using tor (#430) 407 - Transaction relay (memory pool) changes: 408 - Reduce the default number max number of allowed orphan transactions 409 to 1000 (#419) 410 - Add a new parameter --maxorphantx which allows the maximum number of 411 orphan transactions stored in the mempool to be specified (#419) 412 - RPC changes: 413 - Modify listtransactions result to include the 'involveswatchonly' and 414 'vout' fields (#427) 415 - Update getrawtransaction result to omit the 'confirmations' field 416 when it is 0 (#420, #422) 417 - Update signrawtransaction result to include errors (#423) 418 - btcctl utility changes: 419 - Add gettxoutproof command (#428) 420 - Add verifytxoutproof command (#428) 421 - Notable developer-related package changes: 422 - The btcec package now provides the ability to perform ECDH 423 encryption and decryption (#375) 424 - The block and header validation in the blockchain package has been 425 split to help pave the way toward concurrent downloads (#386) 426 - Misc changes: 427 - Minor peer optimization (#433) 428 - Contributors (alphabetical order): 429 - Dave Collins 430 - David Hill 431 - Federico Bond 432 - Ishbir Singh 433 - Josh Rickmar 434 435 Changes in 0.11.0 (Wed May 06 2015) 436 - Protocol and network related changes: 437 - **IMPORTANT: Update is required due to the following point** 438 - Correct a few corner cases in script handling which could result in 439 forking from the network on non-standard transactions (#425) 440 - Add a new checkpoint at block height 352940 (#418) 441 - Optimized script execution (#395, #400, #404, #409) 442 - Fix a case that could lead stalled syncs (#138, #296) 443 - Network address manager changes: 444 - Implement eclipse attack countermeasures as proposed in 445 http://cs-people.bu.edu/heilman/eclipse (#370, #373) 446 - Optional address indexing changes: 447 - Fix an issue where a reorg could cause an orderly shutdown when the 448 address index is active (#340, #357) 449 - Transaction relay (memory pool) changes: 450 - Increase maximum allowed space for nulldata transactions to 80 bytes 451 (#331) 452 - Implement support for the following rules specified by BIP0062: 453 - The S value in ECDSA signature must be at most half the curve order 454 (rule 5) (#349) 455 - Script execution must result in a single non-zero value on the stack 456 (rule 6) (#347) 457 - NOTE: All 7 rules of BIP0062 are now implemented 458 - Use network adjusted time in finalized transaction checks to improve 459 consistency across nodes (#332) 460 - Process orphan transactions on acceptance of new transactions (#345) 461 - RPC changes: 462 - Add support for a limited RPC user which is not allowed admin level 463 operations on the server (#363) 464 - Implement node command for more unified control over connected peers 465 (#79, #341) 466 - Implement generate command for regtest/simnet to support 467 deterministically mining a specified number of blocks (#362, #407) 468 - Update searchrawtransactions to return the matching transactions in 469 order (#354) 470 - Correct an issue with searchrawtransactions where it could return 471 duplicates (#346, #354) 472 - Increase precision of 'difficulty' field in getblock result to 8 473 (#414, #415) 474 - Omit 'nextblockhash' field from getblock result when it is empty 475 (#416, #417) 476 - Add 'id' and 'timeoffset' fields to getpeerinfo result (#335) 477 - Websocket changes: 478 - Implement new commands stopnotifyspent, stopnotifyreceived, 479 stopnotifyblocks, and stopnotifynewtransactions to allow clients to 480 cancel notification registrations (#122, #342) 481 - btcctl utility changes: 482 - A single dash can now be used as an argument to cause that argument to 483 be read from stdin (#348) 484 - Add generate command 485 - Notable developer-related package changes: 486 - The new version 2 btcjson package has now replaced the deprecated 487 version 1 package (#368) 488 - The btcec package now performs all signing using RFC6979 deterministic 489 signatures (#358, #360) 490 - The txscript package has been significantly cleaned up and had a few 491 API changes (#387, #388, #389, #390, #391, #392, #393, #395, #396, 492 #400, #403, #404, #405, #406, #408, #409, #410, #412) 493 - A new PkScriptLocs function has been added to the wire package MsgTx 494 type which provides callers that deal with scripts optimization 495 opportunities (#343) 496 - Misc changes: 497 - Minor wire hashing optimizations (#366, #367) 498 - Other minor internal optimizations 499 - Contributors (alphabetical order): 500 - Alex Akselrod 501 - Arne Brutschy 502 - Chris Jepson 503 - Daniel Krawisz 504 - Dave Collins 505 - David Hill 506 - Jimmy Song 507 - Jonas Nick 508 - Josh Rickmar 509 - Olaoluwa Osuntokun 510 - Oleg Andreev 511 512 Changes in 0.10.0 (Sun Mar 01 2015) 513 - Protocol and network related changes: 514 - Add a new checkpoint at block height 343185 515 - Implement BIP066 which includes support for version 3 blocks, a new 516 consensus rule which prevents non-DER encoded signatures, and a 517 double-threshold switchover mechanism 518 - Rather than announcing all known addresses on getaddr requests which 519 can possibly result in multiple messages, randomize the results and 520 limit them to the max allowed by a single message (1000 addresses) 521 - Add more reserved IP spaces to the address manager 522 - Transaction relay (memory pool) changes: 523 - Make transactions which contain reserved opcodes nonstandard 524 - No longer accept or relay free and low-fee transactions that have 525 insufficient priority to be mined in the next block 526 - Implement support for the following rules specified by BIP0062: 527 - ECDSA signature must use strict DER encoding (rule 1) 528 - The signature script must only contain push operations (rule 2) 529 - All push operations must use the smallest possible encoding (rule 3) 530 - All stack values interpreted as a number must be encoding using the 531 shortest possible form (rule 4) 532 - NOTE: Rule 1 was already enforced, however the entire script now 533 evaluates to false rather than only the signature verification as 534 required by BIP0062 535 - Allow transactions with nulldata transaction outputs to be treated as 536 standard 537 - Mining support changes: 538 - Modify the getblocktemplate RPC to generate and return block templates 539 for version 3 blocks which are compatible with BIP0066 540 - Allow getblocktemplate to serve blocks when the current time is 541 less than the minimum allowed time for a generated block template 542 (https://github.com/btcsuite/btcd/issues/209) 543 - Crypto changes: 544 - Optimize scalar multiplication by the base point by using a 545 pre-computed table which results in approximately a 35% speedup 546 (https://github.com/btcsuite/btcec/issues/2) 547 - Optimize general scalar multiplication by using the secp256k1 548 endomorphism which results in approximately a 17-20% speedup 549 (https://github.com/btcsuite/btcec/issues/1) 550 - Optimize general scalar multiplication by using non-adjacent form 551 which results in approximately an additional 8% speedup 552 (https://github.com/btcsuite/btcec/issues/3) 553 - Implement optional address indexing: 554 - Add a new parameter --addrindex which will enable the creation of an 555 address index which can be queried to determine all transactions which 556 involve a given address 557 (https://github.com/btcsuite/btcd/issues/190) 558 - Add a new logging subsystem for address index related operations 559 - Support new searchrawtransactions RPC 560 (https://github.com/btcsuite/btcd/issues/185) 561 - RPC changes: 562 - Require TLS version 1.2 as the minimum version for all TLS connections 563 - Provide support for disabling TLS when only listening on localhost 564 (https://github.com/btcsuite/btcd/pull/192) 565 - Modify help output for all commands to provide much more consistent 566 and detailed information 567 - Correct case in getrawtransaction which would refuse to serve certain 568 transactions with invalid scripts 569 (https://github.com/btcsuite/btcd/issues/210) 570 - Correct error handling in the getrawtransaction RPC which could lead 571 to a crash in rare cases 572 (https://github.com/btcsuite/btcd/issues/196) 573 - Update getinfo RPC to include the appropriate 'timeoffset' calculated 574 from the median network time 575 - Modify listreceivedbyaddress result type to include txids field so it 576 is compatible 577 - Add 'iswatchonly' field to validateaddress result 578 - Add 'startingpriority' and 'currentpriority' fields to getrawmempool 579 (https://github.com/btcsuite/btcd/issues/178) 580 - Don't omit the 'confirmations' field from getrawtransaction when it is 581 zero 582 - Websocket changes: 583 - Modify the behavior of the rescan command to automatically register 584 for notifications about transactions paying to rescanned addresses 585 or spending outputs from the final rescan utxo set when the rescan 586 is through the best block in the chain 587 - btcctl utility changes: 588 - Make the list of commands available via the -l option rather than 589 dumping the entire list on usage errors 590 - Alphabetize and categorize the list of commands by chain and wallet 591 - Make the help option only show the help options instead of also 592 dumping all of the commands 593 - Make the usage syntax much more consistent and correct a few cases of 594 misnamed fields 595 (https://github.com/btcsuite/btcd/issues/305) 596 - Improve usage errors to show the specific parameter number, reason, 597 and error code 598 - Only show the usage for specific command is shown when a valid command 599 is provided with invalid parameters 600 - Add support for a SOCK5 proxy 601 - Modify output for integer fields (such as timestamps) to display 602 normally instead in scientific notation 603 - Add invalidateblock command 604 - Add reconsiderblock command 605 - Add createnewaccount command 606 - Add renameaccount command 607 - Add searchrawtransactions command 608 - Add importaddress command 609 - Add importpubkey command 610 - showblock utility changes: 611 - Remove utility in favor of the RPC getblock method 612 - Notable developer-related package changes: 613 - Many of the core packages have been relocated into the btcd repository 614 (https://github.com/btcsuite/btcd/issues/214) 615 - A new version of the btcjson package that has been completely 616 redesigned from the ground up based based upon how the project has 617 evolved and lessons learned while using it since it was first written 618 is now available in the btcjson/v2/btcjson directory 619 - This will ultimately replace the current version so anyone making 620 use of this package will need to update their code accordingly 621 - The btcec package now provides better facilities for working directly 622 with its public and private keys without having to mix elements from 623 the ecdsa package 624 - Update the script builder to ensure all rules specified by BIP0062 are 625 adhered to when creating scripts 626 - The blockchain package now provides a MedianTimeSource interface and 627 concrete implementation for providing time samples from remote peers 628 and using that data to calculate an offset against the local time 629 - Misc changes: 630 - Fix a slow memory leak due to tickers not being stopped 631 (https://github.com/btcsuite/btcd/issues/189) 632 - Fix an issue where a mix of orphans and SPV clients could trigger a 633 condition where peers would no longer be served 634 (https://github.com/btcsuite/btcd/issues/231) 635 - The RPC username and password can now contain symbols which previously 636 conflicted with special symbols used in URLs 637 - Improve handling of obtaining random nonces to prevent cases where it 638 could error when not enough entropy was available 639 - Improve handling of home directory creation errors such as in the case 640 of unmounted symlinks (https://github.com/btcsuite/btcd/issues/193) 641 - Improve the error reporting for rejected transactions to include the 642 inputs which are missing and/or being double spent 643 - Update sample config file with new options and correct a comment 644 regarding the fact the RPC server only listens on localhost by default 645 (https://github.com/btcsuite/btcd/issues/218) 646 - Update the continuous integration builds to run several tools which 647 help keep code quality high 648 - Significant amount of internal code cleanup and improvements 649 - Other minor internal optimizations 650 - Code Contributors (alphabetical order): 651 - Beldur 652 - Ben Holden-Crowther 653 - Dave Collins 654 - David Evans 655 - David Hill 656 - Guilherme Salgado 657 - Javed Khan 658 - Jimmy Song 659 - John C. Vernaleo 660 - Jonathan Gillham 661 - Josh Rickmar 662 - Michael Ford 663 - Michail Kargakis 664 - kac 665 - Olaoluwa Osuntokun 666 667 Changes in 0.9.0 (Sat Sep 20 2014) 668 - Protocol and network related changes: 669 - Add a new checkpoint at block height 319400 670 - Add support for BIP0037 bloom filters 671 (https://github.com/conformal/btcd/issues/132) 672 - Implement BIP0061 reject handling and hence support for protocol 673 version 70002 (https://github.com/conformal/btcd/issues/133) 674 - Add testnet DNS seeds for peer discovery (testnet-seed.alexykot.me 675 and testnet-seed.bitcoin.schildbach.de) 676 - Add mainnet DNS seed for peer discovery (seeds.bitcoin.open-nodes.org) 677 - Make multisig transactions with non-null dummy data nonstandard 678 (https://github.com/conformal/btcd/issues/131) 679 - Make transactions with an excessive number of signature operations 680 nonstandard 681 - Perform initial DNS lookups concurrently which allows connections 682 more quickly 683 - Improve the address manager to significantly reduce memory usage and 684 add tests 685 - Remove orphan transactions when they appear in a mined block 686 (https://github.com/conformal/btcd/issues/166) 687 - Apply incremental back off on connection retries for persistent peers 688 that give invalid replies to mirror the logic used for failed 689 connections (https://github.com/conformal/btcd/issues/103) 690 - Correct rate-limiting of free and low-fee transactions 691 - Mining support changes: 692 - Implement getblocktemplate RPC with the following support: 693 (https://github.com/conformal/btcd/issues/124) 694 - BIP0022 Non-Optional Sections 695 - BIP0022 Long Polling 696 - BIP0023 Basic Pool Extensions 697 - BIP0023 Mutation coinbase/append 698 - BIP0023 Mutations time, time/increment, and time/decrement 699 - BIP0023 Mutation transactions/add 700 - BIP0023 Mutations prevblock, coinbase, and generation 701 - BIP0023 Block Proposals 702 - Implement built-in concurrent CPU miner 703 (https://github.com/conformal/btcd/issues/137) 704 NOTE: CPU mining on mainnet is pointless. This has been provided 705 for testing purposes such as for the new simulation test network 706 - Add --generate flag to enable CPU mining 707 - Deprecate the --getworkkey flag in favor of --miningaddr which 708 specifies which addresses generated blocks will choose from to pay 709 the subsidy to 710 - RPC changes: 711 - Implement gettxout command 712 (https://github.com/conformal/btcd/issues/141) 713 - Implement validateaddress command 714 - Implement verifymessage command 715 - Mark getunconfirmedbalance RPC as wallet-only 716 - Mark getwalletinfo RPC as wallet-only 717 - Update getgenerate, setgenerate, gethashespersec, and getmininginfo 718 to return the appropriate information about new CPU mining status 719 - Modify getpeerinfo pingtime and pingwait field types to float64 so 720 they are compatible 721 - Improve disconnect handling for normal HTTP clients 722 - Make error code returns for invalid hex more consistent 723 - Websocket changes: 724 - Switch to a new more efficient websocket package 725 (https://github.com/conformal/btcd/issues/134) 726 - Add rescanfinished notification 727 - Modify the rescanprogress notification to include block hash as well 728 as height (https://github.com/conformal/btcd/issues/151) 729 - btcctl utility changes: 730 - Accept --simnet flag which automatically selects the appropriate port 731 and TLS certificates needed to communicate with btcd and btcwallet on 732 the simulation test network 733 - Fix createrawtransaction command to send amounts denominated in BTC 734 - Add estimatefee command 735 - Add estimatepriority command 736 - Add getmininginfo command 737 - Add getnetworkinfo command 738 - Add gettxout command 739 - Add lockunspent command 740 - Add signrawtransaction command 741 - addblock utility changes: 742 - Accept --simnet flag which automatically selects the appropriate port 743 and TLS certificates needed to communicate with btcd and btcwallet on 744 the simulation test network 745 - Notable developer-related package changes: 746 - Provide a new bloom package in btcutil which allows creating and 747 working with BIP0037 bloom filters 748 - Provide a new hdkeychain package in btcutil which allows working with 749 BIP0032 hierarchical deterministic key chains 750 - Introduce a new btcnet package which houses network parameters 751 - Provide new simnet network (--simnet) which is useful for private 752 simulation testing 753 - Enforce low S values in serialized signatures as detailed in BIP0062 754 - Return errors from all methods on the btcdb.Db interface 755 (https://github.com/conformal/btcdb/issues/5) 756 - Allow behavior flags to alter btcchain.ProcessBlock 757 (https://github.com/conformal/btcchain/issues/5) 758 - Provide a new SerializeSize API for blocks 759 (https://github.com/conformal/btcwire/issues/19) 760 - Several of the core packages now work with Google App Engine 761 - Misc changes: 762 - Correct an issue where the database could corrupt under certain 763 circumstances which would require a new chain download 764 - Slightly optimize deserialization 765 - Use the correct IP block for he.net 766 - Fix an issue where it was possible the block manager could hang on 767 shutdown 768 - Update sample config file so the comments are on a separate line 769 rather than the end of a line so they are not interpreted as settings 770 (https://github.com/conformal/btcd/issues/135) 771 - Correct an issue where getdata requests were not being properly 772 throttled which could lead to larger than necessary memory usage 773 - Always show help when given the help flag even when the config file 774 contains invalid entries 775 - General code cleanup and minor optimizations 776 777 Changes in 0.8.0-beta (Sun May 25 2014) 778 - Btcd is now Beta (https://github.com/conformal/btcd/issues/130) 779 - Add a new checkpoint at block height 300255 780 - Protocol and network related changes: 781 - Lower the minimum transaction relay fee to 1000 satoshi to match 782 recent reference client changes 783 (https://github.com/conformal/btcd/issues/100) 784 - Raise the maximum signature script size to support standard 15-of-15 785 multi-signature pay-to-sript-hash transactions with compressed pubkeys 786 to remain compatible with the reference client 787 (https://github.com/conformal/btcd/issues/128) 788 - Reduce max bytes allowed for a standard nulldata transaction to 40 for 789 compatibility with the reference client 790 - Introduce a new btcnet package which houses all of the network params 791 for each network (mainnet, testnet3, regtest) to ultimately enable 792 easier addition and tweaking of networks without needing to change 793 several packages 794 - Fix several script discrepancies found by reference client test data 795 - Add new DNS seed for peer discovery (seed.bitnodes.io) 796 - Reduce the max known inventory cache from 20000 items to 1000 items 797 - Fix an issue where unknown inventory types could lead to a hung peer 798 - Implement inventory rebroadcast handler for sendrawtransaction 799 (https://github.com/conformal/btcd/issues/99) 800 - Update user agent to fully support BIP0014 801 (https://github.com/conformal/btcwire/issues/10) 802 - Implement initial mining support: 803 - Add a new logging subsystem for mining related operations 804 - Implement infrastructure for creating block templates 805 - Provide options to control block template creation settings 806 - Support the getwork RPC 807 - Allow address identifiers to apply to more than one network since both 808 testnet3 and the regression test network unfortunately use the same 809 identifier 810 - RPC changes: 811 - Set the content type for HTTP POST RPC connections to application/json 812 (https://github.com/conformal/btcd/issues/121) 813 - Modified the RPC server startup so it only requires at least one valid 814 listen interface 815 - Correct an error path where it was possible certain errors would not 816 be returned 817 - Implement getwork command 818 (https://github.com/conformal/btcd/issues/125) 819 - Update sendrawtransaction command to reject orphans 820 - Update sendrawtransaction command to include the reason a transaction 821 was rejected 822 - Update getinfo command to populate connection count field 823 - Update getinfo command to include relay fee field 824 (https://github.com/conformal/btcd/issues/107) 825 - Allow transactions submitted with sendrawtransaction to bypass the 826 rate limiter 827 - Allow the getcurrentnet and getbestblock extensions to be accessed via 828 HTTP POST in addition to Websockets 829 (https://github.com/conformal/btcd/issues/127) 830 - Websocket changes: 831 - Rework notifications to ensure they are delivered in the order they 832 occur 833 - Rename notifynewtxs command to notifyreceived (funds received) 834 - Rename notifyallnewtxs command to notifynewtransactions 835 - Rename alltx notification to txaccepted 836 - Rename allverbosetx notification to txacceptedverbose 837 (https://github.com/conformal/btcd/issues/98) 838 - Add rescan progress notification 839 - Add recvtx notification 840 - Add redeemingtx notification 841 - Modify notifyspent command to accept an array of outpoints 842 (https://github.com/conformal/btcd/issues/123) 843 - Significantly optimize the rescan command to yield up to a 60x speed 844 increase 845 - btcctl utility changes: 846 - Add createencryptedwallet command 847 - Add getblockchaininfo command 848 - Add importwallet command 849 - Add addmultisigaddress command 850 - Add setgenerate command 851 - Accept --testnet and --wallet flags which automatically select 852 the appropriate port and TLS certificates needed to communicate 853 with btcd and btcwallet (https://github.com/conformal/btcd/issues/112) 854 - Allow path expansion from config file entries 855 (https://github.com/conformal/btcd/issues/113) 856 - Minor refactor simplify handling of options 857 - addblock utility changes: 858 - Improve logging by making it consistent with the logging provided by 859 btcd (https://github.com/conformal/btcd/issues/90) 860 - Improve several package APIs for developers: 861 - Add new amount type for consistently handling monetary values 862 - Add new coin selector API 863 - Add new WIF (Wallet Import Format) API 864 - Add new crypto types for private keys and signatures 865 - Add new API to sign transactions including script merging and hash 866 types 867 - Expose function to extract all pushed data from a script 868 (https://github.com/conformal/btcscript/issues/8) 869 - Misc changes: 870 - Optimize address manager shuffling to do 67% less work on average 871 - Resolve a couple of benign data races found by the race detector 872 (https://github.com/conformal/btcd/issues/101) 873 - Add IP address to all peer related errors to clarify which peer is the 874 cause (https://github.com/conformal/btcd/issues/102) 875 - Fix a UPNP case issue that prevented the --upnp option from working 876 with some UPNP servers 877 - Update documentation in the sample config file regarding debug levels 878 - Adjust some logging levels to improve debug messages 879 - Improve the throughput of query messages to the block manager 880 - Several minor optimizations to reduce GC churn and enhance speed 881 - Other minor refactoring 882 - General code cleanup 883 884 Changes in 0.7.0 (Thu Feb 20 2014) 885 - Fix an issue when parsing scripts which contain a multi-signature script 886 which require zero signatures such as testnet block 887 000000001881dccfeda317393c261f76d09e399e15e27d280e5368420f442632 888 (https://github.com/conformal/btcscript/issues/7) 889 - Add check to ensure all transactions accepted to mempool only contain 890 canonical data pushes (https://github.com/conformal/btcscript/issues/6) 891 - Fix an issue causing excessive memory consumption 892 - Significantly rework and improve the websocket notification system: 893 - Each client is now independent so slow clients no longer limit the 894 speed of other connected clients 895 - Potentially long-running operations such as rescans are now run in 896 their own handler and rate-limited to one operation at a time without 897 preventing simultaneous requests from the same client for the faster 898 requests or notifications 899 - A couple of scenarios which could cause shutdown to hang have been 900 resolved 901 - Update notifynewtx notifications to support all address types instead 902 of only pay-to-pubkey-hash 903 - Provide a --rpcmaxwebsockets option to allow limiting the number of 904 concurrent websocket clients 905 - Add a new websocket command notifyallnewtxs to request notifications 906 (https://github.com/conformal/btcd/issues/86) (thanks @flammit) 907 - Improve btcctl utility in the following ways: 908 - Add getnetworkhashps command 909 - Add gettransaction command (wallet-specific) 910 - Add signmessage command (wallet-specific) 911 - Update getwork command to accept 912 - Continue cleanup and work on implementing the RPC API: 913 - Implement getnettotals command 914 (https://github.com/conformal/btcd/issues/84) 915 - Implement networkhashps command 916 (https://github.com/conformal/btcd/issues/87) 917 - Update getpeerinfo to always include syncnode field even when false 918 - Remove help addenda for getpeerinfo now that it supports all fields 919 - Close standard RPC connections on auth failure 920 - Provide a --rpcmaxclients option to allow limiting the number of 921 concurrent RPC clients (https://github.com/conformal/btcd/issues/68) 922 - Include IP address in RPC auth failure log messages 923 - Resolve a rather harmless data races found by the race detector 924 (https://github.com/conformal/btcd/issues/94) 925 - Increase block priority size and max standard transaction size to 50k 926 and 100k, respectively (https://github.com/conformal/btcd/issues/71) 927 - Add rate limiting of free transactions to the memory pool to prevent 928 penny flooding (https://github.com/conformal/btcd/issues/40) 929 - Provide a --logdir option (https://github.com/conformal/btcd/issues/95) 930 - Change the default log file path to include the network 931 - Add a new ScriptBuilder interface to btcscript to support creation of 932 custom scripts (https://github.com/conformal/btcscript/issues/5) 933 - General code cleanup 934 935 Changes in 0.6.0 (Tue Feb 04 2014) 936 - Fix an issue when parsing scripts which contain invalid signatures that 937 caused a chain fork on block 938 0000000000000001e4241fd0b3469a713f41c5682605451c05d3033288fb2244 939 - Correct an issue which could lead to an error in removeBlockNode 940 (https://github.com/conformal/btcchain/issues/4) 941 - Improve addblock utility as follows: 942 - Check imported blocks against all chain rules and checkpoints 943 - Skip blocks which are already known so you can stop and restart the 944 import or start the import after you have already downloaded a portion 945 of the chain 946 - Correct an issue where the utility did not shutdown cleanly after 947 processing all blocks 948 - Add error on attempt to import orphan blocks 949 - Improve error handling and reporting 950 - Display statistics after input file has been fully processed 951 - Rework, optimize, and improve headers-first mode: 952 - Resuming the chain sync from any point before the final checkpoint 953 will now use headers-first mode 954 (https://github.com/conformal/btcd/issues/69) 955 - Verify all checkpoints as opposed to only the final one 956 - Reduce and bound memory usage 957 - Rollback to the last known good point when a header does not match a 958 checkpoint 959 - Log information about what is happening with headers 960 - Improve btcctl utility in the following ways: 961 - Add getaddednodeinfo command 962 - Add getnettotals command 963 - Add getblocktemplate command (wallet-specific) 964 - Add getwork command (wallet-specific) 965 - Add getnewaddress command (wallet-specific) 966 - Add walletpassphrasechange command (wallet-specific) 967 - Add walletlock command (wallet-specific) 968 - Add sendfrom command (wallet-specific) 969 - Add sendmany command (wallet-specific) 970 - Add settxfee command (wallet-specific) 971 - Add listsinceblock command (wallet-specific) 972 - Add listaccounts command (wallet-specific) 973 - Add keypoolrefill command (wallet-specific) 974 - Add getreceivedbyaccount command (wallet-specific) 975 - Add getrawchangeaddress command (wallet-specific) 976 - Add gettxoutsetinfo command (wallet-specific) 977 - Add listaddressgroupings command (wallet-specific) 978 - Add listlockunspent command (wallet-specific) 979 - Add listlock command (wallet-specific) 980 - Add listreceivedbyaccount command (wallet-specific) 981 - Add validateaddress command (wallet-specific) 982 - Add verifymessage command (wallet-specific) 983 - Add sendtoaddress command (wallet-specific) 984 - Continue cleanup and work on implementing the RPC API: 985 - Implement submitblock command 986 (https://github.com/conformal/btcd/issues/61) 987 - Implement help command 988 - Implement ping command 989 - Implement getaddednodeinfo command 990 (https://github.com/conformal/btcd/issues/78) 991 - Implement getinfo command 992 - Update getpeerinfo to support bytesrecv and bytessent 993 (https://github.com/conformal/btcd/issues/83) 994 - Improve and correct several RPC server and websocket areas: 995 - Change the connection endpoint for websockets from /wallet to /ws 996 (https://github.com/conformal/btcd/issues/80) 997 - Implement an alternative authentication for websockets so clients 998 such as javascript from browsers that don't support setting HTTP 999 headers can authenticate (https://github.com/conformal/btcd/issues/77) 1000 - Add an authentication deadline for RPC connections 1001 (https://github.com/conformal/btcd/issues/68) 1002 - Use standard authentication failure responses for RPC connections 1003 - Make automatically generated certificate more standard so it works 1004 from client such as node.js and Firefox 1005 - Correct some minor issues which could prevent the RPC server from 1006 shutting down in an orderly fashion 1007 - Make all websocket notifications require registration 1008 - Change the data sent over websockets to text since it is JSON-RPC 1009 - Allow connections that do not have an Origin header set 1010 - Expose and track the number of bytes read and written per peer 1011 (https://github.com/conformal/btcwire/issues/6) 1012 - Correct an issue with sendrawtransaction when invoked via websockets 1013 which prevented a minedtx notification from being added 1014 - Rescan operations issued from remote wallets are no stopped when 1015 the wallet disconnects mid-operation 1016 (https://github.com/conformal/btcd/issues/66) 1017 - Several optimizations related to fetching block information from the 1018 database 1019 - General code cleanup 1020 1021 Changes in 0.5.0 (Mon Jan 13 2014) 1022 - Optimize initial block download by introducing a new mode which 1023 downloads the block headers first (up to the final checkpoint) 1024 - Improve peer handling to remove the potential for slow peers to cause 1025 sluggishness amongst all peers 1026 (https://github.com/conformal/btcd/issues/63) 1027 - Fix an issue where the initial block sync could stall when the sync peer 1028 disconnects (https://github.com/conformal/btcd/issues/62) 1029 - Correct an issue where --externalip was doing a DNS lookup on the full 1030 host:port instead of just the host portion 1031 (https://github.com/conformal/btcd/issues/38) 1032 - Fix an issue which could lead to a panic on chain switches 1033 (https://github.com/conformal/btcd/issues/70) 1034 - Improve btcctl utility in the following ways: 1035 - Show getdifficulty output as floating point to 6 digits of precision 1036 - Show all JSON object replies formatted as standard JSON 1037 - Allow btcctl getblock to accept optional params 1038 - Add getaccount command (wallet-specific) 1039 - Add getaccountaddress command (wallet-specific) 1040 - Add sendrawtransaction command 1041 - Continue cleanup and work on implementing RPC API calls 1042 - Update getrawmempool to support new optional verbose flag 1043 - Update getrawtransaction to match the reference client 1044 - Update getblock to support new optional verbose flag 1045 - Update raw transactions to fully match the reference client including 1046 support for all transaction types and address types 1047 - Correct getrawmempool fee field to return BTC instead of Satoshi 1048 - Correct getpeerinfo service flag to return 8 digit string so it 1049 matches the reference client 1050 - Correct verifychain to return a boolean 1051 - Implement decoderawtransaction command 1052 - Implement createrawtransaction command 1053 - Implement decodescript command 1054 - Implement gethashespersec command 1055 - Allow RPC handler overrides when invoked via a websocket versus 1056 legacy connection 1057 - Add new DNS seed for peer discovery 1058 - Display user agent on new valid peer log message 1059 (https://github.com/conformal/btcd/issues/64) 1060 - Notify wallet when new transactions that pay to registered addresses 1061 show up in the mempool before being mined into a block 1062 - Support a tor-specific proxy in addition to a normal proxy 1063 (https://github.com/conformal/btcd/issues/47) 1064 - Remove deprecated sqlite3 imports from utilities 1065 - Remove leftover profile write from addblock utility 1066 - Quite a bit of code cleanup and refactoring to improve maintainability 1067 1068 Changes in 0.4.0 (Thu Dec 12 2013) 1069 - Allow listen interfaces to be specified via --listen instead of only the 1070 port (https://github.com/conformal/btcd/issues/33) 1071 - Allow listen interfaces for the RPC server to be specified via 1072 --rpclisten instead of only the port 1073 (https://github.com/conformal/btcd/issues/34) 1074 - Only disable listening when --connect or --proxy are used when no 1075 --listen interface are specified 1076 (https://github.com/conformal/btcd/issues/10) 1077 - Add several new standard transaction checks to transaction memory pool: 1078 - Support nulldata scripts as standard 1079 - Only allow a max of one nulldata output per transaction 1080 - Enforce a maximum of 3 public keys in multi-signature transactions 1081 - The number of signatures in multi-signature transactions must not 1082 exceed the number of public keys 1083 - The number of inputs to a signature script must match the expected 1084 number of inputs for the script type 1085 - The number of inputs pushed onto the stack by a redeeming signature 1086 script must match the number of inputs consumed by the referenced 1087 public key script 1088 - When a block is connected, remove any transactions from the memory pool 1089 which are now double spends as a result of the newly connected 1090 transactions 1091 - Don't relay transactions resurrected during a chain switch since 1092 other peers will also be switching chains and therefore already know 1093 about them 1094 - Cleanup a few cases where rejected transactions showed as an error 1095 rather than as a rejected transaction 1096 - Ignore the default configuration file when --regtest (regression test 1097 mode) is specified 1098 - Implement TLS support for RPC including automatic certificate generation 1099 - Support HTTP authentication headers for web sockets 1100 - Update address manager to recognize and properly work with Tor 1101 addresses (https://github.com/conformal/btcd/issues/36) and 1102 (https://github.com/conformal/btcd/issues/37) 1103 - Improve btcctl utility in the following ways: 1104 - Add the ability to specify a configuration file 1105 - Add a default entry for the RPC cert to point to the location 1106 it will likely be in the btcd home directory 1107 - Implement --version flag 1108 - Provide a --notls option to support non-TLS configurations 1109 - Fix a couple of minor races found by the Go race detector 1110 - Improve logging 1111 - Allow logging level to be specified on a per subsystem basis 1112 (https://github.com/conformal/btcd/issues/48) 1113 - Allow logging levels to be dynamically changed via RPC 1114 (https://github.com/conformal/btcd/issues/15) 1115 - Implement a rolling log file with a max of 10MB per file and a 1116 rotation size of 3 which results in a max logging size of 30 MB 1117 - Correct a minor issue with the rescanning websocket call 1118 (https://github.com/conformal/btcd/issues/54) 1119 - Fix a race with pushing address messages that could lead to a panic 1120 (https://github.com/conformal/btcd/issues/58) 1121 - Improve which external IP address is reported to peers based on which 1122 interface they are connected through 1123 (https://github.com/conformal/btcd/issues/35) 1124 - Add --externalip option to allow an external IP address to be specified 1125 for cases such as tor hidden services or advanced network configurations 1126 (https://github.com/conformal/btcd/issues/38) 1127 - Add --upnp option to support automatic port mapping via UPnP 1128 (https://github.com/conformal/btcd/issues/51) 1129 - Update Ctrl+C interrupt handler to properly sync address manager and 1130 remove the UPnP port mapping (if needed) 1131 - Continue cleanup and work on implementing RPC API calls 1132 - Add importprivkey (import private key) command to btcctl 1133 - Update getrawtransaction to provide addresses properly, support 1134 new verbose param, and match the reference implementation with the 1135 exception of MULTISIG (thanks @flammit) 1136 - Update getblock with new verbose flag (thanks @flammit) 1137 - Add listtransactions command to btcctl 1138 - Add getbalance command to btcctl 1139 - Add basic support for btcd to run as a native Windows service 1140 (https://github.com/conformal/btcd/issues/42) 1141 - Package addblock utility with Windows MSIs 1142 - Add support for TravisCI (continuous build integration) 1143 - Cleanup some documentation and usage 1144 - Several other minor bug fixes and general code cleanup 1145 1146 Changes in 0.3.3 (Wed Nov 13 2013) 1147 - Significantly improve initial block chain download speed 1148 (https://github.com/conformal/btcd/issues/20) 1149 - Add a new checkpoint at block height 267300 1150 - Optimize most recently used inventory handling 1151 (https://github.com/conformal/btcd/issues/21) 1152 - Optimize duplicate transaction input check 1153 (https://github.com/conformal/btcchain/issues/2) 1154 - Optimize transaction hashing 1155 (https://github.com/conformal/btcd/issues/25) 1156 - Rework and optimize wallet listener notifications 1157 (https://github.com/conformal/btcd/issues/22) 1158 - Optimize serialization and deserialization 1159 (https://github.com/conformal/btcd/issues/27) 1160 - Add support for minimum transaction fee to memory pool acceptance 1161 (https://github.com/conformal/btcd/issues/29) 1162 - Improve leveldb database performance by removing explicit GC call 1163 - Fix an issue where Ctrl+C was not always finishing orderly database 1164 shutdown 1165 - Fix an issue in the script handling for OP_CHECKSIG 1166 - Impose max limits on all variable length protocol entries to prevent 1167 abuse from malicious peers 1168 - Enforce DER signatures for transactions allowed into the memory pool 1169 - Separate the debug profile http server from the RPC server 1170 - Rework of the RPC code to improve performance and make the code cleaner 1171 - The getrawtransaction RPC call now properly checks the memory pool 1172 before consulting the db (https://github.com/conformal/btcd/issues/26) 1173 - Add support for the following RPC calls: getpeerinfo, getconnectedcount, 1174 addnode, verifychain 1175 (https://github.com/conformal/btcd/issues/13) 1176 (https://github.com/conformal/btcd/issues/17) 1177 - Implement rescan websocket extension to allow wallet rescans 1178 - Use correct paths for application data storage for all supported 1179 operating systems (https://github.com/conformal/btcd/issues/30) 1180 - Add a default redirect to the http profiling page when accessing the 1181 http profile server 1182 - Add a new --cpuprofile option which can be used to generate CPU 1183 profiling data on platforms that support it 1184 - Several other minor performance optimizations 1185 - Other minor bug fixes and general code cleanup 1186 1187 Changes in 0.3.2 (Tue Oct 22 2013) 1188 - Fix an issue that could cause the download of the block chain to stall 1189 (https://github.com/conformal/btcd/issues/12) 1190 - Remove deprecated sqlite as an available database backend 1191 - Close sqlite compile issue as sqlite has now been removed 1192 (https://github.com/conformal/btcd/issues/11) 1193 - Change default RPC ports to 8334 (mainnet) and 18334 (testnet) 1194 - Continue cleanup and work on implementing RPC API calls 1195 - Add support for the following RPC calls: getrawmempool, 1196 getbestblockhash, decoderawtransaction, getdifficulty, 1197 getconnectioncount, getpeerinfo, and addnode 1198 - Improve the btcctl utility that is used to issue JSON-RPC commands 1199 - Fix an issue preventing btcd from cleanly shutting down with the RPC 1200 stop command 1201 - Add a number of database interface tests to ensure backends implement 1202 the expected interface 1203 - Expose some additional information from btcscript to be used for 1204 identifying "standard"" transactions 1205 - Add support for plan9 - thanks @mischief 1206 (https://github.com/conformal/btcd/pull/19) 1207 - Other minor bug fixes and general code cleanup 1208 1209 Changes in 0.3.1-alpha (Tue Oct 15 2013) 1210 - Change default database to leveldb 1211 NOTE: This does mean you will have to redownload the block chain. Since we 1212 are still in alpha, we didn't feel writing a converter was worth the time as 1213 it would take away from more important issues at this stage 1214 - Add a warning if there are multiple block chain databases of different types 1215 - Fix issue with unexpected EOF in leveldb -- https://github.com/conformal/btcd/issues/18 1216 - Fix issue preventing block 21066 on testnet -- https://github.com/conformal/btcchain/issues/1 1217 - Fix issue preventing block 96464 on testnet -- https://github.com/conformal/btcscript/issues/1 1218 - Optimize transaction lookups 1219 - Correct a few cases of list removal that could result in improper cleanup 1220 of no longer needed orphans 1221 - Add functionality to increase ulimits on non-Windows platforms 1222 - Add support for mempool command which allows remote peers to query the 1223 transaction memory pool via the bitcoin protocol 1224 - Clean up logging a bit 1225 - Add a flag to disable checkpoints for developers 1226 - Add a lot of useful debug logging such as message summaries 1227 - Other minor bug fixes and general code cleanup 1228 1229 Initial Release 0.3.0-alpha (Sat Oct 05 2013): 1230 - Initial release