From 023d7c736ce938bc1c8626366979dd0c97d80049 Mon Sep 17 00:00:00 2001 From: MMGen Date: Wed, 6 Feb 2019 10:56:35 +0000 Subject: [PATCH] modified: Altcoin-and-Forkcoin-Support.md modified: Install-MMGen-on-Debian-or-Ubuntu-Linux.md --- Altcoin-and-Forkcoin-Support.md | 79 +++++++++++++++------- Install-MMGen-on-Debian-or-Ubuntu-Linux.md | 5 +- 2 files changed, 56 insertions(+), 28 deletions(-) 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: