Skip to main content
This section will guide you through how to setup a DATA Foundation node for mainnet. The DATA Foundation draws inspiration from ETH PoS in decoupling execution and consensus clients. The execution client story-geth relays EVM blocks into the story consensus client via Engine API, using an ABCI++ adapter to make EVM state compatible with that of CometBFT. With this architecture, consensus efficiency is no longer bottlenecked by execution transaction throughput. The story and geth binaries, which make up the clients required for running DATA Foundation nodes, are available from our latest release pages:
  • story-gethexecution client:
  • story-gethexecution client: (For Aeneid testnet)
  • storyconsensus client:
  • storyconsensus client: (For Aeneid testnet)

DATA Foundation Node Installation Guide

Pre-Installation Checklist

  • Verify system meets hardware requirements
  • Operating system: Ubuntu 22.04 LTS
  • Required ports are available
  • Sufficient disk space available
  • Root or sudo access

Quick Reference

  • Installation time: ~30 minutes
  • Network: DATA Network or Aeneid testnet
  • Required versions:
    • Check Latest Release

1. System Preparation

1.1 System Requirements

For optimal performance and reliability, we recommend running your node on either:
  • A Virtual Private Server (VPS)
  • A dedicated Linux-based machine

System Specs

1.2 Required Ports

Ensure all ports needed for your node functionality are needed, described below
  • story-geth
    • 8545
      • Required if you want your node to interface via JSON-RPC API over HTTP
    • 8546
      • Required for websockets interaction
    • 30303 (TCP + API)
      • MUST be open for p2p communication
  • story
    • 26656
      • MUST be open for consensus p2p communication
    • 26657
      • Required if you want your node interfacing for Tendermint RPC
    • 26660
      • Needed if you want to expose prometheus metrics

1.3 Install Dependencies

1.4 Install Go

For Odyssey, we need to install Go 1.22.0

2. DATA Foundation Node Installation

2.1 Install Story-Geth

  1. Download and setup binary
You will see the version of the geth binary.
(Mac OS X only) The OS X binaries have yet to be signed by our build process, so you may need to unquarantine them manually:
  1. Configure and start service

2.2 Install DATA Foundation Consensus Client

Cosmovisor Installation

For updating the story client, we recommend using Cosmovisor.
  1. Install Cosmovisor
  1. Configure Cosmovisor

Install Story Client

You should expect to see version 1.4.2-stable
(Mac OS X Only) The OS X binaries have yet to be signed by our build process, so you may need to unquarantine them manually:

Init DATA Foundation With Cosmovisor

Custom Configuration

To override your own node settings, you can do the following:
  • ${DATAFDN_DATA_ROOT}/config/config.toml can be modified to change network and consensus settings
  • ${DATAFDN_DATA_ROOT}/config/story.toml to update various client configs
  • ${DATAFDN_DATA_ROOT}/priv_validator_key.json is a sensitive file containing your validator key, but may be replaced with your own

Custom Automation

Below we list a sample Systemd configuration you may use on Linux
The DATA Foundation API endpoint (--api-address) can be modified as needed depending on your environment or use case.

Start the Service

Debugging

If you would like to check the status of story while it is running, it is helpful to query its internal JSONRPC/HTTP endpoint. Here are a few helpful commands to run:
  • curl localhost:26657/net_info | jq '.result.peers[].node_info.moniker'
    • This will give you a list of consesus peers the node is sync’d with by moniker
  • curl localhost:26657/health
    • This will let you know if the node is healthy - {} indicates it is

3. Verify Installation

3.1 Check Geth Status

3.2 Check Consensus Client

Clean Status

If you ever run into issues and would like to try joining the network from a cleared state, run the following:

Geth

Mac OS X: rm -rf ~/Library/Story/geth/* && ./geth --story --syncmode fullLinux: rm -rf ~/.story/geth/* && ./geth --story --syncmode full

DATA Foundation

Mac OS X: rm -rf ~/Library/Story/story/* && ./story init --network story && ./story runLinux: rm -rf ~/.story/story/* && ./story init --network story && ./story run