Re: [Bitcoin-development] Plans to separate wallet from core

2014-06-24 Thread Mike Hearn

 So first bitcoind will support SPV mode then we separate the wallet?
 Are the core and the wallet share any code (say, the p2p messages via
 a sub-repo or something)?


bitcoind already supports SPV mode, that's how bitcoinj clients work.
However the current wallet code doesn't use it, it integrates directly with
the full mode main loop and doesn't talk P2P internally. Which is the fine
and obvious way to implement the wallet feature. I'm not totally convinced
it should become an SPV wallet given the complexity of doing that. But if
you did want to separate the wallet code from the full node then that'd be
the way to do it.

The question is; what does this buy us, and is it worth the potentially
huge amount of time it could take? My gut feeling is we have bigger fish to
fry. There's plenty of work to do just on the core consensus code, making
Bitcoin Core into a competitive wallet as well would be an additional
burden.

However I may be quite biased, as I am the maintainer of what is primarily
a wallet library :)


 I'm sorry, but I still don't know what Electrum has to do with all this.


People use Electrum as shorthand to mean something a bit like the P2P
network, but with trusted remote servers which build additional databases
and thus support additional commands.
--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Plans to separate wallet from core

2014-06-24 Thread Wladimir
 The question is; what does this buy us, and is it worth the potentially huge
 amount of time it could take? My gut feeling is we have bigger fish to fry.
 There's plenty of work to do just on the core consensus code, making Bitcoin
 Core into a competitive wallet as well would be an additional burden.

I don't intend to work on that myself but that's up to the people that
want to contribute to that. Once it's a separate project it could
either be a big success, or it could slowly wither away. It can have a
release cycle separate from the node. Likely faster.

The organizational reason to split off the wallet is to get rid of
that responsibility (and code) from the bitcoind repo. Maintaining a
wallet should not be part of maintaining the core infrastructure. But
just deleting it would be unreasonable.

 However I may be quite biased, as I am the maintainer of what is primarily a 
 wallet library :)

Hah. I've thought about that migration path as well.

From my experience the main thing people are missing with BitcoinJ is
a quick and easy way to set up a wallet as a daemon, to use the
functionality from non-java through RPC.

But there are other interesting upcoming wallet projects as well, for
example CoinVault.

Wladimir

--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Plans to separate wallet from core

2014-06-24 Thread Mike Hearn

 From my experience the main thing people are missing with BitcoinJ is
 a quick and easy way to set up a wallet as a daemon, to use the
 functionality from non-java through RPC.


Yes. I'd love to have a mostly Core compatible JSON-RPC frontend. Most of
my current users are happy using it as a library though. A lot of popular
languages can run directly on the JVM these days. The big ones we miss are
C++ and PHP, I think. But you can use JavaScript, Python 2.7, Lisp, Ruby,
along with other less well known ones.

The other good reason to have JSON-RPC support would be to reuse the Core
regression tests.

Anyway, this is off topic :)
--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Plans to separate wallet from core

2014-06-24 Thread Jorge Timón
On 6/24/14, Mike Hearn m...@plan99.net wrote:
 bitcoind already supports SPV mode, that's how bitcoinj clients work.
 However the current wallet code doesn't use it, it integrates directly with
 the full mode main loop and doesn't talk P2P internally. Which is the fine
 and obvious way to implement the wallet feature. I'm not totally convinced
 it should become an SPV wallet given the complexity of doing that. But if
 you did want to separate the wallet code from the full node then that'd be
 the way to do it.

 The question is; what does this buy us, and is it worth the potentially
 huge amount of time it could take? My gut feeling is we have bigger fish to
 fry. There's plenty of work to do just on the core consensus code, making
 Bitcoin Core into a competitive wallet as well would be an additional
 burden.

Exactly, this is part of my point, the qt-wallet does not support SPV
operation at this point, and that complex work should be done after
the wallet is separated. Thus the first version of the separated
wallet should be functionally equivalent to today's wallet, that is, a
full node wallet (even though I understand Wladimir's arguments
against full-node wallets).

 I'm sorry, but I still don't know what Electrum has to do with all this.


 People use Electrum as shorthand to mean something a bit like the P2P
 network, but with trusted remote servers which build additional databases
 and thus support additional commands.

