Skip to main content
Version: testnet (v0.77)

Data node infrastructure

Resources: Data nodes

This section is part of a series on the topic of data nodes.

Docs:

This page covers the minimum and recommended hardware requirements, and the software requirements for running a data node connecting to the Vega network.

The best hardware may vary depending on how you set up your node and database service, and how you intend to use the data node.

Data node operators who are running a data node to support their own needs can run a leaner setup depending on their own requirements.

Those data node operators running archive nodes, which retain all chain information, will need a more robust setup.

Hardware recommendations

System architecture requirements

ResourceMinimumRecommended
CPU6 cores at >= 3Ghz12 cores at >= 4Ghz
RAM16GB32GB
Storage1TB NVMe SSD2TB NVMe SSD

The impact of using fewer cores than recommended is that the critical parts (data node and non-validators) will be starved of CPU resources, which will reduce the maximum throughput of the network.

The impact of having slower cores than recommended (or older cores that have a reduced IPC rate compared to modern Zen3 cores) is that the maximum throughput will be reduced due to the bottlenecks being single threaded.

File system performance testing

In benchmark testing using the default Ubuntu file system of EXT4 against ZFS with zstd compression turned on, it was determined that ZFS has an impact on performance when using NVMe drives, while the opposite is seen in SATA drives. More blocks per minute (bpm) is better.

NVMe SSD (bpm)Service TimeSATA SSD (bpm)Service Time
Core EXT4141515%85160%
Core ZFS121015%88655%
Core + Datanode EXT4121635%60790%
Core + Datanode ZFS99325%72965%

Cores performance testing

Benchmark testing shows that ZFS with zstd helps reduce the amount of data stored on the drives, but has a negative impact on the amount of CPU resources required. This is due to the compression/decompression of the data as it is written and read from disk.

Below are results of replay tests showing how different amounts of available CPU cores change the average block processing rate. More blocks per minute (bpm) is better.

CoresEXT4 (bpm)ZFS + zstd (bpm)
1496326
2853604
31003751
41439856
514711014
614661164
71172

Software requirements

Operating system

For production use, we recommend using the Linux binary on Ubuntu as this is the platform used by nodes on Fairground, the Vega testnet, and is the most widely tested so far.

We also recommend ensuring that the noatime flag is set for mounted drives, as not having it set can cause performance issues and deadlocking in the database, leading to panics in Postgres and the data node.

Golang

You'll need 'go' version 1.19.1 or newer.

Data node PostgreSQL

If you plan to run a data node, you will also need to run a PostgreSQL server.

There are several ways to do this:

  • As described in the data node readme.
  • The simplest and recommended way to do this is using docker, which is also described in the data node readme.