System Requirements and Installation Guide¶
The easiest way to start Rotkehlchen is to download the packaged binary for your Operating system. For now only Linux and OSX is supported. To see how to do this go to the next section.
Unzip it in a directory of your choice. In the root directory of the unzipped archive there is a
rotkehlchen executable. Run it via the terminal to start rotkehlchen.
Unzip it in a directory of your choice. In the root directory of the unzipped archive there is are two
rotkehlchen files. Click (or run from the terminal) the one that does not have the electron logon on its icon.
If you get “The python backend crushed” error then you probably did not click on the correct executable.
To make it easier to understand which one is the executable you have to click in OSX look at the following screenshot.
If you did click on that and you still get an error, then please open an issue with the contents of the console window that was also opened. This will help us debug the problem.
Unzip it in a folder of your choice. In the root directory of the unzipped archive there is a
rotkehlchen executable. Double click it to start rotkehlchen.
If you get “The python backend crushed” or any other error please run the executable via the Command Prompt. Then provide us with the output that is visible in the prompt and this will help us debug your issue.
Build from Source¶
Also get sqlcipher:
- If you’re running Archlinux you can install the package with
- If you’re running Ubuntu you will need to install libsqlcipher-dev with
Install electron and any other npm dependencies by:
npm install npm rebuild zeromq --runtime=electron --target=3.0.0
Create a new virtual environment to install all the python dependencies. If you don’t have
mkvirtualenv then check how to get it depending on your distribution. Here is a guide for Ubuntu and here is one for ArchLinux:
Then install all the python requirements by doing:
pip install -r requirements.txt
If you want to also have the developer requirements in order to develop rotkehlchen then do:
pip install -r requirements_dev.txt
Now to start the application you need to type
If you get runtime errors about a Node version mismatch, you can try to rebuild the electron modules like this::
The tl;dr version is: - install sqlcipher - use a virtual env with python 3.7.x - make sure pip installed everything it says it installed - get your node under control with nvm. It has been tested with 8.9
Rotkehlchen uses an encrypted database called SQLCipher. Before we can proceed, we need to install it. Homebrew makes it simple::
$ brew update && brew install sqlcipher
Also these are some dependencies that may or may not be properly installed in your system so make sure you have them.:
$ brew install zmq $ brew install gmp
If you wish to use Conda, use the following commands::
$ brew cask install caskroom/cask/anaconda $ echo "export PATH=$PATH:/usr/local/anaconda3/bin" >> ~/.bash_profile $ echo ". /usr/local/anaconda3/etc/profile.d/conda.sh" >> ~/.bash_profile $ source ~/.bash_profile $ conda create python=3.7 --name rotkehlchen $ conda activate rotkehlchen
If you wish to use Virtualenvwrapper use the following:
$ pip install virtualenv $ pip install virtualenvwrapper
And add the following to your shell startup file, assuming virtualenvwrapper was installed in
export WORKON_HOME=$HOME/.virtualenvs export PROJECT_HOME=$HOME/Devel source /usr/local/bin/virtualenvwrapper.sh
Before using pip, let´s ensure we have the latest version::
$ pip install --upgrade pip
Install all the requirements::
$ sudo pip install -r requirements.txt
If you want to also have the developer requirements in order to develop rotkehlchen then do::
$ pip install -r requirements_dev.txt
- Make sure that pysqlcipher3 is properly installed. If
$ pip freeze | grep pysqlcipher3returns nothing for you then it was not installed. Try to manually install only that dependency with the verbose option to see where it fails.
$ pip install pysqlcipher3 -v. If it fails at the stage of finding the library for
brew install sqlciperdid not place the installed lib directory to the
LIBRARY_PATHand you will have to do it manually. For example if
sqlcipherwas installed at
/usr/local/Cellar/sqlcipher/3.4.2/then use pip install this way::
- $ LIBRARY_PATH=/usr/local/Cellar/sqlcipher/3.4.2/lib pip install pysqlcipher3.
Rotkehlchen uses electron, we need to install it. To do so you need
npm. If you don’t have it use homebrew to install it:
$ brew install node
Almost there, we can now install all the NodeJS dependencies. Using a recent NodeJS version such as 8.9.x, it should be smooth. Also since npm uses gyp and gyp requires python 2.7 make sure to set it up appropriately before invoking npm:
$ npm config set python python2.7 $ npm install $ PYTHON=/usr/bin/python2.7 ./node_modules/.bin/electron-rebuild
You can now start Rotkehlchen::
$ npm start
This is the guide on how to manually build rotkehlchen binaries in Windows from source.
Python and git¶
Get python 3.7.
Make sure it’s 64 bit if you are in 64-bit windows!!!!!
If it’s not in the Path add both directories to the path:
Get latest git.
Setup a python virtualenvironment. If you don’t know how to do it in windows here is a good guide.
Make sure you have pip installed.
Also make sure you have the Microsoft visual studio build tools. Check the troubleshooting guide’s relevant section Microsoft Visual C++ 14.0 is required.
Sqlcipher and pysqlcipher3¶
Here is a good guide on how to compile SQLCipher for windows.
The guide also requires you to get
OpenSSL. You can do that from here.
Make sure it’s for the same architecture as the rest. 32/64 bit. At the installer change the location to the bin directory as the tutorial says. Make sure that
-IC:\dev\OpenSSL-Win64\include and all other relevant options point to the actual location where openssl was installed. Also pay attention to the rest of the stuff in the tutorial warns to change in
Then you can go to
pysqlcipher3 and edit the
setup.py file to include the location of the headers and the libraries you just compiled. Add the following to the extension that is being built.:
yourusername with whatever you are using. And then do
python setup.py build and
python setup.py install.
Inside rotkehlchen install normally like you would in linux … but you got to either copy
slqcipher.dll in the rotkehlchen directory or put it in the directory where windows searches for DLLs.
If you get
anyapi-ms-win-crt-runtime-l1-1-0.dll is missing error when running python follow this guide to resolve it.
Microsoft Visual C++ 14.0 is required¶
If you get:
building 'gevent.libev.corecext' extension error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": https://visualstudio.microsoft.com/downloads/
You also need to add them to the path. The tools were probably installed here:
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\Tools
Environment variable should be:
Alternative dependencies with sqlciper amalgamation¶
This is a not so well tested way but some work has been done by cryptomental in this issue for it. With the amalgamation you can obtain all sqlcipher dependencies precompiled and amalgamated in one big blog. But … it’s tricky, hense not so well tested.
Read the issue for a lot of details and also the
appveyor.yml for what needs to be done to build sqlcipher and keep the following in mind:
copy -rand make sure to copy into python system include and not the venv one.
If while building the amalgamation you get:
"Fatal error: OpenSSL could not be detected!"try this SO answer. and make sure to add
OPENSSL_CONFto the environment variables pointing to the location of
In addition copy the amalgamation dir’s ssl include folder to the python include folder:
$ cp -r sqlcipher-amalgamation-3020001/openssl-include/openssl/ /c/Users/lefteris/AppData/Local/Programs/Python/Python37-32/include/openssl
Copy the amalgamation dir’s ssl libraries to the python lib folder:
$ cp sqlcipher-amalgamation-3020001/OpenSSL-Win32/* /c/Users/lefteris/AppData/Local/Programs/Python/Python37-32/libs/
Note it has to be the OpenSSL-Win32 part.