Currently, the node configuration contains two URLs, agent_url and invocation_url, which are used to create a listening gRPC server on the node and then announced to the ε-ORC.
If the node is behind a NAT then it is necessary that the node binds to one address (e.g., localhost) but then advertises another address, possibly with a different port, as well.
How to fix: add two configuration fields (e.g., agent_url_announced, invocation_url_announce) to distinguish between what is used to bind vs. what is announced.
For convenience, the two fields can be empty by default, in which case the URL-for-bind is the same as that announced.
This change does not affect the APIs or other components, including the ε-ORC.
Currently, the node configuration contains two URLs, agent_url and invocation_url, which are used to create a listening gRPC server on the node and then announced to the ε-ORC.
If the node is behind a NAT then it is necessary that the node binds to one address (e.g., localhost) but then advertises another address, possibly with a different port, as well.
How to fix: add two configuration fields (e.g., agent_url_announced, invocation_url_announce) to distinguish between what is used to bind vs. what is announced.
For convenience, the two fields can be empty by default, in which case the URL-for-bind is the same as that announced.
This change does not affect the APIs or other components, including the ε-ORC.