What are the current and projected future storage space requirements for running a Tezos mainnet node?
As I understand, garbage collection and zk-snarks could reduce the storage required in the future.
Tezos Stack Exchange is a question and answer site for users, experts, and developers of the Tezos blockchain project. It only takes a minute to sign up.
Sign up to join this communityAs of today(2/18/2019), the chain size is ~95GB
. The chain grows about .5GB
per day so if we don't change anything, namely garbage collection, we'll need about 100GB
upgrade about every 7 months.
But since garbage collection will be implemented soon, there will be choices of 3 separate modes: archive
, full
and rolling
. These are their descriptions:
full
nodes store all chain data since the beginning of the chain, but drop the archived contexts below the current checkpoint. In other words, you can still query any block or operation at any point in the chain, but you cannot query the balances or staking rights too far in the past.
rolling
nodes are currently the most lightweight, only keeping a minimal rolling fragment of the chain and deleting everything before this fragment (blocks, operations and archived contexts).
archive
nodes store everything. This corresponds to the current behaviour of Tezos nodes.
Essentially, your storage requirements will differ based on what mode you choose to run based on your individual needs. If you choose to run an archive
mode, nothing will change and the chain will grow at the rate of what's currently on the mainnet
branch. If you run at the new default mode full
, according to Arthur, the storage will be at least 10 times smaller. But if you choose to run at rolling
, your storage requirement will be much smaller as you don't store any of the context data.
To give you some perspective, given the 95GB
total size now. The breakdown between real chain and context storage is 6GB
and 85GB
respectively. If these modes were used now, rolling
mode would presumably be around 6GB
and full
would be about 15GB
(6GB
+ 85GB * .10 or 8.5GB
).
Note: You can get the size of chain and context from the following files:
~/.tezos-node/store/data.mdb
~/.tezos-node/context/data.mdb
My dedicated miner/machine has 8gb of ram and a 512 gb SSD. SSD could be less, but data is increasing about 0.5gb per day and I wanted enough space to not have to worry.