Received: from sog-mx-1.v43.ch3.sourceforge.com ([172.29.43.191] helo=mx.sourceforge.net) by sfs-ml-1.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1TgBWU-0006qA-E3 for bitcoin-development@lists.sourceforge.net; Wed, 05 Dec 2012 09:44:10 +0000 Received-SPF: pass (sog-mx-1.v43.ch3.sourceforge.com: domain of gmail.com designates 209.85.216.47 as permitted sender) client-ip=209.85.216.47; envelope-from=g.rowe.froot@gmail.com; helo=mail-qa0-f47.google.com; Received: from mail-qa0-f47.google.com ([209.85.216.47]) by sog-mx-1.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128) (Exim 4.76) id 1TgBWN-0001Kt-Rm for bitcoin-development@lists.sourceforge.net; Wed, 05 Dec 2012 09:44:10 +0000 Received: by mail-qa0-f47.google.com with SMTP id a19so2076333qad.13 for ; Wed, 05 Dec 2012 01:43:58 -0800 (PST) MIME-Version: 1.0 Received: by 10.224.77.68 with SMTP id f4mr27237898qak.10.1354700638380; Wed, 05 Dec 2012 01:43:58 -0800 (PST) Sender: g.rowe.froot@gmail.com Received: by 10.49.83.130 with HTTP; Wed, 5 Dec 2012 01:43:58 -0800 (PST) In-Reply-To: References: <50BEACAB.3070304@gmail.com> Date: Wed, 5 Dec 2012 09:43:58 +0000 X-Google-Sender-Auth: Hv_ckaH7rtmbE-Ow1PZzkijEroo Message-ID: From: Gary Rowe Cc: Bitcoin Dev Content-Type: multipart/alternative; boundary=20cf3074b54053e31a04d017d26a X-Spam-Score: 0.7 (/) X-Spam-Report: Spam Filtering performed by mx.sourceforge.net. See http://spamassassin.org/tag/ for more details. -1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for sender-domain 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (g.rowe.froot[at]gmail.com) -0.0 SPF_PASS SPF: sender matches SPF record 1.2 MISSING_HEADERS Missing To: header 1.0 HTML_MESSAGE BODY: HTML included in message 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature X-Headers-End: 1TgBWN-0001Kt-Rm Subject: Re: [Bitcoin-development] Roadmap to getting users onto SPV clients X-BeenThere: bitcoin-development@lists.sourceforge.net X-Mailman-Version: 2.1.9 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Dec 2012 09:44:10 -0000 --20cf3074b54053e31a04d017d26a Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable I would like to chime on on the user experience of the SPV client (in particular MultiBit). Without exception, everyone that I have introduced Bitcoin (which is a lot of people) have expected an "instant-on" experience. It has to clobber PayPal and credit cards or people won't give it a second look, let alone a second chance. SPV clients deliver on that expectation. Once the user has the great initial "wow!" moment then their interest in Bitcoin is reinforced and they tend to explore further, particularly into the economic theory behind it. Many decide to install the full node out of a sense of community contribution to the security of the network. Having a hybrid mode of SPV first then full node second should be something that a user has control over - it is their computing resources we are using after all and Bitcoin should not be perceived as a drain. On 5 December 2012 07:50, Wladimir wrote: > Jim, > > Most of those issues don't have to do with the SPV versus non-SPV problem= . > > First person doesn't understand what Bitcoin is supposed to do (he's > confusing mining and running a node). An information problem that could b= e > solved by explaining what is going on. > > Another one seems to have a problem with DEP. That's probably an issue > with his OS configuration. > > The third one is confused about the fees. Again, an information problem. > > Only the fourth one is concerned with synchronization. The other ones > could happen with any client, as they're either based on misconceptions > about bitcoin as a whole or computer problems. > > This doesn't in any way make switching to another, reduced security model > client preferable. Let's first try to improve the Bitcoin experience with > full security model, and if that somehow turns out to be impossible it's > always possible to recommend some other client based on the 'user type'. > > I don't agree that this point is now. Anyway, security and stability of > the network is of utmost importance to do anything in the future, better = to > grow organically than explode. > > Many initiatives are underway to improve the Satoshi client (for > example to have Bitcoin-Qt behave as SPV client during initial block > download, and as full node after that), but as usual in open source > development, many of us are doing this basically for fun in our free time > it does not always go as fast as users would like. > > I wish there was a straightforward solution for that, yeah pooling > together our development on one or two clients instead of a zillion > different ones could help, but everyone has more fun working on their own > client that's just how things go :) > > Wladimir > > On Wed, Dec 5, 2012 at 6:38 AM, Jim Nguyen wrote: > >> Gavin's grandma needs to be able to use bitcoin. Here is a real world >> sampling of the types of people wanting to use bitcoin but are having so= me >> difficulty which I have collected from Facebook. Should we listen to th= e >> end user? :-P >> >> *"what is the intention of Bitcoin? Is it supposed to be - eventually - >> for dummies like myself or is it just for those individuals who are code >> and algorithm writers? I downloaded a wallet but how do I know if I need >> more software or a massive computer system to solve "the problem" for th= e >> next block? With all the talk of mathematical problem solving on a world >> wide network of computers I can't see a small laptop figuring out anythi= ng >> thus not gaining any bitcoins. Why should I be interested in this if it >> appears it's just for computer scientists?"* >> >> *"hi, instaled bitcoin qt, but after it dowladed all the stuff, now i >> get DEP protecction from windows, and it tells me bitcoinQT need to run >> with DEP on, dont let me make an exception for it, nor work it i turn DE= P >> only for sys, so hwat i should do?"* >> >> *"hi, i'm new to bitcoin, i got a bunch of free bitcoins from a bunch of >> the free sites. how come when i tried to send my bitcoins to myself, it >> says the fee exceeds the balance? I thought there was no fees?"* >> >> *"Is there a way to speed up the process of synchronisation with the >> network? It has been taken ages on my MAC.* >> *Any help would be nice"* >> * >> * >> *and more...* >> >> Sorry if this doesn't belong to the bitcoin-development email list. I >> just see this as end-user/customer data gathering to refine the >> requirements, since this is software engineering...isn't it? >> >> Jim >> >> On Tue, Dec 4, 2012 at 6:54 PM, Gregory Maxwell wrot= e: >> >>> On Tue, Dec 4, 2012 at 9:08 PM, Alan Reiner wrote= : >>> > Our divergence is on two points (personal opinions): >>> > >>> > (1) I don't think there is any real risk to the centralization of the >>> > network by promoting a SPV (purely-consuming) node to brand-new users= . >>> > In my opinion (but I'm not as familiar with the networking as you), a= s >>> > long as all full nodes are full-validation, the bottleneck will be >>> > computation and bandwidth, long before a constant 10k nodes would be >>> > insufficient to support propagating data through the network. >>> >>> Not so=E2=80=94 a moderately fast multicore desktop machine can keep up= with >>> the maximum possible validation rate of the Bitcoin network and the >>> bandwidth has a long term maximum rate of about 14kbit/sec=E2=80=94 tho= ugh >>> you'll want at least ten times that for convergence stability and the >>> ability feed multiple peers. >>> >>> Here are the worst blocks testnet3 (which has some intentionally >>> constructed maximum sized blocks),E31230 : >>> (with the new parallel validation code) >>> - Verify 2166 txins: 250.29ms (0.116ms/txin) >>> - Verify 3386 txins: 1454.25ms (0.429ms/txin) >>> - Verify 5801 txins: 575.46ms (0.099ms/txin) >>> - Verify 6314 txins: 625.05ms (0.099ms/txin) >>> Even the slowest one _validates_ at 400x realtime. (these measurements >>> are probably a bit noisy=E2=80=94 but the point is that its fast). >>> (the connecting is fast too, but thats obvious with such a small >>> database) >>> >>> Although I haven't tested leveldb+ultraprune with a really enormous >>> txout set or generally with sustained maximum load=E2=80=94 so there ma= y be >>> other gaffs in the software that get exposed with sustained load, but >>> they'd all be correctable. Sounds like some interesting stuff to test >>> with on testnet fork that has the POW test disabled. >>> >>> While syncing up a behind node can take a while=E2=80=94 keep in mind t= hat >>> you're expecting to sync up weeks of network work in hours. Even >>> 'slow' is quite fast. >>> >>> > In fact, >>> > I was under the impression that "connectedness" was the real metric o= f >>> > concern (and resilience of that connectedness to large percentage of >>> > users disappearing suddenly). If that's true, above a certain number >>> of >>> > nodes, the connectedness isn't really going to get any better (I know >>> > it's not really that simple, but I feel like it is up to 10x the >>> current >>> > network size). >>> >>> Thats not generally concern for me. There are a number of DOS attack >>> risks... But attacker linear DOS attacks aren't generally avoidable >>> and they don't persist. >>> >>> Of the class of connectedness concerns I have is that a sybil attacker >>> could spin up enormous numbers of nodes and then use them to partition >>> large miners. So, e.g. find BitTaco's node(s) and the nodes for >>> miners covering 25% hashpower and get them into a separate partition >>> from the rest of the network. Then they give double spends to that >>> partition and use them to purchase an unlimited supply of digitally >>> delivered tacos=E2=80=94 allowing their captured miners to build an ill= fated >>> fork=E2=80=94 and drop the partition once the goods are delivered. >>> >>> But there is no amount of full nodes that removes this concern, >>> especially if you allow for attackers which have compromised ISPs. >>> It can be adequately addressed by a healthy darknet of private >>> authenticated peerings between miners and other likely targets. I've >>> also thrown out some ideas on using merged mined node IDs to make some >>> kinds of sybil attacks harder ... but it'll be interesting to see how >>> the deployment of ASICs influences the concentration of hashpower=E2=80= =94 it >>> seems like there has already been a substantial move away from the >>> largest pools. Less hashpower consolidation makes attacks like this >>> less worrisome. >>> >>> > (2) I think the current experience *is* really poor. >>> >>> Yes, I said so specifically. But the fact that people are flapping >>> their lips here instead of testing the bitcoin-qt git master which is >>> an 1-2 order of magnitude improvement suggests that perhaps I'm wrong >>> about that. Certainly the dearth of people testing and making bug >>> reports suggests people don't actually care that much. >>> >>> > You seem to >>> > suggest that the question for these new users is whether they will us= e >>> > full-node-or-lite-node, but I believe it will be a decision between >>> > lite-node-or-nothing-at-all (losing interest altogether). >>> >>> No. The "question" that I'm concerned with is do we promote lite nodes >>> as equally good option=E2=80=94 even for high end systems=E2=80=94 remo= ve the >>> incentive for people to create, improve, and adopt more useful full >>> node software and forever degrade the security of the system. >>> >>> > Waiting a day >>> > for the full node to synchronize, and then run into issues like >>> > blkindex.dat corruption when their system crashes for some unrelated >>> > reason and they have to resync for another day... they'll be gone in = a >>> > heartbeat. >>> >>> The current software patches plus parallelism can sync on a fast >>> system with luck network access (or a local copy of the data) in under >>> an hour. >>> >>> This is no replacement for start as SPV, but nor are handicapped >>> client programs a replacement for making fully capable ones acceptably >>> performing. >>> >>> > Users need to experience, as quickly and easily as possible, that the= y >>> > can move money across the world, without signing up for anything or >>> > paying any fees. >>> >>> Making the all the software painless for users is a great goal=E2=80=94= and >>> one I share. I still maintain that it has nothing to do with >>> promoting less capable and secure software to users. >>> >>> >>> -----------------------------------------------------------------------= ------- >>> LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial >>> Remotely access PCs and mobile devices and provide instant support >>> Improve your efficiency, and focus on delivering more value-add service= s >>> Discover what IT Professionals Know. Rescue delivers >>> http://p.sf.net/sfu/logmein_12329d2d >>> _______________________________________________ >>> Bitcoin-development mailing list >>> Bitcoin-development@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/bitcoin-development >>> >> >> >> >> ------------------------------------------------------------------------= ------ >> LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial >> Remotely access PCs and mobile devices and provide instant support >> Improve your efficiency, and focus on delivering more value-add services >> Discover what IT Professionals Know. Rescue delivers >> http://p.sf.net/sfu/logmein_12329d2d >> _______________________________________________ >> Bitcoin-development mailing list >> Bitcoin-development@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/bitcoin-development >> >> > > > -------------------------------------------------------------------------= ----- > LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial > Remotely access PCs and mobile devices and provide instant support > Improve your efficiency, and focus on delivering more value-add services > Discover what IT Professionals Know. Rescue delivers > http://p.sf.net/sfu/logmein_12329d2d > _______________________________________________ > Bitcoin-development mailing list > Bitcoin-development@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/bitcoin-development > > --20cf3074b54053e31a04d017d26a Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable I would like to chime on on the user experience of the SPV client (in parti= cular MultiBit).

