Releases: btcsuite/btcd
Releases · btcsuite/btcd
btcd v0.6.0-alpha
- 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
(btcsuite/btcchain#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
(#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
- Resuming the chain sync from any point before the final checkpoint
- 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:
- Improve and correct several RPC server and websocket areas:
- Change the connection endpoint for websockets from /wallet to /ws
(#80) - Implement an alternative authentication for websockets so clients
such as javascript from browsers that don't support setting HTTP
headers can authenticate (#77) - Add an authentication deadline for RPC connections
(#68) - Use standard authentication failure responses for RPC connections
- Make automatically generated certificate more standard so it works
from clients 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
- Change the connection endpoint for websockets from /wallet to /ws
- Expose and track the number of bytes read and written per peer
(btcsuite/btcwire#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
(#66) - Several optimizations related to fetching block information from the
database - General code cleanup
btcd v0.5.0-alpha
- 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
(#63) - Fix an issue where the initial block sync could stall when the sync peer
disconnects (#62) - Correct an issue where --externalip was doing a DNS lookup on the full
host:port instead of just the host portion
(#38) - Fix an issue which could lead to a panic on chain switches
(#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
(#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
(#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
btcd v0.4.0-alpha
- Allow listen interfaces to be specified via --listen instead of only the
port (#33) - Allow listen interfaces for the RPC server to be specified via
--rpclisten instead of only the port
(#34) - Only disable listening when --connect or --proxy are used when no
--listen interface are specified
(#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 (#36) and
(#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
- Correct a minor issue with the rescanning websocket call
(#54) - Fix a race with pushing address messages that could lead to a panic
(#58) - Improve which external IP address is reported to peers based on which
interface they are connected through
(#35) - Add --externalip option to allow an external IP address to be specified
for cases such as tor hidden services or advanced network configurations
(#38) - Add --upnp option to support automatic port mapping via UPnP
(#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
(#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
btcd v0.3.3-alpha
- Significantly improve initial block chain download speed
(#20) - Add a new checkpoint at block height 267300
- Optimize most recently used inventory handling
(#21) - Optimize duplicate transaction input check
(btcsuite/btcchain#2) - Optimize transaction hashing
(#25) - Rework and optimize wallet listener notifications
(#22) - Optimize serialization and deserialization
(#27) - Add support for minimum transaction fee to memory pool acceptance
(#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 (#26) - Add support for the following RPC calls: getpeerinfo, getconnectedcount,
addnode, verifychain
(#13)
(#17) - Implement rescan websocket extension to allow wallet rescans
- Use correct paths for application data storage for all supported
operating systems (#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
btcd v0.3.2-alpha
- Add a 32-bit MSI for Windows
- Fix an issue that could cause the download of the block chain to stall (#12)
- Remove deprecated sqlite as an available database backend
- Close sqlite compile issue as sqlite has now been removed (#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 (#19)
- Other minor bug fixes and general code cleanup
btcd v0.3.1-alpha
- 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 -- #18
- Fix issue preventing block 21066 on testnet -- btcsuite/btcchain#1
- Fix issue preventing block 96464 on testnet -- btcsuite/btcscript#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
btcd v0.3.0-alpha
- Initial Public Preview