public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
From: Roy Badami <roy@gnomon•org.uk>
To: Chuck <chuck+bitcoindev@borboggle•com>
Cc: Bitcoin-Dev <bitcoin-development@lists•sourceforge.net>
Subject: Re: [Bitcoin-development] BIP70 message delivery reliability
Date: Thu, 30 Jan 2014 12:20:16 +0000	[thread overview]
Message-ID: <20140130122016.GX38964@giles.gnomon.org.uk> (raw)
In-Reply-To: <52EA3FAD.5080802@borboggle.com>

On Thu, Jan 30, 2014 at 07:03:57PM +0700, Chuck wrote:
> On 1/30/2014 7:02 PM, Pieter Wuille wrote:
> > On Thu, Jan 30, 2014 at 12:59 PM, Mike Hearn <mike@plan99•net> wrote:
> >> With the way it works in bitcoinj, the tx is only committed to the wallet if
> >> the server accepts the Payment message and ACKs it. So the tx would not be
> >> retried if there's a failure submitting or some kind of internal server
> >> error, and the UI would show that the payment failed. That seems
> >> straightforward and how I'd expect things to work as a user.
> > That's one right way to do it imho, but not what is suggested or
> > required by the specification, and not what bitcoin core master
> > currently implements.
> >
> If you sent the Payment message and the server goes silent after 
> receiving it, you retry to delivery.  However, the merchant can 
> broadcast the transactions and force them into your wallet anyway. You 
> could, quite likely, pay and never get an ACK.

I think in that case, you absolultely have to invalidate all the
transactions in the Payment message by broadcasting a send-to-self
transaction as soon as possible; until that point your wallet balance
is indeterminate.  Otherwise what will happen if the merchant did in
fact receive the Payment message, and then processes it (and
broadcasts the transaction) after some delay?

Then what the user will see is: an apparently failed attempt to pay,
leaving their wallet balance unchanged.  Then, perhaps many hours
later, their wallet balance will appear to spontaneously decrement.

roy





  reply	other threads:[~2014-01-30 12:20 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-30  5:47 Chuck
2014-01-30 10:49 ` Mike Hearn
2014-01-30 11:15   ` Chuck
2014-01-30 11:31     ` Mike Hearn
2014-01-30 11:42       ` Chuck
2014-01-30 11:46     ` Pieter Wuille
2014-01-30 11:59       ` Mike Hearn
2014-01-30 12:02         ` Pieter Wuille
2014-01-30 12:03           ` Chuck
2014-01-30 12:20             ` Roy Badami [this message]
2014-01-30 12:38             ` Mike Hearn

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140130122016.GX38964@giles.gnomon.org.uk \
    --to=roy@gnomon$(echo .)org.uk \
    --cc=bitcoin-development@lists$(echo .)sourceforge.net \
    --cc=chuck+bitcoindev@borboggle$(echo .)com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox