From 344c41961a415409c4a460f6d5ac209b4371691a Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Fri, 6 May 2022 12:55:32 +0000 Subject: [PATCH] modified: Altcoin-and-Forkcoin-Support.md modified: Install-MMGen-on-Linux.md modified: Install-MMGen-on-Microsoft-Windows.md modified: Test-Suite.md --- Altcoin-and-Forkcoin-Support.md | 11 ++++-- Install-MMGen-on-Linux.md | 8 ++-- Install-MMGen-on-Microsoft-Windows.md | 35 +++++++++-------- Test-Suite.md | 56 ++++++++++++++++++--------- 4 files changed, 67 insertions(+), 43 deletions(-) diff --git a/Altcoin-and-Forkcoin-Support.md b/Altcoin-and-Forkcoin-Support.md index 211c0e4..da3e341 100644 --- a/Altcoin-and-Forkcoin-Support.md +++ b/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/Install-MMGen-on-Linux.md b/Install-MMGen-on-Linux.md index da24219..ed6d4ca 100644 --- a/Install-MMGen-on-Linux.md +++ b/Install-MMGen-on-Linux.md @@ -40,9 +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. -**Install Note:** The `--force` and `--no-deps` options also come in handy on -occasion. Note that MMGen may be tested in place without 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/Install-MMGen-on-Microsoft-Windows.md b/Install-MMGen-on-Microsoft-Windows.md index 8e407d7..dc61f83 100644 --- a/Install-MMGen-on-Microsoft-Windows.md +++ b/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: @@ -352,19 +355,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! diff --git a/Test-Suite.md b/Test-Suite.md index 9a2d547..9e89e81 100644 --- a/Test-Suite.md +++ b/Test-Suite.md @@ -66,14 +66,32 @@ Install [OpenEthereum, Parity, Geth, the Ethereum dependencies][oe] and optionally the [Solidity compiler][sc] as described on the Altcoin-and-Forkcoin-Support page. -The XMR test sets up a local SOCKS proxy to test transaction relaying, so make -sure you can SSH to localhost without a password. Alternatively, you may set -up the proxy yourself with the following command: - - $ ssh -fxN -D localhost:9060 localhost - In addition, you must install the following helper programs and libraries (MSYS2 -users can omit MoneroPy and Zcash-Mini): +users can omit Zcash-Mini and leave out `sudo` in commands): + +#### SSH daemon setup (MSYS2 only) + +The XMR test sets up a local SOCKS proxy to test transaction relaying. This +requires the SSH daemon to be set up and running. On MSYS2 systems, SSHD +is not configured by default, but it may be easily set up with the following +steps: + +Open PowerShell as administrator, and at the DOS prompt, execute: + + system32> net user administrator /active:yes + system32> C:\\msys64\usr\bin\bash.exe --login + +Now, at the MSYS2 prompt, cd to the MMGen repository root and run the setup +script: + + $ scripts/msys2-sshd-setup.sh + +The daemon should now start automatically every time the system is booted. It +may also be started and stopped manually at the DOS or MSYS2 prompt as follows +(PowerShell must be running with admin privileges): + + # net start msys2_sshd + # net stop msys2_sshd #### Pycoin @@ -83,15 +101,16 @@ users can omit MoneroPy and Zcash-Mini): $ git clone https://github.com/bigreddmachine/MoneroPy $ cd MoneroPy - $ sudo python3 setup.py install + $ python3 setup.py install --user $ cd .. -#### Vanitygen Plus +#### Vanitygen PlusPlus (forked from Vanitygen Plus) - $ git clone https://github.com/exploitagency/vanitygen-plus - $ cd vanitygen-plus + $ git clone https://github.com/10gic/vanitygen-plusplus + $ cd vanitygen-plusplus + $ git checkout -b vanitygen-plus e7858035d092 # rewind to fork commit $ make keyconv # mingw32-make.exe keyconv on MSYS2 - $ sudo install --strip keyconv /usr/local/bin + $ sudo install --strip keyconv /usr/local/bin # ‘keyconv.exe’ for MSYS2 $ cd .. #### Zcash-Mini @@ -101,16 +120,17 @@ users can omit MoneroPy and Zcash-Mini): $ cd zcash-mini $ go mod init zcash-mini $ go mod tidy - $ go build -mod=mod + $ go build -mod=mod # or just ’go build’ $ sudo install --strip ./zcash-mini /usr/local/bin $ cd .. #### Ethkey -Copy the ethkey binary to `/usr/local/bin`. The binary is included in the -latest OpenEthereum release for your architecture. +On Arch Linux systems, ethkey is included in the OpenEthereum package: -Alternatively, you may build ethkey from source: + $ pacman -S openethereum + +For other systems, you may have to build ethkey from source: $ sudo apt-get install rustc # skip this if Rust is already installed $ git clone https://github.com/openethereum/openethereum @@ -124,9 +144,7 @@ Alternatively, you may build ethkey from source: The Monero test (`test/test-release xmr`) creates a private network and mines coins, so is therefore non-deterministic and prone to random failures. If you -experience one, just restart the test. To test relaying of transactions via -SOCKS proxy, an SSH tunnel to `localhost` will be set up, so ensure that your -SSH daemon is configured with the appropriate permissions. +experience such a failure, just restart the test. ### Run the tests