semi-pruning server
[electrum-server.git] / HOWTO.md
index 91c326a..9323881 100644 (file)
--- a/HOWTO.md
+++ b/HOWTO.md
@@ -50,11 +50,11 @@ Python libraries. You will need access to the SQL server to create users and
 databases.
 
 **Hardware.** It's recommended to run a pruning server with leveldb.
-It is a light setup with diskspace requirements permanently under 1 GB and 
-less taxing on I/O and CPU once it's up and running. 
+It is a light setup with diskspace requirements well under 1 GB growing 
+very moderately and less taxing on I/O and CPU once it's up and running. 
 Full (archival) servers on the other hand use SQL. At the time of this writing, 
 the Bitcoin blockchain is 5.5 GB large. The corresponding SQL database is 
-about 4 time larger, so you should have a minimum of 22 GB free space just 
+about 4 times larger, so you should have a minimum of 22 GB free space just 
 for SQL, growing continuously. 
 CPU speed is also important, mostly for the initial block chain import, but 
 also if you plan to run a public Electrum server, which could serve tens 
@@ -93,15 +93,16 @@ our ~/bin directory:
     $ chmod +x ~/src/electrum/server/server.py
     $ ln -s ~/src/electrum/server/server.py ~/bin/electrum
 
-### Step 2. Donwnload Bitcoind from git & patch it
+### Step 2. Download Bitcoind from git & patch it
 
 In order for the latest versions of Electrum to work properly we will need to use the latest 
 build from Git and also patch it with an electrum specific patch.
+Please make sure you run a version of bitcoind from git from at least December 2012 or newer:
 
-   $ cd src && git clone git://github.com/bitcoin/bitcoin.git
-   $ cd bitcoin 
-   $ patch -p1 < ~/src/electrum/server/patch/patch
-   $ cd src && make -f makefile.unix
+    $ cd src && git clone git://github.com/bitcoin/bitcoin.git
+    $ cd bitcoin 
+    $ patch -p1 < ~/src/electrum/server/patch/patch
+    $ cd src && make -f makefile.unix
 
 ### Step 3. Configure and start bitcoind
 
@@ -169,13 +170,13 @@ l need to install "by hand": `Abe` and `JSONRPClib`.
 
     $ sudo easy_install jsonrpclib
     $ cd ~/src
-    $ wget https://github.com/jtobey/bitcoin-abe/archive/v0.7.1.tar.gz
+    $ git clone https://github.com/jtobey/bitcoin-abe
     $ cd bitcoin-abe
+    $ git checkout c2a9969e20305faa41c40ae47533f2138f222ffc
     $ sudo python setup.py install
 
-Electrum server does not currently support abe > 0.7.1 so please stick 
-with 0.7.1 for the time being. If you're version is < 0.7 you need to upgrade
-to 0.7.1!
+Electrum server does not currently support abe 0.7.2+ so please stick 
+with a specific commit between 0.7.1 and 0.7.2 for the time being.
 
 Please note that the path below might be slightly different on your system,
 for example python2.6 or 2.8.
@@ -242,7 +243,7 @@ for the initial import.
 
 Important notice: This is a *very* long process. Even on fast machines,
 expect it to take hours. Here are some benchmarks for importing
-~196K blocks (size of the Bitcoin blockchain at the time of this writing):
+~196K blocks (size of the Bitcoin blockchain in Septeber 2012):
 
   * System 1: ~9 hours.
          * CPU: Intel Core i7 Q740 @ 1.73GHz
@@ -251,6 +252,18 @@ expect it to take hours. Here are some benchmarks for importing
          * CPU: Intel Xeon X3430 @ 2.40GHz
          * HDD: 2 x SATA in a RAID1.
 
+### Step 7b. Alternatively: Fetch abe blockchain from the net for import
+
+It's much faster to import an existing dataset than to index the blockchain 
+using abe yourself. 
+
+Importing a mysql dump of ~8 GB takes around 18-20 hours on a regular HDD 
+and can be sped up by using SSDs or importing into /dev/shm memory
+
+You can fetch recent copies of mysql dumps and further instructions 
+from the Electrum full archival server foundry at:
+http://electrum-foundry.no-ip.org/ 
+
 ### Step 8. Configure Electrum server
 
 Electrum reads a config file (/etc/electrum.conf) when starting up. This
@@ -263,6 +276,10 @@ options.
 Go through the sample config options and set them to your liking.
 If you intend to run the server publicly have a look at README-IRC.md 
 
+If you're looking to run SSL / HTTPS you need to generate a self-signed certificate
+using openssl. Otherwise you can just comment out the SSL / HTTPS ports and run 
+without.
+
 ### Step 9. (Finally!) Run Electrum server
 
 The magic moment has come: you can now start your Electrum server:
@@ -295,8 +312,14 @@ addresses and transactions history. You can see the number of blocks and
 response time in the Server selection window. You should send/receive some
 bitcoins to confirm that everything is working properly.
 
-### Step 11. Join us on IRC
+### Step 11. 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
 on supporting the community by running an Electrum node
+
+If you're operating a public Electrum server please subscribe
+to or regulary check the following thread:
+https://bitcointalk.org/index.php?topic=85475.0
+It'll contain announcements about important updates to Electrum
+server required for a smooth user experience.