Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

_Rendezvous at /verify/ #2

Open
zoedberg opened this issue Nov 21, 2017 · 10 comments
Open

_Rendezvous at /verify/ #2

zoedberg opened this issue Nov 21, 2017 · 10 comments

Comments

@zoedberg
Copy link

After inserting the signature of the message it fails, telling the status code of the RPC is UNAVAILABLE.
Here the traceback:

Environment:


Request Method: POST
Request URL: http://localhost:8000/verify/

Django Version: 1.11.1
Python Version: 2.7.13
Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'whitenoise.runserver_nostatic',
 'django.contrib.staticfiles',
 'coindesk']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
 'whitenoise.middleware.WhiteNoiseMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']



Traceback:

File "/home/zoe/work/ln-workspace/deskenv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner
  41.             response = get_response(request)

File "/home/zoe/work/ln-workspace/deskenv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response
  187.                 response = self.process_exception_by_middleware(e, request)

File "/home/zoe/work/ln-workspace/deskenv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response
  185.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/home/zoe/work/ln-workspace/lightning-coindesk/coindesk/views.py" in verify
  45.     user = authenticate(request=request, **kwargs)

File "/home/zoe/work/ln-workspace/deskenv/local/lib/python2.7/site-packages/django/contrib/auth/__init__.py" in authenticate
  102.             user = backend.authenticate(*args, **credentials)

File "/home/zoe/work/ln-workspace/lightning-coindesk/coindesk/auth_backends.py" in authenticate
  26.         verifymessage_resp = stub.VerifyMessage(ln.VerifyMessageRequest(msg=csrf_token, signature=signature))

File "/home/zoe/work/ln-workspace/deskenv/local/lib/python2.7/site-packages/grpc/_channel.py" in __call__
  508.         return _end_unary_response_blocking(state, call, False, deadline)

File "/home/zoe/work/ln-workspace/deskenv/local/lib/python2.7/site-packages/grpc/_channel.py" in _end_unary_response_blocking
  455.         raise _Rendezvous(state, None, None, deadline)

Exception Type: _Rendezvous at /verify/
Exception Value: <_Rendezvous of RPC that terminated with (StatusCode.UNAVAILABLE, Endpoint read failed)>

@bulenttastan
Copy link
Contributor

The issue is happening because the server is trying to open an insecure_connection to the RPC server. I sent a pull request to fix the issue by opening a secure connection using the TLS certification file.

@Quenos
Copy link

Quenos commented Jan 2, 2018

Even with the PR I still have this issue

@bulenttastan
Copy link
Contributor

@Quenos hmm, it worked for me, that's why I made the change. Do you know what's causing your issue?

@Quenos
Copy link

Quenos commented Jan 2, 2018

@bulenttastan Not yet. I'm also having the issue when following the next step in the tutorial, interacting using the command line.

Another thing I noticed that in said next step it says channel = grpc.secure_channel('localhost:10009', creds), but in your code you're interacting with port LND_RPCHOST (10002), but both are not working for me, so that is not the issue.

@wintercooled
Copy link

wintercooled commented Jan 2, 2018

As a work around.... this worked for me (suggested by Tomas on LN slack) but not a long term fix (hard coded path etc)

before running edit: models.py and auth_backends.py (from source not the PR) and replace:

channel = grpc.insecure_channel(settings.LND_RPCHOST)

with: (make sure you line the indents up right with existing code - and it occurs 3 times in all)

   os.environ["GRPC_SSL_CIPHER_SUITES"] = "HIGH+ECDSA"
   cert = open('/home/yourhomenamehere/.lnd/tls.cert').read()
   creds = grpc.ssl_channel_credentials(cert)
   channel = grpc.secure_channel('localhost:10002', creds)

(assuming you have the tls.cert in that path that is - amend to point to it)

You just need to stop the server, edit the files and run python manage.py runserver again

ALSO - add the following to the top of those two files:

import os

Maybe it's the os.environ["GRPC_SSL_CIPHER_SUITES"] = "HIGH+ECDSA" that works for us as the other lines look functionally similar???

@Quenos
Copy link

Quenos commented Jan 2, 2018

@bulenttastan was just typing that :)
Thanks for the good work!

@adlererik
Copy link

@wintercooled Thanks this worked for me. On Debian 9 GNU/Linux

@doctorzhivago
Copy link

doctorzhivago commented Jan 6, 2018

One could also do something like:
cert = open( '%s/.lnd/tls.cert' % (os.environ["LND_CERT_HOME"],)).read()
in order to make it not use a hard coded path

@samjhill
Copy link

samjhill commented Jan 10, 2018

+1 I also get this error. After following @wintercooled 's instructions, I got a different, but seemingly related error:

Traceback (most recent call last):
  File "/Users/me/Documents/opensource/ln-workspace/deskenv/lib/python2.7/site-packages/django/core/handlers/exception.py", line 41, in inner
    response = get_response(request)
  File "/Users/me/Documents/opensource/ln-workspace/deskenv/lib/python2.7/site-packages/django/core/handlers/base.py", line 187, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/Users/me/Documents/opensource/ln-workspace/deskenv/lib/python2.7/site-packages/django/core/handlers/base.py", line 185, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/Users/me/Documents/opensource/ln-workspace/lightning-coindesk/coindesk/views.py", line 45, in verify
    user = authenticate(request=request, **kwargs)
  File "/Users/me/Documents/opensource/ln-workspace/deskenv/lib/python2.7/site-packages/django/contrib/auth/__init__.py", line 100, in authenticate
    user = backend.authenticate(*args, **credentials)
  File "/Users/me/Documents/opensource/ln-workspace/lightning-coindesk/coindesk/auth_backends.py", line 18, in authenticate
    verifymessage_resp = stub.VerifyMessage(ln.VerifyMessageRequest(msg=csrf_token, signature=signature))
  File "/Users/me/Documents/opensource/ln-workspace/deskenv/lib/python2.7/site-packages/grpc/_channel.py", line 507, in __call__
    return _end_unary_response_blocking(state, call, False, deadline)
  File "/Users/me/Documents/opensource/ln-workspace/deskenv/lib/python2.7/site-packages/grpc/_channel.py", line 455, in _end_unary_response_blocking
    raise _Rendezvous(state, None, None, deadline)
_Rendezvous: <_Rendezvous of RPC that terminated with (StatusCode.UNKNOWN, failed to decode signature: illegal z-base-32 data at input byte 2)>

Anyone have any ideas?

edit: FIXED. On OSX. Originally, I tried pointing at /Users/me/Library/Application\ Support/Lnd/tls.cert, but that didn't work (due to permissions, I figured), so I tried pointing at a different copy of tls.cert in another folder, which also didn't work.

Then, I tried /Users/me/Library/Application Support/Lnd/tls.cert (no backslash) and it worked.

@jinsu35
Copy link

jinsu35 commented Feb 12, 2018

In this tutorial (http://dev.lightning.community/tutorial/03-rpc-client/index.html), the server is connected to 'Bob' node but the instruction uses 'lncli-alice' to generate log-in credentials. Shouldn't it be 'lncli-bob'?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants