============================================================================ User visible changes for btcwallet A wallet daemon for btcd, written in Go ============================================================================ Changes in 0.4.0 (Sun May 25 2014) - Implement the following standard bitcoin server RPC requests: - signmessage (https://github.com/conformal/btcwallet/issues/58) - verifymessage (https://github.com/conformal/btcwallet/issues/61) - listunspent (https://github.com/conformal/btcwallet/issues/54) - validateaddress (https://github.com/conformal/btcwallet/issues/60) - addressmultisig (https://github.com/conformal/btcwallet/issues/37) - createmultisig (https://github.com/conformal/btcwallet/issues/37) - signrawtransaction (https://github.com/conformal/btcwallet/issues/59) - Add authenticate extension RPC request to authenticate a websocket session without requiring the use of the HTTP Authorization header - Add btcdusername and btcdpassword options to allow separate authentication credentials from wallet clients when authenticating to a btcd websocket RPC server - Fix RPC response passthrough: JSON unmarshaling and marshaling is now delayed until necessary and JSON result objects from btcd are sent to clients directly without an extra decode+encode that may change the representation of large integer values - Fix several websocket client connection issues: - Disconnect clients are cleanly removed without hanging on any final sends - Set deadline for websocket client sends to prevent hanging on misbehaving clients or clients with a bad connection - Fix return result for dumprivkey by always padding the private key bytes to a length of 32 - Fix rescan for transaction history for imported addresses (https://github.com/conformal/btcwallet/issues/74) - Fix listsinceblock request handler to consider the minimum confirmation parameter (https://github.com/conformal/btcwallet/issues/80) - Fix several RPC handlers which require an unlocked wallet to check for an unlocked wallet before continuing (https://github.com/conformal/btcwallet/issues/65) - Fix handling for block rewards (coinbase transactions): - Update listtransactions results to use "generate" category for coinbase outputs - Prevent inclusion of immature coinbase outputs for newly created transactions - Rewrite the transaction store to handle several issues regarding transation malleability and performance issues - The new transaction store is written to disk in a different format then before, and upgrades will require a rescan to rebuild the transaction history - Improve rescan: - Begin rescan with known UTXO set at start height - Serialize executation of all rescan requests - Merge waiting rescan jobs so all jobs can be handled with a single rescan - Support parially synced addresses in the keystore and incrementally mark rescan progress. If a rescan is unable to continue (wallet closes, btcd disconnects, etc.) a new rescan can start at the last synced chain height - Notify (with an unsolicited notification) websocket clients of btcd connection state - Improve logging: - Log reason for disconnecting a websocket client - Updates for btcd websocket API changes - Stability fixes, internal API changes, general code cleanup, and comment corrections Changes in 0.3.0 (Mon Feb 10 2014) - Use correct hash algorithm for chained addresses (fixes a bug where address chaining was still deterministic, but forked from Armory and previous btcwallet implementations) - Change websocket endpoint to connect to btcd 0.6.0-alpha - Redo server implementation to serialize handling of client requests - Redo account locking to greatly reduce btcwallet lockups caused by incorrect mutex usage - Open all accounts, rather than just the default account, at startup - Generate new addresses using pubkey chaining if keypool is depleted and wallet is locked - Make maximum keypool size a configuration option (keypoolsize) - Add disallowfree configuration option (default false) to force adding the minimum fee to all outbound transactions - Implement the following standard bitcoin server RPC requests: - getinfo (https://github.com/conformal/btcwallet/issues/63) - getrawchangeaddress (https://github.com/conformal/btcwallet/issues/41) - getreceivedbyaccount (https://github.com/conformal/btcwallet/issues/42) - gettransaction (https://github.com/conformal/btcwallet/issues/44) - keypoolrefill (https://github.com/conformal/btcwallet/issues/48) - listsinceblock (https://github.com/conformal/btcwallet/issues/52) - sendtoaddress (https://github.com/conformal/btcwallet/issues/56) - Add empty (unimplemented) handlers for the following RPC requests so requests are not passed down to btcd: - getblocktemplate - getwork - stop - Add RPC extension request, exportwatchingwallet, to export an account with a watching-only wallet from an account with a hot wallet that may be used by a separate btcwallet instance - Require all account wallets to share the same passphrase - Change walletlock and walletpassphrase RPC requests to lock or unlock all account wallets - Allow opening accounts with watching-only wallets - Return txid for sendfrom RPC requests (https://github.com/conformal/btcwallet/issues/64) - Rescan imported private keys in background (https://github.com/conformal/btcwallet/issues/34) - Do not import duplicate private keys (https://github.com/conformal/btcwallet/issues/35) - Write all three account files for a new account, rather than just the wallet (https://github.com/conformal/btcwallet/issues/30) - Create any missing directories before writing autogenerated certificate pair - Fix rescanning of a new account's root address - Fix error in the wallet file serialization causing duplicate address encryption attempts - Fix issue calculating eligible transaction inputs caused by a bad confirmation check - Fix file locking issue on Windows caused by not closing files before renaming - Fix typos in README file Changes in 0.2.1 (Thu Jan 10 2014) - Fix a mutex issue which caused btcwallet to lockup on all RPC requests needing to read or write an account Changes in 0.2.0 (Thu Jan 09 2014) - Enable mainnet support (disabled by default, use --mainnet to enable) - Don't hardcode localhost btcd connections. Instead, add a --connect option to specify the hostname or address and port of a local or remote btcd instance (https://github.com/conformal/btcwallet/issues/1) - Remove --serverport port and replace with --listen. This option works just like btcd's --rpclisten and allows to specify the interfaces to listen for RPC connections - Require TLS and Basic HTTP authentication before wallet can be controlled over RPC - Refill keypool if wallet is unlocked and keypool is emptied - Detect and rollback saved tx/utxo info after btcd performs blockchain reorganizations while btcwallet was disconnected - Add support for the following standard bitcoin JSON-RPC calls: - dumpprivkey (https://github.com/conformal/btcwallet/issues/9) - getaccount - getaccountaddress - importprivkey (https://github.com/conformal/btcwallet/issues/2) - listtransactions (https://github.com/conformal/btcwallet/issues/12) - Add several extension RPC calls for websocket connections: - getaddressbalance: get the balance associated with a single address - getunconfirmedbalance: get total balance for unconfirmed transactions - listaddresstransactions: list transactions for a single address (https://github.com/conformal/btcwallet/issues/27) - listalltransactions: lists all transactions without specifying a range - Make RPC extensions available only to websocket connections, with the exception of createencryptedwallet - Add dummy handlers for unimplemented wallet RPC calls (https://github.com/conformal/btcwallet/issues/29) - Add socks5/tor proxy support - Calculate and add minimum transaction fee to created transactions - Use OS-specific rename calls to provide atomic file renames which can replace a currently-existing file (https://github.com/conformal/btcwallet/issues/20) - Move account files to a single directory per bitcoin network to prevent a future scaling issue (https://github.com/conformal/btcwallet/issues/16) - Fix several data races and mutex mishandling - Fix a bug where the RPC server hung on requests requiring btcd when a btcd connection was never established - Fix a bug where creating account files did not create all necessary directories (https://github.com/conformal/btcwallet/issues/15) - Fix a bug where '~' did not expand to a home or user directory (https://github.com/conformal/btcwallet/issues/17) - Fix a bug where returning account names as strings did not remove trailing ending 0s - Fix a bug where help usage was displayed twice using the -h or --help flag - Fix sample listening address in sample configuration file - Update sample configuration file with all available options with descriptions and defaults for each Initial Release 0.1.0 (Wed Nov 13 2013) - Initial release