From dc71b530159d2e9fd6351c177602eaa62b3c3423 Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Mon, 27 Nov 2023 09:09:21 +0000 Subject: [PATCH] modified: Install-MMGen-Wallet-on-Linux.md modified: Install-MMGen-Wallet-on-Microsoft-Windows.md modified: Test-Suite.md --- Install-MMGen-Wallet-on-Linux.md | 17 +++--- Install-MMGen-Wallet-on-Microsoft-Windows.md | 55 ++++++++++++-------- Test-Suite.md | 7 ++- 3 files changed, 46 insertions(+), 33 deletions(-) diff --git a/Install-MMGen-Wallet-on-Linux.md b/Install-MMGen-Wallet-on-Linux.md index a3f17d8..ebe417e 100644 --- a/Install-MMGen-Wallet-on-Linux.md +++ b/Install-MMGen-Wallet-on-Linux.md @@ -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 diff --git a/Install-MMGen-Wallet-on-Microsoft-Windows.md b/Install-MMGen-Wallet-on-Microsoft-Windows.md index 893f798..568f9a0 100644 --- a/Install-MMGen-Wallet-on-Microsoft-Windows.md +++ b/Install-MMGen-Wallet-on-Microsoft-Windows.md @@ -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 ``` -### 4. Set up your environment +### 4. Set up your shell environment 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. -### 5. Install the Python ECDSA library (offline install only) +### 5. Choose your Python environment + +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. + +### 6. Install the Python ECDSA library (offline install only) On your online machine: @@ -239,7 +250,7 @@ Copy the downloaded file to your offline machine and install: $ python3 -m pip install ecdsa-*.whl ``` -### 6. Install the standalone scrypt package (required for strong password hashing) +### 7. Install the standalone scrypt package (required for strong password hashing) 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 ``` -### 7. Clone and copy the secp256k1 library (offline install only) +### 8. Clone and copy the secp256k1 library (offline install only) 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 ``` -### 8. Install MMGen Wallet +### 9. Install MMGen Wallet 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. -### 9. Install Python Ethereum dependencies (if applicable) +### 10. Install Python Ethereum dependencies (if applicable) 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 ``` -### 10. Install and launch your coin daemons +### 11. Install and launch your coin daemons 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. -### 11. You’re done! +### 12. You’re done! 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: ### Upgrading MSYS2 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. ### Upgrading MMGen Wallet @@ -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 diff --git a/Test-Suite.md b/Test-Suite.md index 0cf68f0..ceee261 100644 --- a/Test-Suite.md +++ b/Test-Suite.md @@ -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