Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F14864400
D14259.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
15 KB
Subscribers
None
D14259.diff
View Options
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -203,23 +203,7 @@
Contributing to Electrum ABC
----------------------------
-To contribute to Electrum ABC, you will need `python` >= 3.7.
-
-Install the mandatory dependencies with:
-
-```
-pip3 install -r electrum/contrib/requirements/requirements.txt
-```
-
-Optionally, you can install the GUI dependencies with:
-```
-pip3 install -r electrum/contrib/requirements/requirements-binaries.txt
-```
-
-To work on hardware wallet plugins, also install these additional dependencies:
-```
-pip3 install -r electrum/contrib/requirements/requirements-hw.txt
-```
+See the dedicated [CONTRIBUTING.md](electrum/CONTRIBUTING.md) document.
Working with The Bitcoin ABC Repository
---------------------------------------
diff --git a/electrum/CONTRIBUTING.md b/electrum/CONTRIBUTING.md
new file mode 100644
--- /dev/null
+++ b/electrum/CONTRIBUTING.md
@@ -0,0 +1,174 @@
+# Contributing to Electrum ABC
+
+## Main repository
+
+The Electrum ABC source repository has been merged into the Bitcoin ABC repository,
+and the development is now taking place at [reviews.bitcoinabc.org](https://reviews.bitcoinabc.org/).
+
+Please read the main [CONTRIBUTING.md](https://github.com/Bitcoin-ABC/bitcoin-abc/blob/master/CONTRIBUTING.md)
+document to familiarize yourself with the development philosophy and find out how to
+set up the Bitcoin ABC repository.
+
+The original Electrum ABC github repository is maintained as a mirror of the `electrum/`
+directory in the main repository.
+
+The rest of this document provides instructions that are specific to Electrum ABC.
+
+## Contacting developers
+
+[Join the Electrum ABC telegram group](https://t.me/ElectrumABC) to get in contact
+with developers or to get help from the community.
+
+## Installing dependencies
+
+All commands in this document assume that your current working directory is the
+`electrum/` directory that resides at the root of the Bitcoin ABC repository.
+
+### Python
+
+Python 3.7 or above is required to run Electrum ABC.
+
+If your system lacks Python 3.7+, you can use `pyenv` to install newer versions, or
+install an [alternative python distribution](https://www.python.org/download/alternatives/)
+in addition to your system's version.
+
+### Python packages
+
+The simplest way to install all needed packages is to run the following command:
+```
+pip install .[all]
+```
+
+This will install Electrum ABC and all its dependencies as a python package and application.
+
+This is equivalent to:
+```
+pip install .
+pip install .[gui]
+pip install .[hardware]
+```
+
+If you do not want to install Electrum ABC as a package, you can install only the dependencies
+using the following commands:
+```
+pip3 install -r contrib/requirements/requirements.txt
+pip3 install -r contrib/requirements/requirements-binaries.txt
+pip3 install -r electrum/contrib/requirements/requirements-hw.txt
+```
+
+## Running Electrum ABC from source
+
+If you installed the application as a python package, you can run it from anywhere
+using `electrum-abc` (assuming that your system has the python script directory in
+its PATH).
+
+If you installed all dependencies, you can also start the application by invoking
+the `./electrum-abc` script. See the following sections for additional instructions
+and optional dependencies.
+
+### Running from source on old Linux
+
+If your Linux distribution has a version of python 3 lower than the minimum required
+version, it is recommended to do a user dir install with
+[pyenv](https://github.com/pyenv/pyenv-installer). This allows Electrum ABC
+to run completely independently of your system configuration.
+
+1. Install `pyenv` in your user
+ account. Follow the printed instructions about updating your environment
+ variables and `.bashrc`, and restart your shell to ensure that they are
+ loaded.
+2. Run `pyenv install 3.9.7`. This will download and compile that version of
+ python, storing it under `.pyenv` in your home directory.
+3. `cd` into the Electrum ABC directory. Run `pyenv local 3.9.7` which inserts
+ a file `.python-version` into the current directory.
+4. [Install Electrum ABC requirements](#python-packages)
+5. [Compile libsecp256k1](#compiling-libsecp256k1)
+
+### Running from source on macOS
+
+You need to install **either** [MacPorts](https://www.macports.org) **or**
+[HomeBrew](https://www.brew.sh). Follow the instructions on either site for
+installing (Xcode from [Apple's developer site](https://developer.apple.com)
+is required for either).
+
+1. After installing either HomeBrew or MacPorts, clone this repository and
+ switch to the directory:
+ `git clone https://github.com/Bitcoin-ABC/ElectrumABC && cd ElectrumABC`
+2. Install python 3.7+. For brew:
+ `brew install python3`
+ or if using MacPorts:
+ `sudo port install python37`
+3. Install PyQt5: `python3 -m pip install --user pyqt5`
+4. [Install Electrum ABC requirements](#python-packages)
+5. [Compile libsecp256k1](#compiling-libsecp256k1)
+
+## Running tests
+
+Running unit tests:
+```
+python3 test_runner.py
+```
+
+This can also be run as a `ninja` target in the context of a Bitcoin ABC build:
+```
+ninja check-electrum
+```
+
+Additional functional tests can be run with the following command:
+```
+pytest electrumabc/tests/regtest
+```
+
+This requires additional dependencies such as `pytest`, `docker` and `docker-compose`.
+<!-- TODO: ninja target, install instructions for additional dependencies -->
+
+## Compiling libsecp256k1
+
+Compiling libsecp256k1 is highly-recommended when running from source, to use fast
+cryptographic algorithms instead of using fallback pure-python algos.
+
+It is required when using CashFusion, as slow participants can cause a fusion round
+to fail.
+
+On Debian or Ubuntu linux:
+```
+sudo apt-get install libtool automake
+./contrib/make_secp
+```
+
+On MacOS:
+```
+brew install coreutils automake
+./contrib/make_secp
+```
+
+or if using MacPorts: `sudo port install coreutils automake`
+
+## Compiling the icons file for Qt
+
+If you change or add any icons to the `icons` subdirectory, you need to run the following
+script before you can use them in the application:
+```
+contrib/gen_icons.sh
+```
+
+This requires the `pyrcc5` command which can be installed using your package manager.
+For instance for Ubuntu or Debian, run:
+```
+sudo apt-get install pyqt5-dev-tools
+```
+
+## Creating translations
+<!-- FIXME: we are still relying on Electron Cash translations-->
+```
+sudo apt-get install python-requests gettext
+./contrib/make_locale
+```
+
+## Plugin development
+
+For plugin development, see the [plugin documentation](electrumabc_plugins/README.rst).
+
+## Creating Binaries
+
+See the *Building the release files* section in [contrib/release.md](contrib/release.md)
diff --git a/electrum/README.md b/electrum/README.md
--- a/electrum/README.md
+++ b/electrum/README.md
@@ -1,54 +1,34 @@
-#Electrum ABC - Lightweight eCash client
+# Electrum ABC - Lightweight eCash client
-##Getting started
+Electrum ABC is an open source, fast and secure eCash wallet for Windows, MacOS and Linux.
+It supports mnemonic seed phrases, hardware wallets, multisig wallets, and importing
+private keys or addresses.
-**Note: If running from source, Python 3.7 or above is required to run Electrum ABC.**
-If your system lacks Python 3.7, you have other options, such as the
-[AppImage / binary releases](https://github.com/Bitcoin-ABC/ElectrumABC/releases/)
-or running from source using `pyenv` (see section
-[Running from source on old Linux](#running-from-source-on-old-linux) below).
+It enables you to verify that your transactions are in the blockchain without downloading
+the entire blockchain or trusting a centralized server, by using the
+Simple Payment Verification described in the Bitcoin whitepaper.
-**macOS:** It is recommended that macOS users run
-[the binary .dmg](https://github.com/Bitcoin-ABC/ElectrumABC/releases)
-as that's simpler to use and has everything included. Otherwise, if you
-want to run from source, see section
-[Running from source on macOS](#running-from-source-on-macos) below.
+Anyone can run a backend server for Electrum ABC — no single entity controls the network.
-If you want to use the Qt interface, install the Qt dependencies:
-```
-sudo apt-get install python3-pyqt5 python3-pyqt5.qtsvg
-```
+## Getting started
-If you downloaded the official package (tar.gz), you can run
-Electrum ABC from its root directory, without installing it on your
-system; all the python dependencies are included in the 'packages'
-directory. To run Electrum ABC from its root directory, just do:
-```
-./electrum-abc
-```
-
-You can also install Electrum ABC on your system, by running this command:
-```
-pip3 install . --user
-```
+Electrum ABC can be run from source or from one of the binary releases
+that can be downloaded from [bitcoinabc.org/electrum](https://www.bitcoinabc.org/electrum).
+The binary releases are recommended for most users.
-This will download and install the Python dependencies used by
-Electrum ABC, instead of using the 'packages' directory.
+Running from source is useful for developers or if no binary release is provided for your OS.
-Compile the icons file for Qt (normally you can skip this step, run this command if icons are missing):
-```
-sudo apt-get install pyqt5-dev-tools
-pyrrc5 icons.qrc -o electrumabc_gui/qt/icons.py
-```
+Documentation about how to run the application from source is provided in the
+[CONTRIBUTING.md](CONTRIBUTING.md) file.
-If you cloned the git repository, you need to compile extra files
-before you can run Electrum ABC. Read the next section, "Development
-Version".
+A `.tar.gz` source package is provided for each release. This package contains all
+required dependencies and some optional compiled libraries (`libsecp256k1`, `libzbar`)
+to run the application from source on Linux.
-##Hardware Wallet
+## Hardware Wallets
Electrum ABC natively supports Ledger, Trezor and Satochip hardware wallets.
-You need additional dependencies. To install them, run this command:
+You need additional dependencies when running from source:
```
pip3 install -r contrib/requirements/requirements-hw.txt
```
@@ -56,102 +36,23 @@
If you still have problems connecting to your Nano S please have a look at this
[troubleshooting](https://support.ledger.com/hc/en-us/articles/115005165269-Fix-connection-issues) section on Ledger website.
+## Verifying Release Binaries
-##Development version
-
-Check your python version >= 3.7, and install pyqt5, as instructed above in the
-[Getting started](#getting-started) section above or [Running from source on old Linux](#running-from-source-on-old-linux) section below.
-
-If you are on macOS, see the [Running from source on macOS](#running-from-source-on-macos) section below.
-
-Check out the code from Github:
-```
-git clone https://github.com/Bitcoin-ABC/ElectrumABC
-cd ElectrumABC
-```
-
-Install the python dependencies:
-```
-pip3 install -r contrib/requirements/requirements.txt --user
-pip3 install -r contrib/requirements/requirements-binaries.txt --user
-```
-
-Create translations (optional):
-```
-sudo apt-get install python-requests gettext
-./contrib/make_locale
-```
-
-Compile libsecp256k1 (optional, yet highly recommended):
-```
-sudo apt-get install libtool automake
-./contrib/make_secp
-```
+See [contrib/pubkeys/README.md](contrib/pubkeys/README.md)
-For plugin development, see the [plugin documentation](electrumabc_plugins/README.rst).
+## Release notes
-Running unit tests (optional):
-```
-python3 test_runner.py
-```
+Find out about new features and bugfixes in the [release notes](RELEASE-NOTES.md).
-##Running from source on old Linux
-
-If your Linux distribution has a different version of python 3 (such as python
-3.5 in Debian 9), it is recommended to do a user dir install with
-[pyenv](https://github.com/pyenv/pyenv-installer). This allows Electrum ABC
-to run completely independently of your system configuration.
-
-1. Install `pyenv` in your user
- account. Follow the printed instructions about updating your environment
- variables and `.bashrc`, and restart your shell to ensure that they are
- loaded.
-2. Run `pyenv install 3.9.7`. This will download and compile that version of
- python, storing it under `.pyenv` in your home directory.
-3. `cd` into the Electrum ABC directory. Run `pyenv local 3.9.7` which inserts
- a file `.python-version` into the current directory.
-4. While still in this directory, run `pip install pyqt5`.
-5. If you are installing from the source file (.tar.gz or .zip) then you are
- ready and you may run `./electrum-abc`. If you are using the git version,
- then continue by following the Development version instructions above.
-
-##Running from source on macOS
-
-You need to install **either** [MacPorts](https://www.macports.org) **or**
-[HomeBrew](https://www.brew.sh). Follow the instructions on either site for
-installing (Xcode from [Apple's developer site](https://developer.apple.com)
-is required for either).
-
-1. After installing either HomeBrew or MacPorts, clone this repository and
- switch to the directory:
- `git clone https://github.com/Bitcoin-ABC/ElectrumABC && cd ElectrumABC`
-2. Install python 3.7+. For brew:
- `brew install python3`
- or if using MacPorts:
- `sudo port install python37`
-3. Install PyQt5: `python3 -m pip install --user pyqt5`
-4. Install Electrum ABC requirements:
- `python3 -m pip install --user -r contrib/requirements/requirements.txt`
-5. Compile libsecp256k1 (optional, yet highly recommended):
- `./contrib/make_secp`.
- This requires GNU tools and automake, install with brew:
- `brew install coreutils automake`
- or if using MacPorts: `sudo port install coreutils automake`
-6. At this point you should be able to just run the sources: `./electrum-abc`
-
-
-##Creating Binaries
-
-See the *Building the release files* section in [contrib/release.md](contrib/release.md)
-
-##Verifying Release Binaries
+## Contributing or contacting developers
-See [contrib/pubkeys/README.md](contrib/pubkeys/README.md)
+See the dedicated [CONTRIBUTING.md](CONTRIBUTING.md) document for instructions
+about how to contribute to the project and how to contact developers for support.
-##Contacting developers
+## Credits
-[Join the Electrum ABC telegram group](https://t.me/ElectrumABC) to get in contact
-with developers or to get help from the community.
+Electrum ABC is a fork of the open source BCH *Electron Cash* wallet, which is itself a
+fork of the BTC *Electrum* wallet.
-To contribute to the project, read the main [CONTRIBUTING.md](/CONTRIBUTING.md)
-document at the root of the Bitcoin ABC repository.
+The Electrum ABC software is NOT affiliated, associated, or endorsed by
+Electron Cash, electroncash.org, Electrum or electrum.org.
diff --git a/electrum/RELEASE-NOTES.md b/electrum/RELEASE-NOTES.md
--- a/electrum/RELEASE-NOTES.md
+++ b/electrum/RELEASE-NOTES.md
@@ -1,9 +1,3 @@
-Electrum ABC is a fork of the open source Electron Cash wallet for eCash.
-
-The Electrum ABC software is NOT affiliated, associated, or endorsed by
-Electron Cash, electroncash.org, Electrum or electrum.org.
-
-
# Release notes
## Release 5.2.5
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, May 20, 19:23 (3 h, 40 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5865779
Default Alt Text
D14259.diff (15 KB)
Attached To
D14259: [electrum] documentation overhaul and dedicated CONTRIBUTING.md
Event Timeline
Log In to Comment