Author: Gavin Andresen 2012-11-29 16:11:51
Published on: 2012-11-29T16:11:51+00:00
In response to Roy Badami's comments on edge cases around submitting a Payment message to a merchant and not receiving a timely response, Gavin Andresen agrees that it is messy. He is hesitant to specify the One True Way of handling it in the spec and suggests that different implementations might try different things with the best implementation winning. For example, in the case of a future Bitcoin client reusing an old Invoice to send a monthly subscription payment but unable to contact the paymentURI, the right thing would be to retry once a day for three or four days before giving up and telling the user that the service is no longer in business or changed their paymentURI without leaving behind a redirect. On the other hand, if it has a single-use Invoice created a minute or two ago, the right logic might be to error and tell the user "payment failed" if the paymentURI is completely non-responsive. If connected to the paymentURI and payment sent but disconnected before receiving a response, then try to send-to-self the coins to cancel payment. However, he is not sure that this is the best way to handle it, and implementers have the right incentives to give their users the best user experience. Therefore, he feels comfortable leaving the spec fuzzy for now.
Updated on: 2023-06-06T08:33:56.690396+00:00