diff --git a/Altcoin-and-Forkcoin-Support.md b/Altcoin-and-Forkcoin-Support.md
index cad339b..d284d27 100644
--- a/Altcoin-and-Forkcoin-Support.md
+++ b/Altcoin-and-Forkcoin-Support.md
@@ -42,42 +42,34 @@ list.
#### Install the Pyethereum library
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:
+First, using the [pip3][P] Python package installer, install the following
+dependencies:
- $ pip install rlp==0.6.0 # the version is important here!
- $ pip install future pysha3 PyYAML py_ecc
+ $ sudo -H pip3 install future pysha3 PyYAML py_ecc rlp
-Now install the library itself. You could try doing this the usual way:
+As of this writing, the current “stable” version of pyethereum (2.3.2) is
+broken, so we must get a more recent version from Github:
- $ pip install ethereum==2.1.2 # the version is important here!
+ $ git clone https://github.com/ethereum/pyethereum
+ $ cd pyethereum
+ $ git checkout b704a5c
-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:
-
- $ pip download ethereum==2.1.2
-
-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.
-
-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', making it look
+like this:
pysha3>=1.0.1
PyYAML
scrypt
py_ecc
- rlp>=0.4.7
+ rlp>=1.0.1,<2.0.0
future
-Now install:
+Now we can proceed with the install:
- $ sudo python ./setup.py install
+ $ sudo python3 ./setup.py install
#### Transacting and other basic operations
@@ -136,11 +128,46 @@ To transact ETH instead of EOS, omit the `--token` arguments.
#### Creating and deploying ERC20 tokens
-Install the Solidity compiler (`solc`) on your system:
+##### Install the Solidity compiler
+To deploy Ethereum contracts with MMGen, you need version 0.5.3 of 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, and instructions for installing
+it are provided below.
+
+##### *Compile solc from source:*
+
+Clone the repository and build:
+
+ $ git clone --recursive https://github.com/ethereum/solidity.git
+ $ cd solidity
+ $ git checkout v0.5.3
+ $ ./scripts/install_deps.sh
+ $ mkdir build
+ $ cd build
+ $ cmake .. && make
+ $ sudo make install
+
+##### *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
+
+Now you can proceed with the install:
+
+ $ sudo apt-get update
$ sudo apt-get install solc
+ $ solc --version # check that 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 +175,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:
diff --git a/Install-MMGen-on-Debian-or-Ubuntu-Linux.md b/Install-MMGen-on-Debian-or-Ubuntu-Linux.md
index aa8e99b..eee9314 100644
--- a/Install-MMGen-on-Debian-or-Ubuntu-Linux.md
+++ b/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-scrypt python3-setuptools python3-crypto python3-nacl python3-pip
> Install fast ed25519 Python package (optional, but recommended for Monero addresses):
- $ sudo -H pip install ed25519ll
+ $ sudo -H pip3 install ed25519ll
> Install the secp256k1 library: