d56917f4b15541164047ecb61e411fc902b81515
existing code was n^2 in number of UTXOs this is now mostly linear (linear if shortcut is hit; otherwise in rare cases still quadratic) tested using wallet with 800 UTXOs, most of which were needed to make payment coinchooser.make_tx() went from 18 sec to 0.8 sec
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
===============
Electrum is a pure python application. If you want to use the
Qt interface, install the Qt dependencies::
sudo apt-get install python3-pyqt5
If you downloaded the official package (tar.gz), you can run
Electrum from its root directory without installing it on your
system; all the 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 -m pip install .[fast]
This will download and install the Python dependencies used by
Electrum instead of using the 'packages' directory.
The 'fast' extra contains some optional dependencies that we think
are often useful but they are not strictly needed.
If you cloned the git repository, you need to compile extra files
before you can run Electrum. Read the next section, "Development
Version".
Development version
===================
Check out the code from GitHub::
git clone git://github.com/spesmilo/electrum.git
cd electrum
Run install (this should install dependencies)::
python3 -m pip install .[fast]
Compile the protobuf description file::
sudo apt-get install protobuf-compiler
protoc --proto_path=electrum --python_out=electrum electrum/paymentrequest.proto
Create translations (optional)::
sudo apt-get install python-requests gettext
./contrib/make_locale
Creating Binaries
=================
Linux
-----
See :code:`contrib/build-linux/README.md`.
Mac OS X / macOS
----------------
See :code:`contrib/osx/README.md`.
Windows
-------
See :code:`contrib/build-wine/docker/README.md`.
Android
-------
See :code:`electrum/gui/kivy/Readme.md`.
Description
Languages
Python
89.1%
QML
8.4%
Shell
2%
Dockerfile
0.2%
Java
0.2%
Other
0.1%