ElementsProject / lightning

Core Lightning — Lightning Network implementation focusing on spec compliance and performance
Other
2.85k stars 902 forks source link

Unable to pay to private channel #5586

Open mrbitcoiner opened 2 years ago

mrbitcoiner commented 2 years ago

Node A (CLN v0.12.0-26-g7df530d) has a private channel (Liquidity 50% inbound/outbound) with the node B (Simple Bitcoin Wallet) that has only this private channel.

Paying from node A to node B fails, as following:

lightning-cli pay -k bolt11=lnbc1u1p33ll9[...]4cqh5ealr
{
   "code": 210,
   "message": "Destination 02fdeb9913[...]4c127c8 is not reachable directly and all routehints were unusable.",
   "attempts": [
      {
         "status": "failed",
         "failreason": "Destination 02fdeb991[...]3c0575f4c127c8 is not reachable directly and all routehints were unusable.",
         "partid": 0,
         "amount": "100000msat",
         "amount_msat": "100000msat"
      }
   ]
}

Decoding the bolt11 we can see that the payment has the right route hint

{
   "currency": "bc",
   "created_at": 1663040700,
   "expiry": 1209600,
   "payee": "02fdeb9913[...]4c127c8",
   "msatoshi": 100000,
   "amount_msat": "100000msat",
   "description": "",
   "min_final_cltv_expiry": 144,
   "payment_secret": "7292217665[...]2251edcbcbb",
   "features": "024100",
   "routes": [
      [
         {
            "pubkey": "037cc874f[...]3558d5",
            "short_channel_id": "7[...]x[...]x0",
            "fee_base_msat": 1000,
            "fee_proportional_millionths": 100,
            "cltv_expiry_delta": 34
         }
      ]
   ],
   "payment_hash": "40f481c95822096[...]67b87c672c77b9",
   "signature": "30440220[...]f307f54ab57"
}

paystatus:

lightning-cli paystatus -k bolt11=lnbc1u1p33ll9upp5[...]tes0a22k4cqh5ealr
{
   "pay": [
      {
         "bolt11": "lnbc1u1p33ll9u[...]4cqh5ealr",
         "amount_msat": "100000msat",
         "destination": "02fdeb9913[...]75f4c127c8",
         "attempts": [
            {
               "strategy": "Initial attempt",
               "start_time": "2022-09-13T03:55:51.365Z",
               "age_in_seconds": 3508,
               "end_time": "2022-09-13T03:55:51.572Z",
               "state": "completed",
               "failure": {
                  "code": 205,
                  "message": "Call to getroute: Could not find a route"
               }
            }
         ]
      }
   ]
}

Now the puzzling thing: I can pay this invoice from other lightning implementations, in this case I will use LNTXBOT that uses Immortan.

Screen Shot 2022-09-13 at 01 08 08

With coinos (LND) and Wallet Of Satoshi (IDK) I can pay these invoices successfully too. With other CLN nodes I still get the same fail as related above. Tested with other node running CLN version 0.11.2 too.

The payment fails almost instantly after the lightning-cli pay command.

OBS: I can pay from Node B to Node A. Only CLN nodes can't pay to the private channel.

niftynei commented 2 years ago

Does the node appear to be connected when it has this issue? I think you can check this in listpeers, it'll say connected: true/false.

your-sudden-death commented 1 year ago

Currently experiencing the same issue, connected: true but cannot pay. I think it has something to do with the new abort early method of pay introduced here EDIT: In my case this has something to do with IMMORTAN, as it uses random public keys for privacy reasons. CLN cancels the payment as it does not know the pubkey, even though the payment would succeed if it attempted it

evd0kim commented 1 year ago

Confirm this. CLN-SBW Testnet channel.

Invoice

lntb5u1pjqr60hpp5yz62r7wdrmdra0es98e3rje0prftcxqds2smxtl3c2fepmf5h5hsdqqsp5dh709xylr6y62znrqg3vd472sftes43aekjczfg5fgs8hd3f9qtsxqy9gcqcqzys9qyysgqrzjqtherxcq5nsna3p7qrmhp2ghyz953zg53xgak29wywdrd28fletycf8hg5qqqycqqqqqqqqpqqqqqzsqqchk33fsrz9yern50yyl3pkxute575zx0peldls8x5qmyy0hwmd4vqpzuy58yag29ulpv0eg030kutw3sx3zqxn3cs2e947n7arkm53dgq4tsnzy

leads to

{
   "code": 210,
   "message": "Destination 034cbe14a6e68da5551ee2a8d95d6b5e0af5a40ea3b1cc890c732339b8bbf3deb0 is not reachable directly and all routehints were unusable.",
   "attempts": [
      {
         "status": "failed",
         "failreason": "Destination 034cbe14a6e68da5551ee2a8d95d6b5e0af5a40ea3b1cc890c732339b8bbf3deb0 is not reachable directly and all routehints were unusable.",
         "partid": 0,
         "amount": "500000msat",
         "amount_msat": "500000msat"
      }
   ]
}