(quoted post by Gavin Andresen)
I’ve been working on adding -port= / -rpcport= command line / config file options to bitcoin. The idea is to let you run multiple copies of bitcoind on one machine; I need this because I’m planning on having at least two Bitcoin-related web services (the Bitcoin Faucet and a service to be named later), I want them to have completely separate wallets, but I don’t want to rent multiple servers to host them.
Usage looks like this: Code:$ ./bitcoind getbalance # The TEST network Faucet bitcoind 40616.66159265000 $ ./bitcoind -datadir=/home/bitcoin/.bitcoinTEST2 getbalance 1000.000000000000 $ cat /home/bitcoin/.bitcoinTEST2/bitcoin.conf rpcpassword=… port=18666 rpcport=18665
Satoshi pointed out that allowing bitcoin/bitcoind to run on a non-standard port could be dangerous, because if misconfigured two bitcoins might both open and write to the same database. To prevent that, the
Issues that came up as I was doing this:
I left a call to wxSingleInstanceChecker in the Windows GUI code, so no multiple-gui-bitcoins-listening-on-different-ports on Windows. I don’t do Windows…
I didn’t bother making the error handling graceful if you point two bitcoins at the same datadir (you get a runtime exception “Cannot lock db.log, is bitcoin already running?”).
Patches are at http://pastebin.com/2e4hfXSS; I’ve only tested on Linux so far, anybody willing to try this on Windows?
Quote from: gavinandresen on July 27, 2010, 02:08:17 PM
I’ve been working on adding -port= / -rpcport= command line / config file options to bitcoin
Nice. In addition it would be good to have an -ip= option for what address to bind the port. (rpcport binds to 127.0.0.1 but currently port binds to 0.0.0.0 which is all IP addresses on the machine. On my multi-homed system I’d like to bind bitcoin to the external address different from the bitcoin(s) that binds to the internal address(es).)
Do you have an updated version of this patch for SVN revision 125? Also, does Bitcoin open the BerkeleyDB as exclusive, precluding the need for a file lock?It does not — did my own tests.
Quote from: lachesis on August 10, 2010, 03:24:55 PM
Do you have an updated version of this patch for SVN revision 125? Also, does Bitcoin open the BerkeleyDB as exclusive, precluding the need for a file lock?It does not — did my own tests.
It does open with DB_PRIVATE.
http://www.oracle.com/technology/documentation/berkeley-db/db/api_reference/C/envopen.html
Quote from: lachesis on August 10, 2010, 03:24:55 PM
Also, does Bitcoin open the BerkeleyDB as exclusive, precluding the need for a file lock?It does not — did my own tests.
Is there a way to open BerkeleyDB exclusive?
DB_PRIVATE is the worst of both worlds. DB_PRIVATE is not exclusive, but it does make it get screwed up if another process tries to access it at the same time.
I’ve dropped the DB_PRIVATE flag in rev 153.