From d470c2a3b79649d0a6f4611f99243f5fd785deaa Mon Sep 17 00:00:00 2001 From: MMGen Date: Sat, 25 May 2019 15:47:20 +0000 Subject: [PATCH] Update documentation --- README.md | 3 + ...d-from-Source-on-Debian-or-Ubuntu-Linux.md | 30 +- doc/wiki/install-linux/Install-Bitcoind.md | 63 ++-- ...Install-MMGen-on-Debian-or-Ubuntu-Linux.md | 4 +- doc/wiki/install-mswin/Install-Bitcoind.md | 63 ++-- ...d-Its-Dependencies-on-Microsoft-Windows.md | 218 ------------- .../Install-MMGen-on-Microsoft-Windows.md | 296 ++++++++++++++++-- ...all-MinGW-and-MSYS-on-Microsoft-Windows.md | 82 ----- .../Altcoin-and-Forkcoin-Support.md | 42 +-- doc/wiki/using-mmgen/Subwallets.md | 125 ++++++++ 10 files changed, 507 insertions(+), 419 deletions(-) delete mode 100644 doc/wiki/install-mswin/Install-MMGen-and-Its-Dependencies-on-Microsoft-Windows.md delete mode 100644 doc/wiki/install-mswin/Install-MinGW-and-MSYS-on-Microsoft-Windows.md create mode 100644 doc/wiki/using-mmgen/Subwallets.md diff --git a/README.md b/README.md index 656c59d8..a73aaf8b 100644 --- a/README.md +++ b/README.md @@ -113,6 +113,8 @@ the more prosaic 2048-word [BIP39 wordlist][bw] used in most wallets today. > #### [Altcoin and Forkcoin support (ETH,ETC,XMR,ZEC,LTC,BCH and 144 Bitcoin-derived alts)][f] +> #### [Subwallets][U] + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [**Forum**][4] | @@ -139,3 +141,4 @@ Donate (BTC,BCH): 15TLdmi5NYLdqmtCqczUs5pBPkJDXRs83w [ew]: https://github.com/spesmilo/electrum/blob/1.9.5/lib/mnemonic.py [bw]: https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt [fl]: https://en.wiktionary.org/wiki/Wiktionary:Frequency_lists/Contemporary_poetry +[U]: https://github.com/mmgen/mmgen/wiki/Subwallets diff --git a/doc/wiki/install-linux/Install-Bitcoind-from-Source-on-Debian-or-Ubuntu-Linux.md b/doc/wiki/install-linux/Install-Bitcoind-from-Source-on-Debian-or-Ubuntu-Linux.md index e33fc4ec..c8f34df7 100644 --- a/doc/wiki/install-linux/Install-Bitcoind-from-Source-on-Debian-or-Ubuntu-Linux.md +++ b/doc/wiki/install-linux/Install-Bitcoind-from-Source-on-Debian-or-Ubuntu-Linux.md @@ -16,17 +16,23 @@ binaries are available for Bitcoin Core, Bitcoin ABC and Litecoin. See the ### Compile and install Bitcoin Core: -> Clone the Bitcoin Core repository from Github, configure, and build: +> Clone the Bitcoin Core repository from Github: $ git clone https://github.com/bitcoin/bitcoin.git $ cd bitcoin + +> Configure and build: + + $ git tag # look for your desired version in the tag list + $ git checkout $ ./autogen.sh $ ./configure --without-gui --with-incompatible-bdb $ make -j4 > The '-j4' option will speed the build process up by using 4 cores of a 4-core > processor, if you have them. If overheating issues are a problem for your CPU -> or you're short on memory, you may want to omit it or use '-j2'. +> or you're short on memory, you may want to omit the option or reduce the +> number of cores used. > For more detailed build information, consult the file [doc/build-unix.md][bu] > in the bitcoin source repository. @@ -44,14 +50,13 @@ binaries are available for Bitcoin Core, Bitcoin ABC and Litecoin. See the > regarding its safety or reliability.* > If you want to transact BCH, also known as “Bitcoin Cash” or “Bcash”, then -> clone the Bitcoin ABC repository, and configure and build exactly as you did -> with Bitcoin Core above: +> first clone the Bitcoin ABC repository: $ git clone https://github.com/Bitcoin-ABC/bitcoin-abc $ cd bitcoin-abc - $ ./autogen.sh - $ ./configure --without-gui --with-incompatible-bdb - $ make -j4 + +> Then configure and build using the same configure and build steps as with +> Bitcoin Core above. > The resulting executable is also named 'bitcoind', so you must install it > under a different name to avoid overwriting your Core daemon: @@ -61,15 +66,16 @@ binaries are available for Bitcoin Core, Bitcoin ABC and Litecoin. See the > From now on, you'll invoke the daemon as 'bitcoind-abc' instead of 'bitcoind'. -### Compile and install Litecoin (optional): +### Compile and install Litecoin Core (optional): -> Clone the Litecoin repository, compile and install: +> Clone the Litecoin Core repository: $ git clone https://github.com/litecoin-project/litecoin.git $ cd litecoin - $ ./autogen.sh - $ ./configure --without-gui --with-incompatible-bdb - $ make -j4 + +> Configure and build using the configure and build steps for Bitcoin Core, +> and then install as follows: + $ cd src $ sudo install -sv litecoind litecoin-cli /usr/local/bin diff --git a/doc/wiki/install-linux/Install-Bitcoind.md b/doc/wiki/install-linux/Install-Bitcoind.md index bb3013e7..ae855a8c 100644 --- a/doc/wiki/install-linux/Install-Bitcoind.md +++ b/doc/wiki/install-linux/Install-Bitcoind.md @@ -8,7 +8,7 @@ machine. The bitcoin daemon on the **online computer** requires a complete and up-to-date blockchain for tracking addresses. Since its work is more CPU and disk intensive, a more powerful computer is required here. You'll also need -plenty of free disk space for the growing blockchain (~160GB at the time of +plenty of free disk space for the growing blockchain (~220GB at the time of writing). Two blockchain operations are especially resource-intensive: **synchronizing @@ -21,15 +21,15 @@ more low-powered computer as your online machine. > **Bitcoin Core:** ->> Go to the Bitcoin Core [download page][01]. Choose the 32-bit or 64-bit ->> versions appropriate for your online and offline computers. Windows users ->> should choose the executable installer. +>> Go to the Bitcoin Core download page ([here][00] or [here][01]). Choose the +>> 32-bit or 64-bit versions appropriate for your online and offline computers. +>> Windows users should choose the executable installer. > **Bitcoin ABC (optional):** >> If you wish to transact BCH (Bcash), then download the appropriate [Bitcoin >> ABC binary][abc] for your system as well. Windows users should choose the ->> executable installer. +>> executable installer. >> *Consider the Bitcoin ABC binaries untrusted software. The author of the >> MMGen project makes no guarantees regarding their safety or reliability.* @@ -43,26 +43,32 @@ more low-powered computer as your online machine. > **Bitcoin Core:** ->> **Windows:** Run the Windows installer with the default settings. Add ->> 'C:\Program Files\Bitcoin\daemon' to your [path][05]. ->> **Linux:** Unpack the archive and copy the 'bitcoind' and 'bitcoin-cli' ->> binaries to /usr/local/bin. +>> **Windows:** Run the Windows installer with the default settings. +>> At the end of the installation process, uncheck the Run box to prevent the +>> client from starting. +>> Add `C:\Program Files\Bitcoin\daemon` to your [path][05]. +>> **Linux:** Unpack the archive and copy the `bitcoind` and `bitcoin-cli` +>> binaries to `/usr/local/bin`. > **Bitcoin ABC (optional):** ->> **Windows:** Run the Windows installer, installing into the alternate ->> folder 'C:\Program Files\Bitcoin_ABC'. Add 'C:\Program Files\Bitcoin_ABC\daemon' ->> to your [path][05]. Rename the file 'bitcoind' in that folder to ->> 'bitcoind-abc'. ->> **Linux:** Unpack the archive, rename 'bitcoind' to 'bitcoind-abc' and ->> copy it to /usr/local/bin. +>> **Windows:** Run the Windows installer with the default settings. +>> At the end of the installation process, uncheck the Run box to prevent the +>> client from starting. +>> Add `C:\Program Files\Bitcoin-abc\daemon` to your [path][05]. +>> Rename the file `bitcoind` in that folder to `bitcoind-abc` and +>> `bitcoin-cli` to `bitcoin-cli-abc`. +>> **Linux:** Unpack the archive, rename `bitcoind` to `bitcoind-abc` and +>> copy it to `/usr/local/bin`. > **Litecoin (optional):** ->> **Windows:** Run the Windows installer with the default settings. Add ->> 'C:\Program Files\Litecoin\daemon' to your [path][05]. ->> **Linux:** Unpack the archive and copy the 'litecoind' and ->> 'litecoin-cli' binaries to /usr/local/bin. +>> **Windows:** Run the Windows installer with the default settings. +>> At the end of the installation process, uncheck the Run box to prevent the +>> client from starting. +>> Add `C:\Program Files\Litecoin\daemon` to your [path][05]. +>> **Linux:** Unpack the archive and copy the `litecoind` and +>> `litecoin-cli` binaries to `/usr/local/bin`. ### Run (both online and offline computers): @@ -104,7 +110,7 @@ more low-powered computer as your online machine. $ bitcoin-cli help # ABC: - $ bitcoin-cli --rpcport=8442 help + $ bitcoin-cli-abc --rpcport=8442 help # Litecoin: $ litecoin-cli help @@ -113,18 +119,21 @@ more low-powered computer as your online machine. > your wallet.dat out of harm's way** before starting the daemon. The new > wallet now created will be used as your **tracking wallet**. -> If you're connected to the Internet, bitcoind will begin downloading and +> If you're connected to the Internet, the daemon(s) will begin downloading and > verifying the blockchain. This can take from several hours to several days -> depending on the speed of your computer and Internet connection. You can -> speed up your initial block download enormously by adding the `-assumevalid` -> option, followed by a recent block hash, to the command line. Recent block -> hashes can be found on any blockchain explorer site. +> depending on the speed of your computer, the size of the blockchain(s) in +> question and your Internet connection. You can speed up your initial block +> download enormously by adding the `-assumevalid` option, followed by a recent +> block hash, to the command line. Recent block hashes can be found on any +> blockchain explorer site. > For the offline daemons you may add the options `-maxconnections=0 -listen=0` > to the command line. Note that offline daemons start very quickly, since they -> have no blockchains, and use practically no CPU once running. +> have a blockchain consisting of one block, and use practically no CPU power +> once running. -[01]: https://bitcoin.org/en/download +[00]: https://bitcoin.org/bin/ +[01]: https://bitcoincore.org/bin/ [bd]: https://bitcoin.org/bin/blockchain/ [05]: Editing-the-user-path-in-Windows [abc]: https://download.bitcoinabc.org/ diff --git a/doc/wiki/install-linux/Install-MMGen-on-Debian-or-Ubuntu-Linux.md b/doc/wiki/install-linux/Install-MMGen-on-Debian-or-Ubuntu-Linux.md index b7f0f73e..5908f95c 100644 --- a/doc/wiki/install-linux/Install-MMGen-on-Debian-or-Ubuntu-Linux.md +++ b/doc/wiki/install-linux/Install-MMGen-on-Debian-or-Ubuntu-Linux.md @@ -3,9 +3,9 @@ > Install required Debian/Ubuntu packages: $ sudo apt-get install autoconf git libgmp-dev libssl-dev libtool wipe - $ sudo apt-get install python3-dev python3-ecdsa python3-pexpect python3-setuptools python3-crypto python3-nacl python3-pip + $ sudo apt-get install python3-dev python3-ecdsa python3-pexpect python3-setuptools python3-cryptography python3-nacl python3-pip python3-gmpy2 -> Using the [pip3][P] installer, install the Python scrypt library: +> Using the [pip3][P] installer, install the Python scrypt library (optional for Python >= v3.6): $ sudo -H pip3 install scrypt diff --git a/doc/wiki/install-mswin/Install-Bitcoind.md b/doc/wiki/install-mswin/Install-Bitcoind.md index bb3013e7..ae855a8c 100644 --- a/doc/wiki/install-mswin/Install-Bitcoind.md +++ b/doc/wiki/install-mswin/Install-Bitcoind.md @@ -8,7 +8,7 @@ machine. The bitcoin daemon on the **online computer** requires a complete and up-to-date blockchain for tracking addresses. Since its work is more CPU and disk intensive, a more powerful computer is required here. You'll also need -plenty of free disk space for the growing blockchain (~160GB at the time of +plenty of free disk space for the growing blockchain (~220GB at the time of writing). Two blockchain operations are especially resource-intensive: **synchronizing @@ -21,15 +21,15 @@ more low-powered computer as your online machine. > **Bitcoin Core:** ->> Go to the Bitcoin Core [download page][01]. Choose the 32-bit or 64-bit ->> versions appropriate for your online and offline computers. Windows users ->> should choose the executable installer. +>> Go to the Bitcoin Core download page ([here][00] or [here][01]). Choose the +>> 32-bit or 64-bit versions appropriate for your online and offline computers. +>> Windows users should choose the executable installer. > **Bitcoin ABC (optional):** >> If you wish to transact BCH (Bcash), then download the appropriate [Bitcoin >> ABC binary][abc] for your system as well. Windows users should choose the ->> executable installer. +>> executable installer. >> *Consider the Bitcoin ABC binaries untrusted software. The author of the >> MMGen project makes no guarantees regarding their safety or reliability.* @@ -43,26 +43,32 @@ more low-powered computer as your online machine. > **Bitcoin Core:** ->> **Windows:** Run the Windows installer with the default settings. Add ->> 'C:\Program Files\Bitcoin\daemon' to your [path][05]. ->> **Linux:** Unpack the archive and copy the 'bitcoind' and 'bitcoin-cli' ->> binaries to /usr/local/bin. +>> **Windows:** Run the Windows installer with the default settings. +>> At the end of the installation process, uncheck the Run box to prevent the +>> client from starting. +>> Add `C:\Program Files\Bitcoin\daemon` to your [path][05]. +>> **Linux:** Unpack the archive and copy the `bitcoind` and `bitcoin-cli` +>> binaries to `/usr/local/bin`. > **Bitcoin ABC (optional):** ->> **Windows:** Run the Windows installer, installing into the alternate ->> folder 'C:\Program Files\Bitcoin_ABC'. Add 'C:\Program Files\Bitcoin_ABC\daemon' ->> to your [path][05]. Rename the file 'bitcoind' in that folder to ->> 'bitcoind-abc'. ->> **Linux:** Unpack the archive, rename 'bitcoind' to 'bitcoind-abc' and ->> copy it to /usr/local/bin. +>> **Windows:** Run the Windows installer with the default settings. +>> At the end of the installation process, uncheck the Run box to prevent the +>> client from starting. +>> Add `C:\Program Files\Bitcoin-abc\daemon` to your [path][05]. +>> Rename the file `bitcoind` in that folder to `bitcoind-abc` and +>> `bitcoin-cli` to `bitcoin-cli-abc`. +>> **Linux:** Unpack the archive, rename `bitcoind` to `bitcoind-abc` and +>> copy it to `/usr/local/bin`. > **Litecoin (optional):** ->> **Windows:** Run the Windows installer with the default settings. Add ->> 'C:\Program Files\Litecoin\daemon' to your [path][05]. ->> **Linux:** Unpack the archive and copy the 'litecoind' and ->> 'litecoin-cli' binaries to /usr/local/bin. +>> **Windows:** Run the Windows installer with the default settings. +>> At the end of the installation process, uncheck the Run box to prevent the +>> client from starting. +>> Add `C:\Program Files\Litecoin\daemon` to your [path][05]. +>> **Linux:** Unpack the archive and copy the `litecoind` and +>> `litecoin-cli` binaries to `/usr/local/bin`. ### Run (both online and offline computers): @@ -104,7 +110,7 @@ more low-powered computer as your online machine. $ bitcoin-cli help # ABC: - $ bitcoin-cli --rpcport=8442 help + $ bitcoin-cli-abc --rpcport=8442 help # Litecoin: $ litecoin-cli help @@ -113,18 +119,21 @@ more low-powered computer as your online machine. > your wallet.dat out of harm's way** before starting the daemon. The new > wallet now created will be used as your **tracking wallet**. -> If you're connected to the Internet, bitcoind will begin downloading and +> If you're connected to the Internet, the daemon(s) will begin downloading and > verifying the blockchain. This can take from several hours to several days -> depending on the speed of your computer and Internet connection. You can -> speed up your initial block download enormously by adding the `-assumevalid` -> option, followed by a recent block hash, to the command line. Recent block -> hashes can be found on any blockchain explorer site. +> depending on the speed of your computer, the size of the blockchain(s) in +> question and your Internet connection. You can speed up your initial block +> download enormously by adding the `-assumevalid` option, followed by a recent +> block hash, to the command line. Recent block hashes can be found on any +> blockchain explorer site. > For the offline daemons you may add the options `-maxconnections=0 -listen=0` > to the command line. Note that offline daemons start very quickly, since they -> have no blockchains, and use practically no CPU once running. +> have a blockchain consisting of one block, and use practically no CPU power +> once running. -[01]: https://bitcoin.org/en/download +[00]: https://bitcoin.org/bin/ +[01]: https://bitcoincore.org/bin/ [bd]: https://bitcoin.org/bin/blockchain/ [05]: Editing-the-user-path-in-Windows [abc]: https://download.bitcoinabc.org/ diff --git a/doc/wiki/install-mswin/Install-MMGen-and-Its-Dependencies-on-Microsoft-Windows.md b/doc/wiki/install-mswin/Install-MMGen-and-Its-Dependencies-on-Microsoft-Windows.md deleted file mode 100644 index 65262968..00000000 --- a/doc/wiki/install-mswin/Install-MMGen-and-Its-Dependencies-on-Microsoft-Windows.md +++ /dev/null @@ -1,218 +0,0 @@ -***Warning: though the MMGen installation process on Windows has become easier, -it still requires patience, and the user experience is less than optimal. -You're urged to use the prebuilt [MMGenLive][20] USB image instead. It's now -the preferred way for all non-Linux users to run MMGen.*** - -### 1. Create the build directory: - -Enter your MSYS environment, create the directory `/build` and move to it. -This is where you'll be unpacking and building archives: - - $ mkdir /build - $ cd /build - -If the machine you're installing on is online, you can download the various -tarballs and zipped archives you need from the Internet exactly as described in -the instructions below. If you're offline, you'll need to download them first -on another machine and then transfer them to the install computer using a USB -stick, for example. - -In either case, you'll probably be downloading the archives to a folder -somewhere outside the root of your MSYS filesystem. To access it within MSYS, -use `/c/` for drive `C:`, `/d/` for drive `D:` and so forth. A full path to an -archive would thus look something like this: -`/c/my_downloaded_archives/archive_name.tar.gz`. - -### 2. Build OpenSSL: - -Grab the v1.0.x [tarball][06] from openssl.org, unpack and build: - - $ tar -xzf /openssl-1.0.2j.tar.gz - $ cd openssl-1.0.2j - $ ./Configure mingw64 --openssldir=/usr - $ make - $ make install - -### 3. Build the Scrypt Python module: - -The latest scrypt tarball available from [Python][07] at this writing -(scrypt-0.8.0.tar.gz) has missing files and doesn't build, so grab the latest -[zipfile][07z] from the scrypt source repository, unzip and build: - - $ cd /build - $ unzip /91d194b6a6bd.zip - $ cd mhallin-py-scrypt-91d194b6a6bd - -Open the file `setup.py` in your text editor. Change the line reading - - from setuptools import setup, Extension - -to read - - from distutils.core import setup, Extension - -Right before the line beginning with - - scrypt_module = Extension( - -add the following lines (with no indentation): - - library_dirs = [r'c:\mingw64\x86_64-w4-mingw32\lib','/msys/lib'] - includes = [r'c:\msys\include'] - -Save `setup.py`, build and install: - - $ python setup.py build --compiler=mingw32 - $ python setup.py install - -Now, to solve a problem with the interpreter not finding the scrypt extension -module, we have to do this little fixup: - - $ cd /mingw/opt/lib/python2.7/site-packages - $ unzip scrypt*.egg - -### 4. Build the pycrypto Python module: - -Download the latest pycrypto [tarball][02] from the Python website and unpack it: - - $ cd /build - $ tar -xzf /pycrypto-2.6.1.tar.gz - $ cd pycrypto-2.6.1 - -Open the file `setup.py` in your text editor. Remove *exactly* four spaces at -the beginning of this line: - - self.__remove_extensions(["CryptoPublicKey._fastmath"]) - -to move it one level of indentation to the left. Save the file and exit the -editor. Now build and install: - - $ python setup.py build --compiler=mingw32 - $ python setup.py install - -### 5. Install the ecdsa Python module: - -Grab the latest python-ecdsa [tarball][03], unpack and build: - - $ cd /build - $ tar -xzf /ecdsa-0.13.tar.gz - $ cd ecdsa-0.13 - $ python setup.py install - -### 6. Install the ed25519ll Python module (required for Monero address generation): - -Grab the latest ed25519ll [tarball][43], unpack and build: - - $ cd /build - $ tar -xzf /ed25519ll-0.6.tar.gz - $ cd ed25519ll-0.6 - -Open the file `setup.py` in your text editor. Change the line reading - - plat_name = get_platform().replace('-', '_') - -to read - - plat_name = 'win64' - -Exit the editor and run: - - $ python setup.py install - -### 7. Install the pysha3 Python module (required for Monero and Ethereum address generation): - -Grab the latest pysha3 [tarball][44], unpack and build: - - $ cd /build - $ tar -xzf /pysha3-1.0.2.tar.gz - $ cd pysha3-1.0.2 - $ python setup.py install - -### 8. Install the colorama Python module: - -Grab the latest colorama [tarball][14], unpack and build: - - $ cd /build - $ tar -xzf /colorama-0.3.7.tar.gz - $ cd colorama-0.3.7 - $ python setup.py install - -### 9. Install the pexpect Python module (needed for test suite): - -Grab the latest pexpect [tarball][15], unpack and build: - - $ cd /build - $ tar -xzf /pexpect-4.2.1.tar.gz - $ cd pexpect-4.2.1 - $ python setup.py install - -### 10. Install sdelete utility (needed for secure wallet deletion): - -Grab the latest SDelete [zip archive][16], unzip and copy `sdelete.exe` to -your execution path (`c:\windows`, for example). - -### 11. Build libsecp256k1: - -Libsecp256k1 requires GNU autotools to build, and they're not included in the -MinGW-64 distribution for some reason, so you'll have to retrieve and unpack -them yourself. You'll need these archives: - -> * [autoconf][31] -> * [automake][32] -> * [libtool][33] - -Unpack them in your /mingw directory and fix up some filenames: - - $ cd /mingw - $ tar -xzf /autoconf2.5-2.68-1-mingw32-bin.tar.lzma - $ tar -xzf /automake1.11-1.11.1-1-mingw32-bin.tar.lzma - $ tar -xzf /libtool-2.4-1-mingw32-bin.tar.lzma - $ cd bin - $ cp autoconf-* autoconf - $ cp automake-* automake - $ cp aclocal-* aclocal - $ cp autoreconf-* autoreconf - -Now get the latest libsecp256k1 [zip archive][11] from GitHub, unpack, build and -install: - - $ cd /build - $ unzip.exe /master.zip - $ cd secp256k1-master - $ ./autogen.sh - $ ./configure - $ make - $ make install - -### 12. Install MMGen: - -Get the [zip archive][10] of the latest stable version from GitHub, unpack and install: - - $ cd /build - $ unzip.exe /stable_mswin.zip - $ cd mmgen-stable_mswin - $ python setup.py build --compiler=mingw32 - $ sudo ./setup.py install - -After first installing and starting the [Bitcoin daemon][77], you may then run -the MMGen test suite to make sure your installation's working: - - $ test/test.py -s - -[02]: https://pypi.python.org/packages/60/db/645aa9af249f059cc3a368b118de33889219e0362141e75d4eaf6f80f163/pycrypto-2.6.1.tar.gz#md5=55a61a054aa66812daf5161a0d5d7eda -[03]: https://pypi.python.org/packages/f9/e5/99ebb176e47f150ac115ffeda5fedb6a3dbb3c00c74a59fd84ddf12f5857/ecdsa-0.13.tar.gz#md5=1f60eda9cb5c46722856db41a3ae6670 -[06]: https://www.openssl.org/source/openssl-1.0.2j.tar.gz -[07]: https://pypi.python.org/pypi/scrypt/ -[07z]: https://bitbucket.org/mhallin/py-scrypt/get/91d194b6a6bd.zip -[10]: https://github.com/mmgen/mmgen/archive/stable_mswin.zip -[14]: https://pypi.python.org/packages/f0/d0/21c6449df0ca9da74859edc40208b3a57df9aca7323118c913e58d442030/colorama-0.3.7.tar.gz#md5=349d2b02618d3d39e5c6aede36fe3c1a -[15]: https://pypi.python.org/packages/e8/13/d0b0599099d6cd23663043a2a0bb7c61e58c6ba359b2656e6fb000ef5b98/pexpect-4.2.1.tar.gz#md5=3694410001a99dff83f0b500a1ca1c95 -[16]: https://download.sysinternals.com/files/SDelete.zip -[20]: https://github.com/mmgen/MMGenLive -[11]: https://github.com/bitcoin-core/secp256k1/archive/master.zip -[31]: https://sourceforge.net/projects/mingw/files/MinGW/Extension/autoconf/autoconf2.5/autoconf2.5-2.68-1/autoconf2.5-2.68-1-mingw32-bin.tar.lzma -[32]: https://sourceforge.net/projects/mingw/files/MinGW/Extension/automake/automake1.11/automake1.11-1.11.1-1/automake1.11-1.11.1-1-mingw32-bin.tar.lzma -[33]: https://sourceforge.net/projects/mingw/files/MinGW/Extension/libtool/libtool-2.4-1/libtool-2.4-1-mingw32-bin.tar.lzma -[77]: Install-Bitcoind -[43]: https://pypi.python.org/packages/8a/34/b27ee501205893cf7cc537b4e6553a557eaaca14c4755aa1eaa500afac57/ed25519ll-0.6.tar.gz#md5=35b3190ffefb631e7c5a45d96d768f80 -[44]: https://pypi.python.org/packages/73/bf/978d424ac6c9076d73b8fdc8ab8ad46f98af0c34669d736b1d83c758afee/pysha3-1.0.2.tar.gz#md5=59cd2db7a9988c1f3f6aee40145e0c96 diff --git a/doc/wiki/install-mswin/Install-MMGen-on-Microsoft-Windows.md b/doc/wiki/install-mswin/Install-MMGen-on-Microsoft-Windows.md index ae737d65..a0157747 100644 --- a/doc/wiki/install-mswin/Install-MMGen-on-Microsoft-Windows.md +++ b/doc/wiki/install-mswin/Install-MMGen-on-Microsoft-Windows.md @@ -1,25 +1,281 @@ -***Warning: though the MMGen installation process on Windows is now easier, -it still requires patience, and the user experience is less than optimal. -You're urged to use the prebuilt [MMGenLive][20] USB image instead. It's now -the preferred way for all non-Linux users to run MMGen.*** +## Introduction -***Windows XP warning: MMGen is no longer officially supported on Windows XP due -to incompatibilities with the Crypto.Random module. The scripts run, but the -security of your random numbers cannot be guaranteed. Use at your own risk.*** +MMGen is supported on Microsoft Windows via [MSYS2][mh], which provides a +Unix-like command-line environment within Windows. Windows 7 and later versions +are supported. -Install MMGen on Windows by completing the following three steps: +MSYS2 is the successor project to MinGW-64 and the earlier MSYS, bringing many +improvements such as package management and support for Python 3. The MSYS2 +project page is located [here][mp] and its wiki [here][mw]. ->> 1. Install MinGW and MSYS ([WinXP][03]|[>=Win7][01]), if you haven't already; ->> 2. Install MMGen's dependencies (excluding the bitcoin daemons) and MMGen itself ([WinXP][04]|[>=Win7][02]); and ->> 3. [Install the offline and online bitcoin daemons (bitcoind)][07]. +*Note: an [older version][ov] of MMGen can be run under MinGW-64 and MSYS, but +its use is deprecated. Installation instructions for MMGen under MinGW-64 and +MSYS are archived [here][di] for historical interest only.* -Congratulations, your MMGen installation is now complete! Now you can -proceed to [**Getting Started with MMGen**][08]. +Before you get started, just a reminder that MMGen must be installed on two +computers, one online and one offline, to be used securely. All operations +involving private data—wallet generation, address generation and transaction +signing—are handled offline, while the online installation takes care of +tracking balances and creating and sending transactions. -[01]: Install-MinGW-64-and-MSYS-on-Microsoft-Windows -[02]: Install-MMGen-and-Its-Dependencies-on-Microsoft-Windows -[03]: Install-MinGW-and-MSYS-on-Windows-XP -[04]: Install-MMGen-and-Its-Dependencies-on-Windows-XP -[07]: Install-Bitcoind -[08]: Getting-Started-with-MMGen -[20]: https://github.com/mmgen/MMGenLive +This means that once you’ve finished the install process, the computer you’ve +designated for offline use must be taken offline **permanently.** Furthermore, +its wi-fi and bluetooth interfaces should be disabled as well to safeguard +against the possibility of private data leakage. + +With some extra steps, it’s possible to perform the installation on a machine +that’s *already* offline. These steps will be additionally outlined in +sections entitled “Offline users”. When doing an online install you may skip +over these sections. + +### 1. Install MSYS2 + +Download the MSYS2 executable installer for your architecture from the [MSYS2 +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 + +MMGen is incompatible with the terminal provided by the MSYS2 project. However, +it works just fine with Windows’ native PowerShell. + +Drag or copy a PowerShell icon to the desktop, rename it to “MSYS2”, then right +click the icon and select Properties. After the existing path in the Target +text window, append a space followed by the text `C:\\msys64\usr\bin\bash.exe +--login` + +Save your changes and double click the icon to launch your MSYS2-enabled +PowerShell. From now on, all your work will be done in this terminal. + +### 3. Upgrade MSYS2 + +#### Online users: + +> Optionally download and edit your mirror lists as described in **Offline +> users** below. + +> Update the package database and core system packages: + + $ pacman -Syu + +> Exit and restart the terminal. If you’re using custom mirror lists, they were +> overwritten by the update operation, so you must restore them from your +> modified versions. + +> Now complete updating the packages: + + $ pacman -Su + +#### Offline users: + +> 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 +> flash drive works ideally for this. + +> It’s highly recommended to update the mirror list files located in the +> directory `/etc/pacman.d`, as these lists allow you to specify the servers +> you’ll be downloading from. To view the contents of these files, issue the +> following commands in your terminal: + + $ cat /etc/pacman.d/mirrorlist.msys + $ cat /etc/pacman.d/mirrorlist.mingw64 + $ cat /etc/pacman.d/mirrorlist.mingw32 + +> Note that the first-listed server is the one used by default. On your online +> computer, download more recent versions of these files from the MSYS2 Github +> repository: + +>> +>> +>> + +> Optionally edit the files using a text editor such as Notepad, placing the +> server you wish to use first in the list. Security-conscious users will +> prefer the HTTPS servers. The yandex mirror seems to be the fastest as of +> this writing. Now transfer the mirror files to your offline computer, +> replacing the old ones at `C:\\msys64\etc\pacman.d`. You can check that the +> files have indeed been replaced by reissuing the `cat` commands above. + +> You need to update your database files as well. The database files and their +> associated signature files can be listed by issuing the following command: + + $ ls /var/lib/pacman/sync + +> Download up-to-date versions of these files from the MSYS2 project site: + +>> +>> +>> +>> +>> +>> + +> Copy the files to your offline machine as you did with the mirror files, replacing +> the originals at `C:\msys64\var\lib\pacman\sync`. + +> Now issue the following command: + + $ pacman -Sup + +> This will produce a list of download URLs. If you add `> urls.txt` to the end +> of this command, its output will be saved in the file `urls.txt`, which you +> can then copy to your online machine. (This redirection trick works for most +> shell commands, by the way.) On your online machine, download the files +> listed in `urls.txt`. Transfer the downloaded files to your offline machine, +> copying them to the package cache directory `C:\msys64\var\cache\pacman\pkg`. + +> Now issue the following command to perform the initial upgrade: + + $ pacman -Su + +> When the process is finished, close your terminal window as requested and +> reopen another one. Your mirror lists were overwritten by the upgrade +> operation, so you must restore them from your modified versions. + +> Now reissue the `pacman -Sup` command, which will generate a much longer list +> of URLs this time. Download and copy the listed files to the package cache +> directory just as you did with the previous list. Invoke `pacman -Su` once +> again to complete your system upgrade. + +### 4. Install MSYS2 MMGen dependencies + +Now that your system’s fully up to date, you’re ready to install the packages +specifically required by MMGen. + +#### Offline users: + +> The command `pacman -S ` installs the requested MSYS2 packages, +> while `pacman -Sp ` prints a list of download URLs for the packages +> and their dependencies. So before running the command shown below, you’ll +> first need to issue it with `-Sp` instead of `-S` to produce a URL list. +> Download these URLs on your online machine and copy the downloaded files to +> the package cache directory of your offline machine just as you did with the +> system upgrade. + +Install the packages and their dependencies: + + $ pacman -S tar git nano vim \ + mingw64/mingw-w64-x86_64-python3-cryptography \ + mingw64/mingw-w64-x86_64-python3-six \ + mingw64/mingw-w64-x86_64-python3-pexpect \ + mingw64/mingw-w64-x86_64-python3-gmpy2 \ + mingw64/mingw-w64-x86_64-libsodium \ + mingw64/mingw-w64-x86_64-python3-pynacl \ + mingw64/mingw-w64-x86_64-python3-pip + +### 5. Set your PATH environmental variable + +Open your shell’s runtime configuration file in a text editor: + + $ nano ~/.bashrc + +Add the following line to the end of the file, save and exit: + + export PATH="/mingw64/bin:$PATH:/c/Program Files/Bitcoin/daemon:/c/Program Files/Litecoin/daemon:/c/Program Files/Bitcoin-abc/daemon" + +Close and reopen the terminal window to update your working environment. + +### 6. Install the remaining MMGen dependencies + +Three of MMGen’s Python dependencies, `ecdsa`, `py_ecc` and `mypy_extensions`, +are not provided by MSYS2. If you’re online, you can install them using the pip +package installer as follows: + + $ pip3 install --no-deps ecdsa==0.13 py_ecc==1.6.0 mypy_extensions==0.4.1 + +For an offline install, first download the packages on your online machine like +this: + + $ pip3 download --no-deps ecdsa==0.13 py_ecc==1.6.0 mypy_extensions==0.4.1 + +Then transfer the `*.whl` files to your offline machine, `cd` to the directory +containing the files and install them as follows: + + $ pip3 install --no-deps *.whl + +### 7. Install MMGen + +Now you’re ready to install MMGen itself. On your online machine, clone the +repository: + + $ git clone https://github.com/mmgen/mmgen + Cloning into ’mmgen’... + +If you’re doing an offline install, you can then copy the cloned mmgen directory +to your offline machine. + +Enter the directory and install: + + $ cd mmgen + $ git checkout stable_msys2 + $ ./setup.py install + +### 8. Install and launch your coin daemons + +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 +any transacting, as you probably do, you’ll need to install and launch a coin +daemon or daemons. MMGen has full transaction support for BTC, BCH, LTC, ETH, +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. + +To transact ETH, ETC or ERC20 tokens you’ll need the latest Windows `parity.exe` +binary from the [Parity Github repository][pg]. Parity, unlike the other coin +daemons, needs to be installed on the online machine only. Copy the binary to +your executable path, preferably `C:\\msys64\usr\local\bin`. If the target +directory doesn’t exist yet, create it in your terminal like this: + + $ mkdir -p /usr/local/bin + +Typically you’ll wish to launch Parity as follows: + + $ parity.exe --jsonrpc-apis=all + +More information on Parity’s command-line options can be found [here][pl]. + +### 9. You’re done! + +Congratulations, your installation is now complete, and you can proceed to +[**Getting Started with MMGen**][gs]. Before doing so, however, you might want +to acquaint yourself with some caveats regarding running MMGen on +Microsoft Windows: + + + [Autosigning][X] is not supported on Windows and is not likely to be in the + future. + + [Monero wallet creation/syncing][M] support is also lacking due to password + file descriptor issues with `monero-wallet-cli`. + + Due to unpredictable behavior of MSYS2's Python `getpass()` implementation, + passwords containing non-ASCII characters should be entered using the + `--echo-passphrase` option or via a password file. Otherwise, these + symbols might end up being silently ignored. + If you have an all-ASCII wallet password and wish to silence the annoying + warning you’re getting before every password prompt, set `mswin_pw_warning` + to `false` in `mmgen.cfg`. + If you *really* don't want to have your passwords echoed, you may test whether + `getpass()` is reading your non-ASCII input correctly by running the script + `test/misc/password_entry.py`. If the script reads back the characters + exactly as you entered them, then you’re probably safe and can go ahead and + disable the warning. + + Though MSYS2 support is well tested and considered stable, it’s a new feature + and other glitches might remain. If you think you've found a bug, don't + hesistate to file an issue at . + + +[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 +[di]: Deprecated-MSWin-Installation +[ib]: Install-Bitcoind +[gs]: Getting-Started-with-MMGen +[pg]: https://github.com/paritytech/parity-ethereum/releases +[pl]: Altcoin-and-Forkcoin-Support#a_par +[X]: autosign-[MMGen-command-help] +[M]: Altcoin-and-Forkcoin-Support#a_xmr diff --git a/doc/wiki/install-mswin/Install-MinGW-and-MSYS-on-Microsoft-Windows.md b/doc/wiki/install-mswin/Install-MinGW-and-MSYS-on-Microsoft-Windows.md deleted file mode 100644 index 4167ba0b..00000000 --- a/doc/wiki/install-mswin/Install-MinGW-and-MSYS-on-Microsoft-Windows.md +++ /dev/null @@ -1,82 +0,0 @@ -MinGW (Minimal GNU for Windows) provides the gcc compiler and related tools for -compiling source code into Windows binaries. MSYS provides a Unix-like -environment with basic Unix shell commands. MinGW and MSYS are part of the -same project and are designed to be used together. - -Complete hypertexed lists of the required MinGW and MSYS archive files are -provided below for convenient downloading. Save the archives into two separate -temporary directories (`mingw` and `msys`, for example). - -> * [MinGW archive list][02] -> * [MSYS archive list][03] - -##### Note: these lists were up to date at the time of writing (April 2014). More recent versions may be available in the [MinGW repository][01] as you read this, but hunting for them isn't likely to be worth your time. - - -Unpack the basic-bsdtar archive (in the MinGW archives) and copy the executable -`basic-bsdtar.exe` to your path (e.g. `C:\WINDOWS\system32`). - -From the DOS prompt, run `mkdir C:\mingw` to create the directory `C:\mingw`. -Run `cd C:\mingw` to move to the directory. Unpack each of the MinGW archives -(except for `basic-bsdtar`) as follows: - - basic-bsdtar -xf - -Create a `C:\msys` directory the same way, move to it and repeat the above -unpacking procedure with the MSYS archives. - -Add `C:\mingw\bin` to your user path. Consult [this page][05] for instructions -on editing your user path. - -Close the command prompt window and open a new one. Launch the MSYS shell with -the command `C:\msys\bin\bash.exe --login`. You'll now be in the home -directory of your MSYS environment. - -If you want be able to launch MSYS from an icon instead of typing the above -command all the time, then do the following: Make a copy of the "Command Line" -icon on your desktop and rename it to "MSYS". Right click on the icon, select -"Properties" and change the highlighted command path to `C:\msys\bin\bash.exe ---login`. You may also want to change the "Home Folder" field to your MSYS home -directory, `C:\msys\home\Admin` for the Admin user. - -Note: At this point you're advised to read [**A word on text editors**][00] -before proceeding further with your installation. - -Run the command `mount c:/mingw /mingw` to include your MinGW installation in -the MSYS tree. So you won't have to run this command every time you log in to -MSYS, open the file `/etc/fstab` in your text editor and add the line `c:/mingw -/mingw` (if it's not already there). - -#### Unix commands and environment: - -If you're new to Unix, you should learn a few key commands: - -> * `ls` - view directory contents (`ls -l` for a long view) -> * `rm` - remove files (`rm -r` to remove entire directory trees) -> * `rmdir` - remove an empty directory -> * `cp` - copy a file (`cp -a` to copy directory trees) -> * `mv` - move a file or directory -> * `cat` - output a file to screen -> * `less` - view a file page-by-page, with scrollback - -Command help texts can be accessed with the `--help` switch. The MSYS root -directory is `/`. Drive letter `C:` can be accessed as `/c/`. - -Environmental variables may be viewed with the `env` command. Individual -variables may be displayed like this: - - $ echo $PATH - -and set like this: - - $ set PATH=$PATH:/home/Admin/bin - -Sometimes variables must be exported to be visible to called programs: - - $ export PATH - -[00]: A-word-on-text-editors -[01]: http://sourceforge.net/projects/mingw/files/ -[02]: Required-MinGW-Archives -[03]: Required-MSYS-Archives -[05]: Editing-the-user-path-in-Windows diff --git a/doc/wiki/using-mmgen/Altcoin-and-Forkcoin-Support.md b/doc/wiki/using-mmgen/Altcoin-and-Forkcoin-Support.md index 14791254..9e143656 100644 --- a/doc/wiki/using-mmgen/Altcoin-and-Forkcoin-Support.md +++ b/doc/wiki/using-mmgen/Altcoin-and-Forkcoin-Support.md @@ -2,7 +2,7 @@ #### [Full support for Ethereum (ETH), Ethereum Classic (ETC) and ERC20 Tokens](#a_eth) * [Install and run Parity Ethereum](#a_par) -* [Install the Pyethereum library](#a_pe) +* [Install Ethereum dependencies](#a_ed) * [Transacting and other basic operations](#a_tx) * [Creating and deploying ERC20 tokens](#a_dt) @@ -41,41 +41,21 @@ To run the daemon offline, use `--mode=offline`, otherwise `--mode=active`. You may require other options as well. Consult `parity --help` for the full list. -#### Install the Pyethereum library +#### Install Ethereum dependencies -Signing of ETH and ETC transactions is handled by the [pyethereum][y] library. +Ensure that Python version 3.6 or above is installed on your system: -First, using the [pip3][P] Python package installer, install the following -dependencies: + $ python3 --version -*Note: Ubuntu Xenial users will have to upgrade the Python interpreter and -Python dependencies listed in the [Install wiki][iw] from version 3.5 to 3.6 -before proceeding. This can be done by adding the Bionic repository to -'sources.list' and reinstalling the relevant packages with '-t bionic'* +If the version is below 3.6.0, then you must upgrade the Python interpreter and +Python dependencies listed in the [Install wiki][iw] before proceeding. Ubuntu +users can do this by adding the Bionic repository to 'sources.list' and +reinstalling the relevant packages with '-t bionic' - $ sudo -H pip3 install wheel future pysha3 PyYAML py_ecc rlp +Install the Ethereum-specific Python dependencies. The `--no-deps` option +will prevent pip from installing a lot of unneeded stuff: -As of this writing, the current “stable” version of pyethereum (2.3.2) is -broken, so we must check out a more recent version from Github: - - $ git clone https://github.com/ethereum/pyethereum - $ cd pyethereum - $ git checkout b704a5c - -To prevent the library from auto-installing a lot of unneeded dependencies -(Pycryptodome in particular, which would stomp on our existing Pycrypto -installation) we need to edit the file 'requirements.txt' and remove the -following unneeded packages: - - coincurve - pbkdf2 - pyethash - pycryptodome - repoze.lru - -Now we can proceed with the install: - - $ sudo python3 ./setup.py install + $ sudo -H pip3 install --no-deps py_ecc==1.6.0 mypy_extensions==0.4.1 #### Transacting and other basic operations diff --git a/doc/wiki/using-mmgen/Subwallets.md b/doc/wiki/using-mmgen/Subwallets.md new file mode 100644 index 00000000..c9ad1b6c --- /dev/null +++ b/doc/wiki/using-mmgen/Subwallets.md @@ -0,0 +1,125 @@ +### Introduction + +Beginning with Version 0.11.0, every MMGen wallet has a two sets of +associated subwallets with “long“ and “short” seeds. + +An MMGen subwallet is identical to an ordinary MMGen wallet in every respect. +This provides a real-world security benefit, as it prevents an attacker from +knowing whether the wallet is indeed a subwallet, i.e. whether it has a parent +from which it was derived. + +Subwallets are specified by a “Subseed Index” consisting of: + + a) an integer in the range 1-1000000, plus + b) an optional single letter, ‘L’ or ‘S’ + +The letter designates the length of the subwallet’s seed. If omitted, ‘L’ is +assumed. + +Long (‘L’) subwallets have the same seed length as their parent wallet +(typically 256 bits), while short (‘S’) subwallets always have 128-bit seeds. +Long and short subwallets for a given index are derived independently, so both +may be used. + +If you have a default wallet installed, you may view the Seed IDs of its +subwallets like this: + + $ mmgen-tool list_subseeds 1-5 + Parent Seed: DF449DA4 (256 bits) + + Long Subseeds Short Subseeds + ------------- -------------- + 1L: FC9A8735 1S: 930E1AD5 + 2L: 62B02F54 2S: DF14AB49 + 3L: 9E884E99 3S: AD3ABD98 + 4L: DB595AE1 4S: 3E885EC4 + 5L: 36D5A0D1 5S: 30D66FF5 + +Here a range of 1-5 was chosen. Indexes of up to one million are allowed, which +means every wallet has a total of two million potential subwallets. + +Subwallets may be referenced either by their Subseed Index or Seed ID: + + $ mmgen-tool get_subseed 4S + 3E885EC4 + + $ mmgen-tool get_subseed_by_seed_id 3E885EC4 + 4S + +### Subwallet generation + +To generate a subwallet, use the `mmgen-subwalletgen` command. For example, +you’d generate your default wallet’s 4th short subwallet as follows: + + $ mmgen-subwalletgen 4S + ... + MMGen wallet written to file '3E885EC4-ABCDEF00[128,3].mmdat' + +And view its seed phrase like this: + + $ mmgen-walletconv -qS -o words 3E885EC4-ABCDEF00[128,3].mmdat + ... + peaceful marry wrong surround treasure sort use favorite enough wolf suspend path + +Since wallets generated by `mmgen-subwalletgen` are just ordinary wallets, you +can use them anywhere you’d use an ordinary MMGen wallet. + +Being ordinary wallets, subwallets may be used to generate other subwallets in +turn, leading to hierarchies of arbitrary depth. However, this is inadvisable +in practice for two reasons: Firstly, it creates accounting complexity, +requiring the user to independently keep track of a derivation tree. More +importantly, however, it leads to the danger of Seed ID collisions between +subseeds at different levels of the hierarchy, as MMGen checks and avoids ID +collisions only among sibling subseeds and their parent. + +An exception to this caveat would be a multi-user setup where sibling subwallets +are distributed to different users as their default wallets. Since the subseeds +derived from these subwallets are private to each user, Seed ID collisions among +them don’t present a problem. + +A safe rule of thumb, therefore, is for *each user* to limit his/her installation +to a single master wallet and derive all subwallets from this single parent. + +### Address generation and transaction signing using the parent wallet + +A parent wallet may be used to generate keys and addresses for its associated +subwallets. Given our above example (a default wallet having subwallet 4S with +Seed ID 3E885EC4), the following two commands are equivalent: + + # Generate ten bech32 addresses from the subwallet: + $ mmgen-addrgen --type=bech32 3E885EC4-ABCDEF00[128,3].mmdat 1-10 + + # Do the same thing, but using the parent wallet: + $ mmgen-addrgen --type=bech32 --subwallet=4S 1-10 + +The same goes for transaction signing. Consider a transaction that spends to +and from addresses in the subwallet: + + $ mmgen-txcreate 3E885EC4:B:2 + (choose an input from subwallet 3E885EC4) + Transaction written to file '.rawtx' + +This transaction can now be signed either with the subwallet itself: + + $ mmgen-txsign *.rawtx 3E885EC4-ABCDEF00[128,3].mmdat + ... + Signed transaction written to file '.sigtx' + +Or with its parent wallet: + + $ mmgen-txsign *.rawtx + ... + Found subseed 3E885EC4 (DF449DA4:4S) + ... + Signed transaction written to file '.sigtx' + +The latter command works “by magic” because by default each wallet scans its +first 100 subwallets for Seed IDs. For a transaction containing addresses from +a subwallet with an index higher than 100, say 144, we must extend the parent +wallet’s search like this: + + $ mmgen-txsign --subseeds=144 *.rawtx + +This is basically all you need to know about subwallets. For live versions of +the above examples that can be run as-is, see commits 7538a94, d1b8aef and +82086c9.