Ok, thanks. So a bitcoin core node which maintains and serves
additional indexes (say, an utxo index via rpc or something else) is
referred to as an electrum even though it doesn't use
electrum-server. Strange, but now I get it.

So in summary:

1) I accept the library approach over the core-wallet protocol.

2) That doesn't necessarily mean that optionally maintaining
additional indexes in the core is not interesting for some use cases
(interesting for bitcoind, I don't care much if electrum-server
currently does this and more [with more dependencies]). Although
Pieter thinks that should also be separated into an index node too,
but I think that's another discussion.

3) The wallet doesn't currently operate as SPV and that work should be
done (if there's enough interest) only after the wallet is separated
from the core.

--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Plans to separate wallet from core

2014-06-24 Thread Wladimir
On Tue, Jun 24, 2014 at 1:29 PM, Jorge Timón jti...@monetize.io wrote:
 On 6/24/14, Mike Hearn m...@plan99.net wrote:
ou did want to separate the wallet code from the full node then that'd be
 the way to do it.

 Exactly, this is part of my point, the qt-wallet does not support SPV
 operation at this point, and that complex work should be done after
 the wallet is separated. Thus the first version of the separated
 wallet should be functionally equivalent to today's wallet, that is, a
 full node wallet (even though I understand Wladimir's arguments
 against full-node wallets).

Do mind that some of the steps on the path of bitcoind towards SPV are
also useful in general. For example, headers-first allows parallel
block download, which would solve a lot of sync issues people are
having - a much higher priority than the wallet.

But anyhow I'm describing how I would do it. If you're going to do it,
you can do it in any order that you want. As we're talking about a
separate project here it's not even clear who will be maintainer.

 2) That doesn't necessarily mean that optionally maintaining
 additional indexes in the core is not interesting for some use cases
 (interesting for bitcoind, I don't care much if electrum-server
 currently does this and more [with more dependencies]). Although
 Pieter thinks that should also be separated into an index node too,
 but I think that's another discussion.

I don't understand your argument against Electrum here. Dependencies?
Come on, that's a matter of software distribution. If that really
bothers you I suppose you could contribute to Electrum server so that
it has less deps. It doesn't make the protocol worth any less.

Although Pieter and I disagree with regard to issue #4351, we agree on
wanting to keep (or at least making) bitcoind as lean as possible.
Maintaining extra indices for others doesn't fit in there - that's
also why the address index patch was not merged. An 'index node' could
be a different animal.

Wladimir

--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Plans to separate wallet from core

2014-06-24 Thread Tamas Blummer
I think there are three typical uses:

1. Building consensus on the block chain. This is what the core is for.
2. Single user wallets. This is where SPV alone is good.
3. Services e.g. exchange, payment processor  This is where core + indexing 
server talking SPV to core is the right choice

Regards,

Tamás Blummer
Founder, CEO

http://bitsofproof.com




signature.asc
Description: Message signed with OpenPGP using GPGMail
--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Plans to separate wallet from core

2014-06-24 Thread Wladimir
On Tue, Jun 24, 2014 at 2:16 PM, Mike Hearn m...@plan99.net wrote:
 priority. So a single unified program that just figures it out automatically
 rather than expecting users to assemble a bag of parts seems a goal worth
 striving for.

As I've said before -- and I think we disagree here - I like moving
towards a bag of parts of specialized tools, maintained by people that
specialize in those tools, instead of a single project that aims to do
and know everything. This encourages experimentation  and makes
competition possible and I think that is healthy in this space.

Bitcoin has a strict need for consensus in the block chain format,
scripting system and validation. Outside of those, innovation should
be possible without any gatekeeper bottleneck or even widespread
agreement. Wallets, what data to store on disk, what indices to
maintain. But even P2P message extensions, as long as it doesn't
interfere with the rest of the network.

After an experiment is successful it could always be merged into
bitcoin core. But then the 'what-ifers' have less ammo, as it has been
tested in the real world.

