Operating a storage node

The binary of the storage node is not yet publicly available. It will be made available in September to operators for Testnet nodes. Prior to official network launch the code will be open-sourced.

A basic systemd service running the Storage Node could look like this:

[Unit]
Description=Walrus Storage Node

[Service]
User=walrus
Environment=RUST_BACKTRACE=1
Environment=RUST_LOG=info,walrus=debug
ExecStart=/opt/walrus/bin/walrus-node run --config-path /opt/walrus/config/walrus-node.yaml
Restart=always

LimitNOFILE=65536

Make sure to adjust any paths and, if desired, the log level.

The walrus-node binary stores slivers in RocksDB, which means the data will be stored on disk, to a path configured by the /opt/walrus/config/walrus-node.yaml file. The full format with all mandatory and optional configuration parameters will be made available with the binary.

Here are some important config params from a shortened version of the walrus-node.yaml config file:

storage_path: /opt/walrus/db
metrics_address: 127.0.0.1:9184
rest_api_address: 0.0.0.0:9185
sui:
  rpc: https://fullnode.testnet.sui.io:443
  system_object: 0xWALRUS_CONTRACT
blob_recovery:
  max_concurrent_blob_syncs: 10
  retry_interval_min_secs: 1
  retry_interval_max_secs: 3600
  metadata_request_timeout_secs: 5
  max_concurrent_metadata_requests: 1
  sliver_request_timeout_secs: 300
  invalidity_sync_timeout_secs: 300

For monitoring, you can configure Grafana Agent to fetch metrics from localhost:9184/metrics (or whatever you've configured metrics_address to be).