API Transport.has_path & Transport.request_path #355
-
Can anyone explain why RNS.Transport.has_path always returns False in the following situation? App A is connected to app B thru an intermediate transport node using TCP client / server interfaces. 3 nodes in total are involved in this test.
Clearly a path exists between app A and app B, which is established by step 1. When app A responds to app B in step 5, it creates a destination to app B using the request handler's "remote_identity" argument and tests for a path which fails. It also saves the destination hash for app B to disk.
I verified the address and identity hashes used in app A's request handler are identical to that printed by app B when it starts up. I also ran the following code within app A and consistently get the same results as I get when I run it in Pycharm's Python Console:
Nothing appears in either RNS logfile for app A or B, nd no errors are displayed. Questions: 2 - Why doesn't the call to RNS.Transport.request_path signal the intermediate transport node to "announce the path" between app A and app B, and why does the call to RNS.Transport.has_path fail? 3 - Does RNS.Transport.request_path(address) establish a path (route) like an Announce does, or does it only query nodes to report if they "know of" the address? I'm very perplexed why I can't get app A to successfully create a link to app B knowing app B's address and identity. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 7 replies
-
Hello Thomas, I have been programming my own application for a while. I try with my best knowledge to answer your questions. If I have misunderstood, someone can correct this. 1 2 Check the interface mode settings of the "3th (transport node)". 3 I hope I could help you |
Beta Was this translation helpful? Give feedback.
Hello Thomas,
I have been programming my own application for a while. I try with my best knowledge to answer your questions. If I have misunderstood, someone can correct this.
1
There are no bidirectional paths in Reticulum. Both apps must always send an announcement of their destination.
App A sends an announce.
App B can connect to app a.
(App A cannot connect to app b)
App B sends an announce.
App A can connect to App B.
2
" RNS.Transport.request_path" should actually request the path to app B.
You need to add a queue to wait some time before checking the path with "RNS.Transport.has_path". If this is done directly after the request there is of course no path yet.
Check the interface m…