For user convenience it's still possible to package pre-assembled
bags. But that doesn't need to figure into how things are developed.

Wladimir

--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Plans to separate wallet from core

2014-06-24 Thread Thomas Voegtlin


Le 24/06/2014 11:44, Wladimir a écrit :
 But IMO this is a passed stage. SPV wallets w/ Bloom filtering can
 work without any special servers, so why require a 'close binding' to
 a trusted bitcoin core?
 
 To clarify (and not piss off ThomasV :-): I do not think the idea of
 having servers with a reputation of their own is a passed stage. There
 are many things that cannot be done at SPV level security with just
 the P2P protocol yet. So having fewer but more trusted Electrum
 servers is a reasonable compromise.
 


Thanks for that :)

Note that my goal is to make the Electrum servers as trustless as
possible, and not to rely on some sort of 'reputation'.

Thomas

--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Plans to separate wallet from core

2014-06-24 Thread Jorge Timón
On 6/24/14, Tamas Blummer ta...@bitsofproof.com wrote:
 3. Services e.g. exchange, payment processor  This is where core +
 indexing server talking SPV to core is the right choice

I think this is my main question, what's the advantage of having the
processes talking via the p2p protocol instead of something more
direct when you control both processes?

Wladimir, of course headers-first is generally good, and of course
nobody will be force to separate the code in a way he doesn't like, I
was just testing the waters to see what people had in mind, since I
realized the ideas could be more different than I had assumed.
I don't have any issues with electrum, I'm just not convinced by the
arguments that say that the indexes must be necessarily out of the
core, specially when some of them could be committed in the future.
So I'm all in favor of modularity and competing codebases, I'm just
not convinced that the core full-node must be necessarily restricted
to validation only (for example, I think it should maintain a minimal
and non-optimized mining functionality,even if it's only used for
testing purposes).

So far it is great that everybody seems to agree that the wallet code
needs to be separated.

Thanks everyone for sharing your views on the subject.

--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


[Bitcoin-development] Proposed BIP 70 extension

2014-06-24 Thread Mike Hearn
Coinbase have started allowing merchants to set discounts for purchasing
with Bitcoin. Seeing an individual discount is not very motivating as they
tend to be small. Seeing them stack up over time can be more motivating
because it feels like free money. Many businesses exploit this effect with
loyalty points, etc. Bitcoin should do this too - show the user how much
they're saving by using Bitcoin instead of credit cards.

I suggested to Charlie Lee (who pushed this through at Coinbase) and
Stephen Pair the following minor BIP 70 extension:


message PaymentDetails {
// Size in satoshis of any discount provided by the merchant ONLY
// because the user chose to pay using Bitcoin or other similar
// digital currency. Other kinds of discounts, loyalty bonuses and
// so on should not be recorded here, rather they could be mentioned
// in the memo field. This field exists so wallets can show the user
// a running total of how much money they have saved by avoiding
// credit cards and bank payments; the goal is to encourage people to
// use Bitcoin. Putting other kinds of discounts here would make the
// running total calculated meaningless; so don't do it!
optional uint64 currency_usage_discount_size = 8;
}

Wallets would then be able to persist this data to disk and compete on cool
visualisations for how much money you saved over time.

We haven't formalised how to extend BIP 70 yet, that's my fault. We should
do that. In the meantime, what do people think of this proposal?
--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Plans to separate wallet from core

2014-06-24 Thread Pieter Wuille
I'd like to point out that there is quite a difference between what
core nodes should be like and what the codebase core nodes are built
from must support.

Given sufficiently modularized code (which I think everyone seems to
be in favor of, regardless of the goals), you can likely build a
binary that does full verification and maintains some indexes of some
sort.

I still believe that what we push for to run as the core nodes of the
network should aim for purely verification and relay, and nothing
else, but people can and will do things differently if the source code
allows it. And that's fine.

On Tue, Jun 24, 2014 at 3:26 PM, Jorge Timón jti...@monetize.io wrote:
 I think this is my main question, what's the advantage of having the
 processes talking via the p2p protocol instead of something more
 direct when you control both processes?

