Bitcoin QT testnet wallet

Today Conformal is announcing alpha releases of btcwallet and btcgui,the wallet components of btcd,written in Go. We announced in a recent blog post that btcd,our full node Bitcoin implementation,was ready for public testing. We also announced that wallet functionality was being implemented separately and would be coming in the near future. Although our wallet daemon and GUI interface are not yet ready for production use,we feel they have progressed to the point where early adopters can begin testing their functionality on the Bitcoin Testnet network.

Our btcd blog post briefly discussed why wallet functionality is not a part of btcd. It highlighted various reasons why we believe separating wallet handling from blockchain handling improves on the integrated wallet design used by bitcoind and bitcoin-qt. This post will continue on that topic,further exploring the details of why a multiprocess wallet design was chosen,how such a design is beneficial to the Bitcoin community as a whole,and the implementation details this design.

The Wallet Daemon: btcwallet

To recap what was mentioned in our btcd blog post,all wallet handling for btcd is done by a separate process,btcwallet,rather than being integrated into the same binary as btcd. btcwallet acts as both a client to btcd and a server to any number of user-facing frontends. Separating wallet in this way provides far greater multi-user and multi-device support than the integrated wallet design used by bitcoind and bitcoin-qt. Although this design does come with its disavantages,such as increased development difficulity and user complexity,Conformal believes the benefits far outweigh any of these issues. A multi-process design allows chain handling and computing resources (such as disk space,memory,CPU cycles,etc.) to be shared between many individual users,each with their own wallet and devices.

Example btcd and btcwallet setup with several frontends

Bitcoin QT restore wallet

Bitcoin-Qt local wallet

Bitcoin-Qt offline wallet

Bitcoin-qt decrypt wallet

Bitcoin qt new wallet

Bitcoin QT restore wallet