summaryrefslogtreecommitdiff
path: root/ad
diff options
context:
space:
mode:
authorDanny Thorpe <danny.thorpe@gmail.com>2016-02-12 09:08:42 -0800
committerbitcoindev <bitcoindev@gnusha.org>2016-02-12 17:08:45 +0000
commitb4e4726ae861149318e4154d97769fad20f4cb95 (patch)
treef1db5a28f8af05ced9b4074cf0ba467904991c0a /ad
parent0e8f40778e74c1e86f3288355bafa00ac38d4a04 (diff)
downloadpi-bitcoindev-b4e4726ae861149318e4154d97769fad20f4cb95.tar.gz
pi-bitcoindev-b4e4726ae861149318e4154d97769fad20f4cb95.zip
Re: [bitcoin-dev] Clearing up some misconceptions about full nodes
Diffstat (limited to 'ad')
-rw-r--r--ad/deebb6c06bda359d7babfc8b8dca8a38b89e75732
1 files changed, 732 insertions, 0 deletions
diff --git a/ad/deebb6c06bda359d7babfc8b8dca8a38b89e75 b/ad/deebb6c06bda359d7babfc8b8dca8a38b89e75
new file mode 100644
index 000000000..90e5bc3f6
--- /dev/null
+++ b/ad/deebb6c06bda359d7babfc8b8dca8a38b89e75
@@ -0,0 +1,732 @@
+Return-Path: <danny.thorpe@gmail.com>
+Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
+ [172.17.192.35])
+ by mail.linuxfoundation.org (Postfix) with ESMTPS id 9C5F6E38
+ for <bitcoin-dev@lists.linuxfoundation.org>;
+ Fri, 12 Feb 2016 17:08:45 +0000 (UTC)
+X-Greylist: whitelisted by SQLgrey-1.7.6
+Received: from mail-qg0-f46.google.com (mail-qg0-f46.google.com
+ [209.85.192.46])
+ by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 0C74BB0
+ for <bitcoin-dev@lists.linuxfoundation.org>;
+ Fri, 12 Feb 2016 17:08:43 +0000 (UTC)
+Received: by mail-qg0-f46.google.com with SMTP id y89so66840409qge.2
+ for <bitcoin-dev@lists.linuxfoundation.org>;
+ Fri, 12 Feb 2016 09:08:42 -0800 (PST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
+ h=mime-version:in-reply-to:references:date:message-id:subject:from:to
+ :cc:content-type;
+ bh=R+pq0nvs0QvxobThzk8OTsZd2p3YWQmYzm8JFGde1eU=;
+ b=uMWkM+/JPcuB32aDLfSHvWOjHCWGqmE2iyFGbe+/ZhikbpuuC42+KPUB4L3I5RR+yC
+ YHYfxVkJFSJLZTen4rjVoO9tbNoCZJIOCYmrQWXUhPSGBhINJYxNGp/6HOcRJS0Qhu9H
+ Z/pOAszQxvd1+9dsmxZCUO4uwJEqMkwnG0dVoBtcZ1OkOjzqD3CqE5WjycxPbosapwKF
+ +UJ6gnRccMP0FEYRW9WH3Ku1AYaivPWkkTHJmhS5BniZ7efWMf4+Fj3kpcXf/YTKUBwk
+ 1Ph2PPmDnruEsfdB+lGW7ai4o/0xb3m6ybx46WNVzhf8Bsju0TVKj8hQOXQ7J5wGpEr8
+ tzhg==
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=1e100.net; s=20130820;
+ h=x-gm-message-state:mime-version:in-reply-to:references:date
+ :message-id:subject:from:to:cc:content-type;
+ bh=R+pq0nvs0QvxobThzk8OTsZd2p3YWQmYzm8JFGde1eU=;
+ b=PGxPng5bCxD99wqn31tkHssPchKea7RdLn22U08VuvzaHUhfyHIQLoPbaqwSLmLTue
+ PMmI17pp4vPDOk+hJ4+1gU0nAXv7zsP7Pky9dqPgECnuP+6aHIzKs4qdS9egwgzQXrvx
+ B8YoP1AqcTfhv5X4wVE4bCvFfQTK2Ix2T7ljqZKzLPFmuMYKNc92Wc1jttYQpQhbbbCA
+ D+MWjDPAoP1WRJHlMG7l3HsSzr1uwelzMKM3bxf9MxFHYZz+1pAzwSFIvHhGokEn3VWp
+ EqnxchP5HmBerOx2sQDpOwn3mwgaOrCA1UTzfTmOyIqwILytzl62J+wEhZKO9/ui+3bv
+ bwyA==
+X-Gm-Message-State: AG10YOS641KIHdAceM2yQiPQPf180XhpVxG4Jsm6Lw2jRfY39uqm3WPdkdEFF27g0KNCJ1P2PVLEBM8FwWVPyQ==
+MIME-Version: 1.0
+X-Received: by 10.140.95.117 with SMTP id h108mr3255920qge.65.1455296922226;
+ Fri, 12 Feb 2016 09:08:42 -0800 (PST)
+Received: by 10.140.20.206 with HTTP; Fri, 12 Feb 2016 09:08:42 -0800 (PST)
+In-Reply-To: <60215.178.73.210.16.1455174198.squirrel@boosthardware.com>
+References: <56BA71D4.5040200@riseup.net> <56BBA879.5030309@riseup.net>
+ <60215.178.73.210.16.1455174198.squirrel@boosthardware.com>
+Date: Fri, 12 Feb 2016 09:08:42 -0800
+Message-ID: <CAJN5wHUBXRdiCcbjZ1bMGhjMzLWZ+6uA9-86gN1UNzLOD78Xcw@mail.gmail.com>
+From: Danny Thorpe <danny.thorpe@gmail.com>
+To: Patrick Shirkey <pshirkey@boosthardware.com>
+Content-Type: multipart/alternative; boundary=001a11c15a8e179526052b95b8d5
+X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_SIGNED,
+ DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,HTML_MESSAGE,RCVD_IN_DNSWL_LOW
+ autolearn=ham version=3.3.1
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+ smtp1.linux-foundation.org
+X-Mailman-Approved-At: Fri, 12 Feb 2016 20:17:37 +0000
+Cc: Bitcoin Dev <bitcoin-dev@lists.linuxfoundation.org>
+Subject: Re: [bitcoin-dev] Clearing up some misconceptions about full nodes
+X-BeenThere: bitcoin-dev@lists.linuxfoundation.org
+X-Mailman-Version: 2.1.12
+Precedence: list
+List-Id: Bitcoin Development Discussion <bitcoin-dev.lists.linuxfoundation.org>
+List-Unsubscribe: <https://lists.linuxfoundation.org/mailman/options/bitcoin-dev>,
+ <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=unsubscribe>
+List-Archive: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/>
+List-Post: <mailto:bitcoin-dev@lists.linuxfoundation.org>
+List-Help: <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=help>
+List-Subscribe: <https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev>,
+ <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=subscribe>
+X-List-Received-Date: Fri, 12 Feb 2016 17:08:45 -0000
+
+--001a11c15a8e179526052b95b8d5
+Content-Type: text/plain; charset=UTF-8
+
+"With a very powerful "Desktop" machine bitcoin-qt dominates CPU/GPU
+resources."
+
+That doesn't match my experience.
+
+System responsiveness / user experience can suffer when running bitcoin-qt
+on a spinning hard disk. Disk I/O load will cause the whole system to grind
+and severely disrupt the user experience.
+
+Move the Bitcoin data to an SSD, though, and it's an entirely different
+story.
+
+The initial blockchain synchronization / "catch up" is CPU and disk
+intensive, but after initial sync I find bitcoin-qt uses only a trivial
+amount of CPU to keep up with verifying new blocks and new transactions.
+
+Running bitcoin-qt occasionally is a much more painful user experience than
+running bitcoin-qt continuously.
+
+I'm running Bitcoin Core v0.12.rc2 on an old dual core Pentium E2160 at
+1.8GHz, 6GB RAM, 64 bit Windows 10, with the Bitcoin data on SSD. This
+system is about 6 years old and was an economy model even when new. Not
+what I would call a powerful system. I've only added RAM and the SSD.
+
+On that machine I run two instances of Bitcoin-qt - one for mainnet, and
+another for testnet, and an instance of bfgminer to manage a handful of USB
+Block Eruptors for testnet mining. Both bitcoin-qt instances are typically
+at their max of 25 connections (each). Total CPU load floats around 11%,
+with only occasional spikes to 40% for a few seconds. The mainnet
+bitcoin-qt process uses about 700MB of RAM, testnet about 300MB.
+
+This machine did fall into disk grinding paralysis during initial sync /
+catchup with the v0.10 and v0.11 builds of bitcoin-qt, when the Bitcoin
+data was on a spinning disk. Moving the Bitcoin data to an SSD drive had
+the greatest impact on breaking the disk-bound whole-system paralysis.
+Increasing the system RAM, upgrading to v0.12, and upgrading the OS to Win
+10 all contributed smaller improvements.
+
+It is possible to run a full node on a small desktop machine concurrent
+with user apps. Just get the Bitcoin data off of spinning media and onto
+SSD, make sure you have plenty of RAM, and leave bitcoin-qt running all the
+time.
+
+-Danny
+
+
+
+On Wed, Feb 10, 2016 at 11:03 PM, Patrick Shirkey via bitcoin-dev <
+bitcoin-dev@lists.linuxfoundation.org> wrote:
+
+>
+> On Thu, February 11, 2016 8:15 am, Chris Belcher via bitcoin-dev wrote:
+> > I've been asked to post this to this mailing list too. It's time to
+> > clear up some misconceptions floating around about full nodes.
+> >
+> > === Myth: There are only about 5500 full nodes worldwide ===
+> >
+> > This number comes from this and similar sites: https://bitnodes.21.co/
+> > and it measured by trying to probe every nodes on their open ports.
+> >
+> > Problem is, not all nodes actually have open ports that can be probed.
+> > Either because they are behind firewalls or because their users have
+> > configured them to not listen for connections.
+> >
+> > Nobody knows how many full nodes there are, since many people don't know
+> > how to forward ports behind a firewall, and bandwidth can be costly, its
+> > quite likely that the number of nodes with closed ports is at least
+> > another several thousand.
+> >
+> > Nodes with open ports are able to upload blocks to new full nodes. In
+> > all other ways they are the same as nodes with closed ports. But because
+> > open-port-nodes can be measured and closed-port-nodes cannot, some
+> > members of the bitcoin community have been mistaken into believing that
+> > open-port-nodes are that matters.
+> >
+> > === Myth: This number of nodes matters and/or is too low. ===
+> >
+> > Nodes with open ports are useful to the bitcoin network because they
+> > help bootstrap new nodes by uploading historical blocks, they are a
+> > measure of bandwidth capacity. Right now there is no shortage of
+> > bandwidth capacity, and if there was it could be easily added by renting
+> > cloud servers.
+> >
+> > The problem is not bandwidth or connections, but trust, security and
+> > privacy. Let me explain.
+> >
+> > Full nodes are able to check that all of bitcoin's rules are being
+> > followed. Rules like following the inflation schedule, no double
+> > spending, no spending of coins that don't belong to the holder of the
+> > private key and all the other rules required to make bitcoin work (e.g.
+> > difficulty)
+> >
+> > Full nodes are what make bitcoin trustless. No longer do you have to
+> > trust a financial institution like a bank or paypal, you can simply run
+> > software on your own computer. To put simply, the only node that matters
+> > is the one you use.
+> >
+> > === Myth: There is no incentive to run nodes, the network relies on
+> > altruism ===
+> >
+> > It is very much in the individual bitcoin's users rational self interest
+> > to run a full node and use it as their wallet.
+> >
+> > Using a full node as your wallet is the only way to know for sure that
+> > none of bitcoin's rules have been broken. Rules like no coins were spent
+> > not belonging to the owner, that no coins were spent twice, that no
+> > inflation happens outside of the schedule and that all the rules needed
+> > to make the system work are followed (e.g. difficulty.) All other kinds
+> > of wallet involve trusting a third party server.
+> >
+> > All these checks done by full nodes also increase the security. There
+> > are many attacks possible against lightweight wallets that do not affect
+> > full node wallets.
+> >
+> > This is not just mindless paranoia, there have been real world examples
+> > where full node users were unaffected by turmoil in the rest of the
+> > bitcoin ecosystem. The 4th July 2015 accidental chain fork effected many
+> > kinds of wallets. Here is the wiki page on this event
+> > https://en.bitcoin.it/wiki/July_2015_chain_forks#Wallet_Advice
+> >
+> > Notice how updated node software was completely unaffected by the fork.
+> > All other wallets required either extra confirmations or checking that
+> > the third-party institution was running the correct version.
+> >
+> > Full nodes wallets are also currently the most private way to use
+> > Bitcoin, with nobody else learning which bitcoin addresses belong to
+> > you. All other lightweight wallets leak information about which
+> > addresses are yours because they must query third-party servers. The
+> > Electrum servers will know which addresses belong to you and can link
+> > them together. Despite bloom filtering, lightweight wallets based on
+> > BitcoinJ do not provide much privacy against nodes who connected
+> > directly to the wallet or wiretappers.
+> >
+> > For many use cases, such privacy may not be required. But an important
+> > reason to run a full node and use it as a wallet is to get the full
+> > privacy benefits.
+> >
+> > === Myth: I can just set up a node on a cloud server instance and leave
+> > it ===
+> >
+> > To get the benefits of running a full node, you must use it as your
+> > wallet, preferably on hardware you control.
+> >
+> > Most people who do this do not use a full node as their wallet.
+> > Unfortunately because Bitcoin has a similar name to Bittorrent, some
+> > people believe that upload capacity is the most important thing for a
+> > healthy network. As I've explained above: bandwidth and connections are
+> > not a problem today, trust, security and privacy are.
+> >
+> > === Myth: Running a full node is not recommended, most people should use
+> > a lightweight client ===
+> >
+> > This was common advice in 2012, but since then the full node software
+> > has vastly improved in terms of user experience.
+> >
+> > If you cannot spare the disk space to store the blockchain, you can
+> > enable pruning as in:
+> > https://bitcoin.org/en/release/v0.11.0#block-file-pruning. In Bitcoin
+> > Core 0.12, pruning being enabled will leave the wallet enabled.
+> > Altogether this should require less than 1.5GB of hard disk space.
+> >
+> > If you cannot spare the bandwidth to upload blocks to other nodes, there
+> > are number of options to reduce or eliminate the bandwidth requirement
+> > found in https://bitcoin.org/en/full-node#reduce-traffic . These include
+> > limiting connections, bandwidth targetting and disabling listening.
+> > Bitcoin Core 0.12 has the new option -blocksonly, where the node will
+> > not download unconfirmed transaction and only download new blocks. This
+> > more than halves the bandwidth usage at the expense of not seeing
+> > unconfirmed transactions.
+> >
+> > Synchronizing the blockchain for a new node has improved since 2012 too.
+> > Features like headers-first
+> > (https://bitcoin.org/en/release/v0.10.0#faster-synchronization) and
+> > libsecp256k1 have greatly improved the initial synchronization time.
+> >
+> > It can be further improved by setting -dbcache=6000 which keeps more of
+> > the UTXO set in memory. It reduces the amount of time reading from disk
+> > and therefore speeds up synchronization. Tests showed that the entire
+> > blockchain can now be synchronized in less than _3 and a half hours_
+> > (See
+> > https://github.com/bitcoin/bitcoin/pull/6954#issuecomment-154993958)
+> > Note that you'll need Bitcoin Core 0.12 or later to get all these
+> > efficiency improvements.
+> >
+> > === How to run a full node as your wallet ===
+> >
+> > I think every moderate user of bitcoin would benefit by running a full
+> > node and using it as their wallet. There are several ways to do this.
+> >
+> > * Run a bitcoin-qt full node (https://bitcoin.org/en/download).
+> >
+> > * Use wallet software that is backed by a full node e.g. Armory
+> > (https://bitcoinarmory.com/) or JoinMarket
+> > (https://github.com/AdamISZ/JMBinary/#jmbinary)
+> >
+> > * Use a lightweight wallet that connects only to your full node (e.g.
+> > Multibit connecting only to your node running at home, Electrum
+> > connecting only to your own Electrum server)
+> >
+> > So what are you waiting for? The benefits are many, the downsides are
+> > not that bad. The more people do this, the more robust and healthy the
+> > bitcoin ecosystem is.
+> >
+> >
+>
+> This is very useful information but from my experience it is not viable to
+> have a full node running full time on a desktop system i.e sharing the
+> system with a normal desktop workload.
+>
+> With a very powerful "Desktop" machine bitcoin-qt dominates CPU/GPU
+> resources. Surely the majority of nodes NOT running open ports are being
+> run on desktop systems. It's likely that the vast majority of the
+> "normal/desktop" user base are not going to setup dedicated machines to
+> run a full node full time.
+>
+> It's likely that the vast majority of full nodes that are not running open
+> ports are used occasionally when the user wants to make a transaction or
+> "catch up" with the blockchain.
+>
+> That creates a divide between those who do have the resources to
+> contribute to the system on a full time basis (minority) and those who do
+> not (majority).
+>
+> Does the power of p2p decentralization lie with the vast majority or the
+> "wealthy" resource rich minority?
+>
+> How will the move to 2MB hard fork affect the vast majority of nodes?
+>
+> For example Debian unstable currently provides the following:
+>
+> apt-cache madison bitcoin-qt
+> bitcoin-qt | 0.11.2-1 | http://ftp.lug.ro/debian/ unstable/main amd64
+> Packages
+> bitcoin | 0.11.2-1 | http://ftp.lug.ro/debian/ unstable/main Sources
+>
+>
+> The rollout affect of the hard fork on the entire bitcoin ecosystem is a
+> difficult process to plan in advance. It's not viable to simply rely on
+> press releases to encourage users to upgrade their nodes. The debacle with
+> Pulse Audio during the mid 2000's should be a lesson for those who seek
+> that route.
+>
+> Compare that to the requirements for spinning up "bitcoin-2.0" and
+> enabling users to move their wallets to the new blockchain at their
+> leisure.
+>
+> The ecosystem doesn't suffer from instant degradation. Bitcoin "brand"
+> loyalty will ensure that users who want to move forward with the economic
+> potential of the 2MB blocksize will be able to keep their existing funds
+> safe while testing the waters with the new blocksize.
+>
+> After all Bitcoin is still the only game in town when it comes to scale
+> and proven history of financial return.
+>
+> As the new blockchain builds momentum the old one will eventually become
+> obsolete. However it may also become the digital equivalency of Silver and
+> that is also a useful, profitable and viable alternative with a proven
+> history of success.
+>
+>
+>
+>
+> --
+> Patrick Shirkey
+> Boost Hardware Ltd
+> _______________________________________________
+> bitcoin-dev mailing list
+> bitcoin-dev@lists.linuxfoundation.org
+> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
+>
+
+--001a11c15a8e179526052b95b8d5
+Content-Type: text/html; charset=UTF-8
+Content-Transfer-Encoding: quoted-printable
+
+<div dir=3D"ltr">&quot;<span style=3D"font-size:12.8px">With a very powerfu=
+l &quot;Desktop&quot; machine bitcoin-qt dominates CPU/GPU</span><br style=
+=3D"font-size:12.8px"><span style=3D"font-size:12.8px">resources.&quot;</sp=
+an><div><span style=3D"font-size:12.8px"><br></span></div><div><span style=
+=3D"font-size:12.8px">That doesn&#39;t match my experience.=C2=A0</span></d=
+iv><div><span style=3D"font-size:12.8px"><br></span></div><div><span style=
+=3D"font-size:12.8px">System responsiveness / user experience can suffer wh=
+en running bitcoin-qt on a spinning hard disk. Disk I/O load will cause the=
+ whole system to grind and severely disrupt the user experience.</span></di=
+v><div><span style=3D"font-size:12.8px"><br></span></div><div><span style=
+=3D"font-size:12.8px">Move the Bitcoin data to an SSD, though, and it&#39;s=
+ an entirely different story.</span><br></div><div><br></div><div><span sty=
+le=3D"font-size:12.8px">The initial blockchain synchronization / &quot;catc=
+h up&quot; is CPU and disk intensive, but after initial sync I find bitcoin=
+-qt uses only a trivial amount of CPU to keep up with verifying new blocks =
+and new transactions. =C2=A0</span></div><div><span style=3D"font-size:12.8=
+px"><br></span></div><div><span style=3D"font-size:12.8px">Running bitcoin-=
+qt occasionally is a much more painful user experience than running bitcoin=
+-qt continuously.</span></div><div><span style=3D"font-size:12.8px"><br></s=
+pan></div><div><span style=3D"font-size:12.8px">I&#39;m running Bitcoin Cor=
+e v0.12.rc2 on an old dual core Pentium E2160 at 1.8GHz, 6GB RAM, 64 bit Wi=
+ndows 10, with the Bitcoin data on SSD. This system is about 6 years old an=
+d was an economy model even when new. Not what I would call a powerful syst=
+em. I&#39;ve only added RAM and the SSD.</span></div><div><span style=3D"fo=
+nt-size:12.8px"><br></span></div><div><span style=3D"font-size:12.8px">On t=
+hat machine I run two instances of Bitcoin-qt - one for mainnet, and anothe=
+r for testnet, and an instance of bfgminer to manage a handful of USB Block=
+ Eruptors for testnet mining. Both bitcoin-qt instances are typically at th=
+eir max of 25 connections (each). Total CPU load floats around 11%, with on=
+ly occasional spikes to 40% for a few seconds.=C2=A0 The mainnet bitcoin-qt=
+ process uses about 700MB of RAM, testnet about 300MB.</span></div><div><sp=
+an style=3D"font-size:12.8px"><br></span></div><div><span style=3D"font-siz=
+e:12.8px">This machine did fall into disk grinding paralysis during initial=
+ sync / catchup with the v0.10 and v0.11 builds of bitcoin-qt, when the Bit=
+coin data was on a spinning disk. Moving the Bitcoin data to an SSD drive h=
+ad the greatest impact on breaking the disk-bound whole-system paralysis. I=
+ncreasing the system RAM, upgrading to v0.12, and upgrading the OS to Win 1=
+0 all contributed smaller improvements.</span></div><div><span style=3D"fon=
+t-size:12.8px"><br></span></div><div><span style=3D"font-size:12.8px">It is=
+ possible to run a full node on a small desktop machine concurrent with use=
+r apps. Just get the Bitcoin data off of spinning media and onto SSD, make =
+sure you have plenty of RAM, and leave bitcoin-qt running all the time.</sp=
+an></div><div><span style=3D"font-size:12.8px"><br></span></div><div><span =
+style=3D"font-size:12.8px">-Danny</span></div><div><span style=3D"font-size=
+:12.8px"><br></span></div><div><br></div></div><div class=3D"gmail_extra"><=
+br><div class=3D"gmail_quote">On Wed, Feb 10, 2016 at 11:03 PM, Patrick Shi=
+rkey via bitcoin-dev <span dir=3D"ltr">&lt;<a href=3D"mailto:bitcoin-dev@li=
+sts.linuxfoundation.org" target=3D"_blank">bitcoin-dev@lists.linuxfoundatio=
+n.org</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"m=
+argin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class=3D=
+"HOEnZb"><div class=3D"h5"><br>
+On Thu, February 11, 2016 8:15 am, Chris Belcher via bitcoin-dev wrote:<br>
+&gt; I&#39;ve been asked to post this to this mailing list too. It&#39;s ti=
+me to<br>
+&gt; clear up some misconceptions floating around about full nodes.<br>
+&gt;<br>
+&gt; =3D=3D=3D Myth: There are only about 5500 full nodes worldwide =3D=3D=
+=3D<br>
+&gt;<br>
+&gt; This number comes from this and similar sites: <a href=3D"https://bitn=
+odes.21.co/" rel=3D"noreferrer" target=3D"_blank">https://bitnodes.21.co/</=
+a><br>
+&gt; and it measured by trying to probe every nodes on their open ports.<br=
+>
+&gt;<br>
+&gt; Problem is, not all nodes actually have open ports that can be probed.=
+<br>
+&gt; Either because they are behind firewalls or because their users have<b=
+r>
+&gt; configured them to not listen for connections.<br>
+&gt;<br>
+&gt; Nobody knows how many full nodes there are, since many people don&#39;=
+t know<br>
+&gt; how to forward ports behind a firewall, and bandwidth can be costly, i=
+ts<br>
+&gt; quite likely that the number of nodes with closed ports is at least<br=
+>
+&gt; another several thousand.<br>
+&gt;<br>
+&gt; Nodes with open ports are able to upload blocks to new full nodes. In<=
+br>
+&gt; all other ways they are the same as nodes with closed ports. But becau=
+se<br>
+&gt; open-port-nodes can be measured and closed-port-nodes cannot, some<br>
+&gt; members of the bitcoin community have been mistaken into believing tha=
+t<br>
+&gt; open-port-nodes are that matters.<br>
+&gt;<br>
+&gt; =3D=3D=3D Myth: This number of nodes matters and/or is too low. =3D=3D=
+=3D<br>
+&gt;<br>
+&gt; Nodes with open ports are useful to the bitcoin network because they<b=
+r>
+&gt; help bootstrap new nodes by uploading historical blocks, they are a<br=
+>
+&gt; measure of bandwidth capacity. Right now there is no shortage of<br>
+&gt; bandwidth capacity, and if there was it could be easily added by renti=
+ng<br>
+&gt; cloud servers.<br>
+&gt;<br>
+&gt; The problem is not bandwidth or connections, but trust, security and<b=
+r>
+&gt; privacy. Let me explain.<br>
+&gt;<br>
+&gt; Full nodes are able to check that all of bitcoin&#39;s rules are being=
+<br>
+&gt; followed. Rules like following the inflation schedule, no double<br>
+&gt; spending, no spending of coins that don&#39;t belong to the holder of =
+the<br>
+&gt; private key and all the other rules required to make bitcoin work (e.g=
+.<br>
+&gt; difficulty)<br>
+&gt;<br>
+&gt; Full nodes are what make bitcoin trustless. No longer do you have to<b=
+r>
+&gt; trust a financial institution like a bank or paypal, you can simply ru=
+n<br>
+&gt; software on your own computer. To put simply, the only node that matte=
+rs<br>
+&gt; is the one you use.<br>
+&gt;<br>
+&gt; =3D=3D=3D Myth: There is no incentive to run nodes, the network relies=
+ on<br>
+&gt; altruism =3D=3D=3D<br>
+&gt;<br>
+&gt; It is very much in the individual bitcoin&#39;s users rational self in=
+terest<br>
+&gt; to run a full node and use it as their wallet.<br>
+&gt;<br>
+&gt; Using a full node as your wallet is the only way to know for sure that=
+<br>
+&gt; none of bitcoin&#39;s rules have been broken. Rules like no coins were=
+ spent<br>
+&gt; not belonging to the owner, that no coins were spent twice, that no<br=
+>
+&gt; inflation happens outside of the schedule and that all the rules neede=
+d<br>
+&gt; to make the system work are followed=C2=A0 (e.g. difficulty.) All othe=
+r kinds<br>
+&gt; of wallet involve trusting a third party server.<br>
+&gt;<br>
+&gt; All these checks done by full nodes also increase the security. There<=
+br>
+&gt; are many attacks possible against lightweight wallets that do not affe=
+ct<br>
+&gt; full node wallets.<br>
+&gt;<br>
+&gt; This is not just mindless paranoia, there have been real world example=
+s<br>
+&gt; where full node users were unaffected by turmoil in the rest of the<br=
+>
+&gt; bitcoin ecosystem. The 4th July 2015 accidental chain fork effected ma=
+ny<br>
+&gt; kinds of wallets. Here is the wiki page on this event<br>
+&gt; <a href=3D"https://en.bitcoin.it/wiki/July_2015_chain_forks#Wallet_Adv=
+ice" rel=3D"noreferrer" target=3D"_blank">https://en.bitcoin.it/wiki/July_2=
+015_chain_forks#Wallet_Advice</a><br>
+&gt;<br>
+&gt; Notice how updated node software was completely unaffected by the fork=
+.<br>
+&gt; All other wallets required either extra confirmations or checking that=
+<br>
+&gt; the third-party institution was running the correct version.<br>
+&gt;<br>
+&gt; Full nodes wallets are also currently the most private way to use<br>
+&gt; Bitcoin, with nobody else learning which bitcoin addresses belong to<b=
+r>
+&gt; you. All other lightweight wallets leak information about which<br>
+&gt; addresses are yours because they must query third-party servers. The<b=
+r>
+&gt; Electrum servers will know which addresses belong to you and can link<=
+br>
+&gt; them together. Despite bloom filtering, lightweight wallets based on<b=
+r>
+&gt; BitcoinJ do not provide much privacy against nodes who connected<br>
+&gt; directly to the wallet or wiretappers.<br>
+&gt;<br>
+&gt; For many use cases, such privacy may not be required. But an important=
+<br>
+&gt; reason to run a full node and use it as a wallet is to get the full<br=
+>
+&gt; privacy benefits.<br>
+&gt;<br>
+&gt; =3D=3D=3D Myth: I can just set up a node on a cloud server instance an=
+d leave<br>
+&gt; it =3D=3D=3D<br>
+&gt;<br>
+&gt; To get the benefits of running a full node, you must use it as your<br=
+>
+&gt; wallet, preferably on hardware you control.<br>
+&gt;<br>
+&gt; Most people who do this do not use a full node as their wallet.<br>
+&gt; Unfortunately because Bitcoin has a similar name to Bittorrent, some<b=
+r>
+&gt; people believe that upload capacity is the most important thing for a<=
+br>
+&gt; healthy network. As I&#39;ve explained above: bandwidth and connection=
+s are<br>
+&gt; not a problem today, trust, security and privacy are.<br>
+&gt;<br>
+&gt; =3D=3D=3D Myth: Running a full node is not recommended, most people sh=
+ould use<br>
+&gt; a lightweight client =3D=3D=3D<br>
+&gt;<br>
+&gt; This was common advice in 2012, but since then the full node software<=
+br>
+&gt; has vastly improved in terms of user experience.<br>
+&gt;<br>
+&gt; If you cannot spare the disk space to store the blockchain, you can<br=
+>
+&gt; enable pruning as in:<br>
+&gt; <a href=3D"https://bitcoin.org/en/release/v0.11.0#block-file-pruning" =
+rel=3D"noreferrer" target=3D"_blank">https://bitcoin.org/en/release/v0.11.0=
+#block-file-pruning</a>. In Bitcoin<br>
+&gt; Core 0.12, pruning being enabled will leave the wallet enabled.<br>
+&gt; Altogether this should require less than 1.5GB of hard disk space.<br>
+&gt;<br>
+&gt; If you cannot spare the bandwidth to upload blocks to other nodes, the=
+re<br>
+&gt; are number of options to reduce or eliminate the bandwidth requirement=
+<br>
+&gt; found in <a href=3D"https://bitcoin.org/en/full-node#reduce-traffic" r=
+el=3D"noreferrer" target=3D"_blank">https://bitcoin.org/en/full-node#reduce=
+-traffic</a> . These include<br>
+&gt; limiting connections, bandwidth targetting and disabling listening.<br=
+>
+&gt; Bitcoin Core 0.12 has the new option -blocksonly, where the node will<=
+br>
+&gt; not download unconfirmed transaction and only download new blocks. Thi=
+s<br>
+&gt; more than halves the bandwidth usage at the expense of not seeing<br>
+&gt; unconfirmed transactions.<br>
+&gt;<br>
+&gt; Synchronizing the blockchain for a new node has improved since 2012 to=
+o.<br>
+&gt; Features like headers-first<br>
+&gt; (<a href=3D"https://bitcoin.org/en/release/v0.10.0#faster-synchronizat=
+ion" rel=3D"noreferrer" target=3D"_blank">https://bitcoin.org/en/release/v0=
+.10.0#faster-synchronization</a>) and<br>
+&gt; libsecp256k1 have greatly improved the initial synchronization time.<b=
+r>
+&gt;<br>
+&gt; It can be further improved by setting -dbcache=3D6000 which keeps more=
+ of<br>
+&gt; the UTXO set in memory. It reduces the amount of time reading from dis=
+k<br>
+&gt; and therefore speeds up synchronization. Tests showed that the entire<=
+br>
+&gt; blockchain can now be synchronized in less than _3 and a half hours_<b=
+r>
+&gt; (See<br>
+&gt; <a href=3D"https://github.com/bitcoin/bitcoin/pull/6954#issuecomment-1=
+54993958" rel=3D"noreferrer" target=3D"_blank">https://github.com/bitcoin/b=
+itcoin/pull/6954#issuecomment-154993958</a>)<br>
+&gt; Note that you&#39;ll need Bitcoin Core 0.12 or later to get all these<=
+br>
+&gt; efficiency improvements.<br>
+&gt;<br>
+&gt; =3D=3D=3D How to run a full node as your wallet =3D=3D=3D<br>
+&gt;<br>
+&gt; I think every moderate user of bitcoin would benefit by running a full=
+<br>
+&gt; node and using it as their wallet. There are several ways to do this.<=
+br>
+&gt;<br>
+&gt; * Run a bitcoin-qt full node (<a href=3D"https://bitcoin.org/en/downlo=
+ad" rel=3D"noreferrer" target=3D"_blank">https://bitcoin.org/en/download</a=
+>).<br>
+&gt;<br>
+&gt; * Use wallet software that is backed by a full node e.g. Armory<br>
+&gt; (<a href=3D"https://bitcoinarmory.com/" rel=3D"noreferrer" target=3D"_=
+blank">https://bitcoinarmory.com/</a>) or JoinMarket<br>
+&gt; (<a href=3D"https://github.com/AdamISZ/JMBinary/#jmbinary" rel=3D"nore=
+ferrer" target=3D"_blank">https://github.com/AdamISZ/JMBinary/#jmbinary</a>=
+)<br>
+&gt;<br>
+&gt; * Use a lightweight wallet that connects only to your full node (e.g.<=
+br>
+&gt; Multibit connecting only to your node running at home, Electrum<br>
+&gt; connecting only to your own Electrum server)<br>
+&gt;<br>
+&gt; So what are you waiting for? The benefits are many, the downsides are<=
+br>
+&gt; not that bad. The more people do this, the more robust and healthy the=
+<br>
+&gt; bitcoin ecosystem is.<br>
+&gt;<br>
+&gt;<br>
+<br>
+</div></div>This is very useful information but from my experience it is no=
+t viable to<br>
+have a full node running full time on a desktop system i.e sharing the<br>
+system with a normal desktop workload.<br>
+<br>
+With a very powerful &quot;Desktop&quot; machine bitcoin-qt dominates CPU/G=
+PU<br>
+resources. Surely the majority of nodes NOT running open ports are being<br=
+>
+run on desktop systems.=C2=A0 It&#39;s likely that the vast majority of the=
+<br>
+&quot;normal/desktop&quot; user base are not going to setup dedicated machi=
+nes to<br>
+run a full node full time.<br>
+<br>
+It&#39;s likely that the vast majority of full nodes that are not running o=
+pen<br>
+ports are used occasionally when the user wants to make a transaction or<br=
+>
+&quot;catch up&quot; with the blockchain.<br>
+<br>
+That creates a divide between those who do have the resources to<br>
+contribute to the system on a full time basis (minority) and those who do<b=
+r>
+not (majority).<br>
+<br>
+Does the power of p2p decentralization lie with the vast majority or the<br=
+>
+&quot;wealthy&quot; resource rich minority?<br>
+<br>
+How will the move to 2MB hard fork affect the vast majority of nodes?<br>
+<br>
+For example Debian unstable currently provides the following:<br>
+<br>
+apt-cache=C2=A0 madison bitcoin-qt<br>
+bitcoin-qt |=C2=A0 =C2=A00.11.2-1 | <a href=3D"http://ftp.lug.ro/debian/" r=
+el=3D"noreferrer" target=3D"_blank">http://ftp.lug.ro/debian/</a> unstable/=
+main amd64<br>
+Packages<br>
+=C2=A0 =C2=A0bitcoin |=C2=A0 =C2=A00.11.2-1 | <a href=3D"http://ftp.lug.ro/=
+debian/" rel=3D"noreferrer" target=3D"_blank">http://ftp.lug.ro/debian/</a>=
+ unstable/main Sources<br>
+<br>
+<br>
+The rollout affect of the hard fork on the entire bitcoin ecosystem is a<br=
+>
+difficult process to plan in advance. It&#39;s not viable to simply rely on=
+<br>
+press releases to encourage users to upgrade their nodes. The debacle with<=
+br>
+Pulse Audio during the mid 2000&#39;s should be a lesson for those who seek=
+<br>
+that route.<br>
+<br>
+Compare that to the requirements for spinning up &quot;bitcoin-2.0&quot; an=
+d<br>
+enabling users to move their wallets to the new blockchain at their<br>
+leisure.<br>
+<br>
+The ecosystem doesn&#39;t suffer from instant degradation. Bitcoin &quot;br=
+and&quot;<br>
+loyalty will ensure that users who want to move forward with the economic<b=
+r>
+potential of the 2MB blocksize will be able to keep their existing funds<br=
+>
+safe while testing the waters with the new blocksize.<br>
+<br>
+After all Bitcoin is still the only game in town when it comes to scale<br>
+and proven history of financial return.<br>
+<br>
+As the new blockchain builds momentum the old one will eventually become<br=
+>
+obsolete. However it may also become the digital equivalency of Silver and<=
+br>
+that is also a useful, profitable and viable alternative with a proven<br>
+history of success.<br>
+<br>
+<br>
+<br>
+<br>
+--<br>
+Patrick Shirkey<br>
+Boost Hardware Ltd<br>
+<div class=3D"HOEnZb"><div class=3D"h5">___________________________________=
+____________<br>
+bitcoin-dev mailing list<br>
+<a href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org">bitcoin-dev@lists.=
+linuxfoundation.org</a><br>
+<a href=3D"https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev" =
+rel=3D"noreferrer" target=3D"_blank">https://lists.linuxfoundation.org/mail=
+man/listinfo/bitcoin-dev</a><br>
+</div></div></blockquote></div><br></div>
+
+--001a11c15a8e179526052b95b8d5--
+