Without exception, everyone that I have introduced= Bitcoin (which is a lot of people) have expected an "instant-on"= experience. It has to clobber PayPal and credit cards or people won't = give it a second look, let alone a second chance. SPV clients deliver on th= at expectation.

Once the user has the great initial "wow!" moment then their = interest in Bitcoin is reinforced and they tend to explore further, particu= larly into the economic theory behind it. Many decide to install the full n= ode out of a sense of community contribution to the security of the network= .

Having a hybrid mode of SPV first then full node second should be somet= hing that a user has control over - it is their computing resources we are = using after all and Bitcoin should not be perceived as a drain.


On 5 December 2012 07:50, Wladimir <laan= wj@gmail.com> wrote:
Jim,

Most of those issues don't have to do with the = SPV versus non-SPV problem.=C2=A0

First person doe= sn't understand what Bitcoin is supposed to do (he's confusing mini= ng and running a node). An information problem that could be solved by expl= aining what is going on.

Another one seems to have a problem with DEP. Tha= t's probably an issue with his OS configuration.

The third one is confused about the fees. Again, an information problem.=

Only the fourth one is concerned with synchronization. = The other ones could happen with any client, as they're either based on= misconceptions about bitcoin as a whole or computer problems.

This doesn't in any way make switching to another, reduc= ed security model client preferable. Let's first try to improve the Bit= coin experience with full security model, and if that somehow turns out to = be impossible it's always possible to recommend some other client based= on the 'user type'.=C2=A0

