modified: Install-MMGen-Wallet-on-Linux.md

modified:   Install-MMGen-Wallet-on-Microsoft-Windows.md
modified:   Test-Suite.md
The MMGen Project 2023-11-27 09:09:21 +00:00
commit dc71b53015
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2
3 changed files with 46 additions and 33 deletions

@ -20,13 +20,14 @@ $ sudo apt-get install curl git gcc libtool make autoconf libgmp-dev libssl-dev
$ sudo pacman -S curl git gcc libtool make autoconf automake autogen pcre python-pip libsecp256k1
```
To keep your MMGen Wallet installation isolated from the rest of your Python
packages, you may wish to use a [virtual environment][ve]. If you choose not to
do this, you may get an ‘externally-managed-environment’ error when installing
packages with `pip`. In this case, you must add `--break-system-packages`
to the `pip` command line. Note that this will not in fact break any system
packages, as pip installs all packages under the user’s home directory when
invoked as user.
You may wish to use a [virtual environment][vv] to keep your MMGen Wallet
installation isolated from the rest of your Python packages.
If you choose not to use a virtual environment, then you may need to add
`--break-system-packages` to the `pip install` command line, depending on your
Python version and Linux distribution. Note that this will not in fact break
any system packages, as pip installs all packages under the user’s home
directory when invoked as user.
### Upgrade the Python build tools:
@ -102,4 +103,4 @@ Congratulations, your installation is now complete! You can now proceed to
[pi]: https://pypi.org
[af]: Altcoin-and-Forkcoin-Support
[ec]: https://github.com/bitcoin-core/secp256k1.git
[ve]: https://docs.python.org/3/library/venv.html
[vv]: https://docs.python.org/3/library/venv.html

@ -9,16 +9,17 @@
* [Offline install](#a_ug2)
* [3. Install MMGen Wallet’s MSYS2 dependencies](#a_md)
* [Offline install](#a_md1)
* [4. Set up your environment](#a_ev)
* [5. Install the Python ECDSA library (offline install only)](#a_ec)
* [6. Install the standalone scrypt package (required for strong password hashing)](#a_sc)
* [7. Clone and copy the secp256k1 library (offline install only)](#a_se)
* [8. Install MMGen Wallet](#a_mm)
* [4. Set up your shell environment](#a_ev)
* [5. Choose your Python environment](#a_pev)
* [6. Install the Python ECDSA library (offline install only)](#a_ec)
* [7. Install the standalone scrypt package (required for strong password hashing)](#a_sc)
* [8. Clone and copy the secp256k1 library (offline install only)](#a_se)
* [9. Install MMGen Wallet](#a_mm)
* [Stable version](#a_mms)
* [Development version](#a_mmd)
* [9. Install Python Ethereum dependencies (if applicable)](#a_pe)
* [10. Install and launch your coin daemons](#a_cd)
* [11. You’re done!](#a_do)
* [10. Install Python Ethereum dependencies (if applicable)](#a_pe)
* [11. Install and launch your coin daemons](#a_cd)
* [12. You’re done!](#a_do)
#### [Keeping your installation up to date](#a_u)
* [Upgrading MSYS2](#a_us)
@ -197,7 +198,7 @@ pacman -S tar git vim autoconf automake-wrapper autogen libtool cygrunsrv \
mingw-w64-ucrt-x86_64-python-pyreadline3
```
### <a id="a_ev">4. Set up your environment</a>
### <a id="a_ev">4. Set up your shell environment</a>
Create the `/usr/local/bin` directory. This is where you’ll place various
binaries required by MMGen:
@ -225,7 +226,17 @@ export PYTHONUTF8=1
Save and exit. Close and reopen the terminal window to update your working
environment.
### <a id="a_ec">5. Install the Python ECDSA library (offline install only)</a>
### <a id="a_pev">5. Choose your Python environment</a>
If you have other Python packages installed under MSYS2, then you may wish to
use a [virtual environment][vv] to keep your MMGen Wallet installation isolated
from them.
If you choose not to use a virtual environment, then you should add `--user` to
the command line every time you run `pip install` as directed below. This will
prevent pip from installing packages in the system directory.
### <a id="a_ec">6. Install the Python ECDSA library (offline install only)</a>
On your online machine:
@ -239,7 +250,7 @@ Copy the downloaded file to your offline machine and install:
$ python3 -m pip install ecdsa-*.whl
```
### <a id="a_sc">6. Install the standalone scrypt package (required for strong password hashing)</a>
### <a id="a_sc">7. Install the standalone scrypt package (required for strong password hashing)</a>
Due to a faulty implementation of the `scrypt` function included in Python’s
`hashlib`, the standalone `scrypt` module is required for stronger-than-default
@ -264,7 +275,7 @@ $ python3 -m build --no-isolation
$ python3 -m pip install dist/*.whl
```
### <a id="a_se">7. Clone and copy the secp256k1 library (offline install only)</a>
### <a id="a_se">8. Clone and copy the secp256k1 library (offline install only)</a>
On your online machine, clone the secp256k1 repository from Github:
@ -281,7 +292,7 @@ $ cp -a /path/to/secp256k1/repo/secp256k1 ~/.cache/mmgen
$ ls ~/.cache/mmgen/secp256k1/autogen.sh # check that files were correctly copied
```
### <a id="a_mm">8. Install MMGen Wallet</a>
### <a id="a_mm">9. Install MMGen Wallet</a>
Now you’re ready to install MMGen Wallet itself.
@ -339,7 +350,7 @@ occasion.
Note that MMGen Wallet has a test suite. Refer to the [Test Suite][ts] wiki
page for details.
### <a id="a_pe">9. Install Python Ethereum dependencies (if applicable)</a>
### <a id="a_pe">10. Install Python Ethereum dependencies (if applicable)</a>
If you’ll be using MMGen Wallet with Ethereum, then you must install a few
dependencies. From the MMGen repository root, type the following:
@ -363,7 +374,7 @@ $ python3 -m pip download --no-deps -r eth-requirements.txt
$ python3 -m pip install --no-deps *.whl
```
### <a id="a_cd">10. Install and launch your coin daemons</a>
### <a id="a_cd">11. Install and launch your coin daemons</a>
At this point your installation will be able to generate wallets, along with
keys and addresses for all supported coins. However, if you intend to do any
@ -374,7 +385,7 @@ ETC and ERC20 tokens.
Go to the [**Install Bitcoind and other supported coin daemons**][ib] wiki page
and follow the instructions for your coins of choice. You can skip the parts
about adding to the Windows path, since your `PATH` variable was taken care of
in [Step 5](#a_ev). Note that the daemons must be installed on both your
in [Step 4](#a_ev). Note that the daemons must be installed on both your
online and offline machines.
To transact ETH, ETC or ERC20 tokens you’ll need the latest Geth or Parity (for
@ -388,7 +399,7 @@ Please note that Ethereum daemons perform rather poorly under Windows due to
threading limitations. Unless you have very fast hardware, transacting and
syncing the blockchain will be painfully slow.
### <a id="a_do">11. You’re done!</a>
### <a id="a_do">12. You’re done!</a>
Congratulations, your installation is now complete, and you can proceed to
[**Getting Started with MMGen Wallet**][gs]. Note that all features supported
@ -406,12 +417,13 @@ MSYS2 too. Please be aware of the following, however:
### <a id="a_us">Upgrading MSYS2</a>
You should periodically upgrade your MSYS2 installation, especially when [new
releases][mh] appear. You can check your currently installed version of MSYS2
by issuing the command `pacman -Ss msys2-base`.
releases][mh] appear. The most reliable way to check your current MSYS2 version
is to examine the date on the installation binary, which you’ve hopefully saved
somewhere.
To perform the upgrade, just repeat [Step 3](#a_ug) of this guide.
To perform the upgrade, just repeat [Step 2](#a_ug) of this guide.
Note that [Step 4](#a_md) need not be performed, as the MMGen dependencies
Note that [Step 3](#a_md) need not be performed, as the MMGen dependencies
are already in `pacman`’s database.
### <a id="a_um">Upgrading MMGen Wallet</a>
@ -476,3 +488,4 @@ steps.
[ax]: command-help-autosign
[mc]: Altcoin-and-Forkcoin-Support#a_xmr
[ts]: Test-Suite
[vv]: https://docs.python.org/3/library/venv.html

@ -1,10 +1,9 @@
## Introduction
In addition to low-level subsystems, the suite tests the overall operation of
the MMGen Wallet’s commands by running them interactively as a user would. Thus
the test suite is useful not only for ensuring the MMGen Wallet system is
correctly installed and working on your platform but also for demonstrating how
it works.
MMGen Wallet’s commands by running them interactively as a user would. Thus the
test suite is useful not only for ensuring the MMGen Wallet system is correctly
installed and working on your platform but also for demonstrating how it works.
BTC-only testing requires installation of Bitcoin Core and pycoin only, while
altcoin testing requires additional helper programs and libraries, installation