# Fullnodes Overview

An Endless node is an entity of the Endless ecosystem that tracks the state of the Endless blockchain. Clients interact with the blockchain via Endless nodes. There are two types of nodes:

* Validator nodes
* Fullnodes

Each Endless node comprises several logical components:

* REST service
* Mempool
* Execution
* Virtual Machine
* Storage
* State synchronizer

The Endless software can be configured to run as a validator node or as a fullnode.

### Overview <a href="#overview" id="overview"></a>

Fullnodes can be run by anyone. Fullnodes verify blockchain history by either re-executing all transactions in the history of the Endless blockchain or replaying each transaction's output. Fullnodes replicate the entire state of the blockchain by synchronizing with upstream participants, e.g., other fullnodes or validator nodes. To verify blockchain state, fullnodes receive the set of transactions and the accumulator hash root of the ledger signed by the validators. In addition, fullnodes accept transactions submitted by Endless clients and forward them directly (or indirectly) to validator nodes. While fullnodes and validators share the same code, fullnodes do not participate in consensus.

Depending on the fullnode upstream, a fullnode can be called as a validator fullnode, or a public fullnode:

* **Validator fullnode** state sync from a validator node directly.
* **Public fullnode** state sync from other fullnodes.

There's no difference in their functionality, only whether their upstream node is a validator or another fullnode. Read more details about network topology here

Third-party blockchain explorers, wallets, exchanges, and dapps may run a local fullnode to:

* Leverage the REST interface for blockchain interactions.
* Get a consistent view of the Endless ledger.
* Avoid rate limitations on read traffic.
* Run custom analytics on historical data.
* Get notifications about particular on-chain events.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.endless.link/endless/devbuild/start/learn-about-endless/endless-blockchain-deep-dive/fullnodes-overview.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
