From fe34fca36bc5d652b9e393faf9484dd81f5a53d8 Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Sun, 8 May 2022 10:11:57 +0000 Subject: [PATCH] update README, release notes, wiki documentation --- README.md | 3 + doc/release-notes/release-notes-v13.1.0.md | 10 +-- .../install-linux/Install-MMGen-on-Linux.md | 9 ++- .../Install-MMGen-on-Microsoft-Windows.md | 63 ++++++++++--------- .../Altcoin-and-Forkcoin-Support.md | 11 ++-- .../using-mmgen/Getting-Started-with-MMGen.md | 9 +-- ...ng-Your-Keys-Without-the-MMGen-Software.md | 2 +- mmgen/data/version | 2 +- 8 files changed, 61 insertions(+), 48 deletions(-) diff --git a/README.md b/README.md index 6d51c5e6..8b3f9274 100644 --- a/README.md +++ b/README.md @@ -108,6 +108,8 @@ widespread standard. online passwords. Password lists are identified by arbitrarily chosen strings like “alice@github” or “bob@reddit”. Passwords of different lengths and formats, including BIP39, are supported. +- **[Message signing][MS]** for BTC, BCH, LTC, ETH and ETC. Signing for + multiple addresses and autosigning are supported. - **Selectable seed lengths** of 128, 192 or 256 bits. Subwallets may have shorter seeds than their parent. - **User-enhanced entropy:** All operations requiring random data will prompt @@ -194,6 +196,7 @@ Donate (BTC,BCH): 15TLdmi5NYLdqmtCqczUs5pBPkJDXRs83w [X]: https://github.com/mmgen/mmgen/wiki/autosign-[MMGen-command-help] [xm]: https://github.com/mmgen/mmgen/wiki/xmrwallet-[MMGen-command-help] [G]: https://github.com/mmgen/mmgen/wiki/passgen-[MMGen-command-help] +[MS]: https://github.com/mmgen/mmgen/wiki/msg-[MMGen-command-help] [T]: https://github.com/mmgen/mmgen/wiki/Getting-Started-with-MMGen#a_ct [E]: https://github.com/mmgen/mmgen/wiki/Altcoin-and-Forkcoin-Support#a_tx [ag]: https://github.com/mmgen/mmgen/wiki/addrgen-[MMGen-command-help] diff --git a/doc/release-notes/release-notes-v13.1.0.md b/doc/release-notes/release-notes-v13.1.0.md index 7548fd7c..ec71ed6b 100644 --- a/doc/release-notes/release-notes-v13.1.0.md +++ b/doc/release-notes/release-notes-v13.1.0.md @@ -1,12 +1,11 @@ ### MMGen Version 13.1.0 Release Notes -This release introduces a major reorganization of the MMGen code base: its -full modularization and a clean separation between protocol-dependent and -protocol-independent code. +This release completes the process of modularizing the MMGen code base and +fully separating protocol-dependent from protocol-independent code. In addition to improved reliability, maintainability and extensibility, this -code overhaul has led to significant performance improvements and reductions -in memory usage. +major code overhaul has led to significant performance improvements and +reductions in memory usage. #### Important new features: @@ -23,6 +22,7 @@ in memory usage. #### Important bugfixes: + - RPC: disable `*_PROXY` environment vars for `requests` backend: ba2cc40d - mmgen-tool pubhex2addr: fix incorrect output for ETH, XMR and ZEC-Z protocols: af65676d - mmgen-tool addr2pubhash: reject non-PKH addresses: 4e3b11a3 diff --git a/doc/wiki/install-linux/Install-MMGen-on-Linux.md b/doc/wiki/install-linux/Install-MMGen-on-Linux.md index 60204d9d..ed6d4caf 100644 --- a/doc/wiki/install-linux/Install-MMGen-on-Linux.md +++ b/doc/wiki/install-linux/Install-MMGen-on-Linux.md @@ -29,7 +29,7 @@ any old installations under `/usr` or `/usr/local`. $ cd mmgen $ git checkout stable_linux # see 'Note' below $ python3 -m build --no-isolation - $ python3 -m pip install --user --upgrade dist/*.whl # see 'Testing Note' below + $ python3 -m pip install --user --upgrade dist/*.whl # see 'Install Note' below $ cd .. **Note:** if you want to use features that have appeared since the latest @@ -40,8 +40,11 @@ security vulnerabilities are more likely to be present in new code than in a stable release. In addition, new code may require dependencies or installation steps not yet covered in the documentation. -**Testing Note:** MMGen may be tested in place prior to installation. Refer to -the [Test Suite][ts] wiki page for details. +**Install Note:** The `--force` and `--no-deps` options also come in handy +on occasion. + +If you plan to run the test suite, additional installation steps are required. +Refer to the [Test Suite][ts] wiki page for details. Install your coin daemon(s). To install prebuilt binaries, go [here][01]. To install from source, go [here][02]. 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 0feca87d..1b3c48b3 100644 --- a/doc/wiki/install-mswin/Install-MMGen-on-Microsoft-Windows.md +++ b/doc/wiki/install-mswin/Install-MMGen-on-Microsoft-Windows.md @@ -150,6 +150,9 @@ will produce a listing of the same directory. > trick using '>' works for most shell commands, by the way). Copy `urls.txt` > to your online machine and download the URLs listed in it. +> *NOTE: as of 01.05.2022, files in the `clang64` directory were found under +> `mingw64` instead, so these URLS may have to be edited accordingly.* + > Create a new folder on your offline machine: $ mkdir packages1 @@ -187,7 +190,7 @@ specifically required by MMGen. Install the MMGen requirements and their dependencies: - $ pacman -S tar git vim autoconf automake-wrapper autogen libtool \ + $ pacman -S tar git vim autoconf automake-wrapper autogen libtool cygrunsrv \ mingw64/mingw-w64-x86_64-python-build \ mingw64/mingw-w64-x86_64-python-wheel \ mingw64/mingw-w64-x86_64-python-pip \ @@ -219,7 +222,7 @@ Add the following two lines to the end of the file (if this is a Bitcoin-only installation, you may omit the Litecoin and Bitcoin Cash Node components of the path): - export PATH="/mingw64/bin:$PATH:/c/Program Files/Bitcoin/daemon:/c/Program Files/Litecoin/daemon:/c/Program Files/Bitcoin-Cash-Node/daemon" + export PATH="$HOMEPATH/.local/bin:/mingw64/bin:$PATH:/c/Program Files/Bitcoin/daemon:/c/Program Files/Litecoin/daemon:/c/Program Files/Bitcoin-Cash-Node/daemon" export PYTHONUTF8=1 Save and exit. Close and reopen the terminal window to update your working @@ -244,12 +247,12 @@ therefore highly recommended. On your online machine, download the tar archive: - $ pip3 download --no-deps scrypt==0.8.13 + $ pip3 download --no-deps scrypt==0.8.20 On your offline machine, unpack and enter the archive: - $ tar fax scrypt-0.8.13.tar.gz - $ cd scrypt-0.8.13 + $ tar fax scrypt-0.8.20.tar.gz + $ cd scrypt-0.8.20 Open the file `setup.py` in your text editor. Right before the line beginning with: @@ -297,25 +300,26 @@ repository: If you’re doing an offline install, then copy the cloned mmgen directory to your offline machine. -Enter the repo directory and build: +Enter the repo directory, build and install: $ cd mmgen $ git checkout stable_msys2 # See 'Note' below $ python3 -m build --no-isolation - -Exit the repo directory and install: - - $ cd .. - $ python3 -m pip install --upgrade mmgen/dist/*.whl + $ python3 -m pip install --user --upgrade dist/*.whl **Note:** if you want to use features that have appeared since the latest -`stable_msys2` release, then you can omit the `git checkout` step and remain on -the `master` branch. Please bear in mind, however, that security -vulnerabilities are more likely to be present in new code than in a stable -release. In addition, while the tip of `master` is always tested on Linux -before being pushed to the public repository, it’s not guaranteed to install or -run on MSYS2. Installation or runtime issues may also arise due to missing -dependencies or installation steps not yet covered in the documentation. +`stable_msys2` release, then you can omit the `git checkout stable_msys2` +step and remain on the `master` branch. Please bear in mind, however, that +security vulnerabilities are more likely to be present in new code than in a +stable release. In addition, while the tip of `master` is always tested on +Linux before being pushed to the public repository, it’s not guaranteed to +install or run on MSYS2. Installation or runtime issues may also arise due +to missing dependencies or installation steps not yet covered in the +documentation. + +**Install Note:** The `--force` and `--no-deps` options also come in handy on +occasion. Note that MMGen has a test suite. Refer to the [Test Suite][ts] +wiki page for details. ### 10. Install Python Ethereum dependencies (Ethereum users only) @@ -347,19 +351,17 @@ 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 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, -unlike the other coin daemons, is installed on the online machine only. Copy -the `openethereum.exe` and `ethkey.exe` binaries to `/usr/local/bin`. Please -note that OpenEthereum performs very poorly under Windows due to threading -limitations. Unless you have very fast hardware, transacting and syncing the -blockchain could be painfully slow. +To transact ETH, ETC or ERC20 tokens you’ll need the latest Geth, OpenEthereum +or Parity (for Ethereum Classic) binary. See the +[**Altcoin-and-Forkcoin-Support**][pl] page for information on downloading and +launching these daemons. The `parity.exe`, `openethereum.exe` and `ethkey.exe` +binaries should be copied to `/usr/local/bin`. For Geth, download and run the +Windows installer and add `/c/Program Files/Geth` to the end of the `PATH` +variable in your `~/.bashrc` file: -Typically you’ll wish to launch OpenEthereum as follows: - - $ openethereum.exe --jsonrpc-apis=all - -More information on OpenEthereum’s command-line options can be found [here][pl]. +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 might be painfully slow. ### 12. You’re done! @@ -425,3 +427,4 @@ continue from the `git checkout stable_msys2` step. [pl]: Altcoin-and-Forkcoin-Support#a_oe [ax]: autosign-[MMGen-command-help] [mc]: Altcoin-and-Forkcoin-Support#a_xmr +[ts]: Test-Suite diff --git a/doc/wiki/using-mmgen/Altcoin-and-Forkcoin-Support.md b/doc/wiki/using-mmgen/Altcoin-and-Forkcoin-Support.md index 211c0e42..da3e3410 100644 --- a/doc/wiki/using-mmgen/Altcoin-and-Forkcoin-Support.md +++ b/doc/wiki/using-mmgen/Altcoin-and-Forkcoin-Support.md @@ -4,7 +4,7 @@ #### [Ethereum (ETH), Ethereum Classic (ETC) and ERC20 Tokens](#a_eth) * [Install the Ethereum dependencies](#a_ed) -* [Install and run Geth or OpenEthereum](#a_oe) +* [Install and run Geth, Parity or OpenEthereum](#a_oe) * [Transacting and other basic operations](#a_tx) * [Creating and deploying ERC20 tokens](#a_dt) @@ -35,13 +35,16 @@ From the MMGen repository root, type: $ python3 -m pip install --no-deps --user -r eth-requirements.txt -#### Install and run Geth or OpenEthereum +#### Install and run Geth, Parity or OpenEthereum MMGen can use either Go-Ethereum (Geth) or OpenEthereum to communicate with the Ethereum network. For information on installing Geth or OE on your system, visit the the Geth [Github repo][ge], or the OpenEthereum [wiki][ow] -or [Github repo][og]. The daemons are not used for transaction signing, so -you needn’t install them on your offline machine. +or [Github repo][og]. On Arch Linux systems, Go-Ethereum and OpenEthereum are +packages and may be installed with `pacman`. + +Note that Ethereum daemons are not used for transaction signing, so you +needn’t install them on your offline machine. For Geth, the following command-line options are required: diff --git a/doc/wiki/using-mmgen/Getting-Started-with-MMGen.md b/doc/wiki/using-mmgen/Getting-Started-with-MMGen.md index c03aec5f..9b20f7ee 100644 --- a/doc/wiki/using-mmgen/Getting-Started-with-MMGen.md +++ b/doc/wiki/using-mmgen/Getting-Started-with-MMGen.md @@ -119,7 +119,7 @@ require a wallet or other seed source.* location other than your MMGen data directory. Otherwise, it’s recommended, as it frees you from having to type your wallet filename on the command line.* -*The following examples suppose that you’ve chosen to use a default wallet. +*The following examples assume that you’ve chosen to use a default wallet. If you haven’t, then you must include the path to a wallet file or other seed source in all commands where a seed source is required.* @@ -966,10 +966,11 @@ preceding step. Information on recently added features can be found by typing `git log` or visiting the commits page on [Github][hc] or [Gitlab][lc]. Check the latest release notes in `doc/release-notes` and make note of any new -features or requirements. Now perform the install: +features or requirements. Now build and install: - $ sudo ./setup.py install # Linux - $ ./setup.py install # Windows / MSYS2 + $ rm -rf dist build + $ python3 -m build --no-isolation + $ python3 -m pip install --user --upgrade dist/*.whl [01]: Tracking-and-spending-ordinary-Bitcoin-addresses [02]: https://tpfaucet.appspot.com diff --git a/doc/wiki/using-mmgen/Recovering-Your-Keys-Without-the-MMGen-Software.md b/doc/wiki/using-mmgen/Recovering-Your-Keys-Without-the-MMGen-Software.md index 9db7cd9d..e5b175cd 100644 --- a/doc/wiki/using-mmgen/Recovering-Your-Keys-Without-the-MMGen-Software.md +++ b/doc/wiki/using-mmgen/Recovering-Your-Keys-Without-the-MMGen-Software.md @@ -287,7 +287,7 @@ out at the Python prompt: L3R8Fn21PsY3PWgT8BMggFwXswA2EZntwEGFS5mfDJpSiLq29a9F # matches key for FE3C6545:S:1 above Explanation: the variable `b58a` holds the Base 58 alphabet; `num` holds the key -in decimal, converted from hexidecimal by Python’s `int()` function; the third +in decimal, converted from hexadecimal by Python’s `int()` function; the third line does the base-58 conversion; and the last line formats the result by reversing the order of the digits, converting it to a string and stripping off the leading zeroes (‘1’s). diff --git a/mmgen/data/version b/mmgen/data/version index b0972b29..85be9246 100644 --- a/mmgen/data/version +++ b/mmgen/data/version @@ -1 +1 @@ -13.1.dev29 +13.1.dev30