[SOLVED] Cert-issuer Ethereum testnet setup failing

Hi dear friends,

I followed the steps here to build the docker container for cert-issuer, and also replacing libressl-dev for openssl-dev to overcome the errors I got, as shown here.

Then after running this (using python3.6 with virtualenv):

(venv) bash-4.3# python setup.py experimental --blockchain=ethereum

I got this error:

ethereum 2.3.2 has requirement rlp<2.0.0,>=1.0.1, but you'll have rlp 0.6.0 which is incompatible.
Installing collected packages: rlp
  Found existing installation: rlp 1.0.2
    Uninstalling rlp-1.0.2:
      Successfully uninstalled rlp-1.0.2
Successfully installed rlp-0.6.0

I found this: Error while installing Blockcerts for use with Ethereum
which suggests adding rlp<1 to “ethereum_requirements.txt”, but it is already added, so I changed “rlp<1” to “rlp>=1” and the setup seemed to complete successfully.

Then I get this error, after running:

(venv) bash-4.3# cert-issuer -c /etc/cert-issuer/conf.ini

Traceback (most recent call last):
  File "/usr/bin/cert-issuer", line 11, in <module>
    load_entry_point('cert-issuer==2.0.15', 'console_scripts', 'cert-issuer')()
  File "/usr/lib/python3.6/site-packages/cert_issuer/__main__.py", line 17, in cert_issuer_main
    issue_certificates.main(parsed_config)
  File "/usr/lib/python3.6/site-packages/cert_issuer/issue_certificates.py", line 36, in main
    return issue(app_config, certificate_batch_handler, transaction_handler)
  File "/usr/lib/python3.6/site-packages/cert_issuer/issue_certificates.py", line 22, in issue
    tx_id = issuer.issue(app_config.chain)
  File "/usr/lib/python3.6/site-packages/cert_issuer/issuer.py", line 27, in issue
    txid = self.transaction_handler.issue_transaction(blockchain_bytes)
  File "/usr/lib/python3.6/site-packages/cert_issuer/blockchain_handlers/ethereum/transaction_handlers.py", line 61, in issue_transaction
    self.verify_transaction(signed_tx, eth_data_field)
  File "/usr/lib/python3.6/site-packages/cert_issuer/blockchain_handlers/ethereum/transaction_handlers.py", line 92, in verify_transaction
    tx_utils.verify_eth_transaction(signed_tx, eth_data_field)
  File "/usr/lib/python3.6/site-packages/cert_issuer/blockchain_handlers/ethereum/tx_utils.py", line 24, in verify_eth_transaction
    for s in signed_hextx.split('80a0'):
  AttributeError: 'dict' object has no attribute 'split'

What can I do? I’m stucked here and have no clue about what else to try.

Thanks.

Or is there another (any) way that works, to get to issue certificates in the Ethereum testnet??

I don’t mind using another Docker image if anyone can share it.

Thanks everyone.

Hugo

I’m getting the exact same error. I tried using rlp 0.6.0 but it gives me a error (known and solvable by updating rlp) related to the ALL_BYTES variable, so I had no choice but to update rlp like OP did, resulting in this new error.

1 Like

I have seen this error before, but I’m struggling to remember exactly where. It has to do with something being passed a dictionary instead of a string. If I had more time, I’d jump in and do some debugging. I’m fairly confident we fixed at least one of these when we were working on the Ethereum release.

Would you mind filing a bug at https://github.com/blockchain-certificates/cert-issuer/issues with what you have described here?

1 Like

Thanks for answering @lparker and @akodate !

I created the issue here: https://github.com/blockchain-certificates/cert-issuer/issues/107#issue-357020307 :pray:

Thanks.

1 Like

@lparker I found this: Error with cert-issuer

That person solved a problem with the same error, using the plain text unencrypted format of the private key. The same format I have also used.
Like this: b5d9ce34e5e01bb136760ffdda4b3f5769665fddedd5cdb0edddfe208ed01e29 (just an example)

Just to confirm, is that the correct format?

Thanks

Try forcing ethereum to be ethereum==2.3.1 while leaving rlp<1

3 Likes

I tried it and it works!

I just updated and closed the issue in github!

Thanks @aronning!

1 Like

@Hugo I am having the same issue but I am not being able to find where to change this line, can you help me?

Hi @mylliswang! There is a file called ethereum_requirements.txt.

It worked when I put there these 2 lines:

ethereum==2.3.1
rlp<1
1 Like

The new release already has these changes but when I use cert-issuer for Ethereum testnet, I get "ModuleNotFoundError: No module named ‘ethereum’ ". Any help, please?

I’m facing the same issue and I have the following in my ethereum_requirments.txt file:
coincurve==7.1.0
rlp<1
ethereum==2.3.1

but still, I’m facing the same issue as:

Traceback (most recent call last):
  File "/Users/abdul/PycharmProjects/cert-issuer/venv/bin/cert-issuer", line 11, in <module>
    load_entry_point('cert-issuer==2.0.22', 'console_scripts', 'cert-issuer')()
  File "/Users/abdul/PycharmProjects/cert-issuer/venv/lib/python3.5/site-packages/cert_issuer-2.0.22-py3.5.egg/cert_issuer/__main__.py", line 17, in cert_issuer_main
    issue_certificates.main(parsed_config)
  File "/Users/abdul/PycharmProjects/cert-issuer/venv/lib/python3.5/site-packages/cert_issuer-2.0.22-py3.5.egg/cert_issuer/issue_certificates.py", line 36, in main
    return issue(app_config, certificate_batch_handler, transaction_handler)
  File "/Users/abdul/PycharmProjects/cert-issuer/venv/lib/python3.5/site-packages/cert_issuer-2.0.22-py3.5.egg/cert_issuer/issue_certificates.py", line 22, in issue
    tx_id = issuer.issue(app_config.chain)
  File "/Users/abdul/PycharmProjects/cert-issuer/venv/lib/python3.5/site-packages/cert_issuer-2.0.22-py3.5.egg/cert_issuer/issuer.py", line 27, in issue
    txid = self.transaction_handler.issue_transaction(blockchain_bytes)
  File "/Users/abdul/PycharmProjects/cert-issuer/venv/lib/python3.5/site-packages/cert_issuer-2.0.22-py3.5.egg/cert_issuer/blockchain_handlers/ethereum/transaction_handlers.py", line 61, in issue_transaction
    self.verify_transaction(signed_tx, eth_data_field)
  File "/Users/abdul/PycharmProjects/cert-issuer/venv/lib/python3.5/site-packages/cert_issuer-2.0.22-py3.5.egg/cert_issuer/blockchain_handlers/ethereum/transaction_handlers.py", line 92, in verify_transaction
    tx_utils.verify_eth_transaction(signed_tx, eth_data_field)
  File "/Users/abdul/PycharmProjects/cert-issuer/venv/lib/python3.5/site-packages/cert_issuer-2.0.22-py3.5.egg/cert_issuer/blockchain_handlers/ethereum/tx_utils.py", line 24, in verify_eth_transaction
    for s in signed_hextx.split('80a0'):
AttributeError: 'dict' object has no attribute 'split'