github.com/dashpay/godash@v0.0.0-20160726055534-e038a21e0e3d/CHANGES (about) 1 ============================================================================ 2 User visible changes for btcd 3 A full-node bitcoin implementation written in Go 4 ============================================================================ 5 6 Changes in 0.12.0 (Fri Nov 20 2015) 7 - Protocol and network related changes: 8 - Add a new checkpoint at block height 382320 (#555) 9 - Implement BIP0065 which includes support for version 4 blocks, a new 10 consensus opcode (OP_CHECKLOCKTIMEVERIFY) that enforces transaction 11 lock times, and a double-threshold switchover mechanism (#535, #459, 12 #455) 13 - Implement BIP0111 which provides a new bloom filter service flag and 14 hence provides support for protocol version 70011 (#499) 15 - Add a new parameter --nopeerbloomfilters to allow disabling bloom 16 filter support (#499) 17 - Reject non-canonically encoded variable length integers (#507) 18 - Add mainnet peer discovery DNS seed (seed.bitcoin.jonasschnelli.ch) 19 (#496) 20 - Correct reconnect handling for persistent peers (#463, #464) 21 - Ignore requests for block headers if not fully synced (#444) 22 - Add CLI support for specifying the zone id on IPv6 addresses (#538) 23 - Fix a couple of issues where the initial block sync could stall (#518, 24 #229, #486) 25 - Fix an issue which prevented the --onion option from working as 26 intended (#446) 27 - Transaction relay (memory pool) changes: 28 - Require transactions to only include signatures encoded with the 29 canonical 'low-s' encoding (#512) 30 - Add a new parameter --minrelaytxfee to allow the minimum transaction 31 fee in BTC/kB to be overridden (#520) 32 - Retain memory pool transactions when they redeem another one that is 33 removed when a block is accepted (#539) 34 - Do not send reject messages for a transaction if it is valid but 35 causes an orphan transaction which depends on it to be determined 36 as invalid (#546) 37 - Refrain from attempting to add orphans to the memory pool multiple 38 times when the transaction they redeem is added (#551) 39 - Modify minimum transaction fee calculations to scale based on bytes 40 instead of full kilobyte boundaries (#521, #537) 41 - Implement signature cache: 42 - Provides a limited memory cache of validated signatures which is a 43 huge optimization when verifying blocks for transactions that are 44 already in the memory pool (#506) 45 - Add a new parameter '--sigcachemaxsize' which allows the size of the 46 new cache to be manually changed if desired (#506) 47 - Mining support changes: 48 - Notify getblocktemplate long polling clients when a block is pushed 49 via submitblock (#488) 50 - Speed up getblocktemplate by making use of the new signature cache 51 (#506) 52 - RPC changes: 53 - Implement getmempoolinfo command (#453) 54 - Implement getblockheader command (#461) 55 - Modify createrawtransaction command to accept a new optional parameter 56 'locktime' (#529) 57 - Modify listunspent result to include the 'spendable' field (#440) 58 - Modify getinfo command to include 'errors' field (#511) 59 - Add timestamps to blockconnected and blockdisconnected notifications 60 (#450) 61 - Several modifications to searchrawtranscations command: 62 - Accept a new optional parameter 'vinextra' which causes the results 63 to include information about the outputs referenced by a transaction's 64 inputs (#485, #487) 65 - Skip entries in the mempool too (#495) 66 - Accept a new optional parameter 'reverse' to return the results in 67 reverse order (most recent to oldest) (#497) 68 - Accept a new optional parameter 'filteraddrs' which causes the 69 results to only include inputs and outputs which involve the 70 provided addresses (#516) 71 - Change the notification order to notify clients about mined 72 transactions (recvtx, redeemingtx) before the blockconnected 73 notification (#449) 74 - Update verifymessage RPC to use the standard algorithm so it is 75 compatible with other implementations (#515) 76 - Improve ping statistics by pinging on an interval (#517) 77 - Websocket changes: 78 - Implement session command which returns a per-session unique id (#500, 79 #503) 80 - btcctl utility changes: 81 - Add getmempoolinfo command (#453) 82 - Add getblockheader command (#461) 83 - Add getwalletinfo command (#471) 84 - Notable developer-related package changes: 85 - Introduce a new peer package which acts a common base for creating and 86 concurrently managing bitcoin network peers (#445) 87 - Various cleanup of the new peer package (#528, #531, #524, #534, 88 #549) 89 - Blocks heights now consistently use int32 everywhere (#481) 90 - The BlockHeader type in the wire package now provides the BtcDecode 91 and BtcEncode methods (#467) 92 - Update wire package to recognize BIP0064 (getutxo) service bit (#489) 93 - Export LockTimeThreshold constant from txscript package (#454) 94 - Export MaxDataCarrierSize constant from txscript package (#466) 95 - Provide new IsUnspendable function from the txscript package (#478) 96 - Export variable length string functions from the wire package (#514) 97 - Export DNS Seeds for each network from the chaincfg package (#544) 98 - Preliminary work towards separating the memory pool into a separate 99 package (#525, #548) 100 - Misc changes: 101 - Various documentation updates (#442, #462, #465, #460, #470, #473, 102 #505, #530, #545) 103 - Add installation instructions for gentoo (#542) 104 - Ensure an error is shown if OS limits can't be set at startup (#498) 105 - Tighten the standardness checks for multisig scripts (#526) 106 - Test coverage improvement (#468, #494, #527, #543, #550) 107 - Several optimizations (#457, #474, #475, #476, #508, #509) 108 - Minor code cleanup and refactoring (#472, #479, #482, #519, #540) 109 - Contributors (alphabetical order): 110 - Ben Echols 111 - Bruno Clermont 112 - danda 113 - Daniel Krawisz 114 - Dario Nieuwenhuis 115 - Dave Collins 116 - David Hill 117 - Javed Khan 118 - Jonathan Gillham 119 - Joseph Becher 120 - Josh Rickmar 121 - Justus Ranvier 122 - Mawuli Adzoe 123 - Olaoluwa Osuntokun 124 - Rune T. Aune 125 126 Changes in 0.11.1 (Wed May 27 2015) 127 - Protocol and network related changes: 128 - Use correct sub-command in reject message for rejected transactions 129 (#436, #437) 130 - Add a new parameter --torisolation which forces new circuits for each 131 connection when using tor (#430) 132 - Transaction relay (memory pool) changes: 133 - Reduce the default number max number of allowed orphan transactions 134 to 1000 (#419) 135 - Add a new parameter --maxorphantx which allows the maximum number of 136 orphan transactions stored in the mempool to be specified (#419) 137 - RPC changes: 138 - Modify listtransactions result to include the 'involveswatchonly' and 139 'vout' fields (#427) 140 - Update getrawtransaction result to omit the 'confirmations' field 141 when it is 0 (#420, #422) 142 - Update signrawtransaction result to include errors (#423) 143 - btcctl utility changes: 144 - Add gettxoutproof command (#428) 145 - Add verifytxoutproof command (#428) 146 - Notable developer-related package changes: 147 - The btcec package now provides the ability to perform ECDH 148 encryption and decryption (#375) 149 - The block and header validation in the blockchain package has been 150 split to help pave the way toward concurrent downloads (#386) 151 - Misc changes: 152 - Minor peer optimization (#433) 153 - Contributors (alphabetical order): 154 - Dave Collins 155 - David Hill 156 - Federico Bond 157 - Ishbir Singh 158 - Josh Rickmar 159 160 Changes in 0.11.0 (Wed May 06 2015) 161 - Protocol and network related changes: 162 - **IMPORTANT: Update is required due to the following point** 163 - Correct a few corner cases in script handling which could result in 164 forking from the network on non-standard transactions (#425) 165 - Add a new checkpoint at block height 352940 (#418) 166 - Optimized script execution (#395, #400, #404, #409) 167 - Fix a case that could lead stalled syncs (#138, #296) 168 - Network address manager changes: 169 - Implement eclipse attack countermeasures as proposed in 170 http://cs-people.bu.edu/heilman/eclipse (#370, #373) 171 - Optional address indexing changes: 172 - Fix an issue where a reorg could cause an orderly shutdown when the 173 address index is active (#340, #357) 174 - Transaction relay (memory pool) changes: 175 - Increase maximum allowed space for nulldata transactions to 80 bytes 176 (#331) 177 - Implement support for the following rules specified by BIP0062: 178 - The S value in ECDSA signature must be at most half the curve order 179 (rule 5) (#349) 180 - Script execution must result in a single non-zero value on the stack 181 (rule 6) (#347) 182 - NOTE: All 7 rules of BIP0062 are now implemented 183 - Use network adjusted time in finalized transaction checks to improve 184 consistency across nodes (#332) 185 - Process orphan transactions on acceptance of new transactions (#345) 186 - RPC changes: 187 - Add support for a limited RPC user which is not allowed admin level 188 operations on the server (#363) 189 - Implement node command for more unified control over connected peers 190 (#79, #341) 191 - Implement generate command for regtest/simnet to support 192 deterministically mining a specified number of blocks (#362, #407) 193 - Update searchrawtransactions to return the matching transactions in 194 order (#354) 195 - Correct an issue with searchrawtransactions where it could return 196 duplicates (#346, #354) 197 - Increase precision of 'difficulty' field in getblock result to 8 198 (#414, #415) 199 - Omit 'nextblockhash' field from getblock result when it is empty 200 (#416, #417) 201 - Add 'id' and 'timeoffset' fields to getpeerinfo result (#335) 202 - Websocket changes: 203 - Implement new commands stopnotifyspent, stopnotifyreceived, 204 stopnotifyblocks, and stopnotifynewtransactions to allow clients to 205 cancel notification registrations (#122, #342) 206 - btcctl utility changes: 207 - A single dash can now be used as an argument to cause that argument to 208 be read from stdin (#348) 209 - Add generate command 210 - Notable developer-related package changes: 211 - The new version 2 btcjson package has now replaced the deprecated 212 version 1 package (#368) 213 - The btcec package now performs all signing using RFC6979 deterministic 214 signatures (#358, #360) 215 - The txscript package has been significantly cleaned up and had a few 216 API changes (#387, #388, #389, #390, #391, #392, #393, #395, #396, 217 #400, #403, #404, #405, #406, #408, #409, #410, #412) 218 - A new PkScriptLocs function has been added to the wire package MsgTx 219 type which provides callers that deal with scripts optimization 220 opportunities (#343) 221 - Misc changes: 222 - Minor wire hashing optimizations (#366, #367) 223 - Other minor internal optimizations 224 - Contributors (alphabetical order): 225 - Alex Akselrod 226 - Arne Brutschy 227 - Chris Jepson 228 - Daniel Krawisz 229 - Dave Collins 230 - David Hill 231 - Jimmy Song 232 - Jonas Nick 233 - Josh Rickmar 234 - Olaoluwa Osuntokun 235 - Oleg Andreev 236 237 Changes in 0.10.0 (Sun Mar 01 2015) 238 - Protocol and network related changes: 239 - Add a new checkpoint at block height 343185 240 - Implement BIP066 which includes support for version 3 blocks, a new 241 consensus rule which prevents non-DER encoded signatures, and a 242 double-threshold switchover mechanism 243 - Rather than announcing all known addresses on getaddr requests which 244 can possibly result in multiple messages, randomize the results and 245 limit them to the max allowed by a single message (1000 addresses) 246 - Add more reserved IP spaces to the address manager 247 - Transaction relay (memory pool) changes: 248 - Make transactions which contain reserved opcodes nonstandard 249 - No longer accept or relay free and low-fee transactions that have 250 insufficient priority to be mined in the next block 251 - Implement support for the following rules specified by BIP0062: 252 - ECDSA signature must use strict DER encoding (rule 1) 253 - The signature script must only contain push operations (rule 2) 254 - All push operations must use the smallest possible encoding (rule 3) 255 - All stack values interpreted as a number must be encoding using the 256 shortest possible form (rule 4) 257 - NOTE: Rule 1 was already enforced, however the entire script now 258 evaluates to false rather than only the signature verification as 259 required by BIP0062 260 - Allow transactions with nulldata transaction outputs to be treated as 261 standard 262 - Mining support changes: 263 - Modify the getblocktemplate RPC to generate and return block templates 264 for version 3 blocks which are compatible with BIP0066 265 - Allow getblocktemplate to serve blocks when the current time is 266 less than the minimum allowed time for a generated block template 267 (https://github.com/btcsuite/btcd/issues/209) 268 - Crypto changes: 269 - Optimize scalar multiplication by the base point by using a 270 pre-computed table which results in approximately a 35% speedup 271 (https://github.com/btcsuite/btcec/issues/2) 272 - Optimize general scalar multiplication by using the secp256k1 273 endomorphism which results in approximately a 17-20% speedup 274 (https://github.com/btcsuite/btcec/issues/1) 275 - Optimize general scalar multiplication by using non-adjacent form 276 which results in approximately an additional 8% speedup 277 (https://github.com/btcsuite/btcec/issues/3) 278 - Implement optional address indexing: 279 - Add a new parameter --addrindex which will enable the creation of an 280 address index which can be queried to determine all transactions which 281 involve a given address 282 (https://github.com/btcsuite/btcd/issues/190) 283 - Add a new logging subsystem for address index related operations 284 - Support new searchrawtransactions RPC 285 (https://github.com/btcsuite/btcd/issues/185) 286 - RPC changes: 287 - Require TLS version 1.2 as the minimum version for all TLS connections 288 - Provide support for disabling TLS when only listening on localhost 289 (https://github.com/btcsuite/btcd/pull/192) 290 - Modify help output for all commands to provide much more consistent 291 and detailed information 292 - Correct case in getrawtransaction which would refuse to serve certain 293 transactions with invalid scripts 294 (https://github.com/btcsuite/btcd/issues/210) 295 - Correct error handling in the getrawtransaction RPC which could lead 296 to a crash in rare cases 297 (https://github.com/btcsuite/btcd/issues/196) 298 - Update getinfo RPC to include the appropriate 'timeoffset' calculated 299 from the median network time 300 - Modify listreceivedbyaddress result type to include txids field so it 301 is compatible 302 - Add 'iswatchonly' field to validateaddress result 303 - Add 'startingpriority' and 'currentpriority' fields to getrawmempool 304 (https://github.com/btcsuite/btcd/issues/178) 305 - Don't omit the 'confirmations' field from getrawtransaction when it is 306 zero 307 - Websocket changes: 308 - Modify the behavior of the rescan command to automatically register 309 for notifications about transactions paying to rescanned addresses 310 or spending outputs from the final rescan utxo set when the rescan 311 is through the best block in the chain 312 - btcctl utility changes: 313 - Make the list of commands available via the -l option rather than 314 dumping the entire list on usage errors 315 - Alphabetize and categorize the list of commands by chain and wallet 316 - Make the help option only show the help options instead of also 317 dumping all of the commands 318 - Make the usage syntax much more consistent and correct a few cases of 319 misnamed fields 320 (https://github.com/btcsuite/btcd/issues/305) 321 - Improve usage errors to show the specific parameter number, reason, 322 and error code 323 - Only show the usage for specific command is shown when a valid command 324 is provided with invalid parameters 325 - Add support for a SOCK5 proxy 326 - Modify output for integer fields (such as timestamps) to display 327 normally instead in scientific notation 328 - Add invalidateblock command 329 - Add reconsiderblock command 330 - Add createnewaccount command 331 - Add renameaccount command 332 - Add searchrawtransactions command 333 - Add importaddress command 334 - Add importpubkey command 335 - showblock utility changes: 336 - Remove utility in favor of the RPC getblock method 337 - Notable developer-related package changes: 338 - Many of the core packages have been relocated into the btcd repository 339 (https://github.com/btcsuite/btcd/issues/214) 340 - A new version of the btcjson package that has been completely 341 redesigned from the ground up based based upon how the project has 342 evolved and lessons learned while using it since it was first written 343 is now available in the btcjson/v2/btcjson directory 344 - This will ultimately replace the current version so anyone making 345 use of this package will need to update their code accordingly 346 - The btcec package now provides better facilities for working directly 347 with its public and private keys without having to mix elements from 348 the ecdsa package 349 - Update the script builder to ensure all rules specified by BIP0062 are 350 adhered to when creating scripts 351 - The blockchain package now provides a MedianTimeSource interface and 352 concrete implementation for providing time samples from remote peers 353 and using that data to calculate an offset against the local time 354 - Misc changes: 355 - Fix a slow memory leak due to tickers not being stopped 356 (https://github.com/btcsuite/btcd/issues/189) 357 - Fix an issue where a mix of orphans and SPV clients could trigger a 358 condition where peers would no longer be served 359 (https://github.com/btcsuite/btcd/issues/231) 360 - The RPC username and password can now contain symbols which previously 361 conflicted with special symbols used in URLs 362 - Improve handling of obtaining random nonces to prevent cases where it 363 could error when not enough entropy was available 364 - Improve handling of home directory creation errors such as in the case 365 of unmounted symlinks (https://github.com/btcsuite/btcd/issues/193) 366 - Improve the error reporting for rejected transactions to include the 367 inputs which are missing and/or being double spent 368 - Update sample config file with new options and correct a comment 369 regarding the fact the RPC server only listens on localhost by default 370 (https://github.com/btcsuite/btcd/issues/218) 371 - Update the continuous integration builds to run several tools which 372 help keep code quality high 373 - Significant amount of internal code cleanup and improvements 374 - Other minor internal optimizations 375 - Code Contributors (alphabetical order): 376 - Beldur 377 - Ben Holden-Crowther 378 - Dave Collins 379 - David Evans 380 - David Hill 381 - Guilherme Salgado 382 - Javed Khan 383 - Jimmy Song 384 - John C. Vernaleo 385 - Jonathan Gillham 386 - Josh Rickmar 387 - Michael Ford 388 - Michail Kargakis 389 - kac 390 - Olaoluwa Osuntokun 391 392 Changes in 0.9.0 (Sat Sep 20 2014) 393 - Protocol and network related changes: 394 - Add a new checkpoint at block height 319400 395 - Add support for BIP0037 bloom filters 396 (https://github.com/conformal/btcd/issues/132) 397 - Implement BIP0061 reject handling and hence support for protocol 398 version 70002 (https://github.com/conformal/btcd/issues/133) 399 - Add testnet DNS seeds for peer discovery (testnet-seed.alexykot.me 400 and testnet-seed.bitcoin.schildbach.de) 401 - Add mainnet DNS seed for peer discovery (seeds.bitcoin.open-nodes.org) 402 - Make multisig transactions with non-null dummy data nonstandard 403 (https://github.com/conformal/btcd/issues/131) 404 - Make transactions with an excessive number of signature operations 405 nonstandard 406 - Perform initial DNS lookups concurrently which allows connections 407 more quickly 408 - Improve the address manager to significantly reduce memory usage and 409 add tests 410 - Remove orphan transactions when they appear in a mined block 411 (https://github.com/conformal/btcd/issues/166) 412 - Apply incremental back off on connection retries for persistent peers 413 that give invalid replies to mirror the logic used for failed 414 connections (https://github.com/conformal/btcd/issues/103) 415 - Correct rate-limiting of free and low-fee transactions 416 - Mining support changes: 417 - Implement getblocktemplate RPC with the following support: 418 (https://github.com/conformal/btcd/issues/124) 419 - BIP0022 Non-Optional Sections 420 - BIP0022 Long Polling 421 - BIP0023 Basic Pool Extensions 422 - BIP0023 Mutation coinbase/append 423 - BIP0023 Mutations time, time/increment, and time/decrement 424 - BIP0023 Mutation transactions/add 425 - BIP0023 Mutations prevblock, coinbase, and generation 426 - BIP0023 Block Proposals 427 - Implement built-in concurrent CPU miner 428 (https://github.com/conformal/btcd/issues/137) 429 NOTE: CPU mining on mainnet is pointless. This has been provided 430 for testing purposes such as for the new simulation test network 431 - Add --generate flag to enable CPU mining 432 - Deprecate the --getworkkey flag in favor of --miningaddr which 433 specifies which addresses generated blocks will choose from to pay 434 the subsidy to 435 - RPC changes: 436 - Implement gettxout command 437 (https://github.com/conformal/btcd/issues/141) 438 - Implement validateaddress command 439 - Implement verifymessage command 440 - Mark getunconfirmedbalance RPC as wallet-only 441 - Mark getwalletinfo RPC as wallet-only 442 - Update getgenerate, setgenerate, gethashespersec, and getmininginfo 443 to return the appropriate information about new CPU mining status 444 - Modify getpeerinfo pingtime and pingwait field types to float64 so 445 they are compatible 446 - Improve disconnect handling for normal HTTP clients 447 - Make error code returns for invalid hex more consistent 448 - Websocket changes: 449 - Switch to a new more efficient websocket package 450 (https://github.com/conformal/btcd/issues/134) 451 - Add rescanfinished notification 452 - Modify the rescanprogress notification to include block hash as well 453 as height (https://github.com/conformal/btcd/issues/151) 454 - btcctl utility changes: 455 - Accept --simnet flag which automatically selects the appropriate port 456 and TLS certificates needed to communicate with btcd and btcwallet on 457 the simulation test network 458 - Fix createrawtransaction command to send amounts denominated in BTC 459 - Add estimatefee command 460 - Add estimatepriority command 461 - Add getmininginfo command 462 - Add getnetworkinfo command 463 - Add gettxout command 464 - Add lockunspent command 465 - Add signrawtransaction command 466 - addblock utility changes: 467 - Accept --simnet flag which automatically selects the appropriate port 468 and TLS certificates needed to communicate with btcd and btcwallet on 469 the simulation test network 470 - Notable developer-related package changes: 471 - Provide a new bloom package in btcutil which allows creating and 472 working with BIP0037 bloom filters 473 - Provide a new hdkeychain package in btcutil which allows working with 474 BIP0032 hierarchical deterministic key chains 475 - Introduce a new btcnet package which houses network parameters 476 - Provide new simnet network (--simnet) which is useful for private 477 simulation testing 478 - Enforce low S values in serialized signatures as detailed in BIP0062 479 - Return errors from all methods on the btcdb.Db interface 480 (https://github.com/conformal/btcdb/issues/5) 481 - Allow behavior flags to alter btcchain.ProcessBlock 482 (https://github.com/conformal/btcchain/issues/5) 483 - Provide a new SerializeSize API for blocks 484 (https://github.com/conformal/btcwire/issues/19) 485 - Several of the core packages now work with Google App Engine 486 - Misc changes: 487 - Correct an issue where the database could corrupt under certain 488 circumstances which would require a new chain download 489 - Slightly optimize deserialization 490 - Use the correct IP block for he.net 491 - Fix an issue where it was possible the block manager could hang on 492 shutdown 493 - Update sample config file so the comments are on a separate line 494 rather than the end of a line so they are not interpreted as settings 495 (https://github.com/conformal/btcd/issues/135) 496 - Correct an issue where getdata requests were not being properly 497 throttled which could lead to larger than necessary memory usage 498 - Always show help when given the help flag even when the config file 499 contains invalid entries 500 - General code cleanup and minor optimizations 501 502 Changes in 0.8.0-beta (Sun May 25 2014) 503 - Btcd is now Beta (https://github.com/conformal/btcd/issues/130) 504 - Add a new checkpoint at block height 300255 505 - Protocol and network related changes: 506 - Lower the minimum transaction relay fee to 1000 satoshi to match 507 recent reference client changes 508 (https://github.com/conformal/btcd/issues/100) 509 - Raise the maximum signature script size to support standard 15-of-15 510 multi-signature pay-to-sript-hash transactions with compressed pubkeys 511 to remain compatible with the reference client 512 (https://github.com/conformal/btcd/issues/128) 513 - Reduce max bytes allowed for a standard nulldata transaction to 40 for 514 compatibility with the reference client 515 - Introduce a new btcnet package which houses all of the network params 516 for each network (mainnet, testnet3, regtest) to ultimately enable 517 easier addition and tweaking of networks without needing to change 518 several packages 519 - Fix several script discrepancies found by reference client test data 520 - Add new DNS seed for peer discovery (seed.bitnodes.io) 521 - Reduce the max known inventory cache from 20000 items to 1000 items 522 - Fix an issue where unknown inventory types could lead to a hung peer 523 - Implement inventory rebroadcast handler for sendrawtransaction 524 (https://github.com/conformal/btcd/issues/99) 525 - Update user agent to fully support BIP0014 526 (https://github.com/conformal/btcwire/issues/10) 527 - Implement initial mining support: 528 - Add a new logging subsystem for mining related operations 529 - Implement infrastructure for creating block templates 530 - Provide options to control block template creation settings 531 - Support the getwork RPC 532 - Allow address identifiers to apply to more than one network since both 533 testnet3 and the regression test network unfortunately use the same 534 identifier 535 - RPC changes: 536 - Set the content type for HTTP POST RPC connections to application/json 537 (https://github.com/conformal/btcd/issues/121) 538 - Modified the RPC server startup so it only requires at least one valid 539 listen interface 540 - Correct an error path where it was possible certain errors would not 541 be returned 542 - Implement getwork command 543 (https://github.com/conformal/btcd/issues/125) 544 - Update sendrawtransaction command to reject orphans 545 - Update sendrawtransaction command to include the reason a transaction 546 was rejected 547 - Update getinfo command to populate connection count field 548 - Update getinfo command to include relay fee field 549 (https://github.com/conformal/btcd/issues/107) 550 - Allow transactions submitted with sendrawtransaction to bypass the 551 rate limiter 552 - Allow the getcurrentnet and getbestblock extensions to be accessed via 553 HTTP POST in addition to Websockets 554 (https://github.com/conformal/btcd/issues/127) 555 - Websocket changes: 556 - Rework notifications to ensure they are delivered in the order they 557 occur 558 - Rename notifynewtxs command to notifyreceived (funds received) 559 - Rename notifyallnewtxs command to notifynewtransactions 560 - Rename alltx notification to txaccepted 561 - Rename allverbosetx notification to txacceptedverbose 562 (https://github.com/conformal/btcd/issues/98) 563 - Add rescan progress notification 564 - Add recvtx notification 565 - Add redeemingtx notification 566 - Modify notifyspent command to accept an array of outpoints 567 (https://github.com/conformal/btcd/issues/123) 568 - Significantly optimize the rescan command to yield up to a 60x speed 569 increase 570 - btcctl utility changes: 571 - Add createencryptedwallet command 572 - Add getblockchaininfo command 573 - Add importwallet commmand 574 - Add addmultisigaddress commmand 575 - Add setgenerate command 576 - Accept --testnet and --wallet flags which automatically select 577 the appropriate port and TLS certificates needed to communicate 578 with btcd and btcwallet (https://github.com/conformal/btcd/issues/112) 579 - Allow path expansion from config file entries 580 (https://github.com/conformal/btcd/issues/113) 581 - Minor refactor simplify handling of options 582 - addblock utility changes: 583 - Improve logging by making it consistent with the logging provided by 584 btcd (https://github.com/conformal/btcd/issues/90) 585 - Improve several package APIs for developers: 586 - Add new amount type for consistently handling monetary values 587 - Add new coin selector API 588 - Add new WIF (Wallet Import Format) API 589 - Add new crypto types for private keys and signatures 590 - Add new API to sign transactions including script merging and hash 591 types 592 - Expose function to extract all pushed data from a script 593 (https://github.com/conformal/btcscript/issues/8) 594 - Misc changes: 595 - Optimize address manager shuffling to do 67% less work on average 596 - Resolve a couple of benign data races found by the race detector 597 (https://github.com/conformal/btcd/issues/101) 598 - Add IP address to all peer related errors to clarify which peer is the 599 cause (https://github.com/conformal/btcd/issues/102) 600 - Fix a UPNP case issue that prevented the --upnp option from working 601 with some UPNP servers 602 - Update documentation in the sample config file regarding debug levels 603 - Adjust some logging levels to improve debug messages 604 - Improve the throughput of query messages to the block manager 605 - Several minor optimizations to reduce GC churn and enhance speed 606 - Other minor refactoring 607 - General code cleanup 608 609 Changes in 0.7.0 (Thu Feb 20 2014) 610 - Fix an issue when parsing scripts which contain a multi-signature script 611 which require zero signatures such as testnet block 612 000000001881dccfeda317393c261f76d09e399e15e27d280e5368420f442632 613 (https://github.com/conformal/btcscript/issues/7) 614 - Add check to ensure all transactions accepted to mempool only contain 615 canonical data pushes (https://github.com/conformal/btcscript/issues/6) 616 - Fix an issue causing excessive memory consumption 617 - Significantly rework and improve the websocket notification system: 618 - Each client is now independent so slow clients no longer limit the 619 speed of other connected clients 620 - Potentially long-running operations such as rescans are now run in 621 their own handler and rate-limited to one operation at a time without 622 preventing simultaneous requests from the same client for the faster 623 requests or notifications 624 - A couple of scenarios which could cause shutdown to hang have been 625 resolved 626 - Update notifynewtx notifications to support all address types instead 627 of only pay-to-pubkey-hash 628 - Provide a --rpcmaxwebsockets option to allow limiting the number of 629 concurrent websocket clients 630 - Add a new websocket command notifyallnewtxs to request notifications 631 (https://github.com/conformal/btcd/issues/86) (thanks @flammit) 632 - Improve btcctl utility in the following ways: 633 - Add getnetworkhashps command 634 - Add gettransaction command (wallet-specific) 635 - Add signmessage command (wallet-specific) 636 - Update getwork command to accept 637 - Continue cleanup and work on implementing the RPC API: 638 - Implement getnettotals command 639 (https://github.com/conformal/btcd/issues/84) 640 - Implement networkhashps command 641 (https://github.com/conformal/btcd/issues/87) 642 - Update getpeerinfo to always include syncnode field even when false 643 - Remove help addenda for getpeerinfo now that it supports all fields 644 - Close standard RPC connections on auth failure 645 - Provide a --rpcmaxclients option to allow limiting the number of 646 concurrent RPC clients (https://github.com/conformal/btcd/issues/68) 647 - Include IP address in RPC auth failure log messages 648 - Resolve a rather harmless data races found by the race detector 649 (https://github.com/conformal/btcd/issues/94) 650 - Increase block priority size and max standard transaction size to 50k 651 and 100k, respectively (https://github.com/conformal/btcd/issues/71) 652 - Add rate limiting of free transactions to the memory pool to prevent 653 penny flooding (https://github.com/conformal/btcd/issues/40) 654 - Provide a --logdir option (https://github.com/conformal/btcd/issues/95) 655 - Change the default log file path to include the network 656 - Add a new ScriptBuilder interface to btcscript to support creation of 657 custom scripts (https://github.com/conformal/btcscript/issues/5) 658 - General code cleanup 659 660 Changes in 0.6.0 (Tue Feb 04 2014) 661 - Fix an issue when parsing scripts which contain invalid signatures that 662 caused a chain fork on block 663 0000000000000001e4241fd0b3469a713f41c5682605451c05d3033288fb2244 664 - Correct an issue which could lead to an error in removeBlockNode 665 (https://github.com/conformal/btcchain/issues/4) 666 - Improve addblock utility as follows: 667 - Check imported blocks against all chain rules and checkpoints 668 - Skip blocks which are already known so you can stop and restart the 669 import or start the import after you have already downloaded a portion 670 of the chain 671 - Correct an issue where the utility did not shutdown cleanly after 672 processing all blocks 673 - Add error on attempt to import orphan blocks 674 - Improve error handling and reporting 675 - Display statistics after input file has been fully processed 676 - Rework, optimize, and improve headers-first mode: 677 - Resuming the chain sync from any point before the final checkpoint 678 will now use headers-first mode 679 (https://github.com/conformal/btcd/issues/69) 680 - Verify all checkpoints as opposed to only the final one 681 - Reduce and bound memory usage 682 - Rollback to the last known good point when a header does not match a 683 checkpoint 684 - Log information about what is happening with headers 685 - Improve btcctl utility in the following ways: 686 - Add getaddednodeinfo command 687 - Add getnettotals command 688 - Add getblocktemplate command (wallet-specific) 689 - Add getwork command (wallet-specific) 690 - Add getnewaddress command (wallet-specific) 691 - Add walletpassphrasechange command (wallet-specific) 692 - Add walletlock command (wallet-specific) 693 - Add sendfrom command (wallet-specific) 694 - Add sendmany command (wallet-specific) 695 - Add settxfee command (wallet-specific) 696 - Add listsinceblock command (wallet-specific) 697 - Add listaccounts command (wallet-specific) 698 - Add keypoolrefill command (wallet-specific) 699 - Add getreceivedbyaccount command (wallet-specific) 700 - Add getrawchangeaddress command (wallet-specific) 701 - Add gettxoutsetinfo command (wallet-specific) 702 - Add listaddressgroupings command (wallet-specific) 703 - Add listlockunspent command (wallet-specific) 704 - Add listlock command (wallet-specific) 705 - Add listreceivedbyaccount command (wallet-specific) 706 - Add validateaddress command (wallet-specific) 707 - Add verifymessage command (wallet-specific) 708 - Add sendtoaddress command (wallet-specific) 709 - Continue cleanup and work on implementing the RPC API: 710 - Implement submitblock command 711 (https://github.com/conformal/btcd/issues/61) 712 - Implement help command 713 - Implement ping command 714 - Implement getaddednodeinfo command 715 (https://github.com/conformal/btcd/issues/78) 716 - Implement getinfo command 717 - Update getpeerinfo to support bytesrecv and bytessent 718 (https://github.com/conformal/btcd/issues/83) 719 - Improve and correct several RPC server and websocket areas: 720 - Change the connection endpoint for websockets from /wallet to /ws 721 (https://github.com/conformal/btcd/issues/80) 722 - Implement an alternative authentication for websockets so clients 723 such as javascript from browsers that don't support setting HTTP 724 headers can authenticate (https://github.com/conformal/btcd/issues/77) 725 - Add an authentication deadline for RPC connections 726 (https://github.com/conformal/btcd/issues/68) 727 - Use standard authentication failure responses for RPC connections 728 - Make automatically generated certificate more standard so it works 729 from client such as node.js and Firefox 730 - Correct some minor issues which could prevent the RPC server from 731 shutting down in an orderly fashion 732 - Make all websocket notifications require registration 733 - Change the data sent over websockets to text since it is JSON-RPC 734 - Allow connections that do not have an Origin header set 735 - Expose and track the number of bytes read and written per peer 736 (https://github.com/conformal/btcwire/issues/6) 737 - Correct an issue with sendrawtransaction when invoked via websockets 738 which prevented a minedtx notification from being added 739 - Rescan operations issued from remote wallets are no stopped when 740 the wallet disconnects mid-operation 741 (https://github.com/conformal/btcd/issues/66) 742 - Several optimizations related to fetching block information from the 743 database 744 - General code cleanup 745 746 Changes in 0.5.0 (Mon Jan 13 2014) 747 - Optimize initial block download by introducing a new mode which 748 downloads the block headers first (up to the final checkpoint) 749 - Improve peer handling to remove the potential for slow peers to cause 750 sluggishness amongst all peers 751 (https://github.com/conformal/btcd/issues/63) 752 - Fix an issue where the initial block sync could stall when the sync peer 753 disconnects (https://github.com/conformal/btcd/issues/62) 754 - Correct an issue where --externalip was doing a DNS lookup on the full 755 host:port instead of just the host portion 756 (https://github.com/conformal/btcd/issues/38) 757 - Fix an issue which could lead to a panic on chain switches 758 (https://github.com/conformal/btcd/issues/70) 759 - Improve btcctl utility in the following ways: 760 - Show getdifficulty output as floating point to 6 digits of precision 761 - Show all JSON object replies formatted as standard JSON 762 - Allow btcctl getblock to accept optional params 763 - Add getaccount command (wallet-specific) 764 - Add getaccountaddress command (wallet-specific) 765 - Add sendrawtransaction command 766 - Continue cleanup and work on implementing RPC API calls 767 - Update getrawmempool to support new optional verbose flag 768 - Update getrawtransaction to match the reference client 769 - Update getblock to support new optional verbose flag 770 - Update raw transactions to fully match the reference client including 771 support for all transaction types and address types 772 - Correct getrawmempool fee field to return BTC instead of Satoshi 773 - Correct getpeerinfo service flag to return 8 digit string so it 774 matches the reference client 775 - Correct verifychain to return a boolean 776 - Implement decoderawtransaction command 777 - Implement createrawtransaction command 778 - Implement decodescript command 779 - Implement gethashespersec command 780 - Allow RPC handler overrides when invoked via a websocket versus 781 legacy connection 782 - Add new DNS seed for peer discovery 783 - Display user agent on new valid peer log message 784 (https://github.com/conformal/btcd/issues/64) 785 - Notify wallet when new transactions that pay to registered addresses 786 show up in the mempool before being mined into a block 787 - Support a tor-specific proxy in addition to a normal proxy 788 (https://github.com/conformal/btcd/issues/47) 789 - Remove deprecated sqlite3 imports from utilities 790 - Remove leftover profile write from addblock utility 791 - Quite a bit of code cleanup and refactoring to improve maintainability 792 793 Changes in 0.4.0 (Thu Dec 12 2013) 794 - Allow listen interfaces to be specified via --listen instead of only the 795 port (https://github.com/conformal/btcd/issues/33) 796 - Allow listen interfaces for the RPC server to be specified via 797 --rpclisten instead of only the port 798 (https://github.com/conformal/btcd/issues/34) 799 - Only disable listening when --connect or --proxy are used when no 800 --listen interface are specified 801 (https://github.com/conformal/btcd/issues/10) 802 - Add several new standard transaction checks to transaction memory pool: 803 - Support nulldata scripts as standard 804 - Only allow a max of one nulldata output per transaction 805 - Enforce a maximum of 3 public keys in multi-signature transactions 806 - The number of signatures in multi-signature transactions must not 807 exceed the number of public keys 808 - The number of inputs to a signature script must match the expected 809 number of inputs for the script type 810 - The number of inputs pushed onto the stack by a redeeming signature 811 script must match the number of inputs consumed by the referenced 812 public key script 813 - When a block is connected, remove any transactions from the memory pool 814 which are now double spends as a result of the newly connected 815 transactions 816 - Don't relay transactions resurrected during a chain switch since 817 other peers will also be switching chains and therefore already know 818 about them 819 - Cleanup a few cases where rejected transactions showed as an error 820 rather than as a rejected transaction 821 - Ignore the default configuration file when --regtest (regression test 822 mode) is specified 823 - Implement TLS support for RPC including automatic certificate generation 824 - Support HTTP authentication headers for web sockets 825 - Update address manager to recognize and properly work with Tor 826 addresses (https://github.com/conformal/btcd/issues/36) and 827 (https://github.com/conformal/btcd/issues/37) 828 - Improve btcctl utility in the following ways: 829 - Add the ability to specify a configuration file 830 - Add a default entry for the RPC cert to point to the location 831 it will likely be in the btcd home directory 832 - Implement --version flag 833 - Provide a --notls option to support non-TLS configurations 834 - Fix a couple of minor races found by the Go race detector 835 - Improve logging 836 - Allow logging level to be specified on a per subsystem basis 837 (https://github.com/conformal/btcd/issues/48) 838 - Allow logging levels to be dynamically changed via RPC 839 (https://github.com/conformal/btcd/issues/15) 840 - Implement a rolling log file with a max of 10MB per file and a 841 rotation size of 3 which results in a max logging size of 30 MB 842 - Correct a minor issue with the rescanning websocket call 843 (https://github.com/conformal/btcd/issues/54) 844 - Fix a race with pushing address messages that could lead to a panic 845 (https://github.com/conformal/btcd/issues/58) 846 - Improve which external IP address is reported to peers based on which 847 interface they are connected through 848 (https://github.com/conformal/btcd/issues/35) 849 - Add --externalip option to allow an external IP address to be specified 850 for cases such as tor hidden services or advanced network configurations 851 (https://github.com/conformal/btcd/issues/38) 852 - Add --upnp option to support automatic port mapping via UPnP 853 (https://github.com/conformal/btcd/issues/51) 854 - Update Ctrl+C interrupt handler to properly sync address manager and 855 remove the UPnP port mapping (if needed) 856 - Continue cleanup and work on implementing RPC API calls 857 - Add importprivkey (import private key) command to btcctl 858 - Update getrawtransaction to provide addresses properly, support 859 new verbose param, and match the reference implementation with the 860 exception of MULTISIG (thanks @flammit) 861 - Update getblock with new verbose flag (thanks @flammit) 862 - Add listtransactions command to btcctl 863 - Add getbalance command to btcctl 864 - Add basic support for btcd to run as a native Windows service 865 (https://github.com/conformal/btcd/issues/42) 866 - Package addblock utility with Windows MSIs 867 - Add support for TravisCI (continuous build integration) 868 - Cleanup some documentation and usage 869 - Several other minor bug fixes and general code cleanup 870 871 Changes in 0.3.3 (Wed Nov 13 2013) 872 - Significantly improve initial block chain download speed 873 (https://github.com/conformal/btcd/issues/20) 874 - Add a new checkpoint at block height 267300 875 - Optimize most recently used inventory handling 876 (https://github.com/conformal/btcd/issues/21) 877 - Optimize duplicate transaction input check 878 (https://github.com/conformal/btcchain/issues/2) 879 - Optimize transaction hashing 880 (https://github.com/conformal/btcd/issues/25) 881 - Rework and optimize wallet listener notifications 882 (https://github.com/conformal/btcd/issues/22) 883 - Optimize serialization and deserialization 884 (https://github.com/conformal/btcd/issues/27) 885 - Add support for minimum transaction fee to memory pool acceptance 886 (https://github.com/conformal/btcd/issues/29) 887 - Improve leveldb database performance by removing explicit GC call 888 - Fix an issue where Ctrl+C was not always finishing orderly database 889 shutdown 890 - Fix an issue in the script handling for OP_CHECKSIG 891 - Impose max limits on all variable length protocol entries to prevent 892 abuse from malicious peers 893 - Enforce DER signatures for transactions allowed into the memory pool 894 - Separate the debug profile http server from the RPC server 895 - Rework of the RPC code to improve performance and make the code cleaner 896 - The getrawtransaction RPC call now properly checks the memory pool 897 before consulting the db (https://github.com/conformal/btcd/issues/26) 898 - Add support for the following RPC calls: getpeerinfo, getconnectedcount, 899 addnode, verifychain 900 (https://github.com/conformal/btcd/issues/13) 901 (https://github.com/conformal/btcd/issues/17) 902 - Implement rescan websocket extension to allow wallet rescans 903 - Use correct paths for application data storage for all supported 904 operating systems (https://github.com/conformal/btcd/issues/30) 905 - Add a default redirect to the http profiling page when accessing the 906 http profile server 907 - Add a new --cpuprofile option which can be used to generate CPU 908 profiling data on platforms that support it 909 - Several other minor performance optimizations 910 - Other minor bug fixes and general code cleanup 911 912 Changes in 0.3.2 (Tue Oct 22 2013) 913 - Fix an issue that could cause the download of the block chain to stall 914 (https://github.com/conformal/btcd/issues/12) 915 - Remove deprecated sqlite as an available database backend 916 - Close sqlite compile issue as sqlite has now been removed 917 (https://github.com/conformal/btcd/issues/11) 918 - Change default RPC ports to 8334 (mainnet) and 18334 (testnet) 919 - Continue cleanup and work on implementing RPC API calls 920 - Add support for the following RPC calls: getrawmempool, 921 getbestblockhash, decoderawtransaction, getdifficulty, 922 getconnectioncount, getpeerinfo, and addnode 923 - Improve the btcctl utility that is used to issue JSON-RPC commands 924 - Fix an issue preventing btcd from cleanly shutting down with the RPC 925 stop command 926 - Add a number of database interface tests to ensure backends implement 927 the expected interface 928 - Expose some additional information from btcscript to be used for 929 identifying "standard"" transactions 930 - Add support for plan9 - thanks @mischief 931 (https://github.com/conformal/btcd/pull/19) 932 - Other minor bug fixes and general code cleanup 933 934 Changes in 0.3.1-alpha (Tue Oct 15 2013) 935 - Change default database to leveldb 936 NOTE: This does mean you will have to redownload the block chain. Since we 937 are still in alpha, we didn't feel writing a converter was worth the time as 938 it would take away from more important issues at this stage 939 - Add a warning if there are multiple block chain databases of different types 940 - Fix issue with unexpected EOF in leveldb -- https://github.com/conformal/btcd/issues/18 941 - Fix issue preventing block 21066 on testnet -- https://github.com/conformal/btcchain/issues/1 942 - Fix issue preventing block 96464 on testnet -- https://github.com/conformal/btcscript/issues/1 943 - Optimize transaction lookups 944 - Correct a few cases of list removal that could result in improper cleanup 945 of no longer needed orphans 946 - Add functionality to increase ulimits on non-Windows platforms 947 - Add support for mempool command which allows remote peers to query the 948 transaction memory pool via the bitcoin protocol 949 - Clean up logging a bit 950 - Add a flag to disable checkpoints for developers 951 - Add a lot of useful debug logging such as message summaries 952 - Other minor bug fixes and general code cleanup 953 954 Initial Release 0.3.0-alpha (Sat Oct 05 2013): 955 - Initial release