IMHO, maintaining a correct view of the current state of the chain
(excluding blocks, just headers) is already sufficiently hard (I hope
that everyone who ever implemented an SPV wallet can agree). You
simplify things a bit by not needing to verify what the peer claims if
you trust them, but not much. You still need to support
reorganizations, counting confirmations, making sure you stay
up-to-date. These are functions the (SPV) P2P protocol has already
shown to do well, and there are several codebases out there that
implement it. No need to reinvent the wheel with a marginally more
efficient protocol, if it means starting over everything else.

-- 
Pieter

--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Proposed BIP 70 extension

2014-06-24 Thread Jeff Garzik
On Tue, Jun 24, 2014 at 9:27 AM, Mike Hearn m...@plan99.net wrote:
 Wallets would then be able to persist this data to disk and compete on cool 
 visualisations for how much money you saved over time.

heh, this is a cool idea.

It also seems like it would be subject to instant inflation, as it's
unprovable, and a rational economic actor may choose to exaggerate
such numbers.  It also seems collectively rational by some points of
view for all bitcoin actors to inflate this number.

At a minimum, I would either add marketing_ to the field name
itself, or include additional comment caveats noting in BOLD language
that this field is informational, and should not be relied upon for
accounting/auditing purposes.

It just seems like a statistic that everyone has an incentive to exaggerate.

-- 
Jeff Garzik
Bitcoin core developer and open source evangelist
BitPay, Inc.  https://bitpay.com/

--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Proposed BIP 70 extension

2014-06-24 Thread Mike Hearn

 It also seems like it would be subject to instant inflation, as it's
 unprovable


The user knows the price that is on the website or menu, they know the
price they actually paid ... if the numbers don't add up that would seem to
be pretty easily detectable. But sure it's only for marketing.  I think the
comment makes it clear it's just for fun.
--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Proposed BIP 70 extension

2014-06-24 Thread slush
Sounds like marketing bullshit to me. It does not have even statistical
meaning; well, you can save a lot of satoshis, but nobody tell you that
the merchant cut you on BTC/USD exchange rate in tens of %.

Payment protocol should not contain these fictional data, which has no real
meaning for the payment itself. Put these marketing claims to memo field
instead...

slush


On Tue, Jun 24, 2014 at 4:24 PM, Mike Hearn m...@plan99.net wrote:

 It also seems like it would be subject to instant inflation, as it's
 unprovable


 The user knows the price that is on the website or menu, they know the
 price they actually paid ... if the numbers don't add up that would seem to
 be pretty easily detectable. But sure it's only for marketing.  I think the
 comment makes it clear it's just for fun.


 --
 Open source business process management suite built on Java and Eclipse
 Turn processes into business applications with Bonita BPM Community Edition
 Quickly connect people, data, and systems into organized workflows
 Winner of BOSSIE, CODIE, OW2 and Gartner awards
 http://p.sf.net/sfu/Bonitasoft
 ___
 Bitcoin-development mailing list
 Bitcoin-development@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/bitcoin-development


--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Proposed BIP 70 extension

2014-06-24 Thread Mike Hearn

 Sounds like marketing bullshit to me. It does not have even statistical
 meaning; well, you can save a lot of satoshis, but nobody tell you that
 the merchant cut you on BTC/USD exchange rate in tens of %.


Your own wallet can look up the exchange rate and compare it to what you're
getting (and in fact, wallets do!).

Besides, assuming the customer is *always* being scammed seems extreme.
There are plenty of merchants that genuinely care about their reputation
and genuinely want people to pay with Bitcoin so they can avoid card fees.


 Payment protocol should not contain these fictional data


Well, I think the protocol should contain whatever is useful.

I'll probably draft a BIP for this next week or so.
--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Proposed BIP 70 extension

2014-06-24 Thread Gmail


 On Jun 24, 2014, at 10:32, slush sl...@centrum.cz wrote:
 
 Sounds like marketing bullshit to me. It does not have even statistical 
 meaning; well, you can save a lot of satoshis, but nobody tell you that the 
 merchant cut you on BTC/USD exchange rate in tens of %.

