$ chmod +x ~/src/electrum/server/server.py
$ ln -s ~/src/electrum/server/server.py ~/bin/electrum-server
-### Step 3. Download Bitcoind stable & patch it
+### Step 3. Download bitcoind
-In order for the latest versions of Electrum to work properly we currently recommend bitcoind 0.8.5 stable.
-0.8.5 can be downloaded from github or sourceforge and it needs to be patched with an electrum specific patch.
-bitcoin@master i.e. git head may not currently work with electrum-server even if the patch applies cleanly.
+Older versions of Electrum used to require a patched version of bitcoind.
+This is not the case anymore since bitcoind supports the 'txindex' option.
+We currently recommend bitcoind 0.8.6 stable.
- $ cd ~/src && wget http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.5/bitcoin-0.8.5-linux.tar.gz
- $ tar xfz bitcoin-0.8.5-linux.tar.gz
- $ cd bitcoin-0.8.5-linux/src
- $ patch -p1 < ~/src/electrum/server/patch/patch
- $ cd src
+If your package manager does not supply a recent bitcoind and prefer to compile
+here are some pointers for Ubuntu:
+
+ $ cd ~/src && wget http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.6/bitcoin-0.8.6-linux.tar.gz
+ $ tar xfz bitcoin-0.8.6-linux.tar.gz
+ $ cd bitcoin-0.8.6-linux/src/src
$ sudo apt-get install make g++ python-leveldb libboost-all-dev libssl-dev libdb++-dev
$ make USE_UPNP= -f makefile.unix
- $ strip ~/src/bitcoin-0.8.5-linux/src/src/bitcoind
- $ ln -s ~/src/bitcoin-0.8.5-linux/src/src/bitcoind ~/bin/bitcoind
+ $ strip ~/src/bitcoin-0.8.6-linux/src/src/bitcoind
+ $ ln -s ~/src/bitcoin-0.8.6-linux/src/src/bitcoind ~/bin/bitcoind
### Step 4. Configure and start bitcoind
rpcuser=<rpc-username>
rpcpassword=<rpc-password>
daemon=1
+ txindex=1
+
+
+If you have an existing installation of bitcoind and have not previously
+set txindex=1 you need to reindex the blockchain by running
+
+ $ bitcoind -reindex
-Restart `bitcoind`:
+If you have a fresh copy of bitcoind start `bitcoind`:
$ bitcoind
faster database by pruning spent transactions. It's a lot quicker to get up
and running and requires less maintenance and diskspace than abe.
-The section in the configuration file looks like this:
+The section in the electrum server configuration file (see step 10) looks like this:
[leveldb]
path = /path/to/your/database
### Step 8. Import blockchain into the database or download it
+It's recommended to fetch a pre-processed leveldb from the net
+
+You can fetch recent copies of electrum leveldb databases and further instructions
+from the Electrum full archival server foundry at:
+http://foundry.electrum.org/
+
+Alternatively if you have the time and nerve you can import the blockchain yourself.
+
As of April 2013 it takes between 6-24 hours to import 230k of blocks, depending
on CPU speed, I/O speed and selected pruning limit.
-It's considerably faster to index in memory. You can use /dev/shm or indexing in RAM
+It's considerably faster to index in memory. You can use /dev/shm or
or create a tmpfs which will also use swap if you run out of memory:
$ sudo mount -t tmpfs -o rw,nodev,nosuid,noatime,size=6000M,mode=0777 none /tmpfs
+Figures from April 2013:
At limit 100 the database comes to 2,6 GB with 230k blocks and takes roughly 6h to import in /dev/shm.
At limit 1000 the database comes to 3,0 GB with 230k blocks and takes roughly 10h to import in /dev/shm.
At limit 10000 the database comes to 3,5 GB with 230k blocks and takes roughly 24h to import in /dev/shm.
-Alternatively you can fetch a pre-processed leveldb from the net
-
-You can fetch recent copies of electrum leveldb databases and further instructions
-from the Electrum full archival server foundry at:
-http://foundry.electrum.org/
+As of November 2013 expect at least double the time for indexing the blockchain. Databases have grown to
+roughly 4 GB, give or take a few hundred MB between pruning limits 100 and 10000.
### Step 9. Create a self-signed SSL cert
response time in the Server selection window. You should send/receive some
bitcoins to confirm that everything is working properly.
-### Step 13. Join us on IRC, subscribe to the server thread
+### Step 14. Join us on IRC, subscribe to the server thread
Say hi to the dev crew, other server operators and fans on
irc.freenode.net #electrum and we'll try to congratulate you