Full Node vs Archive Node: Which Does Your Application Need?
Compare full and archive nodes by historical state, retained data, methods and workload capacity.
Choose from the queries, not the label
A full node and an archive node are not competing levels of blockchain correctness. For an Ethereum application, the practical distinction is often whether the node can serve the historical state your requests require. Archive capabilities also depend on the client, version and configuration.
Start with a list of actual requests. Reading a current balance, retrieving an old transaction receipt and executing a contract call against an old block are different requirements. "We need historical data" is too broad to determine the right deployment.
Separate historical state from transaction history
Consider eth_getBalance at an old block. That request needs the account balance at that point in the chain. An eth_call against the same block may need historical contract code and storage. A node that has pruned the required state may be unable to answer, even when it can still return the block itself.
Old receipts and logs are a separate question: their availability depends on retained history and the endpoint's capabilities. Do not assume that every historical query requires archive state, or that every archive service supplies every historical method. Geth's archive documentation describes the implementation-specific retention choices.
Build a small acceptance test
Choose several known blocks across your required time range, including the oldest boundary. For each, prepare the exact methods and parameters your application uses. Verify the chain and block identity, then compare results with independently established expected values.
Test historical contract calls separately from balances, receipts and logs. If you need traces or state proofs, include those explicitly. One successful balance query does not demonstrate support for a tracing API or historical proof generation.
Record failures as well as successes. An unavailable method, missing state and a request timeout point to different problems. This makes the test useful when a provider changes its client or retention settings.
Size for concurrent work
Retention is only part of the decision. A node may contain the required data but respond too slowly when a backfill runs alongside live traffic. Test the method mix at realistic concurrency and check whether historical work delays current-state reads.
Separate full and archive endpoints can be useful when the workloads have different capacity needs. That arrangement adds routing and monitoring responsibilities, so choose it for a measured reason rather than assuming more nodes always improve reliability.
Order the coverage you need
Our archive-node guide covers the underlying concepts. To scope dedicated full or archive nodes with DTEAM, send the network, oldest required block and representative queries. We can assess the required coverage and capacity, including networks not currently listed on our site.