Browse Source

Update documentation from wiki, amend release notes

MMGen 6 years ago
parent
commit
758bd08e8a

+ 7 - 6
doc/release-notes/release-notes-v0.10.0.md

@@ -9,9 +9,9 @@
 		sudo apt-get install python3-dev python3-ecdsa python3-pexpect python3-setuptools python3-crypto python3-nacl python3-pip
 		sudo -H pip3 install scrypt
 
- - Ethereum, ERC20 and Monero dependencies must be upgraded as well, if
-   support for these coins is desired.  See the [Altcoin and Forkcoin
-   Support][f] wiki page for details.
+ - If support for Ethereum, ERC20 or Monero is required, their respective
+   dependencies must be upgraded as well.  See the [Altcoin and Forkcoin
+   Support][f] wiki page for information.
 
    This is a Linux-only release.  It has been tested on the following platforms:
 
@@ -20,15 +20,16 @@
 	   Armbian Bionic / Orange Pi PC2
 	   Raspbian Stretch / Raspberry Pi B 
 
-	with the following coin daemons:
+	and with the following coin daemon versions:
 
 		Bitcoin Core v0.17.1
-		Bitcoin ABC v0.18.8
+		Bitcoin-ABC v0.18.8
 		Litecoin Core v0.16.3
 		Monerod v0.13.0.4
 		Parity Ethereum v1.11.1 & v2.3.2
 
