Light-client: Reproduce PFS routing issue from EthCC with DApp Node their service.

Created on 4 Aug 2021  路  11Comments  路  Source: raiden-network/light-client

During the EthCC event we had issues with the DApp Node hosted PFS. We think to have found the cause and that should be fixed soon. Nevertheless we need to reproduce the issue to test if it got solved or not.
The setup we had was composed of three LCs. One as the sender, a second as mediator and a third as receiver. Each the second and third node must have a UDC deposit to enable receiving transfers. It requires a channel from 1 to 2 with a deposit by 1 and another channel from 2 to 3 with a deposit of 2.
Now try to do a mediated transfer from 1 to 3 (they must not have a channel with each other) and select the DApp Node their PFS (the cheapest). Verify that you get a route for the payment. As all three nodes are freshly setup, there must be no other route than 1 - 2 - 3.

Most helpful comment

@agatsoh this path/find/failure is only the check for the direct route, NOT the actual PFS error. Remember the dApp first checks if there's a direct route, and if not, it'll fetch the PFS list, offer them to user, and then will do the actual request to it. From your logs, no 2nd request is seen, meaning for some reason this actual PFS didn't happen. Not sure why though, something not logged, maybe no valid PFS was found? In your Network tab in browser dev tools, you could check if there're any failed PFS/info request.

All 11 comments

@weilbith I am guessing this is on goerli ? Just to confirm

I think the dAppnode PFS runs on mainnet

Yes. Unfortunately this is mainnet.
@palango a PFS can't handle multiple networks at the same time, right?

@palango a PFS can't handle multiple networks at the same time, right?

No, not currently

@agatsoh it is fine to re-use accounts with existing channels. Just order them correctly and make sure there is no other route available (most simple situation would be if there is only one per node). So then you don't even need to pay any ETH.

Yeah I already have them all setup would have to clear the database in the browser and then I am good to go.

{
  "type": "path/find/failure",
  "payload": "RaidenError: Pathfinding Service is disabled and no direct route is available.\n    at vr (http://localhost:8080/js/app.03a0d46c.js:1:118621)\n    at t.project (http://localhost:8080/js/app.03a0d46c.js:1:121387)\n    at t._tryNext (http://localhost:8080/js/chunk-vendors.29caa979.js:16:17754)\n    at t._next (http://localhost:8080/js/chunk-vendors.29caa979.js:16:17656)\n    at t.next (http://localhost:8080/js/chunk-vendors.29caa979.js:97:10564)\n    at t._next (http://localhost:8080/js/chunk-vendors.29caa979.js:102:77820)\n    at t.next (http://localhost:8080/js/chunk-vendors.29caa979.js:97:10564)\n    at t._next (http://localhost:8080/js/chunk-vendors.29caa979.js:97:10893)\n    at t.next (http://localhost:8080/js/chunk-vendors.29caa979.js:97:10564)\n    at t.next (http://localhost:8080/js/chunk-vendors.29caa979.js:102:34538)",
  "meta": {
    "tokenNetwork": "0xEA92bD481e54BBB9Bb6C927970a54E82eE26c6B4",
    "target": "0xF087038D9032dc5e419C62dF32e865C2d160db2e",
    "value": {
      "_hex": "0x0de0b6b3a7640000",
      "_isBigNumber": true
    }
  },
  "error": true
}

It seems this issue still persists. This does not happen with the other PFS's

Did you ask Ulo if the whitelist was updated?

@agatsoh this path/find/failure is only the check for the direct route, NOT the actual PFS error. Remember the dApp first checks if there's a direct route, and if not, it'll fetch the PFS list, offer them to user, and then will do the actual request to it. From your logs, no 2nd request is seen, meaning for some reason this actual PFS didn't happen. Not sure why though, something not logged, maybe no valid PFS was found? In your Network tab in browser dev tools, you could check if there're any failed PFS/info request.

@andrevmatos
I ran it once again to check after we select the dappnode pfs what transpires. But I could not find in /info request.
2021-08-05T09:03:05.808Z #12964035 [info] => %c action

{
  "type": "path/find/failure",
  "payload": "RaidenError: Pathfinding Service is disabled and no direct route is available.\n    at vr (http://localhost:8080/js/app.03a0d46c.js:1:118621)\n    at t.project (http://localhost:8080/js/app.03a0d46c.js:1:121387)\n    at t._tryNext (http://localhost:8080/js/chunk-vendors.29caa979.js:16:17754)\n    at t._next (http://localhost:8080/js/chunk-vendors.29caa979.js:16:17656)\n    at t.next (http://localhost:8080/js/chunk-vendors.29caa979.js:97:10564)\n    at t._next (http://localhost:8080/js/chunk-vendors.29caa979.js:102:77820)\n    at t.next (http://localhost:8080/js/chunk-vendors.29caa979.js:97:10564)\n    at t._next (http://localhost:8080/js/chunk-vendors.29caa979.js:97:10893)\n    at t.next (http://localhost:8080/js/chunk-vendors.29caa979.js:97:10564)\n    at t.next (http://localhost:8080/js/chunk-vendors.29caa979.js:102:34538)",
  "meta": {
    "tokenNetwork": "0xEA92bD481e54BBB9Bb6C927970a54E82eE26c6B4",
    "target": "0xF087038D9032dc5e419C62dF32e865C2d160db2e",
    "value": {
      "_hex": "0x0de0b6b3a7640000",
      "_isBigNumber": true
    }
  },
  "error": true
}

