Should SPSP support returning multiple ILP addresses?

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)

1 Like

If we don’t have a need for it I’d be reluctant to try and design it otherwise we are almost guaranteed to design something that is ultimately a bad fit when it is finally used.

Can you explain how this might affect other implementation decisions?

I agree with adrian; I think it adds a lot of complexity and right now the problems we’re encountering on the network aren’t very much in the rate discovery space. Currency logic on Interledger is a really hard thing for people to grok so making that more complicated isn’t something I’m eager to do