The SPSP response currently includes only one ILP address, which is fine if each node only has a single upstream provider. However, if a node is connected to multiple upstream providers, they might have multiple ILP addresses that they could be reached at. Should SPSP support returning multiple ILP addresses such that the sender could decide which one is the best to send to?
This would be useful for handling the cases where the receiver:
- has multiple upstream providers and wants to receive through whichever one provides the best momentary rates
- has accounts in different currencies and is open to receiving whichever one results in the best rate from the sender
Note that this could be added in a non-breaking way because the current
destination_account field could be maintained as the “default” or recommended address to send to. The other addresses could be included in a separate array field.
Importantly, these different ILP addresses would need to correspond to the same account with the same asset (and asset scale). If each address went to a separate account, the sender would have no way to compare the
prepare_amounts in the different STREAM responses. If the receiver wants to provide addresses that correspond to routes through accounts denominated in different assets, they would need to run an Interledger connector/node, set the exchange rate they want between their different assets, and provide the multiple ILP addresses for a single receiving account on that node.
We do not really have a need for this at the moment but deciding one way or the other on this might affect other implementation decisions.
(This is something that has been discussed before but I couldn’t find a write-up of the discussion or conclusions)