People would also abuse this feature in the same way amazon (and other sales 
sites) abuse the definition of save. For example, Amazon will indicate that 
you're getting x% off by shopping at amazon, but all that number really means 
is x% off MSRP. In reality, every website has the same price. I have no doubt 
that merchants would put similarly meaningless and/or misleading data in this 
field. 

I agree, the memo field is appropriate for this data. 

smime.p7s
Description: S/MIME cryptographic signature
--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Plans to separate wallet from core

2014-06-24 Thread Justus Ranvier
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 06/24/2014 09:07 AM, Wladimir wrote:
 My main argument for the split is that full nodes and wallets have 
 completely different usage scenarios:
 
 - A wallet should be online as little as possible, ideally only
 when you do transactions or want to check for them.
 
 - A full node should be online 24/7 or it is virtually useless to
 the network.

I think btcd has done this right.

A wallet is a daemon that runs constantly in the background, just like
the full node.

The GUI (which is distinct from the wallet) runs as little as
possible. Presumably there's no need for a 1:1 relationship between
wallets and GUIs.


- -- 
Support online privacy by using email encryption whenever possible.
Learn how here: http://www.youtube.com/watch?v=bakOKJFtB-k
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.22 (GNU/Linux)

iQEcBAEBAgAGBQJTqZpVAAoJEMP3uyY4RQ21E48H/0XNYBzR8QZjfku/MeL5IbwL
A56jrlWe2EZTabwfKdGx12L5oeBXe3DOeLsTizqIu0vijcl7qQryU49AjrVe91Rx
OdEi4lmaiXdkM3lWeWUxLoLLHR1B+1f8T18Mrnzo+yasyrywPb+6H79VN5KERdA2
5yHYCZyHXdNoXpzyf38GC2PdYJmAZdrRfAGyC5+OXSwE3XLhpRBrSBh/mrx0ct5M
ghkCKtsmJCJJ6sR2TbFxaj71kPp0J0tp8JVvjVEqC2uB4Ih0NY+79kz8L81TaNmw
ol1o6p7TypIk7QRQ4ES3Fq0ALh2aQ/tX4rc0GC0ed+xLi+dHJ2wGBI37HoyGIyg=
=Nn9X
-END PGP SIGNATURE-


0x38450DB5.asc
Description: application/pgp-keys
--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Proposed BIP 70 extension

2014-06-24 Thread Andreas Schildbach
I think it should be made more clear what's the reference price for the
discount. In Germany, we generally don't use credit cards but rather
EC-Cards, which is already much cheaper. Or maybe for some merchants
the only alternative is cash, and they would still offer a Bitcoin discount.

Also, currently PR are created by the payment processors afaik. How can
they know what other payment option the merchant provides and what's the
conditions? Maybe we should first solve the signature delegation problem
so that the merchant can create the request.

Although I'm sure this feature will get abused, I (as a wallet author)
would be willing to give it a try. I agree with Jeff that the name of
the field should start with something like marketing.


On 06/24/2014 03:27 PM, Mike Hearn wrote:
 Coinbase have started allowing merchants to set discounts for purchasing
 with Bitcoin. Seeing an individual discount is not very motivating as
 they tend to be small. Seeing them stack up over time can be more
 motivating because it feels like free money. Many businesses exploit
 this effect with loyalty points, etc. Bitcoin should do this too - show
 the user how much they're saving by using Bitcoin instead of credit cards.
 
 I suggested to Charlie Lee (who pushed this through at Coinbase) and
 Stephen Pair the following minor BIP 70 extension:
 
 
 message PaymentDetails {
 // Size in satoshis of any discount provided by the merchant ONLY
 // because the user chose to pay using Bitcoin or other similar 
 // digital currency. Other kinds of discounts, loyalty bonuses and 
 // so on should not be recorded here, rather they could be mentioned
 // in the memo field. This field exists so wallets can show the user
 // a running total of how much money they have saved by avoiding
 // credit cards and bank payments; the goal is to encourage people to
 // use Bitcoin. Putting other kinds of discounts here would make the
 // running total calculated meaningless; so don't do it!
 optional uint64 currency_usage_discount_size = 8;
 }
 
 Wallets would then be able to persist this data to disk and compete on
 cool visualisations for how much money you saved over time.
 
 We haven't formalised how to extend BIP 70 yet, that's my fault. We
 should do that. In the meantime, what do people think of this proposal?
 
 
 --
 Open source business process management suite built on Java and Eclipse
 Turn processes into business applications with Bonita BPM Community Edition
 Quickly connect people, data, and systems into organized workflows
 Winner of BOSSIE, CODIE, OW2 and Gartner awards
 http://p.sf.net/sfu/Bonitasoft
 
 
 
 ___
 Bitcoin-development mailing list
 Bitcoin-development@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/bitcoin-development
 



