Appendix : Configuration Reference

← Back to SHAMap and NodeStore: Data Persistence and State Management


Introduction

Complete reference for NodeStore and SHAMap configuration options in rippled.cfg.

NodeStore Configuration

[node_db] Section

Core database configuration:

[node_db]
type = RocksDB              # Type: RocksDB, NuDB, SQLite, Memory
path = /var/lib/rippled/db  # Database location
cache_size = 256            # Cache size in MB (32-4096 typical)
cache_age = 60              # Cache entry age limit in seconds

Backend Selection

RocksDB (Recommended)

[node_db]
type = RocksDB
path = /var/lib/rippled/db/rocksdb

# RocksDB specific options
compression = true          # Enable compression (reduces disk ~50%)
block_cache_size = 256      # Block cache in MB
write_buffer_size = 64      # Write buffer in MB
max_open_files = 100        # Max concurrent file handles

NuDB (High-Throughput)

SQLite (Legacy)

In-Memory (Testing)

Cache Configuration

Cache Age:

Threading Configuration

Batch Operation Configuration

Online Deletion (Database Rotation)

Enable automatic deletion of old ledgers:

Without Rotation:

Import/Export Configuration

Import from another database:

Historical Database Configuration

Keep complete history without deletion:

Tuning by Deployment Type

Small Validator

Expected:

  • Memory: ~300MB

  • Disk: ~50GB

  • CPU: 20-40%

Standard Validator

Expected:

  • Memory: ~500-700MB

  • Disk: ~50GB (with rotation)

  • CPU: 30-50%

High-Performance Validator

Expected:

  • Memory: ~1.5GB

  • Disk: ~80GB (with rotation)

  • CPU: 40-60%

Archive Node

Expected:

  • Memory: ~1GB

  • Disk: ~500GB - 1TB

  • CPU: 50-70%

Monitoring Configuration

Logging Levels

RPC Configuration for Monitoring

Performance Impact Summary

Parameter
Lower Value
Higher Value

cache_size

Less memory, slower

More memory, faster

cache_age

Quick eviction, less memory

Slow eviction, more memory

async_threads

Less CPU, slower I/O

More CPU, faster I/O

compression

Faster disk I/O

Slower disk I/O, less disk space

online_delete

More disk space needed

Smaller database, bounded growth

Configuration Validation

Check configuration syntax:

Changing Configuration

Changing Cache Size

Changing Backend

Enabling Online Deletion

Troubleshooting Configuration Issues

Issue: Cache hits too low

Possible causes:

  • cache_size too small

  • cache_age too short

  • High variance in access patterns

Check:

Fix:

  • Increase cache_size by 50%

  • Increase cache_age to 120

  • Verify available memory

Issue: Database corrupted

Possible causes:

  • Unclean shutdown

  • Disk failure

  • Backend corruption

Recovery:

Issue: Disk space filling

Check:

Solution:

  • If rotation enabled: wait for deletion to complete

  • If rotation disabled: enable it with online_delete = 256

  • Monitor with watch -n 1 'du -sh /var/lib/rippled/db'

Issue: Poor write performance

Check:

Solutions:

  • Use SSD (not HDD)

  • Enable compression: compression = true

  • Switch to NuDB: type = NuDB

  • Increase async_threads

Quick Configuration Checklist

This configuration is production-ready for most validators.

Performance Monitoring Script


For more details, see:

  • Chapter 6: NodeStore Architecture

  • Chapter 8: Cache Layer

  • Appendix B: Debugging

Last updated