Skip to content

btcd v0.8.0-beta

Pre-release
Pre-release
Compare
Choose a tag to compare
@davecgh davecgh released this 25 May 21:49
· 3333 commits to master since this release
  • Btcd is now Beta (#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 (#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 (#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 (#99)
  • Update user agent to fully support BIP0014 (btcsuite/btcwire#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 (#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 (#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 (#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 (#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 (#98)
  • Add rescan progress notification
  • Add recvtx notification
  • Add redeemingtx notification
  • Modify notifyspent command to accept an array of outpoints (#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 (#112)
  • Allow path expansion from config file entries (#113)
  • Minor refactor to simplify handling of options

addblock utility changes:

  • Improve logging by making it consistent with the logging provided by btcd (#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 (btcsuite/btcscript#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 (#101)
  • Add IP address to all peer related errors to clarify which peer is the cause (#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

Code Contributors (alphabetical order)

  • Chris Jepson
  • Dale Rahn
  • Dave Collins
  • David Hill
  • Francis Lam
  • Geert Johan
  • Javed Khan
  • Jimmy Song
  • John C. Vernaleo
  • Jolan Luff
  • Marco Peereboom
  • Owain G. Ainsworth