--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Proposed BIP 70 extension

2014-06-24 Thread Jeff Garzik
I think there is nothing wrong with having a numeric memo field, which
is effectively what this is.  Structured rather than unstructured
data.

On Tue, Jun 24, 2014 at 11:15 AM, Gmail will.ya...@gmail.com wrote:


 On Jun 24, 2014, at 10:32, slush sl...@centrum.cz wrote:

 Sounds like marketing bullshit to me. It does not have even statistical 
 meaning; well, you can save a lot of satoshis, but nobody tell you that 
 the merchant cut you on BTC/USD exchange rate in tens of %.

 People would also abuse this feature in the same way amazon (and other sales 
 sites) abuse the definition of save. For example, Amazon will indicate that 
 you're getting x% off by shopping at amazon, but all that number really means 
 is x% off MSRP. In reality, every website has the same price. I have no doubt 
 that merchants would put similarly meaningless and/or misleading data in this 
 field.

 I agree, the memo field is appropriate for this data.
 --
 Open source business process management suite built on Java and Eclipse
 Turn processes into business applications with Bonita BPM Community Edition
 Quickly connect people, data, and systems into organized workflows
 Winner of BOSSIE, CODIE, OW2 and Gartner awards
 http://p.sf.net/sfu/Bonitasoft
 ___
 Bitcoin-development mailing list
 Bitcoin-development@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/bitcoin-development




-- 
Jeff Garzik
Bitcoin core developer and open source evangelist
BitPay, Inc.  https://bitpay.com/

--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Proposed BIP 70 extension

2014-06-24 Thread Mike Hearn

 I think it should be made more clear what's the reference price for the
 discount.


That might be useful for merchants that already provide a series of
price-differentiated payment methods, yes. Will think about it.


 Also, currently PR are created by the payment processors afaik. How can
 they know what other payment option the merchant provides and what's the
 conditions?


Currently Coinbase let merchants specify the size of their discount (I
guess in percentage terms, I should ask). So the merchants tell the payment
processor. I don't think this is a worry at the moment.
--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Plans to separate wallet from core

2014-06-24 Thread Jorge Timón
On 6/24/14, Justus Ranvier justusranv...@gmail.com wrote:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1

 On 06/24/2014 09:07 AM, Wladimir wrote:
 My main argument for the split is that full nodes and wallets have
 completely different usage scenarios:

 - A wallet should be online as little as possible, ideally only
 when you do transactions or want to check for them.

 - A full node should be online 24/7 or it is virtually useless to
 the network.

 I think btcd has done this right.

 A wallet is a daemon that runs constantly in the background, just like
 the full node.

 The GUI (which is distinct from the wallet) runs as little as
 possible. Presumably there's no need for a 1:1 relationship between
 wallets and GUIs.

I think he means that the wallet shouldn't be running as much as it is
currently doing.
But yes, I think you're right about wallets and GUIs not necessarily
mapping 1:1.

--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Proposed BIP 70 extension

2014-06-24 Thread Drak
Seems like a nice idea.


