Error: Please set rune path for node index 1 in RTL-Config.json!
Hello,
When I try to run node rtl under user rtl:rtl, no root access I placed the macaroon file in home rtl and write the path in the config file as follow my lightning node running under lightning:lightning I am facing this issue about the rune path ??? Any idea what i did wrong ? and how i could fix this ? Bets regards Jorge.
Here is my config file RTL-Config.json as follow : { "MultiPass": "XXXXXXXXX", "port": "3000", "defaultNodeIndex": 1, "SSO": { "rtlSSO": 0, "rtlCookiePath": "", "logoutRedirectLink": "" }, "nodes": [ { "index": 1, "lnNode": "Core_Lightning", "lnImplementation": "CLN", "Authentication": { "macaroonPath": "/home/rtl", "configPath": "/home/lightning/.lightning/config" }, "Settings": { "userPersona": "OPERATOR", "themeMode": "NIGHT", "themeColor": "PURPLE", "channelBackupPath": "/home/rtl/backup-rtl", "logLevel": "ERROR", "lnServerUrl": "https://localhost:3001", "fiatConversion": false } } ], "multiPassHashed": "4634dad7bee28426e7612593f4d5bc64bf5171eb66ebd670c61fb5f0ad85e7fa" }
tail -n 20 syslog Feb 9 09:02:59 Nostrserver systemd[1]: Stopped Ride the Lightning. Feb 9 09:02:59 Nostrserver systemd[1]: rtl.service: Consumed 1.386s CPU time. Feb 9 09:02:59 Nostrserver systemd[1]: Started Ride the Lightning. Feb 9 09:03:00 Nostrserver node[27803]: [2/9/2024, 9:03:00 AM] ERROR: Config => Something went wrong while configuring the node server: Feb 9 09:03:00 Nostrserver node[27803]: Error: Please set rune path for node index 1 in RTL-Config.json!. Feb 9 09:03:00 Nostrserver node[27803]: file:///home/rtl/RTL/backend/utils/config.js:369 Feb 9 09:03:00 Nostrserver node[27803]: throw new Error(err); Feb 9 09:03:00 Nostrserver node[27803]: ^ Feb 9 09:03:00 Nostrserver node[27803]: Error: Error: Please set rune path for node index 1 in RTL-Config.json! Feb 9 09:03:00 Nostrserver node[27803]: at ConfigService.setServerConfiguration (file:///home/rtl/RTL/backend/utils/config.js:369:23) Feb 9 09:03:00 Nostrserver node[27803]: at new ConfigService (file:///home/rtl/RTL/backend/utils/config.js:372:14) Feb 9 09:03:00 Nostrserver node[27803]: at file:///home/rtl/RTL/backend/utils/config.js:375:23 Feb 9 09:03:00 Nostrserver node[27803]: at ModuleJob.run (node:internal/modules/esm/module_job:218:25) Feb 9 09:03:00 Nostrserver node[27803]: at async ModuleLoader.import (node:internal/modules/esm/loader:323:24) Feb 9 09:03:00 Nostrserver node[27803]: at async loadESM (node:internal/process/esm_loader:28:7) Feb 9 09:03:00 Nostrserver node[27803]: at async handleMainPromise (node:internal/modules/run_main:120:12) Feb 9 09:03:00 Nostrserver node[27803]: Node.js v21.6.1 Feb 9 09:03:00 Nostrserver systemd[1]: rtl.service: Main process exited, code=exited, status=1/FAILURE Feb 9 09:03:00 Nostrserver systemd[1]: rtl.service: Failed with result 'exit-code'. Feb 9 09:03:00 Nostrserver systemd[1]: rtl.service: Consumed 1.372s CPU time.
@bitecorner Please note that RTL 0.15.0 is a major update which migrated RTL from c-lightning-REST to clnrest plugin. It will require working clnrest plugin on core lightning, a valid rune saved in the file and RTL-Config changes with rune details.
https://github.com/Ride-The-Lightning/RTL/releases/tag/v0.15.0
hi there same issue here:
{ "port": "9090", "SSO": { "rtlSSO": 0, "rtlCookiePath": "", "logoutRedirectLink": "" }, "nodes": [ { "index": 1, "lnNode": "CLN Node", "lnImplementation": "CLN", "Authentication": { "macaroonPath": "/home/rtl", "configPath": "/data/lightningd/config" }, "Settings": { "userPersona": "OPERATOR", "themeMode": "DAY", "themeColor": "INDIGO", "fiatConversion": true, "currencyUnit": "EUR", "logLevel": "ERROR", "lnServerUrl": "http://127.0.0.1:3092", "enableOffers": true } } ], "defaultNodeIndex": 1, "multiPassHashed": "" }
[31/05/2024, 19:44:18] ERROR: Config => Something went wrong while configuring the node server: Error: Please set rune path for node index 1 in RTL-Config.json!.
file:///home/rtl/RTL/backend/utils/config.js:369 throw new Error(err); ^
Error: Error: Please set rune path for node index 1 in RTL-Config.json! at ConfigService.setServerConfiguration (file:///home/rtl/RTL/backend/utils/config.js:369:23) at new ConfigService (file:///home/rtl/RTL/backend/utils/config.js:372:14) at file:///home/rtl/RTL/backend/utils/config.js:375:23 at ModuleJob.run (node:internal/modules/esm/module_job:222:25) at async ModuleLoader.import (node:internal/modules/esm/loader:316:24) at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:123:5)
Node.js v20.13.1
Should I fix a path in this json? If yes, where and how?
export class ConfigService { constructor() { this.platform = os.platform(); this.hash = crypto.createHash('sha256'); this.errMsg = ''; this.directoryName = dirname(fileURLToPath(import.meta.url)); this.common = Common; this.logger = Logger; this.setDefaultConfig = () => { const homeDir = os.userInfo().homedir; let macaroonPath = ''; let configPath = ''; let channelBackupPath = ''; let dbPath = ''; switch (this.platform) { case 'win32': macaroonPath = homeDir + '\\AppData\\Local\\Lnd\\data\\chain\\bitcoin\\mainnet'; configPath = homeDir + '\\AppData\\Local\\Lnd\\lnd.conf'; channelBackupPath = homeDir + '\\backup\\node-1'; dbPath = homeDir + '\\database\\node-1'; break; case 'darwin': macaroonPath = homeDir + '/Library/Application Support/Lnd/data/chain/bitcoin/mainnet'; configPath = homeDir + '/Library/Application Support/Lnd/lnd.conf'; channelBackupPath = homeDir + '/backup/node-1'; dbPath = homeDir + '/database/node-1'; break; case 'linux': macaroonPath = homeDir + '/.lnd/data/chain/bitcoin/mainnet'; configPath = homeDir + '/.lnd/lnd.conf'; channelBackupPath = homeDir + '/backup/node-1'; dbPath = homeDir + '/database/node-1'; break; default: macaroonPath = ''; configPath = ''; channelBackupPath = ''; dbPath = ''; break; } const configData = { port: '3000', defaultNodeIndex: 1, dbDirectoryPath: dbPath, SSO: { rtlSSO: 0, rtlCookiePath: '', logoutRedirectLink: '' }, nodes: [ { index: 1, lnNode: 'Node 1', lnImplementation: 'LND', Authentication: { macaroonPath: macaroonPath, configPath: configPath }, Settings: { userPersona: 'MERCHANT', themeMode: 'DAY', themeColor: 'PURPLE', channelBackupPath: channelBackupPath, logLevel: 'ERROR', lnServerUrl: 'https://127.0.0.1:8080', fiatConversion: false, unannouncedChannels: false } } ] }; if ((process?.env?.RTL_SSO && +process?.env?.RTL_SSO === 0) || configData.SSO.rtlSSO === 0) { configData['multiPass'] = 'password'; } return configData; };
@n-e-t-d-i-v-e-r Hey, the solution is also same :).
RTL's v0.15.0 release is a major integration upgrade and a breaking change for its integration with Core Lightning. With this release c-lightning-rest integration has been removed and RTL now uses core lightning’s native CLNRest plugin to communicate with the core lightning backend.
You can check more details in release notes at 0.15.0.
To know more about clnrest and how to enable it on CLN, you can check clnrest documentation.
Finally once the clnrest is working on your core lightning node, you need to:
1: Create a new rune or use an already existing one.
2: Create a new file where the content of the file must be LIGHTNING_RUNE="
3: Update your lnServerUrl with the clnrest url.
4: Remove macaroonPath from RTL-Config.json for your CLN node.
5: Add runePath with path of the folder including filename which contains the rune for the node (from step 2).