You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
836 lines
43 KiB
836 lines
43 KiB
9 years ago
|
============================================================================
|
||
|
User visible changes for btcd
|
||
|
A full-node bitcoin implementation written in Go
|
||
|
============================================================================
|
||
|
|
||
|
Changes in 0.11.1 (Wed May 27 2015)
|
||
|
- Protocol and network related changes:
|
||
|
- Use correct sub-command in reject message for rejected transactions
|
||
|
(#436, #437)
|
||
|
- Add a new parameter --torisolation which forces new circuits for each
|
||
|
connection when using tor (#430)
|
||
|
- Transaction relay (memory pool) changes:
|
||
|
- Reduce the default number max number of allowed orphan transactions
|
||
|
to 1000 (#419)
|
||
|
- Add a new parameter --maxorphantx which allows the maximum number of
|
||
|
orphan transactions stored in the mempool to be specified (#419)
|
||
|
- RPC changes:
|
||
|
- Modify listtransactions result to include the 'involveswatchonly' and
|
||
|
'vout' fields (#427)
|
||
|
- Update getrawtransaction result to omit the 'confirmations' field
|
||
|
when it is 0 (#420, #422)
|
||
|
- Update signrawtransaction result to include errors (#423)
|
||
|
- btcctl utility changes:
|
||
|
- Add gettxoutproof command (#428)
|
||
|
- Add verifytxoutproof command (#428)
|
||
|
- Notable developer-related package changes:
|
||
|
- The btcec package now provides the ability to perform ECDH
|
||
|
encryption and decryption (#375)
|
||
|
- The block and header validation in the blockchain package has been
|
||
|
split to help pave the way toward concurrent downloads (#386)
|
||
|
- Misc changes:
|
||
|
- Minor peer optimization (#433)
|
||
|
- Contributors (alphabetical order):
|
||
|
- Dave Collins
|
||
|
- David Hill
|
||
|
- Federico Bond
|
||
|
- Ishbir Singh
|
||
|
- Josh Rickmar
|
||
|
|
||
|
Changes in 0.11.0 (Wed May 06 2015)
|
||
|
- Protocol and network related changes:
|
||
|
- **IMPORTANT: Update is required due to the following point**
|
||
|
- Correct a few corner cases in script handling which could result in
|
||
|
forking from the network on non-standard transactions (#425)
|
||
|
- Add a new checkpoint at block height 352940 (#418)
|
||
|
- Optimized script execution (#395, #400, #404, #409)
|
||
|
- Fix a case that could lead stalled syncs (#138, #296)
|
||
|
- Network address manager changes:
|
||
|
- Implement eclipse attack countermeasures as proposed in
|
||
|
http://cs-people.bu.edu/heilman/eclipse (#370, #373)
|
||
|
- Optional address indexing changes:
|
||
|
- Fix an issue where a reorg could cause an orderly shutdown when the
|
||
|
address index is active (#340, #357)
|
||
|
- Transaction relay (memory pool) changes:
|
||
|
- Increase maximum allowed space for nulldata transactions to 80 bytes
|
||
|
(#331)
|
||
|
- Implement support for the following rules specified by BIP0062:
|
||
|
- The S value in ECDSA signature must be at most half the curve order
|
||
|
(rule 5) (#349)
|
||
|
- Script execution must result in a single non-zero value on the stack
|
||
|
(rule 6) (#347)
|
||
|
- NOTE: All 7 rules of BIP0062 are now implemented
|
||
|
- Use network adjusted time in finalized transaction checks to improve
|
||
|
consistency across nodes (#332)
|
||
|
- Process orphan transactions on acceptance of new transactions (#345)
|
||
|
- RPC changes:
|
||
|
- Add support for a limited RPC user which is not allowed admin level
|
||
|
operations on the server (#363)
|
||
|
- Implement node command for more unified control over connected peers
|
||
|
(#79, #341)
|
||
|
- Implement generate command for regtest/simnet to support
|
||
|
deterministically mining a specified number of blocks (#362, #407)
|
||
|
- Update searchrawtransactions to return the matching transactions in
|
||
|
order (#354)
|
||
|
- Correct an issue with searchrawtransactions where it could return
|
||
|
duplicates (#346, #354)
|
||
|
- Increase precision of 'difficulty' field in getblock result to 8
|
||
|
(#414, #415)
|
||
|
- Omit 'nextblockhash' field from getblock result when it is empty
|
||
|
(#416, #417)
|
||
|
- Add 'id' and 'timeoffset' fields to getpeerinfo result (#335)
|
||
|
- Websocket changes:
|
||
|
- Implement new commands stopnotifyspent, stopnotifyreceived,
|
||
|
stopnotifyblocks, and stopnotifynewtransactions to allow clients to
|
||
|
cancel notification registrations (#122, #342)
|
||
|
- btcctl utility changes:
|
||
|
- A single dash can now be used as an argument to cause that argument to
|
||
|
be read from stdin (#348)
|
||
|
- Add generate command
|
||
|
- Notable developer-related package changes:
|
||
|
- The new version 2 btcjson package has now replaced the deprecated
|
||
|
version 1 package (#368)
|
||
|
- The btcec package now performs all signing using RFC6979 deterministic
|
||
|
signatures (#358, #360)
|
||
|
- The txscript package has been significantly cleaned up and had a few
|
||
|
API changes (#387, #388, #389, #390, #391, #392, #393, #395, #396,
|
||
|
#400, #403, #404, #405, #406, #408, #409, #410, #412)
|
||
|
- A new PkScriptLocs function has been added to the wire package MsgTx
|
||
|
type which provides callers that deal with scripts optimization
|
||
|
opportunities (#343)
|
||
|
- Misc changes:
|
||
|
- Minor wire hashing optimizations (#366, #367)
|
||
|
- Other minor internal optimizations
|
||
|
- Contributors (alphabetical order):
|
||
|
- Alex Akselrod
|
||
|
- Arne Brutschy
|
||
|
- Chris Jepson
|
||
|
- Daniel Krawisz
|
||
|
- Dave Collins
|
||
|
- David Hill
|
||
|
- Jimmy Song
|
||
|
- Jonas Nick
|
||
|
- Josh Rickmar
|
||
|
- Olaoluwa Osuntokun
|
||
|
- Oleg Andreev
|
||
|
|
||
|
Changes in 0.10.0 (Sun Mar 01 2015)
|
||
|
- Protocol and network related changes:
|
||
|
- Add a new checkpoint at block height 343185
|
||
|
- Implement BIP066 which includes support for version 3 blocks, a new
|
||
|
consensus rule which prevents non-DER encoded signatures, and a
|
||
|
double-threshold switchover mechanism
|
||
|
- Rather than announcing all known addresses on getaddr requests which
|
||
|
can possibly result in multiple messages, randomize the results and
|
||
|
limit them to the max allowed by a single message (1000 addresses)
|
||
|
- Add more reserved IP spaces to the address manager
|
||
|
- Transaction relay (memory pool) changes:
|
||
|
- Make transactions which contain reserved opcodes nonstandard
|
||
|
- No longer accept or relay free and low-fee transactions that have
|
||
|
insufficient priority to be mined in the next block
|
||
|
- Implement support for the following rules specified by BIP0062:
|
||
|
- ECDSA signature must use strict DER encoding (rule 1)
|
||
|
- The signature script must only contain push operations (rule 2)
|
||
|
- All push operations must use the smallest possible encoding (rule 3)
|
||
|
- All stack values interpreted as a number must be encoding using the
|
||
|
shortest possible form (rule 4)
|
||
|
- NOTE: Rule 1 was already enforced, however the entire script now
|
||
|
evaluates to false rather than only the signature verification as
|
||
|
required by BIP0062
|
||
|
- Allow transactions with nulldata transaction outputs to be treated as
|
||
|
standard
|
||
|
- Mining support changes:
|
||
|
- Modify the getblocktemplate RPC to generate and return block templates
|
||
|
for version 3 blocks which are compatible with BIP0066
|
||
|
- Allow getblocktemplate to serve blocks when the current time is
|
||
|
less than the minimum allowed time for a generated block template
|
||
|
(https://github.com/btcsuite/btcd/issues/209)
|
||
|
- Crypto changes:
|
||
|
- Optimize scalar multiplication by the base point by using a
|
||
|
pre-computed table which results in approximately a 35% speedup
|
||
|
(https://github.com/btcsuite/btcec/issues/2)
|
||
|
- Optimize general scalar multiplication by using the secp256k1
|
||
|
endomorphism which results in approximately a 17-20% speedup
|
||
|
(https://github.com/btcsuite/btcec/issues/1)
|
||
|
- Optimize general scalar multiplication by using non-adjacent form
|
||
|
which results in approximately an additional 8% speedup
|
||
|
(https://github.com/btcsuite/btcec/issues/3)
|
||
|
- Implement optional address indexing:
|
||
|
- Add a new parameter --addrindex which will enable the creation of an
|
||
|
address index which can be queried to determine all transactions which
|
||
|
involve a given address
|
||
|
(https://github.com/btcsuite/btcd/issues/190)
|
||
|
- Add a new logging subsystem for address index related operations
|
||
|
- Support new searchrawtransactions RPC
|
||
|
(https://github.com/btcsuite/btcd/issues/185)
|
||
|
- RPC changes:
|
||
|
- Require TLS version 1.2 as the minimum version for all TLS connections
|
||
|
- Provide support for disabling TLS when only listening on localhost
|
||
|
(https://github.com/btcsuite/btcd/pull/192)
|
||
|
- Modify help output for all commands to provide much more consistent
|
||
|
and detailed information
|
||
|
- Correct case in getrawtransaction which would refuse to serve certain
|
||
|
transactions with invalid scripts
|
||
|
(https://github.com/btcsuite/btcd/issues/210)
|
||
|
- Correct error handling in the getrawtransaction RPC which could lead
|
||
|
to a crash in rare cases
|
||
|
(https://github.com/btcsuite/btcd/issues/196)
|
||
|
- Update getinfo RPC to include the appropriate 'timeoffset' calculated
|
||
|
from the median network time
|
||
|
- Modify listreceivedbyaddress result type to include txids field so it
|
||
|
is compatible
|
||
|
- Add 'iswatchonly' field to validateaddress result
|
||
|
- Add 'startingpriority' and 'currentpriority' fields to getrawmempool
|
||
|
(https://github.com/btcsuite/btcd/issues/178)
|
||
|
- Don't omit the 'confirmations' field from getrawtransaction when it is
|
||
|
zero
|
||
|
- Websocket changes:
|
||
|
- Modify the behavior of the rescan command to automatically register
|
||
|
for notifications about transactions paying to rescanned addresses
|
||
|
or spending outputs from the final rescan utxo set when the rescan
|
||
|
is through the best block in the chain
|
||
|
- btcctl utility changes:
|
||
|
- Make the list of commands available via the -l option rather than
|
||
|
dumping the entire list on usage errors
|
||
|
- Alphabetize and categorize the list of commands by chain and wallet
|
||
|
- Make the help option only show the help options instead of also
|
||
|
dumping all of the commands
|
||
|
- Make the usage syntax much more consistent and correct a few cases of
|
||
|
misnamed fields
|
||
|
(https://github.com/btcsuite/btcd/issues/305)
|
||
|
- Improve usage errors to show the specific parameter number, reason,
|
||
|
and error code
|
||
|
- Only show the usage for specific command is shown when a valid command
|
||
|
is provided with invalid parameters
|
||
|
- Add support for a SOCK5 proxy
|
||
|
- Modify output for integer fields (such as timestamps) to display
|
||
|
normally instead in scientific notation
|
||
|
- Add invalidateblock command
|
||
|
- Add reconsiderblock command
|
||
|
- Add createnewaccount command
|
||
|
- Add renameaccount command
|
||
|
- Add searchrawtransactions command
|
||
|
- Add importaddress command
|
||
|
- Add importpubkey command
|
||
|
- showblock utility changes:
|
||
|
- Remove utility in favor of the RPC getblock method
|
||
|
- Notable developer-related package changes:
|
||
|
- Many of the core packages have been relocated into the btcd repository
|
||
|
(https://github.com/btcsuite/btcd/issues/214)
|
||
|
- A new version of the btcjson package that has been completely
|
||
|
redesigned from the ground up based based upon how the project has
|
||
|
evolved and lessons learned while using it since it was first written
|
||
|
is now available in the btcjson/v2/btcjson directory
|
||
|
- This will ultimately replace the current version so anyone making
|
||
|
use of this package will need to update their code accordingly
|
||
|
- The btcec package now provides better facilities for working directly
|
||
|
with its public and private keys without having to mix elements from
|
||
|
the ecdsa package
|
||
|
- Update the script builder to ensure all rules specified by BIP0062 are
|
||
|
adhered to when creating scripts
|
||
|
- The blockchain package now provides a MedianTimeSource interface and
|
||
|
concrete implementation for providing time samples from remote peers
|
||
|
and using that data to calculate an offset against the local time
|
||
|
- Misc changes:
|
||
|
- Fix a slow memory leak due to tickers not being stopped
|
||
|
(https://github.com/btcsuite/btcd/issues/189)
|
||
|
- Fix an issue where a mix of orphans and SPV clients could trigger a
|
||
|
condition where peers would no longer be served
|
||
|
(https://github.com/btcsuite/btcd/issues/231)
|
||
|
- The RPC username and password can now contain symbols which previously
|
||
|
conflicted with special symbols used in URLs
|
||
|
- Improve handling of obtaining random nonces to prevent cases where it
|
||
|
could error when not enough entropy was available
|
||
|
- Improve handling of home directory creation errors such as in the case
|
||
|
of unmounted symlinks (https://github.com/btcsuite/btcd/issues/193)
|
||
|
- Improve the error reporting for rejected transactions to include the
|
||
|
inputs which are missing and/or being double spent
|
||
|
- Update sample config file with new options and correct a comment
|
||
|
regarding the fact the RPC server only listens on localhost by default
|
||
|
(https://github.com/btcsuite/btcd/issues/218)
|
||
|
- Update the continuous integration builds to run several tools which
|
||
|
help keep code quality high
|
||
|
- Significant amount of internal code cleanup and improvements
|
||
|
- Other minor internal optimizations
|
||
|
- Code Contributors (alphabetical order):
|
||
|
- Beldur
|
||
|
- Ben Holden-Crowther
|
||
|
- Dave Collins
|
||
|
- David Evans
|
||
|
- David Hill
|
||
|
- Guilherme Salgado
|
||
|
- Javed Khan
|
||
|
- Jimmy Song
|
||
|
- John C. Vernaleo
|
||
|
- Jonathan Gillham
|
||
|
- Josh Rickmar
|
||
|
- Michael Ford
|
||
|
- Michail Kargakis
|
||
|
- kac
|
||
|
- Olaoluwa Osuntokun
|
||
|
|
||
|
Changes in 0.9.0 (Sat Sep 20 2014)
|
||
|
- Protocol and network related changes:
|
||
|
- Add a new checkpoint at block height 319400
|
||
|
- Add support for BIP0037 bloom filters
|
||
|
(https://github.com/conformal/btcd/issues/132)
|
||
|
- Implement BIP0061 reject handling and hence support for protocol
|
||
|
version 70002 (https://github.com/conformal/btcd/issues/133)
|
||
|
- Add testnet DNS seeds for peer discovery (testnet-seed.alexykot.me
|
||
|
and testnet-seed.bitcoin.schildbach.de)
|
||
|
- Add mainnet DNS seed for peer discovery (seeds.bitcoin.open-nodes.org)
|
||
|
- Make multisig transactions with non-null dummy data nonstandard
|
||
|
(https://github.com/conformal/btcd/issues/131)
|
||
|
- Make transactions with an excessive number of signature operations
|
||
|
nonstandard
|
||
|
- Perform initial DNS lookups concurrently which allows connections
|
||
|
more quickly
|
||
|
- Improve the address manager to significantly reduce memory usage and
|
||
|
add tests
|
||
|
- Remove orphan transactions when they appear in a mined block
|
||
|
(https://github.com/conformal/btcd/issues/166)
|
||
|
- Apply incremental back off on connection retries for persistent peers
|
||
|
that give invalid replies to mirror the logic used for failed
|
||
|
connections (https://github.com/conformal/btcd/issues/103)
|
||
|
- Correct rate-limiting of free and low-fee transactions
|
||
|
- Mining support changes:
|
||
|
- Implement getblocktemplate RPC with the following support:
|
||
|
(https://github.com/conformal/btcd/issues/124)
|
||
|
- BIP0022 Non-Optional Sections
|
||
|
- BIP0022 Long Polling
|
||
|
- BIP0023 Basic Pool Extensions
|
||
|
- BIP0023 Mutation coinbase/append
|
||
|
- BIP0023 Mutations time, time/increment, and time/decrement
|
||
|
- BIP0023 Mutation transactions/add
|
||
|
- BIP0023 Mutations prevblock, coinbase, and generation
|
||
|
- BIP0023 Block Proposals
|
||
|
- Implement built-in concurrent CPU miner
|
||
|
(https://github.com/conformal/btcd/issues/137)
|
||
|
NOTE: CPU mining on mainnet is pointless. This has been provided
|
||
|
for testing purposes such as for the new simulation test network
|
||
|
- Add --generate flag to enable CPU mining
|
||
|
- Deprecate the --getworkkey flag in favor of --miningaddr which
|
||
|
specifies which addresses generated blocks will choose from to pay
|
||
|
the subsidy to
|
||
|
- RPC changes:
|
||
|
- Implement gettxout command
|
||
|
(https://github.com/conformal/btcd/issues/141)
|
||
|
- Implement validateaddress command
|
||
|
- Implement verifymessage command
|
||
|
- Mark getunconfirmedbalance RPC as wallet-only
|
||
|
- Mark getwalletinfo RPC as wallet-only
|
||
|
- Update getgenerate, setgenerate, gethashespersec, and getmininginfo
|
||
|
to return the appropriate information about new CPU mining status
|
||
|
- Modify getpeerinfo pingtime and pingwait field types to float64 so
|
||
|
they are compatible
|
||
|
- Improve disconnect handling for normal HTTP clients
|
||
|
- Make error code returns for invalid hex more consistent
|
||
|
- Websocket changes:
|
||
|
- Switch to a new more efficient websocket package
|
||
|
(https://github.com/conformal/btcd/issues/134)
|
||
|
- Add rescanfinished notification
|
||
|
- Modify the rescanprogress notification to include block hash as well
|
||
|
as height (https://github.com/conformal/btcd/issues/151)
|
||
|
- btcctl utility changes:
|
||
|
- Accept --simnet flag which automatically selects the appropriate port
|
||
|
and TLS certificates needed to communicate with btcd and btcwallet on
|
||
|
the simulation test network
|
||
|
- Fix createrawtransaction command to send amounts denominated in BTC
|
||
|
- Add estimatefee command
|
||
|
- Add estimatepriority command
|
||
|
- Add getmininginfo command
|
||
|
- Add getnetworkinfo command
|
||
|
- Add gettxout command
|
||
|
- Add lockunspent command
|
||
|
- Add signrawtransaction command
|
||
|
- addblock utility changes:
|
||
|
- Accept --simnet flag which automatically selects the appropriate port
|
||
|
and TLS certificates needed to communicate with btcd and btcwallet on
|
||
|
the simulation test network
|
||
|
- Notable developer-related package changes:
|
||
|
- Provide a new bloom package in btcutil which allows creating and
|
||
|
working with BIP0037 bloom filters
|
||
|
- Provide a new hdkeychain package in btcutil which allows working with
|
||
|
BIP0032 hierarchical deterministic key chains
|
||
|
- Introduce a new btcnet package which houses network parameters
|
||
|
- Provide new simnet network (--simnet) which is useful for private
|
||
|
simulation testing
|
||
|
- Enforce low S values in serialized signatures as detailed in BIP0062
|
||
|
- Return errors from all methods on the btcdb.Db interface
|
||
|
(https://github.com/conformal/btcdb/issues/5)
|
||
|
- Allow behavior flags to alter btcchain.ProcessBlock
|
||
|
(https://github.com/conformal/btcchain/issues/5)
|
||
|
- Provide a new SerializeSize API for blocks
|
||
|
(https://github.com/conformal/btcwire/issues/19)
|
||
|
- Several of the core packages now work with Google App Engine
|
||
|
- Misc changes:
|
||
|
- Correct an issue where the database could corrupt under certain
|
||
|
circumstances which would require a new chain download
|
||
|
- Slightly optimize deserialization
|
||
|
- Use the correct IP block for he.net
|
||
|
- Fix an issue where it was possible the block manager could hang on
|
||
|
shutdown
|
||
|
- Update sample config file so the comments are on a separate line
|
||
|
rather than the end of a line so they are not interpreted as settings
|
||
|
(https://github.com/conformal/btcd/issues/135)
|
||
|
- Correct an issue where getdata requests were not being properly
|
||
|
throttled which could lead to larger than necessary memory usage
|
||
|
- Always show help when given the help flag even when the config file
|
||
|
contains invalid entries
|
||
|
- General code cleanup and minor optimizations
|
||
|
|
||
|
Changes in 0.8.0-beta (Sun May 25 2014)
|
||
|
- Btcd is now Beta (https://github.com/conformal/btcd/issues/130)
|
||
|
- Add a new checkpoint at block height 300255
|
||
|
- Protocol and network related changes:
|
||
|
- Lower the minimum transaction relay fee to 1000 satoshi to match
|
||
|
recent reference client changes
|
||
|
(https://github.com/conformal/btcd/issues/100)
|
||
|
- Raise the maximum signature script size to support standard 15-of-15
|
||
|
multi-signature pay-to-sript-hash transactions with compressed pubkeys
|
||
|
to remain compatible with the reference client
|
||
|
(https://github.com/conformal/btcd/issues/128)
|
||
|
- Reduce max bytes allowed for a standard nulldata transaction to 40 for
|
||
|
compatibility with the reference client
|
||
|
- Introduce a new btcnet package which houses all of the network params
|
||
|
for each network (mainnet, testnet3, regtest) to ultimately enable
|
||
|
easier addition and tweaking of networks without needing to change
|
||
|
several packages
|
||
|
- Fix several script discrepancies found by reference client test data
|
||
|
- Add new DNS seed for peer discovery (seed.bitnodes.io)
|
||
|
- Reduce the max known inventory cache from 20000 items to 1000 items
|
||
|
- Fix an issue where unknown inventory types could lead to a hung peer
|
||
|
- Implement inventory rebroadcast handler for sendrawtransaction
|
||
|
(https://github.com/conformal/btcd/issues/99)
|
||
|
- Update user agent to fully support BIP0014
|
||
|
(https://github.com/conformal/btcwire/issues/10)
|
||
|
- Implement initial mining support:
|
||
|
- Add a new logging subsystem for mining related operations
|
||
|
- Implement infrastructure for creating block templates
|
||
|
- Provide options to control block template creation settings
|
||
|
- Support the getwork RPC
|
||
|
- Allow address identifiers to apply to more than one network since both
|
||
|
testnet3 and the regression test network unfortunately use the same
|
||
|
identifier
|
||
|
- RPC changes:
|
||
|
- Set the content type for HTTP POST RPC connections to application/json
|
||
|
(https://github.com/conformal/btcd/issues/121)
|
||
|
- Modified the RPC server startup so it only requires at least one valid
|
||
|
listen interface
|
||
|
- Correct an error path where it was possible certain errors would not
|
||
|
be returned
|
||
|
- Implement getwork command
|
||
|
(https://github.com/conformal/btcd/issues/125)
|
||
|
- Update sendrawtransaction command to reject orphans
|
||
|
- Update sendrawtransaction command to include the reason a transaction
|
||
|
was rejected
|
||
|
- Update getinfo command to populate connection count field
|
||
|
- Update getinfo command to include relay fee field
|
||
|
(https://github.com/conformal/btcd/issues/107)
|
||
|
- Allow transactions submitted with sendrawtransaction to bypass the
|
||
|
rate limiter
|
||
|
- Allow the getcurrentnet and getbestblock extensions to be accessed via
|
||
|
HTTP POST in addition to Websockets
|
||
|
(https://github.com/conformal/btcd/issues/127)
|
||
|
- Websocket changes:
|
||
|
- Rework notifications to ensure they are delivered in the order they
|
||
|
occur
|
||
|
- Rename notifynewtxs command to notifyreceived (funds received)
|
||
|
- Rename notifyallnewtxs command to notifynewtransactions
|
||
|
- Rename alltx notification to txaccepted
|
||
|
- Rename allverbosetx notification to txacceptedverbose
|
||
|
(https://github.com/conformal/btcd/issues/98)
|
||
|
- Add rescan progress notification
|
||
|
- Add recvtx notification
|
||
|
- Add redeemingtx notification
|
||
|
- Modify notifyspent command to accept an array of outpoints
|
||
|
(https://github.com/conformal/btcd/issues/123)
|
||
|
- Significantly optimize the rescan command to yield up to a 60x speed
|
||
|
increase
|
||
|
- btcctl utility changes:
|
||
|
- Add createencryptedwallet command
|
||
|
- Add getblockchaininfo command
|
||
|
- Add importwallet commmand
|
||
|
- Add addmultisigaddress commmand
|
||
|
- Add setgenerate command
|
||
|
- Accept --testnet and --wallet flags which automatically select
|
||
|
the appropriate port and TLS certificates needed to communicate
|
||
|
with btcd and btcwallet (https://github.com/conformal/btcd/issues/112)
|
||
|
- Allow path expansion from config file entries
|
||
|
(https://github.com/conformal/btcd/issues/113)
|
||
|
- Minor refactor simplify handling of options
|
||
|
- addblock utility changes:
|
||
|
- Improve logging by making it consistent with the logging provided by
|
||
|
btcd (https://github.com/conformal/btcd/issues/90)
|
||
|
- Improve several package APIs for developers:
|
||
|
- Add new amount type for consistently handling monetary values
|
||
|
- Add new coin selector API
|
||
|
- Add new WIF (Wallet Import Format) API
|
||
|
- Add new crypto types for private keys and signatures
|
||
|
- Add new API to sign transactions including script merging and hash
|
||
|
types
|
||
|
- Expose function to extract all pushed data from a script
|
||
|
(https://github.com/conformal/btcscript/issues/8)
|
||
|
- Misc changes:
|
||
|
- Optimize address manager shuffling to do 67% less work on average
|
||
|
- Resolve a couple of benign data races found by the race detector
|
||
|
(https://github.com/conformal/btcd/issues/101)
|
||
|
- Add IP address to all peer related errors to clarify which peer is the
|
||
|
cause (https://github.com/conformal/btcd/issues/102)
|
||
|
- Fix a UPNP case issue that prevented the --upnp option from working
|
||
|
with some UPNP servers
|
||
|
- Update documentation in the sample config file regarding debug levels
|
||
|
- Adjust some logging levels to improve debug messages
|
||
|
- Improve the throughput of query messages to the block manager
|
||
|
- Several minor optimizations to reduce GC churn and enhance speed
|
||
|
- Other minor refactoring
|
||
|
- General code cleanup
|
||
|
|
||
|
Changes in 0.7.0 (Thu Feb 20 2014)
|
||
|
- Fix an issue when parsing scripts which contain a multi-signature script
|
||
|
which require zero signatures such as testnet block
|
||
|
000000001881dccfeda317393c261f76d09e399e15e27d280e5368420f442632
|
||
|
(https://github.com/conformal/btcscript/issues/7)
|
||
|
- Add check to ensure all transactions accepted to mempool only contain
|
||
|
canonical data pushes (https://github.com/conformal/btcscript/issues/6)
|
||
|
- Fix an issue causing excessive memory consumption
|
||
|
- Significantly rework and improve the websocket notification system:
|
||
|
- Each client is now independent so slow clients no longer limit the
|
||
|
speed of other connected clients
|
||
|
- Potentially long-running operations such as rescans are now run in
|
||
|
their own handler and rate-limited to one operation at a time without
|
||
|
preventing simultaneous requests from the same client for the faster
|
||
|
requests or notifications
|
||
|
- A couple of scenarios which could cause shutdown to hang have been
|
||
|
resolved
|
||
|
- Update notifynewtx notifications to support all address types instead
|
||
|
of only pay-to-pubkey-hash
|
||
|
- Provide a --rpcmaxwebsockets option to allow limiting the number of
|
||
|
concurrent websocket clients
|
||
|
- Add a new websocket command notifyallnewtxs to request notifications
|
||
|
(https://github.com/conformal/btcd/issues/86) (thanks @flammit)
|
||
|
- Improve btcctl utility in the following ways:
|
||
|
- Add getnetworkhashps command
|
||
|
- Add gettransaction command (wallet-specific)
|
||
|
- Add signmessage command (wallet-specific)
|
||
|
- Update getwork command to accept
|
||
|
- Continue cleanup and work on implementing the RPC API:
|
||
|
- Implement getnettotals command
|
||
|
(https://github.com/conformal/btcd/issues/84)
|
||
|
- Implement networkhashps command
|
||
|
(https://github.com/conformal/btcd/issues/87)
|
||
|
- Update getpeerinfo to always include syncnode field even when false
|
||
|
- Remove help addenda for getpeerinfo now that it supports all fields
|
||
|
- Close standard RPC connections on auth failure
|
||
|
- Provide a --rpcmaxclients option to allow limiting the number of
|
||
|
concurrent RPC clients (https://github.com/conformal/btcd/issues/68)
|
||
|
- Include IP address in RPC auth failure log messages
|
||
|
- Resolve a rather harmless data races found by the race detector
|
||
|
(https://github.com/conformal/btcd/issues/94)
|
||
|
- Increase block priority size and max standard transaction size to 50k
|
||
|
and 100k, respectively (https://github.com/conformal/btcd/issues/71)
|
||
|
- Add rate limiting of free transactions to the memory pool to prevent
|
||
|
penny flooding (https://github.com/conformal/btcd/issues/40)
|
||
|
- Provide a --logdir option (https://github.com/conformal/btcd/issues/95)
|
||
|
- Change the default log file path to include the network
|
||
|
- Add a new ScriptBuilder interface to btcscript to support creation of
|
||
|
custom scripts (https://github.com/conformal/btcscript/issues/5)
|
||
|
- General code cleanup
|
||
|
|
||
|
Changes in 0.6.0 (Tue Feb 04 2014)
|
||
|
- Fix an issue when parsing scripts which contain invalid signatures that
|
||
|
caused a chain fork on block
|
||
|
0000000000000001e4241fd0b3469a713f41c5682605451c05d3033288fb2244
|
||
|
- Correct an issue which could lead to an error in removeBlockNode
|
||
|
(https://github.com/conformal/btcchain/issues/4)
|
||
|
- Improve addblock utility as follows:
|
||
|
- Check imported blocks against all chain rules and checkpoints
|
||
|
- Skip blocks which are already known so you can stop and restart the
|
||
|
import or start the import after you have already downloaded a portion
|
||
|
of the chain
|
||
|
- Correct an issue where the utility did not shutdown cleanly after
|
||
|
processing all blocks
|
||
|
- Add error on attempt to import orphan blocks
|
||
|
- Improve error handling and reporting
|
||
|
- Display statistics after input file has been fully processed
|
||
|
- Rework, optimize, and improve headers-first mode:
|
||
|
- Resuming the chain sync from any point before the final checkpoint
|
||
|
will now use headers-first mode
|
||
|
(https://github.com/conformal/btcd/issues/69)
|
||
|
- Verify all checkpoints as opposed to only the final one
|
||
|
- Reduce and bound memory usage
|
||
|
- Rollback to the last known good point when a header does not match a
|
||
|
checkpoint
|
||
|
- Log information about what is happening with headers
|
||
|
- Improve btcctl utility in the following ways:
|
||
|
- Add getaddednodeinfo command
|
||
|
- Add getnettotals command
|
||
|
- Add getblocktemplate command (wallet-specific)
|
||
|
- Add getwork command (wallet-specific)
|
||
|
- Add getnewaddress command (wallet-specific)
|
||
|
- Add walletpassphrasechange command (wallet-specific)
|
||
|
- Add walletlock command (wallet-specific)
|
||
|
- Add sendfrom command (wallet-specific)
|
||
|
- Add sendmany command (wallet-specific)
|
||
|
- Add settxfee command (wallet-specific)
|
||
|
- Add listsinceblock command (wallet-specific)
|
||
|
- Add listaccounts command (wallet-specific)
|
||
|
- Add keypoolrefill command (wallet-specific)
|
||
|
- Add getreceivedbyaccount command (wallet-specific)
|
||
|
- Add getrawchangeaddress command (wallet-specific)
|
||
|
- Add gettxoutsetinfo command (wallet-specific)
|
||
|
- Add listaddressgroupings command (wallet-specific)
|
||
|
- Add listlockunspent command (wallet-specific)
|
||
|
- Add listlock command (wallet-specific)
|
||
|
- Add listreceivedbyaccount command (wallet-specific)
|
||
|
- Add validateaddress command (wallet-specific)
|
||
|
- Add verifymessage command (wallet-specific)
|
||
|
- Add sendtoaddress command (wallet-specific)
|
||
|
- Continue cleanup and work on implementing the RPC API:
|
||
|
- Implement submitblock command
|
||
|
(https://github.com/conformal/btcd/issues/61)
|
||
|
- Implement help command
|
||
|
- Implement ping command
|
||
|
- Implement getaddednodeinfo command
|
||
|
(https://github.com/conformal/btcd/issues/78)
|
||
|
- Implement getinfo command
|
||
|
- Update getpeerinfo to support bytesrecv and bytessent
|
||
|
(https://github.com/conformal/btcd/issues/83)
|
||
|
- Improve and correct several RPC server and websocket areas:
|
||
|
- Change the connection endpoint for websockets from /wallet to /ws
|
||
|
(https://github.com/conformal/btcd/issues/80)
|
||
|
- Implement an alternative authentication for websockets so clients
|
||
|
such as javascript from browsers that don't support setting HTTP
|
||
|
headers can authenticate (https://github.com/conformal/btcd/issues/77)
|
||
|
- Add an authentication deadline for RPC connections
|
||
|
(https://github.com/conformal/btcd/issues/68)
|
||
|
- Use standard authentication failure responses for RPC connections
|
||
|
- Make automatically generated certificate more standard so it works
|
||
|
from client such as node.js and Firefox
|
||
|
- Correct some minor issues which could prevent the RPC server from
|
||
|
shutting down in an orderly fashion
|
||
|
- Make all websocket notifications require registration
|
||
|
- Change the data sent over websockets to text since it is JSON-RPC
|
||
|
- Allow connections that do not have an Origin header set
|
||
|
- Expose and track the number of bytes read and written per peer
|
||
|
(https://github.com/conformal/btcwire/issues/6)
|
||
|
- Correct an issue with sendrawtransaction when invoked via websockets
|
||
|
which prevented a minedtx notification from being added
|
||
|
- Rescan operations issued from remote wallets are no stopped when
|
||
|
the wallet disconnects mid-operation
|
||
|
(https://github.com/conformal/btcd/issues/66)
|
||
|
- Several optimizations related to fetching block information from the
|
||
|
database
|
||
|
- General code cleanup
|
||
|
|
||
|
Changes in 0.5.0 (Mon Jan 13 2014)
|
||
|
- Optimize initial block download by introducing a new mode which
|
||
|
downloads the block headers first (up to the final checkpoint)
|
||
|
- Improve peer handling to remove the potential for slow peers to cause
|
||
|
sluggishness amongst all peers
|
||
|
(https://github.com/conformal/btcd/issues/63)
|
||
|
- Fix an issue where the initial block sync could stall when the sync peer
|
||
|
disconnects (https://github.com/conformal/btcd/issues/62)
|
||
|
- Correct an issue where --externalip was doing a DNS lookup on the full
|
||
|
host:port instead of just the host portion
|
||
|
(https://github.com/conformal/btcd/issues/38)
|
||
|
- Fix an issue which could lead to a panic on chain switches
|
||
|
(https://github.com/conformal/btcd/issues/70)
|
||
|
- Improve btcctl utility in the following ways:
|
||
|
- Show getdifficulty output as floating point to 6 digits of precision
|
||
|
- Show all JSON object replies formatted as standard JSON
|
||
|
- Allow btcctl getblock to accept optional params
|
||
|
- Add getaccount command (wallet-specific)
|
||
|
- Add getaccountaddress command (wallet-specific)
|
||
|
- Add sendrawtransaction command
|
||
|
- Continue cleanup and work on implementing RPC API calls
|
||
|
- Update getrawmempool to support new optional verbose flag
|
||
|
- Update getrawtransaction to match the reference client
|
||
|
- Update getblock to support new optional verbose flag
|
||
|
- Update raw transactions to fully match the reference client including
|
||
|
support for all transaction types and address types
|
||
|
- Correct getrawmempool fee field to return BTC instead of Satoshi
|
||
|
- Correct getpeerinfo service flag to return 8 digit string so it
|
||
|
matches the reference client
|
||
|
- Correct verifychain to return a boolean
|
||
|
- Implement decoderawtransaction command
|
||
|
- Implement createrawtransaction command
|
||
|
- Implement decodescript command
|
||
|
- Implement gethashespersec command
|
||
|
- Allow RPC handler overrides when invoked via a websocket versus
|
||
|
legacy connection
|
||
|
- Add new DNS seed for peer discovery
|
||
|
- Display user agent on new valid peer log message
|
||
|
(https://github.com/conformal/btcd/issues/64)
|
||
|
- Notify wallet when new transactions that pay to registered addresses
|
||
|
show up in the mempool before being mined into a block
|
||
|
- Support a tor-specific proxy in addition to a normal proxy
|
||
|
(https://github.com/conformal/btcd/issues/47)
|
||
|
- Remove deprecated sqlite3 imports from utilities
|
||
|
- Remove leftover profile write from addblock utility
|
||
|
- Quite a bit of code cleanup and refactoring to improve maintainability
|
||
|
|
||
|
Changes in 0.4.0 (Thu Dec 12 2013)
|
||
|
- Allow listen interfaces to be specified via --listen instead of only the
|
||
|
port (https://github.com/conformal/btcd/issues/33)
|
||
|
- Allow listen interfaces for the RPC server to be specified via
|
||
|
--rpclisten instead of only the port
|
||
|
(https://github.com/conformal/btcd/issues/34)
|
||
|
- Only disable listening when --connect or --proxy are used when no
|
||
|
--listen interface are specified
|
||
|
(https://github.com/conformal/btcd/issues/10)
|
||
|
- Add several new standard transaction checks to transaction memory pool:
|
||
|
- Support nulldata scripts as standard
|
||
|
- Only allow a max of one nulldata output per transaction
|
||
|
- Enforce a maximum of 3 public keys in multi-signature transactions
|
||
|
- The number of signatures in multi-signature transactions must not
|
||
|
exceed the number of public keys
|
||
|
- The number of inputs to a signature script must match the expected
|
||
|
number of inputs for the script type
|
||
|
- The number of inputs pushed onto the stack by a redeeming signature
|
||
|
script must match the number of inputs consumed by the referenced
|
||
|
public key script
|
||
|
- When a block is connected, remove any transactions from the memory pool
|
||
|
which are now double spends as a result of the newly connected
|
||
|
transactions
|
||
|
- Don't relay transactions resurrected during a chain switch since
|
||
|
other peers will also be switching chains and therefore already know
|
||
|
about them
|
||
|
- Cleanup a few cases where rejected transactions showed as an error
|
||
|
rather than as a rejected transaction
|
||
|
- Ignore the default configuration file when --regtest (regression test
|
||
|
mode) is specified
|
||
|
- Implement TLS support for RPC including automatic certificate generation
|
||
|
- Support HTTP authentication headers for web sockets
|
||
|
- Update address manager to recognize and properly work with Tor
|
||
|
addresses (https://github.com/conformal/btcd/issues/36) and
|
||
|
(https://github.com/conformal/btcd/issues/37)
|
||
|
- Improve btcctl utility in the following ways:
|
||
|
- Add the ability to specify a configuration file
|
||
|
- Add a default entry for the RPC cert to point to the location
|
||
|
it will likely be in the btcd home directory
|
||
|
- Implement --version flag
|
||
|
- Provide a --notls option to support non-TLS configurations
|
||
|
- Fix a couple of minor races found by the Go race detector
|
||
|
- Improve logging
|
||
|
- Allow logging level to be specified on a per subsystem basis
|
||
|
(https://github.com/conformal/btcd/issues/48)
|
||
|
- Allow logging levels to be dynamically changed via RPC
|
||
|
(https://github.com/conformal/btcd/issues/15)
|
||
|
- Implement a rolling log file with a max of 10MB per file and a
|
||
|
rotation size of 3 which results in a max logging size of 30 MB
|
||
|
- Correct a minor issue with the rescanning websocket call
|
||
|
(https://github.com/conformal/btcd/issues/54)
|
||
|
- Fix a race with pushing address messages that could lead to a panic
|
||
|
(https://github.com/conformal/btcd/issues/58)
|
||
|
- Improve which external IP address is reported to peers based on which
|
||
|
interface they are connected through
|
||
|
(https://github.com/conformal/btcd/issues/35)
|
||
|
- Add --externalip option to allow an external IP address to be specified
|
||
|
for cases such as tor hidden services or advanced network configurations
|
||
|
(https://github.com/conformal/btcd/issues/38)
|
||
|
- Add --upnp option to support automatic port mapping via UPnP
|
||
|
(https://github.com/conformal/btcd/issues/51)
|
||
|
- Update Ctrl+C interrupt handler to properly sync address manager and
|
||
|
remove the UPnP port mapping (if needed)
|
||
|
- Continue cleanup and work on implementing RPC API calls
|
||
|
- Add importprivkey (import private key) command to btcctl
|
||
|
- Update getrawtransaction to provide addresses properly, support
|
||
|
new verbose param, and match the reference implementation with the
|
||
|
exception of MULTISIG (thanks @flammit)
|
||
|
- Update getblock with new verbose flag (thanks @flammit)
|
||
|
- Add listtransactions command to btcctl
|
||
|
- Add getbalance command to btcctl
|
||
|
- Add basic support for btcd to run as a native Windows service
|
||
|
(https://github.com/conformal/btcd/issues/42)
|
||
|
- Package addblock utility with Windows MSIs
|
||
|
- Add support for TravisCI (continuous build integration)
|
||
|
- Cleanup some documentation and usage
|
||
|
- Several other minor bug fixes and general code cleanup
|
||
|
|
||
|
Changes in 0.3.3 (Wed Nov 13 2013)
|
||
|
- Significantly improve initial block chain download speed
|
||
|
(https://github.com/conformal/btcd/issues/20)
|
||
|
- Add a new checkpoint at block height 267300
|
||
|
- Optimize most recently used inventory handling
|
||
|
(https://github.com/conformal/btcd/issues/21)
|
||
|
- Optimize duplicate transaction input check
|
||
|
(https://github.com/conformal/btcchain/issues/2)
|
||
|
- Optimize transaction hashing
|
||
|
(https://github.com/conformal/btcd/issues/25)
|
||
|
- Rework and optimize wallet listener notifications
|
||
|
(https://github.com/conformal/btcd/issues/22)
|
||
|
- Optimize serialization and deserialization
|
||
|
(https://github.com/conformal/btcd/issues/27)
|
||
|
- Add support for minimum transaction fee to memory pool acceptance
|
||
|
(https://github.com/conformal/btcd/issues/29)
|
||
|
- Improve leveldb database performance by removing explicit GC call
|
||
|
- Fix an issue where Ctrl+C was not always finishing orderly database
|
||
|
shutdown
|
||
|
- Fix an issue in the script handling for OP_CHECKSIG
|
||
|
- Impose max limits on all variable length protocol entries to prevent
|
||
|
abuse from malicious peers
|
||
|
- Enforce DER signatures for transactions allowed into the memory pool
|
||
|
- Separate the debug profile http server from the RPC server
|
||
|
- Rework of the RPC code to improve performance and make the code cleaner
|
||
|
- The getrawtransaction RPC call now properly checks the memory pool
|
||
|
before consulting the db (https://github.com/conformal/btcd/issues/26)
|
||
|
- Add support for the following RPC calls: getpeerinfo, getconnectedcount,
|
||
|
addnode, verifychain
|
||
|
(https://github.com/conformal/btcd/issues/13)
|
||
|
(https://github.com/conformal/btcd/issues/17)
|
||
|
- Implement rescan websocket extension to allow wallet rescans
|
||
|
- Use correct paths for application data storage for all supported
|
||
|
operating systems (https://github.com/conformal/btcd/issues/30)
|
||
|
- Add a default redirect to the http profiling page when accessing the
|
||
|
http profile server
|
||
|
- Add a new --cpuprofile option which can be used to generate CPU
|
||
|
profiling data on platforms that support it
|
||
|
- Several other minor performance optimizations
|
||
|
- Other minor bug fixes and general code cleanup
|
||
|
|
||
|
Changes in 0.3.2 (Tue Oct 22 2013)
|
||
|
- Fix an issue that could cause the download of the block chain to stall
|
||
|
(https://github.com/conformal/btcd/issues/12)
|
||
|
- Remove deprecated sqlite as an available database backend
|
||
|
- Close sqlite compile issue as sqlite has now been removed
|
||
|
(https://github.com/conformal/btcd/issues/11)
|
||
|
- Change default RPC ports to 8334 (mainnet) and 18334 (testnet)
|
||
|
- Continue cleanup and work on implementing RPC API calls
|
||
|
- Add support for the following RPC calls: getrawmempool,
|
||
|
getbestblockhash, decoderawtransaction, getdifficulty,
|
||
|
getconnectioncount, getpeerinfo, and addnode
|
||
|
- Improve the btcctl utility that is used to issue JSON-RPC commands
|
||
|
- Fix an issue preventing btcd from cleanly shutting down with the RPC
|
||
|
stop command
|
||
|
- Add a number of database interface tests to ensure backends implement
|
||
|
the expected interface
|
||
|
- Expose some additional information from btcscript to be used for
|
||
|
identifying "standard"" transactions
|
||
|
- Add support for plan9 - thanks @mischief
|
||
|
(https://github.com/conformal/btcd/pull/19)
|
||
|
- Other minor bug fixes and general code cleanup
|
||
|
|
||
|
Changes in 0.3.1-alpha (Tue Oct 15 2013)
|
||
|
- Change default database to leveldb
|
||
|
NOTE: This does mean you will have to redownload the block chain. Since we
|
||
|
are still in alpha, we didn't feel writing a converter was worth the time as
|
||
|
it would take away from more important issues at this stage
|
||
|
- Add a warning if there are multiple block chain databases of different types
|
||
|
- Fix issue with unexpected EOF in leveldb -- https://github.com/conformal/btcd/issues/18
|
||
|
- Fix issue preventing block 21066 on testnet -- https://github.com/conformal/btcchain/issues/1
|
||
|
- Fix issue preventing block 96464 on testnet -- https://github.com/conformal/btcscript/issues/1
|
||
|
- Optimize transaction lookups
|
||
|
- Correct a few cases of list removal that could result in improper cleanup
|
||
|
of no longer needed orphans
|
||
|
- Add functionality to increase ulimits on non-Windows platforms
|
||
|
- Add support for mempool command which allows remote peers to query the
|
||
|
transaction memory pool via the bitcoin protocol
|
||
|
- Clean up logging a bit
|
||
|
- Add a flag to disable checkpoints for developers
|
||
|
- Add a lot of useful debug logging such as message summaries
|
||
|
- Other minor bug fixes and general code cleanup
|
||
|
|
||
|
Initial Release 0.3.0-alpha (Sat Oct 05 2013):
|
||
|
- Initial release
|