On 24 June 2014 14:27, Mike Hearn m...@plan99.net wrote:

 Coinbase have started allowing merchants to set discounts for purchasing
 with Bitcoin. Seeing an individual discount is not very motivating as they
 tend to be small. Seeing them stack up over time can be more motivating
 because it feels like free money. Many businesses exploit this effect with
 loyalty points, etc. Bitcoin should do this too - show the user how much
 they're saving by using Bitcoin instead of credit cards.

 I suggested to Charlie Lee (who pushed this through at Coinbase) and
 Stephen Pair the following minor BIP 70 extension:


 message PaymentDetails {
 // Size in satoshis of any discount provided by the merchant ONLY
 // because the user chose to pay using Bitcoin or other similar
 // digital currency. Other kinds of discounts, loyalty bonuses and
 // so on should not be recorded here, rather they could be mentioned
 // in the memo field. This field exists so wallets can show the user
 // a running total of how much money they have saved by avoiding
 // credit cards and bank payments; the goal is to encourage people to
 // use Bitcoin. Putting other kinds of discounts here would make the
 // running total calculated meaningless; so don't do it!
 optional uint64 currency_usage_discount_size = 8;
 }

 Wallets would then be able to persist this data to disk and compete on
 cool visualisations for how much money you saved over time.

 We haven't formalised how to extend BIP 70 yet, that's my fault. We should
 do that. In the meantime, what do people think of this proposal?


 --
 Open source business process management suite built on Java and Eclipse
 Turn processes into business applications with Bonita BPM Community Edition
 Quickly connect people, data, and systems into organized workflows
 Winner of BOSSIE, CODIE, OW2 and Gartner awards
 http://p.sf.net/sfu/Bonitasoft
 ___
 Bitcoin-development mailing list
 Bitcoin-development@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/bitcoin-development


--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Proposed BIP 70 extension

2014-06-24 Thread Gmail
Ok, wanting structured data is a decent argument, but why this random arbitrary 
case in particular? There are hundreds of fields like this that people might 
want to use. 

If we're going to support one random cosmetic field, we might as well support 
them all with a generic structured data format. 

I'd rather we just didn't have this essentially pointless feature at all. 
Let's try and keep as much cruft as possible out of the payment protocol. The 
textual memo field is already more than sufficient. 

 On Jun 24, 2014, at 11:48, Jeff Garzik jgar...@bitpay.com wrote:
 
 I think there is nothing wrong with having a numeric memo field, which
 is effectively what this is.  Structured rather than unstructured
 data.


smime.p7s
Description: S/MIME cryptographic signature
--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Proposed BIP 70 extension

2014-06-24 Thread Roy Badami
On Tue, Jun 24, 2014 at 10:21:46AM -0400, Jeff Garzik wrote:
 On Tue, Jun 24, 2014 at 9:27 AM, Mike Hearn m...@plan99.net wrote:
  Wallets would then be able to persist this data to disk and compete on cool 
  visualisations for how much money you saved over time.
 
 heh, this is a cool idea.
 
 It also seems like it would be subject to instant inflation, as it's
 unprovable, and a rational economic actor may choose to exaggerate
 such numbers.  It also seems collectively rational by some points of
 view for all bitcoin actors to inflate this number.

Rather than offering discounts, how about offering automatic cashback?
I know they're kinda stupid, but I gather cashback deals are very
commonplace in the US and (probably as a result) not unheard of elsewhere.

So you add an optional cashback_to field to the Payment message,
distinct from but conceptually similar to the refund_to field.  The
wallet can tally up how much cashback is received, without having to
trust the merchants.

Much harder to game, AFAICS.

roy

--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Proposed BIP 70 extension

2014-06-24 Thread Andy Alness
I somewhat agree with Will (but also with Mike, Jeff, and Charlie.) I
think the idea of letting consumers know advanced details about the
transaction is good and defining these with strong types is also good.
Maybe an arbitrary set of accounting line items would be more
palatable. You could have a line item for state sales tax for example,
or a cash back reward, or a merchant discount like the proposed,
whatever is applicable. It would be a list of amount / label tuples
maybe.

