Bitcoin Forum
December 14, 2024, 01:54:01 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Electron Cash 3.x Linux versions do not work  (Read 142 times)
A1exander (OP)
Full Member
***
Offline Offline

Activity: 336
Merit: 102


View Profile
January 08, 2018, 11:35:09 AM
 #1

Excuse me for posting here, but I hope it is appropriate to write about Electrum forks too. have a Electron Cash 2.9.4 and today i've tried to upgrade to 3.1.1 (I have a strong password and I rarely run Electron Cash so I'm not especially worried by the latest vulnerability). 3.1.1 does not run, showing a message:

Error: No module named 'dns'. Try 'sudo pip install <module-name>'

I have python-dns and python3-dns packages installed (I'm using Debian). I've tried to download and run 3.1 and 3.0 - they do not work too, version 3.1 fails with a different message:

Error: No module named 'xmlrpclib'. Try 'sudo pip install <module-name>'

Electrum 3.0.5 runs fine on the same system (in watch-only mode, but I suppose it does not matter).

It seems that Electron Cash 3.0 and 3.1.1 distributions lack 'packages' folder, which is present in both Electrum 3.0.5 and Electron Cash 2.9.4. There is such a folder in Electron Cash 3.1, but it seems to be incomplete.

Look like I have to continue to use 2.9.4 and wait for a new, working version.
xdrpx
Hero Member
*****
Offline Offline

Activity: 616
Merit: 603


View Profile
January 08, 2018, 06:19:09 PM
 #2

I've just downloaded version 3.1.1 from source and was able to double-click on electrum (and ran from command line as well later) and it ran just fine. It doesn't contain the packages folder (probably assuming that you're expecting the dependencies to be in here).

Since you already have dnspython for python3 not sure why you're getting that module missing error. Have you tried installing dnspython by running
Code:
sudo apt-get install python-dnspython
and I think I had read here (https://github.com/spesmilo/electrum/issues/3447) that electrum used to use jsonrpclib-pelix, but I'm not sure if that has changed with electron-cash. Could you try installing that by running
Code:
sudo pip install jsonrpclib-pelix
A1exander (OP)
Full Member
***
Offline Offline

Activity: 336
Merit: 102


View Profile
January 08, 2018, 06:41:11 PM
Last edit: January 08, 2018, 07:05:44 PM by A1exander
 #3

I've just downloaded version 3.1.1 from source and was able to double-click on electrum (and ran from command line as well later) and it ran just fine. It doesn't contain the packages folder (probably assuming that you're expecting the dependencies to be in here).

And such assumption is a very wrong approach provided that there is no list of required dependences.

Since you already have dnspython for python3 not sure why you're getting that module missing error. Have you tried installing dnspython by running
Code:
sudo apt-get install python-dnspython
and I think I had read here (https://github.com/spesmilo/electrum/issues/3447) that electrum used to use jsonrpclib-pelix, but I'm not sure if that has changed with electron-cash. Could you try installing that by running
Code:
sudo pip install jsonrpclib-pelix

Thanks, I've found that I have dnspython for python 2.x, not for python 3.x (package python3-dnspython). Installing it fixed the first error, but now there is another:

Error: No module named 'pyaes'. Try 'sudo pip install <module-name>'

I've installed all cryptography-related packages for python 3 I was able to find, but it did not help.
xdrpx
Hero Member
*****
Offline Offline

Activity: 616
Merit: 603


View Profile
January 09, 2018, 07:36:13 AM
 #4

Okay, I was able to do a bit of digging and found out these are the necessary dependencies you'll require:

In Setup.py it says this is the package directory:

Code:
https://github.com/fyookball/electrum/blob/master/setup.py

    package_dir={
        'electroncash': 'lib',
        'electroncash_gui': 'gui',
        'electroncash_plugins': 'plugins',
},

I checked in the contrib directory and found requirements.txt https://github.com/fyookball/electrum/blob/master/contrib/requirements.txt

Code:
certifi==2017.11.5
chardet==3.0.4
dnspython==1.15.0
ecdsa==0.13
idna==2.6
jsonrpclib-pelix==0.3.1
pbkdf2==1.3
protobuf==3.5.0.post1
pyaes==1.6.1
PySocks==1.6.7
qrcode==5.3
requests==2.18.4
six==1.11.0
urllib3==1.22

In contrib/make_packages I see it will install the following packages:

Code:
if [ `uname` == "Darwin" ]; then
# try to name pip the Brew way..
PIP=`which pip3`
if [ -z "${PIP}" ]; then
# nope, maybe MacPorts instead.. hopefully it's pip3
PIP=pip
fi
$PIP install -r $contrib/requirements_osx.txt -t $contrib/packages
else
pip3 install -r $contrib/requirements.txt -t $contrib/packages
fi

Hence by the looks of it it should pip3 install everything in requirements.txt. Can you try running ./make_packages or also try python3 setup.py install and check if this does it for you as well.
A1exander (OP)
Full Member
***
Offline Offline

Activity: 336
Merit: 102


View Profile
January 09, 2018, 05:14:50 PM
 #5

I checked in the contrib directory and found requirements.txt https://github.com/fyookball/electrum/blob/master/contrib/requirements.txt

Code:
certifi==2017.11.5
chardet==3.0.4
dnspython==1.15.0
ecdsa==0.13
idna==2.6
jsonrpclib-pelix==0.3.1
pbkdf2==1.3
protobuf==3.5.0.post1
pyaes==1.6.1
PySocks==1.6.7
qrcode==5.3
requests==2.18.4
six==1.11.0
urllib3==1.22

Terrible. One package, python-pyaes is not present in Debian Stable at all, it is in Testing only. The required version of python-certifi is also available in Testing only. Hence, it is completely unusable.

In contrib/make_packages I see it will install the following packages:

Code:
if [ `uname` == "Darwin" ]; then
# try to name pip the Brew way..
PIP=`which pip3`
if [ -z "${PIP}" ]; then
# nope, maybe MacPorts instead.. hopefully it's pip3
PIP=pip
fi
$PIP install -r $contrib/requirements_osx.txt -t $contrib/packages
else
pip3 install -r $contrib/requirements.txt -t $contrib/packages
fi

Hence by the looks of it it should pip3 install everything in requirements.txt. Can you try running ./make_packages or also try python3 setup.py install and check if this does it for you as well.

There is no 'contrib' folder in the downloaded ElectronCash-3.1.1.tar.gz archive. 'python3 setup.py install --prefix ~' (I do not want to run it as root) fails with:

TEST FAILED: /home/az/lib/python3.4/site-packages/ does NOT support .pth files
error: bad install directory or PYTHONPATH


I've tried to copy the 'packages' folder from Electrum 3.0.5 to Electron Cash 3.1.1. It started, asked for password, showed a window that it needs to convert the wallet to a new format and then crashed. Fortunately, I have backups.

It is absolutely unacceptable for a financial application, especially for a fork of application which is working perfectly! It is broken beyond all repair and I suppose I only have an option to moving to another wallet.
A1exander (OP)
Full Member
***
Offline Offline

Activity: 336
Merit: 102


View Profile
January 09, 2018, 06:30:46 PM
 #6

Well, version 3.1.2 appeared on the web site, with 'packages' directory inside. It runs, asks for password, shows wallet conversion dialog, then crashes with error:

File "/home/az/Programs/Electron Cash-3.1.2/lib/address.py", line 80, in hash_to_hex_str
    return bytes(reversed(x)).hex()
AttributeError: 'bytes' object has no attribute 'hex'


Nice try, but still unusable...
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!