I don't agree that this point is now. Anyway, secur= ity and stability of the network is of utmost importance to do anything in = the future, better to grow=C2=A0organically=C2=A0than explode.
Many initiatives are underway to improve the Satoshi client (for examp= le=C2=A0to have Bitcoin-Qt behave as SPV client during=C2=A0initial=C2=A0bl= ock download, and as full node after that), but as usual in open source dev= elopment, many of us are doing this basically for fun in our free time it d= oes not always go as fast as users would like.
=C2=A0
I wish there was a straightforward solution for that,= yeah pooling together our development on one or two clients instead of a z= illion different ones could help, but=C2=A0everyone=C2=A0has more fun worki= ng on their own client that's just how things go :)

Wladimir

On Wed, Dec 5, 2012 at 6:38 AM, Jim = Nguyen <jimmy.winn@gmail.com> wrote:
Gavin's grandma needs to be able to use bitcoin. =C2= =A0Here is a real world sampling of the types of people wanting to use bitc= oin but are having some difficulty which I have collected from Facebook. = =C2=A0Should we listen to the end user? :-P

"what is the intention of Bitcoin? Is it suppos= ed to be - eventually - for dummies like myself or is it just for those ind= ividuals who are code and algorithm writers? I downloaded a wallet but how = do I know if I need more software or a massive computer system to solve &qu= ot;the problem" for the next block? With all the talk of mathematical = problem solving on a world wide network of computers I can't see a smal= l laptop figuring out anything thus not gaining any bitcoins. Why should I = be interested in this if it appears it's just for computer scientists?&= quot;

