Skip to content

Digitalia Archive Node — Administrator Guide

Purpose

This guide is for infrastructure operators and SRE teams managing Digitalia Archive Node environments in staging and production.

Use this guide together with:

  • JFOS_ARCHIVE_NODE_PRODUCTION_OPS_RUNBOOK.md
  • docs/FULL_NODE_ADMINISTRATOR_GUIDE.md
  • docs/IT_OPERATIONS_MANUAL.md

1. Archive Node Overview

An Archive Node stores full historical chain state and supports deep historical RPC queries that a pruned full node cannot reliably answer.

Typical roles:

  • historical RPC backend for analytics/indexers
  • compliance and forensic query source
  • long-range state queries for tooling and research

Primary interfaces:

Port Protocol Purpose
8545 TCP JSON-RPC HTTP
8546 TCP JSON-RPC WebSocket
30303 TCP/UDP P2P
9090 TCP Metrics

2. Capacity and Prerequisites

Resource Recommended baseline
CPU 12+ vCPU
Memory 32+ GB RAM
Storage 2 TB+ fast SSD/NVMe, expandable
Network Stable high-bandwidth connectivity, low packet loss

Archive mode requires:

  • pruning disabled
  • persistent data volumes
  • backup/snapshot strategy for large state growth

3. Deployment

3.1 Docker deployment

docker run -d \
  --name digitalia-archive \
  --restart unless-stopped \
  --security-opt no-new-privileges:true \
  --cap-drop ALL \
  -p 8545:8545 -p 8546:8546 -p 30303:30303 -p 9090:9090 \
  -v digitalia-archive-data:/opt/digitalia/data \
  -v digitalia-archive-state:/opt/digitalia/archive \
  -e DIGITALIA_NETWORK=mainnet \
  -e JAVA_OPTS="-Xms8g -Xmx16g -XX:+UseG1GC" \
  cosimousa/digitalia-archive-node:latest

3.2 Cold start behavior

Initial archive sync can take many hours depending on network height and I/O throughput. Track sync status continuously and do not expose the node as production-ready until syncing is complete.

3.3 Warm restart

docker stop --time=60 digitalia-archive
docker start digitalia-archive

4. Operational Validation

4.1 Liveness and readiness

curl -sf http://localhost:8545/health/live
curl -sf http://localhost:8545/health/ready

4.2 Core RPC checks

curl -s -X POST http://localhost:8545 \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","method":"net_listening","params":[],"id":1}'
curl -s -X POST http://localhost:8545 \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","method":"dvm_syncing","params":[],"id":1}'
curl -s -X POST http://localhost:8545 \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","method":"dvm_blockNumber","params":[],"id":1}'

4.3 Archive-state verification

Perform historical state query checks at older blocks to verify archive behavior.

curl -s -X POST http://localhost:8545 \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","method":"dvm_getBalance","params":["0x0000000000000000000000000000000000000001","0x1"],"id":1}'

5. Monitoring and Alerting

Minimum alert set:

  • peer count at zero
  • sync stalled for prolonged interval
  • disk usage above 80%
  • repeated container restarts
  • RPC error rate spike

Suggested operational metrics:

  • current block height
  • sync lag
  • peer count
  • process memory
  • storage growth rate

6. Incident Response

6.1 Archive node not syncing

  1. verify peers are connected
  2. verify data volume is writable and not full
  3. inspect logs for storage/database errors
  4. restart and re-check sync progress trend

6.2 Historical queries failing

  1. confirm node is archive mode
  2. verify pruning settings remain disabled
  3. validate query block height exists in chain history
  4. if corruption suspected, run storage checks and restore snapshot

6.3 Disk exhaustion

  1. stop heavy query traffic temporarily
  2. expand volume
  3. clean non-critical logs/artifacts
  4. resume with monitoring of growth trend

6.4 Crash loop

  1. inspect OOM and JVM settings
  2. adjust memory limits and JAVA_OPTS coherently
  3. verify permissions of mounted volumes
  4. rollback image if regression introduced

7. Security and Hardening

  • run with least privilege, no-new-privileges, and dropped capabilities
  • restrict RPC exposure to trusted networks or API gateways
  • monitor vulnerability scans for archive-node images
  • enforce change control on runtime flags affecting pruning/sync mode

8. Rollback and Recovery

Image rollback:

docker stop digitalia-archive && docker rm digitalia-archive
# re-run with previous known-good tag

Recovery baseline:

  1. restore from latest valid snapshot if needed
  2. verify liveness and sync status
  3. run historical state query smoke checks

9. Documentation Map

  • docs/ARCHIVE_NODE_ADMINISTRATOR_GUIDE.md (this file)
  • docs/ARCHIVE_NODE_USER_MANUAL.md
  • JFOS_ARCHIVE_NODE_PRODUCTION_OPS_RUNBOOK.md
  • docs/FULL_NODE_ADMINISTRATOR_GUIDE.md
  • docs/IT_OPERATIONS_MANUAL.md