- command-line options are now parsed natively, without use of the getopt module
- global options and --longhelp helpscreen are now contextual, depending on coin
and executed command
- commands invoked with out-of-context global options (e.g. `mmgen-walletgen
--coin=btc`) now fail with an ‘unrecognized option’ error
Testing:
$ test/test-release.sh help
$ test/cmdtest.py opts
Prevent the volatile memory to which temporary offline signing wallets are
written from being swapped to disk. This feature is supported on both Linux
and macOS.
Swap is disabled automatically during the setup process. It can also be
disabled manually using the ‘disable_swap’ command. Compressed RAM (zram)
swap is left untouched.
Regarding vulnerability of existing setups, please note the following
mitigating factors:
a) mmgen-autosign encrypts all temporary signing wallets with random 16-
or 32-byte passwords;
b) some platforms swap to compressed RAM instead of disk (SoCs running
Armbian, for example);
c) swap partitions are often encrypted; and
d) even on platforms that do swap to unencrypted files or partitions, the
likelihood of the relevant pages of RAM being swapped out on a machine
used exclusively for offline signing is minimal.
For peace of mind, existing users may wish to wipe the autosign key on their
removable device. Those concerned about metadata leakage might additionally
zero the swap partition(s) on their offline signing machine(s).
Lint the entire MMGen Wallet code base, including test suite:
# Install pylint:
$ python3 -m pip install pylint
# Perform the check:
$ test/test-release.sh lint
The check should complete without error when running Python v3.9 or greater,
provided all required Python dependencies described in Test-Suite.md, including
altcoin dependencies, are installed.
The preferred way to install MMGen is now:
# cd to repository root
$ python3 -m build --no-isolation
$ pip3 install --user dist/*.whl
A user install eliminates reliance on superuser privileges and prevents
conflicts with Python packages that may already be installed on the system.
Python dependencies are automatically installed by pip.