troubleshooting
[electrum-server.git] / README.leveldb
1 How to run a pruning node with leveldb
2
3 Pruning nodes use a lightweight database to store address histories.
4 Only unspent coins are kept in that database; spent outputs are
5 pruned.
6
7
8 __________________________________________________________
9 1. patch and compile bitcoind.
10
11 Install version 0.8 or equivalent.
12 Patch it with the patch distributed with Electrum.
13
14 Note: Even though Electrum's database uses pruning, you cannot use it
15 with a pruning bitcoind. A full bitcoin node is required in order to
16 know for each address if it has been used. Pruning occurs only at the
17 level of the Electrum database.
18
19 __________________________________________________________
20
21 2. Install python-leveldb: 
22
23 sudo apt-get install python-leveldb
24
25 alternatively build yourself, see
26 http://code.google.com/p/py-leveldb/ 
27 and
28 http://peter-hoffmann.com/2011/installation-leveldb-ubuntu-python.html
29 make sure you have libtool, automake and pkg-config
30
31 __________________________________________________________
32
33 3. edit /etc/electrum.conf : 
34
35 [server]
36 backend = leveldb
37
38 [leveldb]
39 path = /path/to/your/database
40 pruning_limit = 10
41
42 ______________________________________________________________
43
44 4. catch up with the blockchain.
45
46 In order to speed up the initial catch_up phase, it is recommended to
47 locate your database in shared memory:
48
49  path = /run/shm/electrum_db
50
51 Once your server has finished catching up, copy your database to disk
52 and update the path in /etc/electrum.conf
53
54 During the catch_up phase, you can interrupt the server with Ctrl-C;
55 it will safely write the current status in the database and exit.
56
57 _________________________________
58
59 5. enjoy!
60
61 Once the server is synchronized, it will listen to ports, and the
62 normal way to stop it is to type: ./server.py stop
63
64 Other commands are available: 
65
66 ./server info   : view connections
67 ./server load   : view the size of the queue
68
69
70 ______________________
71 Troubleshooting:
72
73 * if your server or bitcoind is killed because is uses too much
74 memory, configure bitcoind to limit the number of connections
75
76 * if you see "Too many open files" errors, you may need to increase
77 your user's File Descriptors limit. For this, see
78 http://www.cyberciti.biz/faq/linux-increase-the-maximum-number-of-open-files/
79