Files
pallectrum/README.rst

172 lines
4.5 KiB
ReStructuredText
Raw Normal View History

2016-03-06 07:44:10 +01:00
Electrum - Lightweight Bitcoin client
2015-06-27 10:58:45 +03:00
=====================================
::
2016-02-23 11:36:42 +01:00
Licence: MIT Licence
2015-06-27 10:58:45 +03:00
Author: Thomas Voegtlin
Language: Python (>= 3.8)
2015-06-27 10:58:45 +03:00
Homepage: https://electrum.org/
.. image:: https://api.cirrus-ci.com/github/spesmilo/electrum.svg?branch=master
:target: https://cirrus-ci.com/github/spesmilo/electrum
2015-06-27 10:58:45 +03:00
:alt: Build Status
2017-11-08 22:31:13 +01:00
.. image:: https://coveralls.io/repos/github/spesmilo/electrum/badge.svg?branch=master
:target: https://coveralls.io/github/spesmilo/electrum?branch=master
2017-11-08 17:58:17 +01:00
:alt: Test coverage statistics
.. image:: https://d322cqt584bo4o.cloudfront.net/electrum/localized.svg
2018-03-13 17:36:21 +01:00
:target: https://crowdin.com/project/electrum
:alt: Help translate Electrum online
2015-06-27 10:58:45 +03:00
2016-03-06 07:44:10 +01:00
Getting started
===============
2020-03-04 20:05:18 +01:00
(*If you've come here looking to simply run Electrum,* `you may download it here`_.)
.. _you may download it here: https://electrum.org/#download
Electrum itself is pure Python, and so are most of the required dependencies,
but not everything. The following sections describe how to run from source, but here
is a TL;DR::
sudo apt-get install libsecp256k1-0
python3 -m pip install --user ".[gui,crypto]"
2020-03-04 20:05:18 +01:00
2020-02-11 17:33:06 +01:00
2020-03-04 19:39:48 +01:00
Not pure-python dependencies
----------------------------
2020-02-11 17:33:06 +01:00
If you want to use the Qt interface, install the Qt dependencies::
2016-03-06 07:44:10 +01:00
2017-09-23 05:54:38 +02:00
sudo apt-get install python3-pyqt5
2016-03-06 07:44:10 +01:00
2020-03-04 20:05:18 +01:00
For elliptic curve operations, `libsecp256k1`_ is a required dependency::
2020-02-11 17:33:06 +01:00
sudo apt-get install libsecp256k1-0
Alternatively, when running from a cloned repository, a script is provided to build
libsecp256k1 yourself::
sudo apt-get install automake libtool
2020-02-11 17:33:06 +01:00
./contrib/make_libsecp256k1.sh
Due to the need for fast symmetric ciphers, `cryptography`_ is required.
Install from your package manager (or from pip)::
2020-03-04 19:39:48 +01:00
sudo apt-get install python3-cryptography
2020-02-11 17:33:06 +01:00
2020-03-04 20:05:18 +01:00
If you would like hardware wallet support, see `this`_.
.. _libsecp256k1: https://github.com/bitcoin-core/secp256k1
.. _pycryptodomex: https://github.com/Legrandin/pycryptodome
.. _cryptography: https://github.com/pyca/cryptography
.. _this: https://github.com/spesmilo/electrum-docs/blob/master/hardware-linux.rst
2020-02-11 17:33:06 +01:00
Running from tar.gz
-------------------
If you downloaded the official package (tar.gz), you can run
2018-12-01 21:28:46 -05:00
Electrum from its root directory without installing it on your
2020-03-04 19:39:48 +01:00
system; all the pure python dependencies are included in the 'packages'
2016-03-18 09:20:00 +01:00
directory. To run Electrum from its root directory, just do::
2015-06-27 10:58:45 +03:00
./run_electrum
2015-06-27 10:58:45 +03:00
2016-10-15 12:12:10 +02:00
You can also install Electrum on your system, by running this command::
2020-02-11 17:33:06 +01:00
sudo apt-get install python3-setuptools python3-pip
python3 -m pip install --user .
2016-10-15 12:12:10 +02:00
This will download and install the Python dependencies used by
2018-12-01 21:28:46 -05:00
Electrum instead of using the 'packages' directory.
It will also place an executable named :code:`electrum` in :code:`~/.local/bin`,
so make sure that is on your :code:`PATH` variable.
2016-10-15 12:12:10 +02:00
2016-03-06 07:44:10 +01:00
2020-03-04 20:05:18 +01:00
Development version (git clone)
-------------------------------
2016-03-06 07:44:10 +01:00
2018-04-15 20:45:30 +03:00
Check out the code from GitHub::
2016-03-06 07:44:10 +01:00
git clone git://github.com/spesmilo/electrum.git
cd electrum
2019-09-04 14:03:39 +02:00
git submodule update --init
2016-03-06 07:44:10 +01:00
2016-03-17 12:52:40 +01:00
Run install (this should install dependencies)::
python3 -m pip install --user -e .
2016-03-17 12:52:40 +01:00
2016-03-06 07:44:10 +01:00
2016-10-15 12:12:10 +02:00
Create translations (optional)::
2016-03-06 07:44:10 +01:00
2018-01-07 16:48:02 -05:00
sudo apt-get install python-requests gettext
./contrib/pull_locale
2016-03-06 07:44:10 +01:00
Finally, to start Electrum::
./run_electrum
2016-03-06 07:44:10 +01:00
Run unit tests with `pytest`:
2016-03-06 07:44:10 +01:00
pytest electrum/tests -v
To run a single file, specify it directly like this:
pytest electrum/tests/test_bitcoin.py -v
2015-06-27 10:58:45 +03:00
2016-03-06 07:44:10 +01:00
Creating Binaries
=================
Linux (tarball)
---------------
2015-06-27 10:58:45 +03:00
See :code:`contrib/build-linux/sdist/README.md`.
2015-06-27 10:58:45 +03:00
2016-03-06 07:44:10 +01:00
Linux (AppImage)
----------------
See :code:`contrib/build-linux/appimage/README.md`.
Mac OS X / macOS
----------------
See :code:`contrib/osx/README.md`.
2015-06-27 10:58:45 +03:00
2016-03-06 07:44:10 +01:00
Windows
-------
See :code:`contrib/build-wine/README.md`.
2016-03-06 07:44:10 +01:00
Android
-------
See :code:`contrib/android/Readme.md`.
Contributing
============
Any help testing the software, reporting or fixing bugs, reviewing pull requests
and recent changes, writing tests, or helping with outstanding issues is very welcome.
Implementing new features, or improving/refactoring the codebase, is of course
also welcome, but to avoid wasted effort, especially for larger changes,
we encourage discussing these on the issue tracker or IRC first.
Besides `GitHub`_, most communication about Electrum development happens on IRC, in the
:code:`#electrum` channel on Libera Chat. The easiest way to participate on IRC is
with the web client, `web.libera.chat`_.
.. _web.libera.chat: https://web.libera.chat/#electrum
.. _GitHub: https://github.com/spesmilo/electrum