Skip to main content
Please see The Data Waterfall for an overview of the different sources of archive data. This page is dedicated to operational details on running an Archive Server. For anyone looking to reliably serve historical transactional data, it is recommended to run multiple Archive Servers, fed by multiple full nodes running the Archive Writer process. Suggested configuration:
  • 2 Archive Servers running MongoDB + monad-indexer
  • 2 Archive Writer nodes, aka full node + monad-archiver
  • Many full nodes serving RPC requests, connected to both Archive Servers for historical transactional data
  • CPU: 16 cores
  • RAM: minimum 64GB; prefer >512GB for best performance
  • Storage: minimum recommended 16TB; preferred 32TB+
    • NVMe SSD
    • RAID 10
    • Minimum 10K IOPS sustained
  • Network: >1GbE, scale higher as needed when serving more RPC servers

Fresh installation

These instructions assume an existing full node (for Archive Writer) and a new host (for Archive Server).

On your Archive Server:

  1. Add the following section to /home/monad/.env
  2. Run mongodb. Instructions show how to run in Docker, but operators can run however they choose.
  3. Start the db

On your Archive Writer host:

  1. Add the following section to /home/monad/.env
  2. Backfilling:
    As of v0.12.3, --start-block is no longer supported as a daemon argument. Instead, use the set-start-block subcommand to set the starting block marker imperatively before starting the daemon. This prevents accidental progress loss from systemd overrides.
  3. Once monad-archiver has caught up to the chain tip you will see:
    INFO: Nothing to process
  4. This means backfilling is done and you should
    1. Comment out BACKFILL section in your .env and uncomment Normal Operation
    2. Restart: systemctl restart monad-archiver
    3. Verify status and logs as above

On your ArchiveDB host

  1. Start monad-indexer

[Optional] Set up monad-archive-checker

Typically only 1 checker is run per organization, but more can be run if desired
  1. Add the following systemd override to monad-archive-checker
  2. Reload and Restart