Ride-The-Lightning / RTL

Ride The Lightning - A full function web browser app for LND, C-Lightning and Eclair
MIT License
741 stars 159 forks source link

Setting up Ride-The-Lightning and Lightningnetwork #598

Closed pablomendezroyo closed 3 years ago

pablomendezroyo commented 3 years ago

Hi there, I come from another open source project: DAppNode. Said in one phrase, DAppNode is a docker ecosystem for blockchain projects that makes interactions easier for users. We incentivate users to run their own node.

I am currently coding a DAppNode package for lightningnetwork, also using Ride-The-Lightning to provide the user a UI. Would be great if I can get some help from you to finish setting it up.

My environment:

I have already a bitcoin node (as a dappnode package) running on a container. Also, I have a compose with 2 services (1 for lightningnetwork and the other one Ride-The-Lightning). I have set up both services using official Docker images (shahanafarooqui/rtl:0.10.0 and lightninglabs/lnd:v0.12.0-beta) and adding their corresponding config files ( RTL-Config.json and lnd.conf) respectively.

When initialize the compose and set up a new wallet, seems to be working fine, successfully communicate each other as well with the bitcoin node.

Issues

  1. When starting the compose and logging in the RTL UI, I get the following error in the terminal: ERROR: GetInfo(17) => LND Get info failed due to bad or missing macaroon! No macaroon can exist since It is the first time I have logged in right? After initializing a new wallet everything works fine and lightningnetwork starts synchronizing.

  2. After initializing the wallet in the UI, I cannot do NOTHING. After exploring, I realized that I can only go to settings > authentication and change the password of the UI. There is no warning in the UI about this.

  3. After loggout and login again, I have to unlock the wallet. When unlock it, it starts as usual but after a few seconds I get the following errors from the lightning network daemon:

    lnd_1  | 2021-02-11 12:30:34.876 [INF] CHBU: Updating backup file at ~/.lnd/data/chain/bitcoin/mainnet/channel.backup
    lnd_1  | unable to start server: unable to refresh backup file: unable to update multi backup: unable to create temp file: open ~/.lnd/data/chain/bitcoin/mainnet/temp-dont-use.backup: no such file or directory
    lnd_1  | 2021-02-11 12:30:34.879 [ERR] LTND: unable to start server: unable to refresh backup file: unable to update multi backup: unable to create temp file: open ~/.lnd/data/chain/bitcoin/mainnet/temp-dont-use.backup: no such file or directory

    Not sure where does temp-dont-use.backup come from, it is not defined in any env variable nowhere. I have tried to unlock it using the cli: lncli unlock but the same problem. My backup file path is: backupfilepath=~/.lnd/data/chain/bitcoin/mainnet/channel.backup

Questions

  1. What is the difference between running Ride-The-Lightning as a server than as a service? I guess a server is something more responsive and service is like a daemon. Which one should I choose based on my environment?

  2. In the RTL-Config.json, what is the difference between "userPersona": "OPERATOR" or "MERCHANT"?

  3. In the RTL-Config.json, for the key "host" I have set up "0.0.0.0", If I use "localhost" (it is the default value) it does not work. "host": "0.0.0.0" This may be out of your scope but would appreciate it.

I would really appreciate your help and sorry for the long extension of my issue.

Love your project :heart:

ShahanaFarooqui commented 3 years ago

@pablomendezroyo

When starting the compose and logging in the RTL UI, I get the following error in the terminal: ERROR: GetInfo(17) => LND Get info failed due to bad or missing macaroon! No macaroon can exist since It is the first time I have logged in right? After initializing a new wallet everything works fine and lightningnetwork starts synchronizing.

[Shahana]: It is a strange issue. Someone has already opened a similar issue and I was not able to reproduce it on my side. The issue is still open and will take more time to clear.

After initializing the wallet in the UI, I cannot do NOTHING. After exploring, I realized that I can only go to settings > authentication and change the password of the UI. There is no warning in the UI about this.

[Shahana]: It happens when the user logs in with default password value (as password). So that, user can update the password before moving forward. But, it should not stop the user to navigate to other routes.

After loggout and login again, I have to unlock the wallet. When unlock it, it starts as usual but after a few seconds I get the following errors from the lightning network daemon:

[Shahana]: LND team will be better contact for this one. Make sure you have admin rights on the backup path.

What is the difference between running Ride-The-Lightning as a server than as a service? I guess a server is something more responsive and service is like a daemon. Which one should I choose based on my environment?

[Shahana]: RTL is a node server which enhances the security and user experience for RTL users. The service can be used to start/stop the same server.

In the RTL-Config.json, what is the difference between "userPersona": "OPERATOR" or "MERCHANT"?

[Shahana]: The userPersona decides the dashboard layout. Merchant needs different information on the dashboard and operators prefer to check other data points. So this is just to enhance the UX.

In the RTL-Config.json, for the key "host" I have set up "0.0.0.0", If I use "localhost" (it is the default value) it does not work. "host": "0.0.0.0"

[Shahana]: The host value is already configurable. It can either be configured through environment variable or through RTL-Config.json. https://github.com/Ride-The-Lightning/RTL/blob/master/docs/Application_configurations

pablomendezroyo commented 3 years ago

Thank you very much for your response.

The first issue I solved it in the compose, I was using the wrong shared folders so RTL was not able to see the macaroon.

I have another question, I have not clear enough the channel backup: the lnd.conf has an env variable for the channel backup path, but here in RTL also there is another field in the RTL-Config.json for the channel backup path. Both services (RTL and LND) are storing the channel backup? Should I put the same path in both of them?

Thanks in advance

saubyk commented 3 years ago

Hi @pablomendezroyo, you should keep both the configs separate. Ideally, you should keep the RTL's backup file inside the RTL folder e.g. ~RTL/backup

pablomendezroyo commented 3 years ago

One more,

Is there any way to setup the UI password (in the json file known ass multipass) as an env variable?

If I use RTL as a service (not use of RTL-Config.json) how can I setup the UI password?

Thanks in advance

saubyk commented 3 years ago

@pablomendezroyo can you please explain in a bit more detail the setup that you want to configure RTL with?

How are you planning to authenticate the user? Why do you need to pass the password as an env. variable?

saubyk commented 3 years ago

@pablomendezroyo closing this ticket now, assuming no further help is needed on this issue. Feel free to reopen if you need to take it further. Thanks.