Subject: Re: [Bitcoin-development] Bitcoind-in-background mode for SPV wallets

From: Mike Hearn <[email-masked]>
Date: Thu, 10 Apr 2014 09:09:25 +0200

It's an optimisation problem. Home environments are much more hostile than
servers are due to things like virus scanners, wildly varying memory
pressure as apps are started and shut down, highly asymmetrical upstream
versus downstream bandwidth,  complicated nat setups, people who only use
laptops (which I think is most people these days) and so on.

So I think the right way to go is to optimise the things that hurt server
node operators like large memory and disk  usage, and this will
automatically make it more pleasant to run on the desktop as well. If at
some point all the low hanging fruit for the server side is gone then
improving things on the desktop would be the next place to go. But we have
to be realistic. Desktop tower machines that are always on are dying and
will not be coming back. Not a single person I know uses them anymore, they
have been wiped out in favour of laptops. This is why, given the tiny size
of the bitcoin core development team, I do not think it makes sense to
spend precious coding hours chasing this goal.
On 10 Apr 2014 08:51, "Wladimir" <[email-masked]> wrote:

> On Thu, Apr 10, 2014 at 8:38 AM, Mike Hearn <[email-masked]> wrote:
>
>> I tend to agree with slush here - counting the IPs in addr broadcasts
>> often gives a number like 100,000 vs just 10,000 for actually reachable
>> nodes (or less). It seems like optimising the NAT tunneling code would
>> help. Starting by adding more diagnostic stuff to the GUI. STUN support may
>> also help.
>>
>> The main constraint with home devices is not IMHO their actual power but
>> rather that a lot of people no longer keep computers switched on all the
>> time. If you don't do that then spv with bundled Core can't help your
>> security because the spv wallet would always be syncing from the p2p
>> network for performance reasons.
>>
> I agree that there is a fundamental incompatibility in usage between
> wallets and nodes. Wallets need to be online as little as possible, nodes
> need to online as much as possible.
>
> However, a full node background process could also be running if the
> wallet is not open itself. Ffor example - by running as a system service.
>
> Bitcoin Core's own wallet is also moving to SPV, so this means a general
> solution is needed to get people to run a node when the wallet is not
> running.
>
> Maybe the node shouldn't be controlled from the wallet at all, it could be
> a 'node control' user interface on its own (this is what -disablewallet
> does currently). In this case, there is no need for packaging it with a
> wallet The only drawback would be that initially, people wouldn't know why
> or when to install this, hence my suggestion to pack it with wallets...
>
> Wladimir
>
>