Node Modes of Operation#
(Back to: Node Installation)
The Ergo node offers several modes of operation, allowing users to balance resource requirements (disk space, memory, bandwidth) with security assumptions and desired functionality. Choosing the right mode depends on your specific use case, such as running a backend for a dApp, securing personal funds, or simply verifying transactions.
The primary modes are configured using settings in your ergo.conf
file, mainly node.stateType
and node.blocksToKeep
. Bootstrapping options like node.utxoBootstrap
and node.nipopowBootstrap
can significantly speed up the initial synchronization for certain modes but do not define the mode itself.
Here's a comparison of the main operational modes:
Mode Comparison#
Feature / Mode | Archival Full Node | Pruned Full Node | Digest (Stateless) Node¹ | Light SPV Client |
---|---|---|---|---|
Primary Goal | Max Security, Full History | Full Security, Reduced Storage | Full Security, Minimal Storage | Tx Verification, Minimal Resources |
Key Config | stateType="utxo" blocksToKeep=-1 |
stateType="utxo" blocksToKeep > 0 |
stateType="digest" blocksToKeep > 0 |
N/A (Client Software) |
Bootstrapping | Full Sync from Genesis | Full Sync / UTXO Snapshot (utxoBootstrap=true ) / NiPoPoW (nipopowBootstrap=true ) |
Full Sync / NiPoPoW (nipopowBootstrap=true ) / UTXO Snapshot¹ |
NiPoPoW Sync |
Storage (Initial) | Very High (100s GB+) | Medium (Snapshot: ~1-2GB + Recent Blocks) | Low (Headers + State: ~1-3GB + Recent Blocks) | Very Low (MBs) |
Storage (Ongoing) | High (Grows with chain) | Medium (Grows slowly with blocksToKeep ) |
Low (Grows slowly with blocksToKeep ) |
Very Low |
Resource Needs | High (CPU/RAM/Disk IO) | Moderate | Moderate-Low | Very Low |
Sync Time | Very Long | Fast (with bootstrap) | Fast (with bootstrap) | Very Fast |
Full Tx Validation | Yes | Yes (for kept blocks) | Yes (for kept blocks, via ADProofs) | No (Header validation only) |
API Support | Full | Full (for available data) | Limited (May lack endpoints requiring full UTXO set) | N/A (Relies on Full Node API) |
Wallet Compatibility | Full (incl. restore) | New Wallets OK; No Restore | New Wallets OK; No Restore; Potential issues with standard P2P tx submission reported² | Verification only; Relies on Full Node for tx submission/balance |
Use Cases | Mining, Archiving, Max Trust Backend | dApp Backend, Personal Wallet Backend (New Wallet) | Mobile Node Backend (Android Guide), dApp Backend (Specific Needs), Personal Wallet Backend (New Wallet, check compatibility) | Light Wallets, Quick Verification Tools |
Detailed Explanations & Notes:
-
Bootstrapping (
utxoBootstrap
,nipopowBootstrap
):- These settings significantly speed up the initial sync for Pruned and Digest nodes by downloading a compressed UTXO set snapshot (
utxoBootstrap
) or using NiPoPoW proofs (nipopowBootstrap
) instead of processing the entire chain history from genesis. - Using
utxoBootstrap=true
is common for Pruned nodes. - Using
nipopowBootstrap=true
is common for Digest nodes. - It's often beneficial to enable both
utxoBootstrap=true
andnipopowBootstrap=true
for the fastest initial sync, especially on resource-constrained devices like mobile phones. The node will attempt the fastest method available from peers. - Note ¹: While
utxoBootstrap
can technically be used withstateType="digest"
, it's less common as NiPoPoW bootstrap is generally preferred for this mode. - Progress Indication: Be aware that the initial download phase when using bootstrapping (especially
utxoBootstrap
) can take a significant amount of time depending on network speed and peer availability. The node logs may not show detailed progress during large snapshot downloads. It's often helpful to monitor your system's network activity or the increasing size of the node's data directory (.ergo/snapshots
or similar) to gauge progress during this phase.
- These settings significantly speed up the initial sync for Pruned and Digest nodes by downloading a compressed UTXO set snapshot (
-
Digest Mode (
stateType="digest"
) Limitations:- This mode keeps only an authenticated digest (root hash) of the UTXO set, verifying state transitions using ADProofs contained in blocks.
- Wallet Compatibility: While functional for creating new wallets and basic operations, users have reported issues submitting standard P2P transactions from wallets connected only to a digest-mode node. Compatibility with specific wallets or dApps requiring full UTXO set access may vary. Verification is recommended.
- API Limitations: Some API endpoints that rely on scanning the full UTXO set might not be available or may return limited data.
- Peer Relaying: Digest nodes typically cannot relay transactions received from peers, as they don't validate them against the full UTXO set.
-
Wallet Restoration (Pruned & Digest Modes):
- Nodes running with
blocksToKeep
set to a positive value (Pruned and Digest modes) cannot be used to restore wallets from seed phrases if those wallets were used before the oldest block kept by the node. They lack the historical transaction data needed for the scan. - You must use an Archival Full Node (
blocksToKeep = -1
) or a trusted explorer service for restoring older wallets. For new wallets created and used only while the pruned/digest node is running, restoration might work, but using an archival node is the safest approach.
- Nodes running with
-
Resource Usage:
- The storage figures are estimates and depend heavily on the
blocksToKeep
setting and chain activity. A typical light/mobile setup using digest mode with bootstrapping might initially consume around 3GB. - Memory requirements (
-Xmx
flag) also vary. While an archival node might need 8GB+, pruned/digest nodes can often run with 2-4GB, though more may be needed during intense activity or bootstrapping.
- The storage figures are estimates and depend heavily on the