-	and the following altcoin libraries / address generation tools: 
+	In addition, altcoin address generation has been tested using the following
+	altcoin libraries / address generation tools as references:
 
 		pyethereum b704a5c (https://github.com/ethereum/pyethereum)
 		zcash-mini a2b3504 (https://github.com/FiloSottile/zcash-mini)

+ 6 - 4
doc/wiki/install-linux/Install-MMGen-on-Debian-or-Ubuntu-Linux.md

@@ -2,11 +2,12 @@
 
 > Install required Debian/Ubuntu packages:
 
-	$ sudo apt-get install python-dev python-pexpect python-ecdsa python-scrypt libssl-dev git autoconf libtool wipe python-setuptools libgmp-dev python-crypto python-nacl python-pysha3 python-pip
+	$ 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
 
-> Install fast ed25519 Python package (optional, but recommended for Monero addresses):
+> Using the [pip3][P] installer, install the Python scrypt library:
 
-	$ sudo -H pip install ed25519ll
+	$ sudo -H pip3 install scrypt
 
 > Install the secp256k1 library:
 
@@ -32,7 +33,7 @@
 > To install prebuilt binaries, go [here][01].  To install from source, go
 > [here][02].
 
-#### Note for offline machines:
+#### *Note for offline machines:*
 
 > Naturally, your offline machine must be connected to the Internet to retrieve
 > and install the above packages as described above.  This is normally not a
@@ -59,3 +60,4 @@ Started with MMGen**][gs].
 [02]: Install-Bitcoind-from-Source-on-Debian-or-Ubuntu-Linux
 [gs]: Getting-Started-with-MMGen
 [03]: https://pypi.python.org/packages/source/p/pexpect/pexpect-3.1.tar.gz
+[P]: https://pypi.org/project/pip

+ 83 - 37
doc/wiki/using-mmgen/Altcoin-and-Forkcoin-Support.md

@@ -8,7 +8,9 @@
 
 #### [Full support for Bcash (BCH) and Litecoin](#a_bch)
 
-#### [Enhanced key/address generation support for Monero (XMR) and Zcash (ZEC)](#a_es)
+#### [Key/address generation for Zcash (ZEC)](#a_zec)
+
+#### [Key/address generation and wallet creation/syncing for Monero (XMR)](#a_xmr)
 
 #### [Key/address generation support for 144 Bitcoin-derived altcoins](#a_kg)
 
@@ -42,42 +44,38 @@ list.
 #### <a name='a_pe'>Install the Pyethereum library</a>
 
 Signing of ETH and ETC transactions is handled by the [pyethereum][y] library.
-Unfortunately, Python 2 is not reliably supported by recent versions of
-pyethereum and some of its dependencies, so older versions must be installed.
-This can be done easily with the [pip][P] Python package installer.
-
-First install the following dependencies:
-
-	$ pip install rlp==0.6.0 # the version is important here!
-	$ pip install future pysha3 PyYAML py_ecc
 
-Now install the library itself.  You could try doing this the usual way:
+First, using the [pip3][P] Python package installer, install the following
+dependencies:
 
-	$ pip install ethereum==2.1.2 # the version is important here!
+*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 installing the relevant packages with '-t bionic'*
 
-However, pyethereum pulls in a whole bunch of silly dependencies, some of which
-may fail to install, and we need only a subset of the library anyway, so it's
-better to do the following instead:
+	$ sudo -H pip3 install wheel future pysha3 PyYAML py_ecc rlp
 
-	$ pip download ethereum==2.1.2
+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:
 
-This will download the package archive and dependencies.  When pip starts
-downloading the dependency archives, just bail out with Ctrl-C, since you don't
-need them.
+	$ git clone https://github.com/ethereum/pyethereum
+	$ cd pyethereum
+	$ git checkout b704a5c
 
-Now unpack the ethereum-2.1.2.tar.gz archive and remove unneeded deps from
-'requirements.txt', making the file look exactly like this:
+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:
 
-	pysha3>=1.0.1
-	PyYAML
-	scrypt
-	py_ecc
-	rlp>=0.4.7
-	future
+	coincurve
+	pbkdf2
+	pyethash
+	pycryptodome
+	repoze.lru
 
-Now install:
+Now we can proceed with the install:
 
-	$ sudo python ./setup.py install
+	$ sudo python3 ./setup.py install
 
 #### <a name='a_tx'>Transacting and other basic operations</a>
 
@@ -136,11 +134,47 @@ To transact ETH instead of EOS, omit the `--token` arguments.
 
 #### <a name='a_dt'>Creating and deploying ERC20 tokens</a>
 
-Install the Solidity compiler (`solc`) on your system:
+##### Install the Solidity compiler
+
+To deploy Ethereum contracts with MMGen, you need between **v0.5.1** and
+**v0.5.3** of the the Solidity compiler (`solc`) installed on your system.  The
+best way to ensure you have the correct version is to compile it from source.
+Alternatively, on Ubuntu 18.04 systems a binary distribution is also available.
+Instructions for installing it are provided below.
+
+##### *To compile solc from source:*
+
+Clone the repository and build:
+
+	$ git clone --recursive https://github.com/ethereum/solidity.git
+	$ cd solidity
+	$ git checkout v0.5.1 # v0.5.3 doesn't build on Raspbian Stretch
+	$ ./scripts/install_deps.sh # Raspbian Stretch: add `DISTRO='Debian'` after line 55
+	$ mkdir build
+	$ cd build
+	$ cmake -DUSE_CVC4=OFF -DUSE_Z3=OFF ..
+	$ make solc
+	$ sudo install -v --strip solc/solc /usr/local/bin
+
+##### *To install solc from binary distribution (Ubuntu 18.04):*
+
+First add the following line to your /etc/apt/sources.list:
 
+	deb http://ppa.launchpad.net/ethereum/ethereum/ubuntu bionic main
+
+Now obtain the Ethereum PPA key `2A518C819BE37D2C2031944D1C52189C923F6CA9`
+from a PGP keyserver using your method of choice.  Save the key to file, and
+then add it to your APT keyring as follows:
+
+	$ sudo apt-key add <key file>
+
+Now you can proceed with the install:
+
+	$ sudo apt-get update
 	$ sudo apt-get install solc
+	$ solc --version # make sure the version is correct!
 
-##### Token creation/deployment example:
+##### Create and deploy a token
 
 *Note: All addresses and filenames in the examples to follow are bogus.  You
 must replace them with real ones.*
@@ -148,7 +182,7 @@ must replace them with real ones.*
 Create a token 'MFT' with default parameters, owned by `ddeeff...` (`ABCDABCD:E:1`):
 
 	# Do this in the MMGen repository root:
-	$ scripts/create-token.py --symbol=MFT --name='My First Token' ddeeffddeeffddeeffddeeffddeeffddeeffddee
+	$ scripts/create-token.py --coin=ETH --symbol=MFT --name='My First Token' ddEEFFDdEEFfddEeffDDEefFdDeeFFDDEeFFddEe
 
 Deploy the token on the ETH blockchain:
 
@@ -188,16 +222,15 @@ MMGen requires that the bitcoin-abc daemon be listening on non-standard
 Then just add the `--coin=bch` or `--coin=ltc` option to all your MMGen
 commands.  It's that simple!
 
-### <a name='a_es'>Enhanced key/address generation support for Monero (XMR) and Zcash (ZEC)</a>
+### <a name='a_zec'>Key/address generation for Zcash (ZEC)</a>
 
-MMGen's enhanced key/address generation support for Zcash and Monero includes
-**Zcash z-addresses** and automated Monero wallet creation.
+MMGen's enhanced support for Zcash includes generation of **z-addresses.**
 
 Generate ten Zcash z-address key/address pairs from your default wallet:
 
 	$ mmgen-keygen --coin=zec --type=zcash_z 1-10
 
-The addresses' view keys are included in the file as well.
+The addresses' view keys are included in the output file as well.
 
 NOTE: Since your key/address file will probably be used on an online computer,
 you should encrypt it with a good password when prompted to do so. The file can
@@ -208,6 +241,16 @@ To generate Zcash t-addresses, just omit the `--type` argument:
 
 	$ mmgen-keygen --coin=zec 1-10
 
+### <a name='a_xmr'>Key/address generation and wallet creation/syncing for Monero (XMR)</a>
+
+MMGen's enhanced support for Monero includes automated Monero wallet creation
+and syncing.
+
+Install the following dependencies:
+
+	$ sudo -H pip3 install pysha3
+	$ sudo -H pip3 install ed25519ll # optional, but greatly speeds up address generation
+
 Generate ten Monero address pairs from your default wallet:
 
 	$ mmgen-keygen --coin=xmr 1-10
@@ -219,8 +262,9 @@ key in the key/address file by running the following command:
 
 	$ monero-wallet-cli --generate-from-spend-key MyMoneroWallet
 
-and pasting in the key and password data when prompted.  Monerod must be
-running and `monero-wallet-cli` be located in your executable path.
+and pasting in the key and password data when prompted.  [Monerod][M] must be
+installed and running and `monero-wallet-cli` be located in your executable
+path.
 
 To save your time and labor, the `mmgen-tool` utility includes a command that
 completely automates this process:
@@ -284,9 +328,11 @@ Project.
 [l]: https://github.com/mmgen/MMGenLive
 [y]: https://github.com/ethereum/pyethereum
 [P]: https://pypi.org/project/pip
+[M]: https://getmonero.org/downloads/#linux
 [U]: https://github.com/mmgen/MMGenLive/blob/master/home.mmgen/bin/mmlive-daemon-upgrade
 [X]: autosign-[MMGen-command-help]
 [bo]: Getting-Started-with-MMGen#a_bo
 [si]: Install-Bitcoind-from-Source-on-Debian-or-Ubuntu-Linux
 [bi]: Install-Bitcoind#a_d
 [p8]: Install-Bitcoind#a_r
+[iw]: Install-MMGen-on-Debian-or-Ubuntu-Linux