From 8e9fc4485c9f99ba6929b6094e2e69caa938a08f Mon Sep 17 00:00:00 2001 From: "David A. Harding" Date: Sun, 5 Feb 2023 08:48:44 -1000 Subject: [PATCH] CH03::running a node: update resource requirements - Update resource requirements to their 2023 figures (and mention that they may increase in the future). - Be more precise about the minimal data a node needs, e.g. disk space requirements with pruning enabled and bandwidth in blocks-only mode. - Mention bandwidth alternatives, like Blockstream Satellite - Drop text about running on a VPS, since that's not useful to the network and not sure for anyone using a wallet. --- ch03.asciidoc | 59 ++++++++++++++++++++++++++++----------------------- 1 file changed, 32 insertions(+), 27 deletions(-) diff --git a/ch03.asciidoc b/ch03.asciidoc index 9bf7dfae..1e6cf191 100644 --- a/ch03.asciidoc +++ b/ch03.asciidoc @@ -343,50 +343,55 @@ $ which bitcoin-cli ((("Bitcoin Core", "running core nodes", id="BCnode03")))((("Bitcoin nodes", "running core nodes", id="BNcore03")))Bitcoin's peer-to-peer network is composed of network "nodes," run mostly by volunteers and -some of the businesses that build bitcoin applications. Those running +some of the businesses that provide Bitcoin services. Those running Bitcoin nodes have a direct and authoritative view of the Bitcoin -blockchain, with a local copy of all the transactions, independently -validated by their own system. By running a node, you don't have to rely -on any third party to validate a transaction. Moreover, by running a -Bitcoin node you contribute to the Bitcoin network by making it more +blockchain, with a local copy of all the spendable bitcoins +independently validated by their own system. By running a node, you +don't have to rely on any third party to validate a transaction. +Additionally, by running a Bitcoin node, you contribute to the Bitcoin +network and help make it more robust. -Running a node, however, requires a permanently connected system with -enough resources to process all Bitcoin transactions. Depending on -whether you choose to index all transactions and keep a full copy of the -blockchain, you may also need a lot of disk space and RAM. As of early -2018, a full-index node needs 2 GB of RAM and a minimum of 160 GB of -disk space (see https://blockchain.info/charts/blocks-size[]). Bitcoin -nodes also transmit and receive bitcoin transactions and blocks, -consuming internet bandwidth. If your internet connection is limited, -has a low data cap, or is metered (charged by the gigabit), you should -probably not run a Bitcoin node on it, or run it in a way that -constrains its bandwidth (see <>). +Running a node, however, requires downloading and processing over 500 GB +of data initially and about 400 MB of Bitcoin transactions per day. +These figures are for 2023 and will likely increase over time. If you +shut down your node or get disconnected from the internet for several +days, your node will need to download the data that it missed. For +example, if you close Bitcoin Core for ten days, you will need to +download approximately 4 GB the next time you start it. + +Depending on whether you choose to index all transactions and keep a +full copy of the blockchain, you may also need a lot of disk space---at +least 1 TB if you plan to run Bitcoin Core for several years. By +default, Bitcoin nodes also transmit transactions and blocks to other +nodes (called "peers"), consuming upload internet bandwidth. If your +internet connection is limited, has a low data cap, or is metered +(charged by the gigabit), you should probably not run a Bitcoin node on +it, or run it in a way that constrains its bandwidth (see +<>). You may connect your node instead to an +alternative network, such as a free satellite data provider like +https://blockstream.com/satellite/[Blockstream Satellite]. [TIP] ==== ((("warnings and cautions", "core node resource requirements")))((("resource requirements")))Bitcoin Core keeps a full -copy of the blockchain by default, with every transaction that has ever -occurred on the Bitcoin network since its inception in 2009. This -dataset is dozens of gigabytes in size and is downloaded incrementally -over several days or weeks, depending on the speed of your CPU and +copy of the blockchain by default, with nearly every transaction that has ever +been confirmed on the Bitcoin network since its inception in 2009. This +dataset is hundreds of gigabytes in size and is downloaded incrementally +over several hours or days, depending on the speed of your CPU and internet connection. Bitcoin Core will not be able to process transactions or update account balances until the full blockchain dataset is downloaded. Make sure you have enough disk space, bandwidth, and time to complete the initial synchronization. You can configure Bitcoin Core to reduce the size of the blockchain by discarding old blocks (see <>), but it will still download the -entire dataset before discarding data. +entire dataset. ==== -Despite these resource requirements, thousands of volunteers run Bitcoin +Despite these resource requirements, thousands of people run Bitcoin nodes. Some are running on systems as simple as a Raspberry Pi (a $35 -USD computer the size of a pack of cards). Many volunteers also run -Bitcoin nodes on rented servers, usually some variant of Linux. A -_Virtual Private Server_ (VPS) or _Cloud Computing Server_ instance can -be used to run a Bitcoin node. Such servers can be rented for $25 to $50 -USD per month from a variety of providers. +USD computer the size of a pack of cards). Why would you want to run a node? Here are some of the most common reasons: