From 7d2ba062092a0aa395e1c20f87bf74f0aa6ea001 Mon Sep 17 00:00:00 2001 From: "David A. Harding" Date: Thu, 11 May 2023 09:50:39 -1000 Subject: [PATCH] CH10: update Full Node section - Drop everything that says a full node needs a complete copy of the blockchain --- ch08.asciidoc | 41 +++++++++++++++-------------------------- 1 file changed, 15 insertions(+), 26 deletions(-) diff --git a/ch08.asciidoc b/ch08.asciidoc index 54583f53..fe116e45 100644 --- a/ch08.asciidoc +++ b/ch08.asciidoc @@ -435,44 +435,33 @@ startref="BNextend08")))((("", startref="BNodiscover08"))) === Full Nodes -((("Bitcoin network", "full nodes")))((("full-node -clients")))((("blockchain (the)", "full blockchain nodes")))Full nodes -are nodes that maintain a full blockchain with all transactions. More -accurately, they probably should be called "full blockchain nodes." In -the early years of Bitcoin, all nodes were full nodes and currently the -Bitcoin Core client is a full blockchain node. In the past two years, -however, new forms of Bitcoin clients have been introduced that do not -maintain a full blockchain but run as lightweight clients. We'll examine -these in more detail in the next section. +Full nodes are nodes that verify every transaction in every block on the +valid block chain with the most proof of work. ((("blocks", "genesis block")))((("genesis block")))((("blockchain -(the)", "genesis block")))Full blockchain nodes maintain a complete and -up-to-date copy of the Bitcoin blockchain with all the transactions, -which they independently build and verify, starting with the very first +(the)", "genesis block")))Full nodes +independently process every block, starting with the very first block (genesis block) and building up to the latest known block in the -network. A full blockchain node can independently and authoritatively +network. A full node can independently and authoritatively verify any transaction without recourse or reliance on any other node or -source of information. The full blockchain node relies on the network to +source of information. The full node relies on the network to receive updates about new blocks of transactions, which it then verifies -and incorporates into its local copy of the blockchain. +and incorporates into its local view of which scripts control which +Bitcoins, called the set of _unspent transaction outputs_ (UTXOs). -((("Bitcoin nodes", "full nodes")))Running a full blockchain node gives +((("Bitcoin nodes", "full nodes")))Running a full node gives you the pure Bitcoin experience: independent verification of all transactions without the need to rely on, or trust, any other systems. -It's easy to tell if you're running a full node because it requires more -than one hundred gigabytes of persistent storage (disk space) to store -the full blockchain. If you need a lot of disk and it takes two to three -days to sync to the network, you are running a full node. That is the -price of complete independence and freedom from central authority. ((("Satoshi client")))There are a few alternative implementations of -full blockchain Bitcoin clients, built using different programming -languages and software architectures. However, the most common -implementation is the reference client Bitcoin Core, also known as the -Satoshi client. More than 75% of the nodes on the Bitcoin network run +full nodes, built using different programming +languages and software architectures, or which made different design +decisions. However, the most common +implementation is Bitcoin Core. +More than 95% of full nodes on the Bitcoin network run various versions of Bitcoin Core. It is identified as "Satoshi" in the sub-version string sent in the +version+ message and shown by the -command +getpeerinfo+ as we saw earlier; for example, +/Satoshi:0.8.6/+. +command +getpeerinfo+ as we saw earlier; for example, +/Satoshi:24.0.1/+. === Exchanging "Inventory"