Subject: [Bitcoin-development] Change to multiple executables?

From: John Smith <[email-masked]>
Date: Wed, 10 Aug 2011 09:36:05 +0000

All,

In the current mainline client everything is lugged into one executable
(with an optional daemon-only one). I think this is a bad idea for various
reasons, and would propose something like:

   - bitcoind: bitcoin daemon
   - bitcoin(-qt): bitcoin GUI executable
   - bitcoincl: bitcoin RPC command line

By default, all three would be built. In non-GUI mode, only bitcoind and
bitcoincl are built (the names are obviously open for discussion).

Advantages:

   - It is more clear to the user. One command, one function.
   - It simplifies the main functions.
   - The UI would no longer double-function as daemon. It is a waste of
   memory to link the UI libs if you only want to run a background process.
   - The UI and daemon would no longer double-function as RPC call. Why load
   the code for UI and network if you just want to send a single command over
   JSONRPC?  This would also prevent accidentally launching the daemon/UI
   locally if you just want to send a command and forget to give an argument.

JS