|
@@ -1,4 +1,29 @@
|
|
|
-## Introduction
|
|
|
+## Table of Contents
|
|
|
+
|
|
|
+#### [Introduction](#a_i)
|
|
|
+
|
|
|
+#### [Install MSYS2 and MMGen](#a_m)
|
|
|
+* [1. Install MSYS2](#a_ms)
|
|
|
+* [2. Set up PowerShell as your MSYS2 terminal](#a_ps)
|
|
|
+* [3. Upgrade MSYS2](#a_ug)
|
|
|
+ * [Online users](#a_ug1)
|
|
|
+ * [Offline install](#a_ug2)
|
|
|
+* [4. Install MSYS2 MMGen dependencies](#a_md)
|
|
|
+ * [Offline install](#a_md1)
|
|
|
+* [5. Set up your environment](#a_ev)
|
|
|
+* [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](#a_mm)
|
|
|
+* [10. Install Python Ethereum dependencies (Ethereum users only)](#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)
|
|
|
+* [MSYS2](#a_us)
|
|
|
+* [MMGen](#a_um)
|
|
|
+
|
|
|
+## <a name='a_i'>Introduction</a>
|
|
|
|
|
|
MMGen is supported on Microsoft Windows via [MSYS2][mh], which provides a
|
|
|
Unix-like command-line environment within Windows. Windows 7 and later versions
|
|
@@ -28,7 +53,9 @@ that’s *already* offline. These steps will be additionally outlined in
|
|
|
sections entitled **Offline install.** When doing an online install you may
|
|
|
skip over these sections.
|
|
|
|
|
|
-### 1. Install MSYS2
|
|
|
+## <a name='a_m'>Install MSYS2 and MMGen</a>
|
|
|
+
|
|
|
+### <a name='a_ms'>1. Install MSYS2</a>
|
|
|
|
|
|
Download the MSYS2 executable installer for your architecture from the [MSYS2
|
|
|
homepage][mh], but ignore the installation instructions there.
|
|
@@ -36,7 +63,7 @@ homepage][mh], but ignore the installation instructions there.
|
|
|
Run the installer, accepting all defaults. At the end of the installation,
|
|
|
uncheck “Run MSYS2 now” and click Finish.
|
|
|
|
|
|
-### 2. Set up PowerShell as your MSYS2 terminal
|
|
|
+### <a name='a_ps'>2. Set up PowerShell as your MSYS2 terminal</a>
|
|
|
|
|
|
MMGen is incompatible with the terminal provided by the MSYS2 project. However,
|
|
|
it works just fine with Windows’ native PowerShell.
|
|
@@ -57,9 +84,9 @@ following commands, for example:
|
|
|
|
|
|
will produce a listing of the same directory.
|
|
|
|
|
|
-### 3. Upgrade MSYS2
|
|
|
+### <a name='a_ug'>3. Upgrade MSYS2</a>
|
|
|
|
|
|
-#### Online users:
|
|
|
+#### <a name='a_ug1'>Online users:</a>
|
|
|
|
|
|
> Optionally edit your mirror lists as described in **Offline install** below.
|
|
|
|
|
@@ -75,7 +102,7 @@ will produce a listing of the same directory.
|
|
|
|
|
|
$ pacman -Su
|
|
|
|
|
|
-#### Offline install:
|
|
|
+#### <a name='a_ug2'>Offline install:</a>
|
|
|
|
|
|
> You must now download the required database and package files from the
|
|
|
> Internet on your online computer and copy them to your offline box. A USB
|
|
@@ -143,12 +170,12 @@ this folder.
|
|
|
|
|
|
> Your system upgrade is now complete.
|
|
|
|
|
|
-### 4. Install MSYS2 MMGen dependencies
|
|
|
+### <a name='a_md'>4. Install MSYS2 MMGen dependencies</a>
|
|
|
|
|
|
Now that your system’s fully up to date, you’re ready to install the packages
|
|
|
specifically required by MMGen.
|
|
|
|
|
|
-#### Offline install:
|
|
|
+#### <a name='a_md1'>Offline install:</a>
|
|
|
|
|
|
> As you’ve probably noticed by now, the command `pacman -S <pgknames>`
|
|
|
> installs MSYS2 packages and their dependencies, while `pacman -Sp
|
|
@@ -177,7 +204,7 @@ Install the MMGen requirements and their dependencies:
|
|
|
mingw64/mingw-w64-x86_64-python-pysocks \
|
|
|
mingw64/mingw-w64-x86_64-python-requests
|
|
|
|
|
|
-### 5. Set up your environment
|
|
|
+### <a name='a_ev'>5. Set up your environment</a>
|
|
|
|
|
|
Create the `/usr/local/bin` directory. This is where you’ll place various
|
|
|
binaries required by MMGen:
|
|
@@ -198,7 +225,7 @@ path):
|
|
|
Save and exit. Close and reopen the terminal window to update your working
|
|
|
environment.
|
|
|
|
|
|
-### 6. Install the Python ECDSA library (offline install only)
|
|
|
+### <a name='a_ec'>6. Install the Python ECDSA library (offline install only)</a>
|
|
|
|
|
|
On your online machine:
|
|
|
|
|
@@ -208,7 +235,7 @@ Copy the downloaded file to your offline machine and install:
|
|
|
|
|
|
$ pip3 install --user ecdsa-*.whl
|
|
|
|
|
|
-### 7. Install the standalone scrypt package (required for strong password hashing)
|
|
|
+### <a name='a_sc'>7. Install the standalone scrypt package (required for strong password hashing)</a>
|
|
|
|
|
|
Thanks to a faulty implementation of the `scrypt` function included in Python’s
|
|
|
`hashlib`, the standalone `scrypt` module is required for stronger-than-default
|
|
@@ -246,7 +273,7 @@ Save the file and exit the editor. Now build and install:
|
|
|
$ python3 setup.py build --compiler=mingw32
|
|
|
$ python3 setup.py install
|
|
|
|
|
|
-### 8. Clone and copy the secp256k1 library (offline install only)
|
|
|
+### <a name='a_se'>8. Clone and copy the secp256k1 library (offline install only)</a>
|
|
|
|
|
|
On your online machine, clone the secp256k1 repository from Github:
|
|
|
|
|
@@ -259,7 +286,7 @@ directory into it:
|
|
|
$ cp -a /path/to/secp256k1/repo/secp256k1 ~/.cache/mmgen
|
|
|
$ ls ~/.cache/mmgen/secp256k1/autogen.sh # check that the location is correct
|
|
|
|
|
|
-### 9. Install MMGen
|
|
|
+### <a name='a_mm'>9. Install MMGen</a>
|
|
|
|
|
|
Now you’re ready to install MMGen itself. On your online machine, clone the
|
|
|
repository:
|
|
@@ -290,7 +317,7 @@ before being pushed to the public repository, it’s not guaranteed to install o
|
|
|
run on MSYS2. Installation or runtime issues may also arise due to missing
|
|
|
dependencies or installation steps not yet covered in the documentation.
|
|
|
|
|
|
-### 10. Install Python Ethereum dependencies (Ethereum users only)
|
|
|
+### <a name='a_pe'>10. Install Python Ethereum dependencies (Ethereum users only)</a>
|
|
|
|
|
|
If you’ll be using MMGen with Ethereum, then you must install a few
|
|
|
dependencies. From the MMGen repository root, type the following:
|
|
@@ -306,7 +333,7 @@ directory containing the files and install them as follows:
|
|
|
|
|
|
$ pip3 install --no-deps --user *.whl
|
|
|
|
|
|
-### 11. Install and launch your coin daemons
|
|
|
+### <a name='a_cd'>11. Install and launch your coin daemons</a>
|
|
|
|
|
|
At this point your MMGen installation will be able to generate wallets, along
|
|
|
with keys and addresses for all supported coins. However, if you intend to do
|
|
@@ -317,8 +344,8 @@ 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. Note that the daemons must be installed on both your online and
|
|
|
-offline machines.
|
|
|
+in [Step 5](#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 OpenEthereum binary
|
|
|
build for Windows from the [OpenEthereum Github repository][og]. OpenEthereum,
|
|
@@ -334,7 +361,7 @@ Typically you’ll wish to launch OpenEthereum as follows:
|
|
|
|
|
|
More information on OpenEthereum’s command-line options can be found [here][pl].
|
|
|
|
|
|
-### 12. You’re done!
|
|
|
+### <a name='a_do'>12. You’re done!</a>
|
|
|
|
|
|
Congratulations, your installation is now complete, and you can proceed to
|
|
|
[**Getting Started with MMGen**][gs]. Note that all features supported by
|
|
@@ -347,12 +374,51 @@ Please be aware of the following, however:
|
|
|
+ The Bitcoin Cash Node daemon cannot handle non-ASCII pathnames. This is an
|
|
|
issue with the Bitcoin Cash Node implementation for Windows, not MMGen.
|
|
|
|
|
|
+## <a name='a_u'>Keeping your installation up to date</a>
|
|
|
+
|
|
|
+### <a name='a_us'>MSYS2</a>
|
|
|
+
|
|
|
+You should periodically upgrade your MSYS2 installation, especially when [new
|
|
|
+releases][mh] of the installer appear. You can check your currently installed
|
|
|
+version of MSYS2 by issuing the command `pacman -Ss msys2-base`.
|
|
|
+
|
|
|
+To perform the upgrade, just repeat [Step 3](#a_ug) of this guide. Assuming
|
|
|
+your currently configured download mirrors are functional, you can skip the
|
|
|
+parts relating to downloading and editing mirrorlists.
|
|
|
+
|
|
|
+Note that [Step 4](#a_md) need not be performed, as the MMGen dependencies
|
|
|
+are already in `pacman`’s database.
|
|
|
+
|
|
|
+### <a name='a_um'>MMGen</a>
|
|
|
+
|
|
|
+You should periodically upgrade your MMGen installation from the MMGen public
|
|
|
+repository, especially when [new releases][mr] appear. You can check your
|
|
|
+currently installed version of MMGen by issuing the command `mmgen-tool
|
|
|
+--version`.
|
|
|
+
|
|
|
+To perform the upgrade, enter the MMGen repository root on your online
|
|
|
+computer and issue the following commands:
|
|
|
+
|
|
|
+ $ git checkout master
|
|
|
+ $ git pull
|
|
|
+ $ git checkout stable_msys2 # See 'Note' to step 9
|
|
|
+ $ rm -r dist/* build/*
|
|
|
+ $ rm -r /mingw64/lib/python*/site-packages/{mmgen,MMGen}*
|
|
|
+ $ python3 -m build --no-isolation
|
|
|
+ $ cd ..
|
|
|
+ $ python3 -m pip install --upgrade mmgen/dist/*.whl
|
|
|
+
|
|
|
+To update your offline installation, copy the updated repository (after `git
|
|
|
+pull`) to your offline machine, `cd` to the root of the copied repository and
|
|
|
+continue from the `git checkout stable_msys2` step.
|
|
|
+
|
|
|
[mh]: https://www.msys2.org
|
|
|
[mp]: https://sourceforge.net/projects/msys2
|
|
|
[mw]: https://github.com/msys2/msys2/wiki
|
|
|
[ov]: https://github.com/mmgen/mmgen/releases/tag/v0.9.8
|
|
|
[sd]: https://download.sysinternals.com/files/SDelete.zip
|
|
|
[og]: https://github.com/openethereum/openethereum/releases
|
|
|
+[mr]: https://github.com/mmgen/mmgen/releases
|
|
|
[di]: Deprecated-MSWin-Installation
|
|
|
[ib]: Install-Bitcoind
|
|
|
[gs]: Getting-Started-with-MMGen
|