"hi, instaled bitcoin qt, but after it dowladed= all the stuff, now i get DEP protecction from windows, and it tells me bit= coinQT need to run with DEP on, dont let me make an exception for it, nor w= ork it i turn DEP only for sys, so hwat i should do?"

"hi, i'm new to bitcoin, i got a bunc= h of free bitcoins from a bunch of the free sites. how come when i tried to= send my bitcoins to myself, it says the fee exceeds the balance? I thought= there was no fees?"

"Is there a way to speed up the process of sync= hronisation with the network? It has been taken ages on my MAC.
Any help would be nice"

and more...

Sorry if this doesn't belon= g to the bitcoin-development email list. =C2=A0I just see this as end-user/= customer data gathering to refine the requirements, since this is software = engineering...isn't it?

Jim

On Tue, Dec= 4, 2012 at 6:54 PM, Gregory Maxwell <gmaxwell@gmail.com> w= rote:
On Tue, Dec 4, 2012 at 9:08 PM, Alan Reiner <etotheipi@gmail.com= > wrote:
> Our divergence is on two points (personal opinions):
>
> (1) I don't think there is any real risk to the centralization of = the
> network by promoting a SPV (purely-consuming) node to brand-new users.=
> In my opinion (but I'm not as familiar with the networking as you)= , as
> long as all full nodes are full-validation, the bottleneck will be
> computation and bandwidth, long before a constant 10k nodes would be > insufficient to support propagating data through the network.

Not so=E2=80=94 a moderately fast multicore desktop machine can keep = up with
the maximum possible validation rate of the Bitcoin network and the
bandwidth has a long term maximum rate of about 14kbit/sec=E2=80=94 though<= br> you'll want at least ten times that for convergence stability and the ability feed multiple peers.

Here are the worst blocks testnet3 (which has some intentionally
constructed maximum sized blocks),E31230 :
(with the new parallel validation code)
- Verify 2166 txins: 250.29ms (0.116ms/txin)
- Verify 3386 txins: 1454.25ms (0.429ms/txin)
- Verify 5801 txins: 575.46ms (0.099ms/txin)
- Verify 6314 txins: 625.05ms (0.099ms/txin)
Even the slowest one _validates_ at 400x realtime. (these measurements
are probably a bit noisy=E2=80=94 but the point is that its fast).
(the connecting is fast too, but thats obvious with such a small database)<= br>
Although I haven't tested leveldb+ultraprune with a really enormous
txout set or generally with sustained maximum load=E2=80=94 so there may be=
other gaffs in the software that get exposed with sustained load, but
they'd all be correctable. Sounds like some interesting stuff to test with on testnet fork that has the POW test disabled.

While syncing up a behind node can take a while=E2=80=94 keep in mind that<= br> you're expecting to sync up weeks of network work in hours. Even
'slow' is quite fast.

> In fact,
> I was under the impression that "connectedness" was the real= metric of
> concern (and resilience of that connectedness to large percentage of > users disappearing suddenly). =C2=A0If that's true, above a certai= n number of
> nodes, the connectedness isn't really going to get any better (I k= now
> it's not really that simple, but I feel like it is up to 10x the c= urrent
> network size).

