ethereum/pyethapp

Specifying a custom bootnode fails with "AssertionError: e"

karalabe opened this issue · 2 comments

If I start pyethapp with -c discovery.bootstrap_nodes='enode://0b5ccd88c1904ad78ef455149eb88f4a5f92835a4604ecd9639ddcfb86d2a2999ad9328bc088452efffe4a7c6cd0eaaef77c779dc56fc1d0f21cd578eeb92cb5@23.101.151.28:30303'

it fails with:

[...]

  File "/usr/lib/python2.7/site-packages/pyethapp-1.5.0-py2.7.egg/pyethapp/app.py", line 228, in run
    app.start()
  File "/usr/lib/python2.7/site-packages/devp2p-0.9.2-py2.7.egg/devp2p/app.py", line 41, in start
    service.start()
  File "/usr/lib/python2.7/site-packages/devp2p-0.9.2-py2.7.egg/devp2p/discovery.py", line 580, in start
    nodes = [Node.from_uri(x) for x in self.app.config['discovery']['bootstrap_nodes']]
  File "/usr/lib/python2.7/site-packages/devp2p-0.9.2-py2.7.egg/devp2p/discovery.py", line 122, in from_uri
    ip, port, pubkey = utils.host_port_pubkey_from_uri(uri)
  File "/usr/lib/python2.7/site-packages/devp2p-0.9.2-py2.7.egg/devp2p/utils.py", line 30, in host_port_pubkey_from_uri
    b'@' in uri and b':' in uri, uri
AssertionError: e

Not sure what the error might be, enode seems to look ok to me and seems to be in sync with the python assertion (that fails for some reason).

Try

pyethapp -c discovery.bootstrap_nodes="['enode://0b5ccd88c1904ad78ef455149eb88f4a5f92835a4604ecd9639ddcfb86d2a2999ad9328bc088452efffe4a7c6cd0eaaef77c779dc56fc1d0f21cd578eeb92cb5@23.101.151.28:30303']" run

And confirm it with console:

In [3]: eth.services.peermanager.peers
Out[3]: [<Peer('23.101.151.28', 30303) >]

(But it's still really hard to start syncing...)

Yay, indeed it works now. Didn't occur to me to do quotes within quotes. Thx!