LBRY Vault; LBRY Credits thin client
Find a file
SomberNight 21e637f543
network: validate server peers sent by main server
Data returned by the main server for request "server.peers.subscribe"
is of course untrusted input. Previously if it contained e.g. invalid port numbers
or IP addresses, it could kill the whole network taskgroup.
(this might have only affected master and not released versions,
which would only raise exceptions once the client actually tried to connect to an invalid host/port)
2020-05-13 19:28:35 +02:00
.github follow-up prev commit: use less space 2018-02-23 12:01:01 +01:00
contrib appimage: update libudev-dev in Dockerfile 2020-05-13 10:55:08 +02:00
electrum network: validate server peers sent by main server 2020-05-13 19:28:35 +02:00
pubkeys Decouple my GPG pubkey from Animazing 2019-05-02 14:23:31 +02:00
.gitignore Add electrum_data to .gitignore (#6092) 2020-04-16 15:49:48 +00:00
.gitmodules fix submodule 2019-09-04 12:39:02 +02:00
.travis.yml travis: change ppa for bitcoind 2020-03-14 01:48:31 +01:00
AUTHORS Add self to AUTHORS 2015-11-09 22:53:27 +09:00
electrum-env Make sure bash can be found on *BSD 2019-07-28 07:08:56 +00:00
electrum.desktop Give visual feedback while starting (#4997) 2019-01-25 02:33:54 +01:00
LICENCE Relicensing 2016-02-24 10:20:30 +01:00
MANIFEST.in build: create a standalone build script for libsecp256k1 2020-02-11 16:48:24 +01:00
README.rst README: mention script location (for "electrum", after pip install) 2020-04-14 02:15:22 +02:00
RELEASE-NOTES GUI: Separate output selection and transaction finalization. 2019-11-12 14:42:06 +01:00
run_electrum RPC client: exit code 1 if RPC server returned error 2020-05-10 06:34:27 +00:00
SECURITY.md add SECURITY.md 2019-12-06 21:47:28 +01:00
setup.py setup.py: specify lnwire as package_data 2020-04-09 10:59:22 +02:00
tox.ini clear up requirements re pycryptodomex 2020-03-04 20:33:02 +01:00

Electrum - Lightweight Bitcoin client
=====================================

::

  Licence: MIT Licence
  Author: Thomas Voegtlin
  Language: Python (>= 3.6)
  Homepage: https://electrum.org/


.. image:: https://travis-ci.org/spesmilo/electrum.svg?branch=master
    :target: https://travis-ci.org/spesmilo/electrum
    :alt: Build Status
.. image:: https://coveralls.io/repos/github/spesmilo/electrum/badge.svg?branch=master
    :target: https://coveralls.io/github/spesmilo/electrum?branch=master
    :alt: Test coverage statistics
.. image:: https://d322cqt584bo4o.cloudfront.net/electrum/localized.svg
    :target: https://crowdin.com/project/electrum
    :alt: Help translate Electrum online





Getting started
===============

(*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]


Not pure-python dependencies
----------------------------

If you want to use the Qt interface, install the Qt dependencies::

    sudo apt-get install python3-pyqt5

For elliptic curve operations, `libsecp256k1`_ is a required dependency::

    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
    ./contrib/make_libsecp256k1.sh

Due to the need for fast symmetric ciphers, either one of `pycryptodomex`_
or `cryptography`_ is required. Install from your package manager
(or from pip)::

    sudo apt-get install python3-cryptography


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

Running from tar.gz
-------------------

If you downloaded the official package (tar.gz), you can run
Electrum from its root directory without installing it on your
system; all the pure python dependencies are included in the 'packages'
directory. To run Electrum from its root directory, just do::

    ./run_electrum

You can also install Electrum on your system, by running this command::

    sudo apt-get install python3-setuptools python3-pip
    python3 -m pip install --user .

This will download and install the Python dependencies used by
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.


Development version (git clone)
-------------------------------

Check out the code from GitHub::

    git clone git://github.com/spesmilo/electrum.git
    cd electrum
    git submodule update --init

Run install (this should install dependencies)::

    python3 -m pip install --user -e .


Create translations (optional)::

    sudo apt-get install python-requests gettext
    ./contrib/pull_locale

Finally, to start Electrum::

    ./run_electrum



Creating Binaries
=================

Linux (tarball)
---------------

See :code:`contrib/build-linux/README.md`.


Linux (AppImage)
----------------

See :code:`contrib/build-linux/appimage/README.md`.


Mac OS X / macOS
----------------

See :code:`contrib/osx/README.md`.


Windows
-------

See :code:`contrib/build-wine/README.md`.


Android
-------

See :code:`electrum/gui/kivy/Readme.md`.