Thats not generally concern for me. There are a number of DOS attack<= br> risks... But attacker linear DOS attacks aren't generally avoidable
and they don't persist.

Of the class of connectedness concerns I have is that a sybil attacker
could spin up enormous numbers of nodes and then use them to partition
large miners. =C2=A0So, e.g. find BitTaco's node(s) and the nodes for miners covering 25% hashpower and get them into a separate partition
from the rest of the network. Then they give double spends to that
partition and use them to purchase an unlimited supply of digitally
delivered tacos=E2=80=94 allowing their captured miners to build an ill fat= ed
fork=E2=80=94 and drop the partition once the goods are delivered.

But there is no amount of full nodes that removes this concern,
especially if you allow for attackers which have compromised ISPs.
It can be adequately addressed by a healthy darknet of private
authenticated peerings between miners and other likely targets. I've also thrown out some ideas on using merged mined node IDs to make some
kinds of sybil attacks harder ... but it'll be interesting to see how the deployment of ASICs influences the concentration of hashpower=E2=80=94 = it
seems like there has already been a substantial move away from the
largest pools. Less hashpower consolidation makes attacks like this
less worrisome.

> (2) I think the current experience *is* really poor.

Yes, I said so specifically. =C2=A0But the fact that people are flapp= ing
their lips here instead of testing the bitcoin-qt git master which is
an 1-2 order of magnitude improvement suggests that perhaps I'm wrong about that. =C2=A0Certainly the dearth of people testing and making bug
reports suggests people don't actually care that much.

> You seem to
> suggest that the question for these new users is whether they will use=
> full-node-or-lite-node, but I believe it will be a decision between > lite-node-or-nothing-at-all (losing interest altogether).

No. The "question" that I'm concerned with is do we pro= mote lite nodes
as equally good option=E2=80=94 even for high end systems=E2=80=94 remove t= he
incentive for people to create, improve, and adopt more useful full
node software and forever degrade the security of the system.

> Waiting a day
> for the full node to synchronize, and then run into issues like
> blkindex.dat corruption when their system crashes for some unrelated > reason and they have to resync for another day... they'll be gone = in a
> heartbeat.

The current software patches plus parallelism can sync on a fast
system with luck network access (or a local copy of the data) in under
an hour.

This is no replacement for start as SPV, but nor are handicapped
client programs a replacement for making fully capable ones acceptably
performing.

> Users need to experience, as quickly and easily as possible, that they=
> can move money across the world, without signing up for anything or > paying any fees.

Making the all the software painless for users is a great goal=E2=80= =94 and
one I share. =C2=A0I still maintain that it has nothing to do with
promoting less capable and secure software to users.

---------------------------------------------------------------------------= ---
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services Discover what IT Professionals Know. Rescue delivers
http://p= .sf.net/sfu/logmein_12329d2d
_______________________________________________
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-de= velopment


-----------------------------------------------------------= -------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services Discover what IT Professionals Know. Rescue delivers
http://p= .sf.net/sfu/logmein_12329d2d
_______________________________________= ________
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-de= velopment



-----------------------------------------------------------------------= -------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services Discover what IT Professionals Know. Rescue delivers
http://p= .sf.net/sfu/logmein_12329d2d
_______________________________________= ________
Bitcoin-development mailing list
Bitcoin-develo= pment@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-de= velopment


--20cf3074b54053e31a04d017d26a--