public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
From: Pieter Wuille <pieter.wuille@gmail.com>
To: Gavin Andresen <gavinandresen@gmail.com>
Cc: Bitcoin Dev <bitcoin-development@lists.sourceforge.net>,
	Andreas Schildbach <andreas@schildbach.de>
Subject: Re: [Bitcoin-development] BIP70: PaymentACK semantics
Date: Thu, 30 Jan 2014 16:16:54 +0100	[thread overview]
Message-ID: <CAPg+sBiz1oXqsRTpQpVghTFupj6jsp5M-zDGKe7bjeUBHNMxUA@mail.gmail.com> (raw)
In-Reply-To: <CABsx9T1jAobC_p9oa_PX8M7Bo6Db3=oBhPuhp5CXVHqTRb=Hng@mail.gmail.com>

On Thu, Jan 30, 2014 at 4:06 PM, Gavin Andresen <gavinandresen@gmail.com> wrote:
> On Thu, Jan 30, 2014 at 9:51 AM, Jeff Garzik <jgarzik@bitpay.com> wrote:
>>
>> Is this truly the intent?  That the merchant/processor takes full
>> responsibility for getting the TX confirmed?
>
>
> The intent is to give the customer a great experience. We could talk for
> months about whether having the wallet broadcast the transaction as soon as
> possible or having it wait for the merchant to respond with a PaymentACK is
> better. But I think we should let wallets experiment with different ways of
> doing it, and see what works best in practice.

Currently, with the specification and implementation in Bitcoin Core,
if a merchant wants to use the refund or memo feature, they need to
provide an alternative route for delivering that information to them
*before* the transaction is made, as sending the transaction may
result in the transfer of funds without knowing what to do with it (if
their receive server is down at the right time) and potnetially no way
to contact the sender. This makes these fields utterly useless.

This is not a matter of letting wallets experiment with the best
behaviour. This is removing the ability to rely on the payment
protocol being bidirectional.

I don't care whether wallets broadcast the transactions or not (they
can experiment with that as they like). But we should take measures to
prevent a transaction for being broadcast without the payment being
delivered. One way is never broadcasting the transaction yourself.
Another is retrying to send the payment if delivery fails.

Here is what I would suggest to add to the specification:
* If a payment_uri is specified, the client must attempt to send the
payment there.
* If a transaction is broadcast (which is permitted even if sending
the payment fails), a client should make a reasonable attempt of
delivering the payment (remembering, retrying, ...).
* If a paymentACK has been received, the client is no longer
responsible for broadcasting the transaction (but still may).

-- 
Pieter



  reply	other threads:[~2014-01-30 15:17 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-26 21:56 [Bitcoin-development] BIP70: PaymentACK semantics Andreas Schildbach
2014-01-27 14:54 ` Gavin Andresen
2014-01-27 15:20   ` Andreas Schildbach
2014-01-27 15:52   ` Mike Hearn
2014-01-27 22:03     ` Kevin Greene
2014-01-27 22:17       ` Pieter Wuille
2014-01-27 22:39         ` Kevin Greene
2014-01-28 11:42           ` Mike Hearn
2014-01-28 12:53             ` Gavin Andresen
2014-01-28 13:09               ` Pieter Wuille
2014-01-28 13:24               ` Mike Hearn
2014-01-28 17:23               ` Peter Todd
2014-01-28 17:33                 ` Mike Hearn
2014-01-28 21:12                   ` Peter Todd
2014-01-30 14:51         ` Jeff Garzik
2014-01-30 14:58           ` Pieter Wuille
2014-01-30 15:01           ` Mike Hearn
2014-01-30 15:06           ` Gavin Andresen
2014-01-30 15:16             ` Pieter Wuille [this message]
2014-01-30 20:16               ` Jeremy Spilman
2014-01-31  4:16                 ` Chuck
2014-01-31 16:21                   ` Christophe Biocca

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=CAPg+sBiz1oXqsRTpQpVghTFupj6jsp5M-zDGKe7bjeUBHNMxUA@mail.gmail.com \
    --to=pieter.wuille@gmail.com \
    --cc=andreas@schildbach.de \
    --cc=bitcoin-development@lists.sourceforge.net \
    --cc=gavinandresen@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
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