lbcwallet/CHANGES
2014-05-25 19:07:38 -05:00

236 lines
9.3 KiB
Plaintext

============================================================================
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