For the complete documentation index, see llms.txt. This page is also available as Markdown.

VDF Server

Example arweave configuration for a VDF server

  • Since VDF server will not mine or sign any blocks, they do not need access to your wallet.json

1. Overview

  • You'd like to run a dedicated node to compute and publish VDF

  • You are running on an Apple M4 processor (the fastest benchmarked processor as of September, 2025)

  • You've decided not to configure any storge modules no have your VDF server mine (this is the most common setup)

  • You'll use the publicly available NSFW filter provided by Shepherd

  • You only want to provide VDF for the following nodes:

    • 1.2.3.4

    • 5.6.7.8

    • 5.6.7.8:1985

    • node.example.com

  • Run your VDF server with:

    • peers.vdf_client set to restrict which nodes can query your server's VDF

    • vdf.algorithm: hiopt_m4 to enable a VDF algorithm optimized for the M4 processor

    • peers.local set to include the nodes you provide vdf for

  • Run your nodes with:

    • peers.local set to include the VDF node address

2. Sample Directory Structure

  • data_dir: /opt/data

  • Storage module symlinks: None

3. Sample Launch Command

Launch your VDF server with the configuration file shown in the next section:

4. Sample Configuration

The same configuration in YAML, JSON, and command-line form:

/opt/arweave/config.yaml:

/opt/arweave/config.json:

With the CLI form there is no config file - every option is passed as a flag, with list options as a single-quoted JSON value (see Command-line Flags for the value syntax). The pre-2.9.6 space-separated launch style also still works (Legacy Configuration). For example:

Last updated

Was this helpful?