X-Git-Url: https://git.novaco.in/?p=electrum-server.git;a=blobdiff_plain;f=HOWTO.md;h=51f30c74a68219d0d11c143433fc2a4ba7de63fc;hp=59dc5b0e28e5ccdab16474d68ac1f632468b042c;hb=4ce69b7ea24ead59ebbcc7ed335ea9762ae3724b;hpb=b7107abf2d6b26dc5f4155158e5def951695b158 diff --git a/HOWTO.md b/HOWTO.md index 59dc5b0..51f30c7 100644 --- a/HOWTO.md +++ b/HOWTO.md @@ -97,17 +97,18 @@ our ~/bin directory: $ 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.5 stable. + +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.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 + $ cd bitcoin-0.8.5-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 @@ -127,8 +128,15 @@ Write this in `bitcoin.conf`: rpcuser= rpcpassword= 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 @@ -173,7 +181,7 @@ The pruning server uses leveldb and keeps a smaller and 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 @@ -182,23 +190,29 @@ The section in the configuration file looks like this: ### 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