2021-08-05T09:03:23.376Z #12964037 [info] => %c action

{
  "type": "path/find/request",
  "payload": {
    "pfs": {
      "address": "0x60eAE5572D7094B63cA8C854eE8132EDc65570b3",
      "url": "https://pfs.raiden.dappnode.io",
      "rtt": 1171,
      "price": {
        "_hex": "0x64",
        "_isBigNumber": true
      },
      "token": "0x255Aa6DF07540Cb5d3d297f0D0D4D84cb52bc8e6"
    }
  },
  "meta": {
    "tokenNetwork": "0xEA92bD481e54BBB9Bb6C927970a54E82eE26c6B4",
    "target": "0xF087038D9032dc5e419C62dF32e865C2d160db2e",
    "value": {
      "_hex": "0x0de0b6b3a7640000",
      "_isBigNumber": true
    }
  }
}

2021-08-05T09:03:23.381Z #12964037 [info] => %c action

{
  "type": "matrix/presence/request",
  "meta": {
    "address": "0xF087038D9032dc5e419C62dF32e865C2d160db2e"
  }
}

2021-08-05T09:03:23.387Z #12964037 [info] => %c action

{
  "type": "matrix/presence/success",
  "payload": {
    "userId": "@0xf087038d9032dc5e419c62df32e865c2d160db2e:transport.raiden.badgateway.tech",
    "available": true,
    "ts": 1628154183310,
    "caps": {
      "Receive": 1,
      "webRTC": 1,
      "Delivery": 0,
      "Mediate": 0,
      "toDevice": 1,
      "immutableMetadata": 1
    },
    "pubkey": "0x041cf4346c6c392909a87da6d4d28fb8ce080c46c222ffe4e787c0b23a92d49b9516e2d70ef98e43d7785a3d858592f9b87b735f020652054f4b27675d1d132c84"
  },
  "meta": {
    "address": "0xF087038D9032dc5e419C62dF32e865C2d160db2e"
  }
}

2021-08-05T09:03:24.342Z #12964038 [info] => %c action

{
  "type": "iou/persist",
  "payload": {
    "iou": {
      "sender": "0x07d036DbC602F0191a4bC8e217fe48d34cD4a230",
      "receiver": "0x60eAE5572D7094B63cA8C854eE8132EDc65570b3",
      "chain_id": {
        "_hex": "0x01",
        "_isBigNumber": true
      },
      "amount": {
        "_hex": "0x64",
        "_isBigNumber": true
      },
      "one_to_n_address": "0x960f01E9E219E1c8564784a050fD1cA51651592D",
      "expiration_block": {
        "_hex": "0xc8de06",
        "_isBigNumber": true
      },
      "signature": "0x3c260504a7c02968aa455616abb2f024558192bb773c81a33ee0ea6defa0bbb353f5a40302de00148b238c14d61196fc29a1c31d3937189aeac779d336ab22561c"
    }
  },
  "meta": {
    "tokenNetwork": "0xEA92bD481e54BBB9Bb6C927970a54E82eE26c6B4",
    "serviceAddress": "0x60eAE5572D7094B63cA8C854eE8132EDc65570b3"
  }
}

2021-08-05T09:03:24.355Z #12964038 [info] => %c action

{
  "type": "path/find/failure",
  "payload": "RaidenError: No route between nodes found.\n    at Or (http://localhost:8080/js/app.03a0d46c.js:1:118992)\n    at t.project (http://localhost:8080/js/app.03a0d46c.js:1:121497)\n    at t._tryNext (http://localhost:8080/js/chunk-vendors.29caa979.js:16:17754)\n    at t._next (http://localhost:8080/js/chunk-vendors.29caa979.js:16:17656)\n    at t.next (http://localhost:8080/js/chunk-vendors.29caa979.js:97:10564)\n    at t._next (http://localhost:8080/js/chunk-vendors.29caa979.js:102:77820)\n    at t.next (http://localhost:8080/js/chunk-vendors.29caa979.js:97:10564)\n    at t.notifyNext (http://localhost:8080/js/chunk-vendors.29caa979.js:16:18170)\n    at t._next (http://localhost:8080/js/chunk-vendors.29caa979.js:102:104463)\n    at t.next (http://localhost:8080/js/chunk-vendors.29caa979.js:97:10564)",
  "meta": {
    "tokenNetwork": "0xEA92bD481e54BBB9Bb6C927970a54E82eE26c6B4",
    "target": "0xF087038D9032dc5e419C62dF32e865C2d160db2e",
    "value": {
      "_hex": "0x0de0b6b3a7640000",
      "_isBigNumber": true
    }
  },
  "error": true
}

The 2 path/find/failure
first time when we click on continue
RaidenError: Pathfinding Service is disabled and no direct route is available
second time when we actually pick that PFS we get a
No route between nodes found.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

christianbrb picture christianbrb  路  3Comments

MrCleanerPickerUpper picture MrCleanerPickerUpper  路  6Comments

kelsos picture kelsos  路  4Comments

agatsoh picture agatsoh  路  4Comments

agatsoh picture agatsoh  路  3Comments