459 lines
24 KiB
Text
459 lines
24 KiB
Text
============================================================================
|
|
User visible changes for btcd
|
|
A full-node bitcoin implementation written in Go
|
|
============================================================================
|
|
|
|
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
|