<p>They're not exactly the same -- they're two different programs. The <code>bitcoind</code> program is a pure server (or pure RPC client), it contains no GUI at all. The <code>bitcoin</code> program contains a GUI and can also run in server mode. So being unable to operate as a server is fatal to the server-only version, because there's nothing else it can do.</p>

<p>When you ask the GUI client to run in server mode, it interprets this as an additional request. If it is not configured properly to run in server mode, it will still start up and run the GUI. So for <code>bitcoind</code>, an improperly configured server mode is fatal -- what else could it do? For <code>bitcoin</code>, an improperly configured server mode just makes server mode not work; it will still run as a GUI client.</p>

CC BY-SA 3.0
2011-10-12T13:53:39.903Z
Your answer is precisely accurate, but a little hard to understand for a general audience.  Perhaps you could expand upon your last sentence and clarify it a little?
eMansipater
CC BY-SA 3.0
2011-10-12T15:50:16.917Z
I think the key is comprehension of different error levels. Bitcoin encompasses both a server *and* a client. An error in the server configuration is not fatal (i.e. it can be ignored) to the client - it has something else that it can do (be a client) so it ignores the error and moves on. bitcoind *only* operates as a server, so an error in the server config is fatal (can't be ignored) since it has no other function to fulfill.
David Perry
CC BY-SA 3.0
2011-10-12T18:07:32.597Z
@DavidSchwartz excellent edit!  I appreciate it.
eMansipater
CC BY-SA 3.0
2011-10-12T12:47:35.223Z
2011-10-12T15:28:29.237Z
2011-10-12T15:28:29.237Z
David Schwartz
<p>Although <a href="https://en.bitcoin.it/wiki/API_reference_%28JSON-RPC%29#JSON-RPC">the API reference</a> implies that running <code>bitcoin -server</code> is the same as running <code>bitcoind</code>, I get no error message when running <code>bitcoin -server</code> with no bitcoin.conf file but I get teh following error message when invoking <code>bitcoind</code> -</p>

<blockquote>
  <p>C:\Program Files (x86)\Bitcoin\daemon>bitcoind.exe Warning: To use
  bitcoind, you must set rpcpassword= in the configuration
  file: C:\Users\thequietcenter\AppData\Roaming\Bitcoin\bitcoin.conf If
  the file does not exist, create it with owner-readable-only file
  permissions.</p>
  
  <p>C:\Program Files (x86)\Bitcoin\daemon></p>
</blockquote>

<client>
`bitcoind` must be different from `bitcoin -server` because one gives an error message the other doesnt
Terrence Brannon
# `bitcoind` must be different from `bitcoin -server` because one gives an error message the other doesnt

(Asked by: username_0 on 2011-10-12)

Although [the API reference](https://en.bitcoin.it/wiki/API_reference_%28JSON-RPC%29#JSON-RPC) implies that running `bitcoin -server` is the same as running `bitcoind`, I get no error message when running `bitcoin -server` with no bitcoin.conf file but I get teh following error message when invoking `bitcoind` -

> C:\Program Files (x86)\Bitcoin\daemon>bitcoind.exe Warning: To use
> bitcoind, you must set rpcpassword= in the configuration
> file: C:\Users\thequietcenter\AppData\Roaming\Bitcoin\bitcoin.conf If
> the file does not exist, create it with owner-readable-only file
> permissions.
>
> C:\Program Files (x86)\Bitcoin\daemon>

**Tags:** client


---

## 1 answers

### Answer by username_1 on 2011-10-12. Score: 3

They're not exactly the same -- they're two different programs. The `bitcoind` program is a pure server (or pure RPC client), it contains no GUI at all. The `bitcoin` program contains a GUI and can also run in server mode. So being unable to operate as a server is fatal to the server-only version, because there's nothing else it can do.

When you ask the GUI client to run in server mode, it interprets this as an additional request. If it is not configured properly to run in server mode, it will still start up and run the GUI. So for `bitcoind`, an improperly configured server mode is fatal -- what else could it do? For `bitcoin`, an improperly configured server mode just makes server mode not work; it will still run as a GUI client.

> **Comments:**
> **username_2**: Your answer is precisely accurate, but a little hard to understand for a general audience.  Perhaps you could expand upon your last sentence and clarify it a little?  
> **username_3**: I think the key is comprehension of different error levels. Bitcoin encompasses both a server *and* a client. An error in the server configuration is not fatal (i.e. it can be ignored) to the client - it has something else that it can do (be a client) so it ignores the error and moves on. bitcoind *only* operates as a server, so an error in the server config is fatal (can't be ignored) since it has no other function to fulfill.  
> **username_2**: @username_1 excellent edit!  I appreciate it.  

---

