mirror of
https://github.com/bitcoinbook/bitcoinbook
synced 2025-01-11 00:01:03 +00:00
CH10: update Full Node section
- Drop everything that says a full node needs a complete copy of the blockchain
This commit is contained in:
parent
cf750ecf4d
commit
7d2ba06209
@ -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"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user