Armory 0.95.0 Released

This release is Segregated Witness compatible. In order to use any version of Bitcoin Core 0.13.1+ after Segregated Witness is activated, you must use this version (0.95) or higher. Previous versions will no longer work.

There will be no changes to wallet crypto related operations in this version. Older offline versions of Armory (down to 0.92.x) are still compatible with 0.95

Notable Changes

  • Litenode: Client and Database are split into 2 binaries: ArmoryQt (client) and ArmoryDB (server)
  • Client no longer requires a local Bitcoin node to operate as P2P has moved to ArmoryDB
  • Improved coin control granularity. You now select UTXOs directly.
  • Added fee per byte options in Send Bitcoins dialog. Fee estimation requires a local bitcoind.
  • Added Segregated Witness read support. This means the database can successfully parse SW transactions.
  • No SW spending feature yet. This will be the subject of another release.

Full changelog

Added

  • Introducing litenode
  • Client and database are now split in 2 binaries: ArmoryQt (client) and ArmoryDB (server)
  • Clients interface with servers over the FCGI protocol. Server is hardcoded to listen on localhost, default port is 9001
  • ArmoryDB can serve remote clients through the use of a HTTP daemon. Example config file for nginx can be found here: ./nginx_example.conf

  • As a result, bitcoin P2P connectivity has been moved from ArmoryQt to ArmoryDB. This means in turn that clients do not require the presence of a local bitcoin node to operate anymore.
  • By default ArmoryQt spawns and controls ArmoryDB. This will not happen in 2 cases: _ There is already an instance of ArmoryDB listening on localhost:9001 _ ArmoryQt has been pointed to specific ArmoryDB through a combination of the new –armorydb-ip and –armorydb-port command line arguments
  • ArmoryDB requires the presence of a bitcoin node on localhost:8333 and access to raw blockchain data like before. The change to interface with bitcoin nodes remotely (blocks over p2p) is not in the scope of this release
  • ArmoryDB comes with its own set of command line arguments. They are described here: ./cppForSwig/BlockUtils.cpp:778

  • DB modes are selected with the new –db-type cli arg. It defaults to –db-type=DB_FULL. Also available are DB_BARE and DB_SUPER. DB_SUPER has no effect currently, it will be implemented in a future release.
  • Introducing an extra dataset to resolve random transaction hashes. This database is ~550MB with the current blockchain size. This comes in addition to the previous db features of 0.94. This is the default mode, i.e. DB_FULL. To disable this feature (revert to the bare 0.94 db), use –db-type=DB_BARE.
  • You cannot swap db modes on top of an existing db, you will need to build one from scratch instead.

  • ArmoryDB now uses its own log file (dbLog.txt), running in the –datadir folder
  • 0.95 db format changed from 0.94, you will have to build it in another –dbdir
  • Added DB version detection. Mismatch in DB version will result in an error message and termination on the client side, a stdout warning on the server terminal side as well as in the db log file.

  • new cli args have been introduced to control db resource consumption: _ –ram_usage: int >= 1. Defaults to 4. Each point is worth ~128MB RAM on top of the baseline needs. There is no upper bound, be careful when using high values. <= 0 values result in use of default. _ –thread-count: int >= 1. Defaults to CPU max thread count. As with ram-usage, use large upper values with care. Improved coin control granularity. You now select UTXOs directly.
  • Added fee per byte options in Send Bitcoins dialog.
  • Failure to broadcast zero confirmation transactions to the network are now reported with the specific reject message from your node.
  • Added Segregated Witness read support. This means the database can successfully parse SW transactions.
  • No SW spending feature yet. This will be the subject of another release.

  • Makes use of bitcoind’s new cookie authentication in order to access bitcoind’s JSON-RPC interface
  • Can now make use of the JSON-RPC calls for estimatefee and estimatepriority regardless of whether Armory is managing bitcoind.
  • Those RPC calls will only work if client is local, i.e. ArmoryDB and bitcoind are being run on the same computer as ArmoryQt.

Fixed

  • Fixed the missing transaction issue in the Tx Details dialog through the addition of the new resolver dataset

Removed

  • ArmoryQt does not interface nor require the presence of a local bitcoin node to operate online anymore. This functionality has been migrated to ArmoryDB
  • There will be no changes to wallet crypto related operations in this version. Older offline versions of Armory (down to 0.92.x) are still compatible with 0.95

Contributors

Thank you to all the contributors:

and the testers:

Downloads

Written on October 20, 2016