On Tue, Jun 24, 2014 at 12:00 PM, Gmail will.ya...@gmail.com wrote:
 Ok, wanting structured data is a decent argument, but why this random
 arbitrary case in particular? There are hundreds of fields like this that
 people might want to use.

 If we're going to support one random cosmetic field, we might as well
 support them all with a generic structured data format.

 I'd rather we just didn't have this essentially pointless feature at all.
 Let's try and keep as much cruft as possible out of the payment protocol.
 The textual memo field is already more than sufficient.

 On Jun 24, 2014, at 11:48, Jeff Garzik jgar...@bitpay.com wrote:

 I think there is nothing wrong with having a numeric memo field, which
 is effectively what this is.  Structured rather than unstructured
 data.


 --
 Open source business process management suite built on Java and Eclipse
 Turn processes into business applications with Bonita BPM Community Edition
 Quickly connect people, data, and systems into organized workflows
 Winner of BOSSIE, CODIE, OW2 and Gartner awards
 http://p.sf.net/sfu/Bonitasoft
 ___
 Bitcoin-development mailing list
 Bitcoin-development@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/bitcoin-development




-- 
Andy Alness
Software Engineer
Coinbase
San Francisco, CA

--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


[Bitcoin-development] Bill Request Message - (another) Proposed BIP 70 extension

2014-06-24 Thread Paul Goldstein
Here's an idea for a BIP 70 extension to let wallets be scanned by merchant
bar code readers to start off a payment request flow instead of the other
way around (wallet scanning the merchant QR). Useful for brick and mortar
merchants and mobile wallet apps.


Motivation:
A mechanism is needed for mobile wallets to request a bill, so that a
payment protocol flow can be initiated. Current mechanisms for initiating
BIP70 payment flows generally require wallets to either scan a merchant
barcode (not optimal, see below), or click on a specially formatted url
link (only suitable while browsing and purchasing on a merchant website).

Successful non-bitcoin mobile wallet apps to date (a popular coffee shop
app comes to mind) allow for the wallet app to be scanned by the merchant
and not the other way around (as is commonly done in bitcoin wallets
today). For broad bitcoin adoption we need a mechanism for wallets to be
scanned by merchant bar code readers at brick and mortar shops. This will
also greatly ease checkouts at drive throughs and allows merchants to
leverage existing hardware (barcode readers).

Other technologies like NFC may obviate the need for this extension,
however, those technologies remain somewhat uncommon and may not be
suitable for smaller wearables hitting the market.

message BillRequest {
 required uint64 time = 1;
 optional uint64 expires = 2;
 required string bill_request_uri = 3;
}


time - Unix timestamp (seconds since 1-Jan-1970 UTC) when the BillRequest
was created.
expires - Unix timestamp (UTC) after which the BillRequest should be
considered invalid (wallets may only be monitoring for messages for a short
time).
bill_req_addr - Typically a URL where a BIP70 payment request can be sent
that is being monitored by the wallet. However this could also support URIs
like sms:860-555-1212 or mailto:a...@gmail.com; allowing for a variety
of connection options.

Recommendations: it is recommended that wallet apps display a non-QR
barcode like a PDF417 barcode to initiate the Bill Request flow. This will
avoid confusion with existing QR code usage in wallet apps.


Paul G.
--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Proposed BIP 70 extension

2014-06-24 Thread Gavin Andresen
On Tue, Jun 24, 2014 at 3:00 PM, Gmail will.ya...@gmail.com wrote:

 Ok, wanting structured data is a decent argument, but why this random
 arbitrary case in particular? There are hundreds of fields like this that
 people might want to use.


Protocol buffers are designed to be extensible, and there are hundreds of
field numbers available.

It would be silly to add a generic stuff field inside a container format
that ALREADY has all the mechanisms necessary for forwards and backwards
extensibility.


-- 
--
Gavin Andresen
--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Proposed BIP 70 extension

2014-06-24 Thread Gmail
 On Jun 24, 2014, at 16:12, Gavin Andresen gavinandre...@gmail.com wrote:
 
 It would be silly to add a generic stuff field inside a container format 
 that ALREADY has all the mechanisms necessary for forwards and backwards 
 extensibility.

I agree. It would be even sillier to start specifying container formats for 
random one-off that would be kind of nice, I guess features. 

How about exchange rate? Sharing links? Referral information? Any of these 
things are just as deserving of specification (and just as arbitrary). 

smime.p7s
Description: S/MIME cryptographic signature
--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development